:root{--font-sans:"Noto Sans JP", sans-serif;--fs-xs:10px;--fs-sm:11px;--fs-base:12px;--fs-md:13px;--fs-lg:15px;--fs-xl:20px;--fs-2xl:22px;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-light:#eff6ff;--color-success:#22c55e;--color-success-text:#15803d;--color-error:#ef4444;--color-error-text:#dc2626;--color-bg:#f7f8fa;--color-surface:#fff;--color-border:#e2e5ea;--color-text-primary:#1a202c;--color-text-secondary:#4a5568;--color-text-tertiary:#6b7280;--color-text-muted:#8b919a;--color-gray-50:#f7f8fa;--color-gray-100:#f0f1f4;--color-gray-200:#e2e5ea;--color-gray-300:#cdd1d8;--color-gray-900:#1a202c;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001f;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:2px}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.skip-link{z-index:1000;background:var(--color-primary);color:#fff;border-radius:0 0 var(--radius-md) 0;padding:8px 16px;font-weight:700;text-decoration:none;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.app-layout{min-height:100vh;display:flex}.left-nav{background:var(--color-gray-900);color:#fff;z-index:100;flex-direction:column;width:220px;padding:20px 0;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.left-nav .hotel-name{font-size:var(--fs-lg);border-bottom:1px solid #ffffff1a;margin-bottom:8px;padding:0 20px 20px;font-weight:700}.left-nav .nav-item{color:#ffffffb3;font-size:var(--fs-md);border-left:3px solid #0000;padding:12px 20px;font-weight:500;text-decoration:none;transition:all .15s;display:block}.left-nav .nav-item:hover{color:#fff;background:#ffffff0d}.left-nav .nav-item.active{color:#fff;border-left-color:var(--color-primary);background:#ffffff1a;font-weight:700}.left-nav .nav-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:1px;color:#fff6;padding:16px 20px 8px}.main-content{flex:1;max-width:1400px;margin-left:220px;padding:24px 32px}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-title{font-size:var(--fs-2xl);color:var(--color-text-primary);font-weight:700}.month-badge{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--fs-lg);padding:6px 20px;font-weight:700}.kpi-grid{gap:12px;margin-bottom:28px;display:grid}.kpi-grid-6{grid-template-columns:repeat(6,1fr)}.kpi-grid-4{grid-template-columns:repeat(4,1fr)}.kpi-card{background:var(--color-surface);border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-xs);padding:16px}.kpi-card.border-red{border:2px solid var(--color-primary)}.kpi-card.border-green{border:2px solid var(--color-success)}.kpi-card .kpi-label{font-size:var(--fs-sm);color:var(--color-text-tertiary);margin-bottom:6px;font-weight:500}.kpi-card .kpi-value{font-size:var(--fs-2xl);text-overflow:ellipsis;min-width:0;color:var(--color-text-primary);font-weight:700;line-height:1.2;overflow:hidden}.kpi-card .kpi-sub{font-size:var(--fs-sm);margin-top:4px;font-weight:500}.kpi-sub.positive{color:var(--color-success-text)}.kpi-sub.negative{color:var(--color-error-text)}.kpi-sub.neutral{color:var(--color-text-tertiary)}.section-header{margin:32px 0 16px}.section-title{font-size:var(--fs-xl);color:var(--color-primary);margin:0;font-weight:700}.section-subtitle{font-size:var(--fs-md);color:var(--color-primary);margin:4px 0 0;font-weight:600}.chart-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:20px}.chart-card h3{font-size:var(--fs-lg);color:var(--color-text-primary);margin:0 0 4px;font-weight:600}.chart-card .chart-desc{font-size:var(--fs-sm);color:var(--color-text-muted);margin:0 0 16px}.chart-card .chart-bottom-desc{font-size:var(--fs-sm);color:var(--color-text-muted);border-top:1px solid var(--color-gray-100);white-space:pre-line;margin:12px 0 0;padding-top:8px}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-2>*,.grid-3>*{min-width:0;overflow:hidden}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.grid-1{grid-template-columns:1fr;gap:16px;display:grid}.data-table{border-collapse:collapse;width:100%;font-size:var(--fs-base)}.data-table th{background:var(--color-gray-50);text-align:left;color:var(--color-text-tertiary);border-bottom:2px solid var(--color-border);padding:8px 12px;font-weight:600}.data-table td{border-bottom:1px solid var(--color-gray-100);padding:6px 12px}.data-table tr:hover{background:var(--color-gray-50)}.heatmap-cell{text-align:center;font-size:var(--fs-sm);border-radius:var(--radius-sm);padding:4px 8px;font-weight:600}.page-footer{border-top:1px solid var(--color-border);text-align:center;font-size:var(--fs-sm);color:var(--color-text-muted);margin-top:40px;padding:20px 0 16px}.page-footer-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-bottom:8px;display:flex}.page-footer-link{color:var(--color-text-secondary);border-radius:var(--radius-sm);padding:2px 4px;text-decoration:none}.page-footer-link:hover{color:var(--color-primary);text-decoration:underline}.page-footer-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.page-footer-sep{color:var(--color-text-tertiary)}.page-footer-meta{margin-bottom:4px}.page-footer-copy{font-size:var(--fs-xs,11px);color:var(--color-text-tertiary)}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.settings-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:20px}.settings-card-title{font-size:var(--fs-md);color:var(--color-primary);border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:8px;font-weight:700}.settings-field{margin-bottom:16px}.settings-field:last-child{margin-bottom:0}.settings-label{font-size:var(--fs-base);color:var(--color-text-secondary);margin-bottom:4px;font-weight:600;display:block}.settings-input-row{align-items:center;gap:6px;display:flex}.settings-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:120px;font-size:14px;font-family:var(--font-sans);color:var(--color-text-primary);background:var(--color-surface);padding:6px 10px;transition:border-color .15s}.settings-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #2563eb1a}.settings-select{border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;font-family:var(--font-sans);color:var(--color-text-primary);background:var(--color-surface);min-width:180px;padding:6px 10px;transition:border-color .15s}.settings-select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #2563eb1a}.settings-unit{font-size:var(--fs-md);color:var(--color-text-tertiary);white-space:nowrap}.settings-hint{font-size:var(--fs-sm);color:var(--color-text-muted);margin:4px 0 0;line-height:1.4}.settings-reset-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--fs-md);font-family:var(--font-sans);cursor:pointer;padding:8px 20px;transition:all .15s}.settings-reset-btn:hover:not(:disabled){border-color:var(--color-text-tertiary);color:var(--color-text-primary)}.settings-reset-btn:disabled{opacity:.4;cursor:default}.settings-reset-btn.danger{border-color:var(--color-error);color:var(--color-error);background:#fef2f2}.settings-reset-btn.danger:hover{background:#fee2e2}.settings-link{color:var(--color-text-muted);font-size:var(--fs-sm);border-radius:var(--radius-sm);vertical-align:middle;align-items:center;gap:3px;padding:2px 6px;text-decoration:none;transition:all .15s;display:inline-flex}.settings-link:hover{color:var(--color-primary);background:var(--color-primary-light)}.settings-link span{opacity:0;white-space:nowrap;max-width:0;transition:all .2s;overflow:hidden}.settings-link:hover span{opacity:1;max-width:80px;margin-left:2px}@keyframes spin{to{transform:rotate(360deg)}}html[data-size=m]{--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:18px;--fs-xl:24px;--fs-2xl:26px}html[data-size=l]{--fs-xs:14px;--fs-sm:15px;--fs-base:17px;--fs-md:18px;--fs-lg:21px;--fs-xl:28px;--fs-2xl:31px}.aio-sample-banner{border-radius:var(--radius-lg);font-size:var(--fs-md);color:#92400e;background:#fffbeb;border:1px solid #fde68a;align-items:center;gap:8px;margin-bottom:16px;padding:10px 16px;display:flex}.aio-period-btn{border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--fs-base);cursor:pointer;background:var(--color-surface);color:var(--color-text-tertiary);padding:5px 12px;transition:background .15s,color .15s}.aio-period-btn.active{color:#fff;background:#4e79a7;border-color:#4e79a7}.nav-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-primary);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none}.nav-toggle:hover{background:var(--color-gray-50)}.nav-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.nav-backdrop{z-index:99;background:#0006;display:none;position:fixed;inset:0}.page-header-left{align-items:center;gap:12px;min-width:0;display:flex}.page-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}@media (width<=1199px){.kpi-grid-6{grid-template-columns:repeat(3,1fr)}.grid-3{grid-template-columns:1fr 1fr}.left-nav{width:200px}.main-content{margin-left:200px;padding:20px}}@media (width<=767px){.left-nav{width:260px;box-shadow:none;transition:transform .25s;transform:translate(-100%)}.app-layout.nav-open .left-nav{box-shadow:var(--shadow-lg);transform:translate(0)}.app-layout.nav-open .nav-backdrop{display:block}.main-content{max-width:100%;margin-left:0;padding:16px 14px}.nav-toggle{display:inline-flex}.page-header{flex-wrap:wrap;gap:10px;margin-bottom:16px}.page-header-actions{justify-content:flex-start;width:100%}.page-title{font-size:var(--fs-xl)}.kpi-grid-6,.kpi-grid-4{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3{grid-template-columns:1fr}.chart-card{padding:14px}}@media (width<=399px){.kpi-grid-6,.kpi-grid-4{grid-template-columns:1fr}}.pace-pill-hover:hover .pace-popover{display:block!important}.print-only{display:none}@media print{@page{size:A4 landscape;margin:8mm 10mm}html,body,#root{color:#000!important;background:#fff!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}header,aside,nav,footer,.page-footer,.sidebar,.layout-header,.layout-sidebar,.layout-mobile-nav,.month-picker,.hotel-picker,.no-print,.report-actions,[role=alert]{display:none!important}.print-only{display:block!important}.print-report,main,.content-area,.page-content{box-shadow:none!important;background:#fff!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.print-header{border-bottom:2px solid #111;margin-bottom:6mm;padding-bottom:2mm;display:block!important}.print-header .print-title{margin:0 0 2mm;font-size:14pt;font-weight:700}.print-header .print-meta{color:#374151;flex-wrap:wrap;gap:16px;font-size:9pt;display:flex}.recharts-wrapper,.recharts-responsive-container,.print-hide-charts{display:none!important}table{border-collapse:collapse!important;width:100%!important;font-size:8pt!important}table th,table td{white-space:nowrap!important;border:1px solid #9ca3af!important;padding:2px 4px!important;position:static!important}table thead th{color:#000!important;background:#e5e7eb!important}.chart-card,.section-header{box-shadow:none!important;background:0 0!important;border:none!important;margin:0 0 4mm!important;padding:0!important}h2,h3{margin:4mm 0 2mm!important;font-size:11pt!important}.grid-2{display:block!important}thead{display:table-header-group}tr,td,th{page-break-inside:avoid}button,input[type=date],input[type=text],select{display:none!important}table button,table input,table select{display:inline-block!important}}
