:root{--bg-primary:   #ffffff;--bg-secondary: #f6f5f0;--bg-tertiary:  #faf9f4;--text-primary:   #1a1a1a;--text-secondary: #6b6b6b;--text-tertiary:  #9a9a9a;--border:        rgba(0, 0, 0, 0.10);--border-strong: rgba(0, 0, 0, 0.18);--accent:      #1D9E75;--accent-bg:   #E1F5EE;--accent-text: #0F6E56;--warn-bg:     #FAEEDA;--warn-border: #FAC775;--warn-text:   #633806;--danger:    #993C1D;--danger-bg: #FAECE7;--pos-good:        #1D9E75;--pos-expensive:   #993C1D;--pos-underpriced: #c08000;--pos-neutral:     #9a9a9a;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Fira Code", monospace;--font-size-base: 14px;--space-1:  4px;--space-2:  8px;--space-3:  12px;--space-4:  16px;--space-5:  20px;--space-6:  24px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.10);--z-base:    0;--z-raised:  10;--z-overlay: 100;--z-modal:   200;--transition-fast:   0.12s ease;--transition-normal: 0.20s ease;--sidebar-width:          240px;--sidebar-collapsed-width: 52px}@media (prefers-color-scheme: dark){:root{--bg-primary:   #1f1f1d;--bg-secondary: #2a2a28;--bg-tertiary:  #161614;--text-primary:   #f0efe9;--text-secondary: #b0afa9;--text-tertiary:  #7a7975;--border:        rgba(255, 255, 255, 0.10);--border-strong: rgba(255, 255, 255, 0.20);--accent-bg:   rgba(29, 158, 117, 0.18);--accent-text: #4ecfa0;--danger-bg: rgba(153, 60, 29, 0.20)}}*{box-sizing:border-box;margin:0;padding:0}*:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html{height:100%}body{font-family:var(--font-sans);font-size:var(--font-size-base);background:var(--bg-tertiary);color:var(--text-primary);-webkit-font-smoothing:antialiased;height:100%}button{font-family:inherit;cursor:pointer;background:none;border:none}a{text-decoration:none;color:inherit;cursor:pointer}.u-tabular{font-variant-numeric:tabular-nums}.u-nowrap{white-space:nowrap}.u-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.u-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.loading{display:flex;align-items:center;justify-content:center;height:60vh;color:var(--text-tertiary);font-size:13px}.view-title{font-size:20px;font-weight:700;margin-bottom:var(--space-4);color:var(--text-primary)}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-primary);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width var(--transition-normal),min-width var(--transition-normal);overflow:hidden;flex-shrink:0}.sidebar.collapsed{width:var(--sidebar-collapsed-width);min-width:var(--sidebar-collapsed-width)}.sidebar.collapsed .sidebar-text{display:none}.sidebar.collapsed .sidebar-label{display:none}.sidebar.collapsed .scrape-info{display:none}.sidebar-logo{padding:var(--space-4);font-size:16px;font-weight:700;color:var(--accent);display:flex;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-logo i{font-size:20px;flex-shrink:0}.sidebar-nav{display:flex;flex-direction:column;padding:var(--space-2) 0;flex:1;overflow-y:auto;overflow-x:hidden}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;border-radius:0;transition:background var(--transition-fast),color var(--transition-fast);white-space:nowrap}.nav-item i{font-size:16px;flex-shrink:0}.nav-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.nav-item.active{color:var(--accent-text);background:var(--accent-bg);font-weight:600}.sidebar-section{padding:var(--space-3) var(--space-4) var(--space-1);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-tertiary)}.content{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--space-6)}@media (max-width: 600px){.content{padding:var(--space-3)}}.sidebar-toggle{padding:var(--space-2) var(--space-4);color:var(--text-tertiary);font-size:16px;flex-shrink:0;border-top:1px solid var(--border);display:flex;align-items:center;gap:var(--space-3);cursor:pointer;transition:color var(--transition-fast)}.sidebar-toggle:hover{color:var(--text-primary)}.sidebar-occ-switcher{padding:var(--space-1) var(--space-3) var(--space-3)}.sidebar-occ-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-tertiary);margin-bottom:var(--space-1);padding:0 var(--space-1)}.sidebar-occ-pills{display:flex;gap:var(--space-1)}.sidebar-occ-pill{flex:1;min-width:0;padding:5px var(--space-2);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;font-weight:500;text-align:center;transition:all var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-occ-pill:hover{border-color:var(--accent);color:var(--accent-text)}.sidebar-occ-pill.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.scrape-btn{margin:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);background:var(--accent);color:#fff;border-radius:var(--radius-md);font-size:13px;font-weight:600;display:flex;align-items:center;gap:var(--space-2);transition:background var(--transition-fast);white-space:nowrap}.scrape-btn:hover{background:var(--accent-text)}.scrape-btn:disabled{opacity:0.6;cursor:not-allowed}.scrape-btn i{font-size:15px}.scrape-progress{height:3px;background:var(--accent-bg);margin:0 var(--space-3);border-radius:999px;overflow:hidden}.scrape-progress-bar{height:100%;background:var(--accent);transition:width 0.4s ease;border-radius:999px}.scrape-status{padding:var(--space-1) var(--space-4);font-size:11px;color:var(--text-tertiary)}.scrape-info{font-size:11px;color:var(--text-tertiary);padding:var(--space-1) var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:2px;white-space:nowrap}.main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.sidebar-logo{padding:var(--space-3) var(--space-4);font-size:15px;font-weight:700;color:var(--accent);display:flex;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border);flex-shrink:0;cursor:pointer;transition:background var(--transition-fast);width:100%;text-align:left}.sidebar-logo:hover{background:var(--bg-secondary)}.logo-icon{font-size:20px;flex-shrink:0}.logo-text-label{font-size:15px;font-weight:700}.logo-sub{display:block;font-size:10px;font-weight:400;color:var(--text-tertiary)}.sidebar-collapse-icon{margin-left:auto;font-size:16px;color:var(--text-tertiary);flex-shrink:0}.sidebar.collapsed .sidebar-collapse-icon{display:none}.nav-section{padding:var(--space-2) 0}.nav-label{padding:var(--space-2) var(--space-4) var(--space-1);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-tertiary)}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);white-space:nowrap}.nav-item i{font-size:16px;flex-shrink:0}.nav-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.nav-item.active{color:var(--accent-text);background:var(--accent-bg);font-weight:600}.hotel-list{padding:var(--space-2) 0;border-top:1px solid var(--border);flex:1;overflow-y:auto;min-height:0}.hotel-label{padding:var(--space-2) var(--space-4) var(--space-1);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-tertiary)}.hotel-item{display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-3);transition:background var(--transition-fast)}.hotel-item:hover{background:var(--bg-secondary)}.hotel-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.hotel-name{flex:1;min-width:0;font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hotel-name.my-hotel{color:var(--accent-text);font-weight:600}.hotel-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.add-btn{display:flex;align-items:center;gap:var(--space-2);padding:5px var(--space-4);font-size:12px;color:var(--text-tertiary);cursor:pointer;transition:color var(--transition-fast)}.add-btn:hover{color:var(--accent)}.icon-btn{padding:3px 5px;border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:13px;transition:all var(--transition-fast)}.icon-btn:hover{color:var(--text-primary);background:var(--bg-secondary)}.icon-btn.danger:hover{color:var(--danger)}.sidebar-footer{border-top:1px solid var(--border);padding:var(--space-2) 0;flex-shrink:0}.scrape-progress{padding:0 var(--space-3) var(--space-1)}.scrape-progress-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--text-secondary);margin-bottom:4px}.scrape-hotel-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.scrape-counter{font-size:10px;color:var(--text-tertiary);white-space:nowrap;margin-left:var(--space-2);flex-shrink:0}.scrape-progress-bar{height:4px;background:var(--bg-secondary);border-radius:999px;overflow:hidden}.scrape-progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width 0.4s ease}.scrape-result{padding:0 var(--space-3) var(--space-1)}.scrape-result-header{display:flex;align-items:center;gap:var(--space-1);font-size:12px;padding:5px var(--space-2);border-radius:var(--radius-md)}.scrape-result-ok{background:var(--accent-bg);color:var(--accent-text)}.scrape-result-fail{background:var(--danger-bg);color:var(--danger)}.scrape-result-close{margin-left:auto;font-size:11px;opacity:0.7;cursor:pointer}.scrape-result-close:hover{opacity:1}.scrape-result-detail{font-size:11px;color:var(--text-tertiary);padding:2px var(--space-2) 0;word-break:break-all}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.45);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4)}.modal{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-md);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.modal h3{font-size:15px;font-weight:700}.modal label{display:flex;flex-direction:column;gap:var(--space-1);font-size:12px;font-weight:600;color:var(--text-secondary)}.modal input[type=text]{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-family:inherit;font-size:13px}.modal input[type=text]:focus{outline:none;border-color:var(--accent)}.modal-source-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#003580;background:#e8f0fe;border:1px solid #b8d0f8;border-radius:var(--radius-sm);padding:2px 8px;margin:4px 0}.modal-url-preview{font-size:12px;min-height:18px;margin-top:5px;display:flex;align-items:center;gap:5px;font-family:var(--font-mono);transition:color var(--transition-fast)}.modal-url-preview.ok{color:var(--accent)}.modal-url-preview.err{color:var(--danger)}.modal-url-preview i{font-size:13px}.modal-url-preview strong{font-weight:600}.modal-url-hint{font-size:11px;color:var(--text-tertiary);margin-top:6px;line-height:1.5}.modal-url-hint code{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 5px;font-size:11px;font-family:var(--font-mono)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-2)}.btn-primary{padding:var(--space-2) var(--space-4);background:var(--accent);color:#fff;border-radius:var(--radius-md);font-size:13px;font-weight:600;border:1px solid var(--accent);cursor:pointer}.btn-primary:hover{background:var(--accent-text)}.btn-secondary{padding:var(--space-2) var(--space-4);background:var(--bg-secondary);color:var(--text-secondary);border-radius:var(--radius-md);font-size:13px;font-weight:600;border:1px solid var(--border);cursor:pointer}.btn-secondary:hover{border-color:var(--border-strong);color:var(--text-primary)}.settings-section{margin-bottom:var(--space-6)}.section-title{display:flex;align-items:center;gap:var(--space-2);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-secondary);margin-bottom:var(--space-2)}.section-title i{font-size:14px}.settings-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-row-label{font-size:13px;font-weight:500;color:var(--text-primary);flex:1;min-width:0}.settings-row-sub{font-size:12px;color:var(--text-tertiary);margin-top:2px;max-width:440px}.settings-static-value{font-size:13px;color:var(--text-secondary)}.currency-select{padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-family:inherit;font-size:13px;min-width:100px;cursor:pointer}.currency-select:focus{outline:none;border-color:var(--accent)}.threshold-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.threshold-help{font-size:11px;color:var(--text-tertiary);margin-top:4px}.threshold-suffix{font-size:12px;color:var(--text-tertiary);align-self:center}.stat-cards{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-3);margin-bottom:var(--space-3)}@media (max-width: 600px){.stat-cards{grid-template-columns:repeat(2, 1fr)}}.stat-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3)}.stat-card-value{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.stat-card-label{font-size:12px;color:var(--text-tertiary);margin-top:2px}.hotel-url-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-top:2px}.hotel-slug{font-size:11px;color:var(--text-tertiary);font-family:var(--font-mono)}.source-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;border-radius:var(--radius-sm);padding:1px 6px;white-space:nowrap}.source-booking{color:#003580;background:#e8f0fe;border:1px solid #b8d0f8}.date-col{text-align:center}.grid-hotel-banner{grid-column:1 / -1;padding:var(--space-2) var(--space-3);display:flex;align-items:center;gap:var(--space-2);font-size:12px;font-weight:600;background:var(--bg-secondary);border-top:1px solid var(--border)}.no-data-tag{font-size:10px;color:var(--text-tertiary);font-style:italic}.market-empty{color:var(--text-tertiary);font-size:11px;text-align:center}.market-low,.market-avg,.market-sold-out{font-size:11px;font-variant-numeric:tabular-nums}.market-summary-cell{padding:4px var(--space-2);text-align:center;font-size:11px}.market-summary-label{font-weight:600;color:var(--text-secondary)}.grid-cell{padding:4px var(--space-2);border-top:1px solid var(--border);border-left:1px solid var(--border);text-align:center}.room-row{display:contents}.room-label-cell{padding:5px var(--space-3) 5px var(--space-4);border-top:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:1px;min-height:44px}.chart-section{margin-bottom:var(--space-4)}.chart-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-3);flex-wrap:wrap;gap:var(--space-2)}.chart-title{font-size:14px;font-weight:600}.chart-canvas-wrapper{height:260px;position:relative}.chart-footnote{font-size:11px;color:var(--text-tertiary);margin-top:var(--space-2);display:flex;gap:var(--space-2);flex-wrap:wrap}.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--text-secondary)}.outer{padding:0}.wrapper{padding:0}.holiday{font-size:10px;color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius-sm);padding:1px 5px}.manual{display:inline-block;width:10px;height:10px;background:rgba(120,80,200,0.4);border-radius:2px;vertical-align:middle}.triangle{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid var(--text-tertiary);vertical-align:middle}.toggle{position:relative;width:36px;height:20px;border-radius:999px;border:none;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast);padding:0}.toggle::after{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform var(--transition-fast);box-shadow:0 1px 3px rgba(0,0,0,0.2)}.toggle.on{background:var(--accent)}.toggle.on::after{transform:translateX(16px)}.toggle.off{background:var(--border-strong)}.toggle.off::after{transform:translateX(0)}@media (max-width: 880px){.dash-nights{grid-template-columns:repeat(2, 1fr)}}@media (max-width: 600px){.dash-nights{grid-template-columns:1fr}.stat-cards{grid-template-columns:repeat(2, 1fr)}.threshold-row{grid-template-columns:1fr}}.page-nav{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.page-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.page-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent-text)}.page-nav-btn:disabled{opacity:0.35;cursor:default}.page-nav-label{font-size:13px;font-weight:500;color:var(--text-primary);min-width:120px;text-align:center}.page-nav-total{font-size:11px;color:var(--text-tertiary)}.rate-badge{font-size:12px;line-height:1;vertical-align:middle;flex-shrink:0;cursor:default;user-select:none}.card-holiday{position:absolute;top:var(--space-1);right:var(--space-2);font-size:10px;color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius-sm);padding:1px 5px;white-space:nowrap;pointer-events:none;z-index:var(--z-raised)}.chg-badge{display:inline-block;font-size:11px;font-weight:600;border-radius:var(--radius-sm);padding:2px 8px}.chg-badge.sold-out{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger)}.dash-nights{display:grid;grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));gap:var(--space-3);padding:var(--space-1) 0 var(--space-6)}.night-card{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column;position:relative}.night-card.pos-good{border-left:3px solid var(--pos-good)}.night-card.pos-expensive{border-left:3px solid var(--pos-expensive)}.night-card.pos-underpriced{border-left:3px solid var(--pos-underpriced)}.night-card.pos-equal{border-left:3px solid var(--pos-neutral)}.night-card.pos-nodata{border-left:3px solid var(--border)}.card-header{display:flex;align-items:baseline;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);padding-right:60px}.card-dow{font-size:12px;font-weight:600;color:var(--text-primary)}.card-date{font-size:12px;font-weight:400;color:var(--text-secondary)}.card-body{padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);flex:1}.card-pos{display:flex;align-items:baseline}.card-delta-number{font-size:28px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-0.02em;color:var(--text-primary)}.pos-good .card-delta-number{color:var(--pos-good)}.pos-expensive .card-delta-number{color:var(--pos-expensive)}.pos-underpriced .card-delta-number{color:var(--pos-underpriced)}.pos-equal .card-delta-number{color:var(--pos-neutral)}.card-delta-number.card-delta-na{color:var(--text-tertiary)}.card-divider{height:1px;background:var(--border);margin:0 calc(-1 * var(--space-3));width:calc(100% + var(--space-3) * 2)}.dash-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:64px var(--space-4);color:var(--text-tertiary);text-align:center}.dash-empty i{font-size:40px}.dash-empty-title{font-size:15px;font-weight:600;color:var(--text-secondary)}.dash-empty-sub{font-size:13px}.comp-list{display:flex;flex-direction:column;margin:0 calc(-1 * var(--space-3))}.comp-row{display:flex;justify-content:space-between;align-items:center;padding:5px var(--space-3);gap:var(--space-2);min-height:36px;text-decoration:none;color:inherit;cursor:pointer;transition:background var(--transition-fast)}.comp-row:not(:last-child){border-bottom:1px solid var(--border)}.comp-row:not(.comp-no-link):hover{background:var(--bg-secondary)}.comp-row.comp-no-link{cursor:default}.comp-row.comp-unavailable{opacity:0.45}.comp-row.comp-mine{background:var(--accent-bg)}.comp-row.comp-mine:not(.comp-no-link):hover{background:var(--accent-bg);filter:brightness(0.97)}.comp-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.comp-name{font-size:12px;font-weight:500;color:var(--text-primary)}.comp-name.comp-name-mine{font-weight:600;color:var(--accent-text)}.comp-room{font-size:10px;color:var(--text-tertiary)}.comp-price{font-size:12px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0;text-align:right;min-width:56px}.comp-price.comp-price-mine{color:var(--accent-text);font-size:13px;display:flex;align-items:center;gap:3px}.comp-price.unavailable{font-weight:400;color:var(--text-tertiary);font-size:11px}.comp-empty{padding:var(--space-2) var(--space-3);font-size:11px;color:var(--text-tertiary);font-style:italic}.comp-name,.comp-room{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.changes-section{margin-top:28px}.changes-title{display:flex;align-items:center;gap:var(--space-2);font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:10px}.changes-title i{color:var(--text-secondary);font-size:16px}.changes-subtitle{font-size:12px;font-weight:400;color:var(--text-tertiary)}.changes-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-primary)}.changes-table{width:100%;border-collapse:collapse;font-size:13px}.changes-table thead th{text-align:left;padding:9px 14px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-tertiary);background:var(--bg-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.chg-row{border-bottom:1px solid var(--border);transition:background var(--transition-fast)}.chg-row:last-child{border-bottom:none}.chg-row:hover{background:var(--bg-secondary)}.chg-row td{padding:9px 14px;vertical-align:middle}.chg-row.chg-mine .chg-hotel{color:var(--accent-text)}.chg-when{color:var(--text-secondary);white-space:nowrap;font-size:12px}.chg-hotel{font-weight:600;color:var(--text-primary);white-space:nowrap}.chg-night{color:var(--text-secondary);white-space:nowrap}.chg-room{color:var(--text-secondary);font-size:12px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chg-room-count{font-weight:500;color:var(--text-primary)}.chg-guests{display:inline-block;font-size:10px;color:var(--text-tertiary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 5px;margin-left:4px;vertical-align:middle}.chg-move{white-space:nowrap;font-variant-numeric:tabular-nums}.chg-arrow{font-size:15px;font-weight:700;margin-right:3px}.chg-amount{font-size:15px;font-weight:700}.chg-move.drop .chg-arrow,.chg-move.drop .chg-amount{color:var(--danger)}.chg-move.rise .chg-arrow,.chg-move.rise .chg-amount{color:#1a7a3a}.chg-prices{color:var(--text-secondary);white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}.chg-from{color:var(--text-tertiary);text-decoration:line-through}.chg-sep{margin:0 4px;color:var(--text-tertiary)}.chg-to{font-weight:600;color:var(--text-primary)}.chg-price-range{font-size:12px;color:var(--text-secondary)}.chg-expand-hint{margin-left:6px;color:var(--text-tertiary);font-size:11px;vertical-align:middle}.chg-detail-row td{padding:5px 14px;background:var(--bg-secondary);border-bottom:1px solid var(--border);font-size:12px}.chg-detail-row:last-child td{border-bottom:none}.chg-detail-room{color:var(--text-secondary)}.chg-sold-out .chg-hotel{color:var(--text-secondary)}.price-grid{display:grid;grid-template-columns:200px repeat(7, 1fr);font-size:12px;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-primary)}@media (max-width: 800px){.price-grid{grid-template-columns:130px repeat(7, minmax(60px, 1fr));font-size:11px}}.grid-header{padding:7px var(--space-2);background:var(--bg-secondary);font-size:11px;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.grid-header:first-child{text-align:left;padding-left:var(--space-3)}.grid-header .dow{display:block;font-size:10px;font-weight:400;color:var(--text-tertiary)}.hotel-banner{grid-column:1 / -1;padding:var(--space-2) var(--space-3);display:flex;align-items:center;gap:var(--space-2);font-size:12px;font-weight:600;color:var(--text-primary);background:var(--bg-secondary);border-top:1px solid var(--border)}.hotel-banner-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.hotel-banner-avg{margin-left:auto;font-size:11px;font-weight:400;color:var(--text-tertiary)}.hotel-banner-empty{grid-column:1 / -1;padding:var(--space-2) var(--space-3);font-size:11px;color:var(--text-tertiary);font-style:italic;border-top:1px solid var(--border)}.room-label{padding:5px var(--space-3) 5px var(--space-4);border-top:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:1px;background:var(--bg-primary);min-height:44px}.room-label.last-room{border-bottom:1px solid var(--border)}.room-name{font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-mean{font-size:10px;color:var(--text-tertiary)}.price-cell{padding:4px var(--space-2);border-top:1px solid var(--border);border-left:1px solid var(--border);text-align:center;vertical-align:middle;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:44px;background:var(--bg-primary);transition:background var(--transition-fast)}.price-cell:hover{background:var(--bg-secondary)}.price-cell.last-row{border-bottom:1px solid var(--border)}.price-val{font-size:12px;font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.price-val.mine{font-weight:700;color:var(--accent-text)}.price-val.sold-out-val{font-size:10px;color:var(--text-tertiary);font-style:italic;font-weight:400}.price-delta{font-size:10px;font-weight:600;font-variant-numeric:tabular-nums}.price-delta.up{color:var(--danger)}.price-delta.down{color:var(--pos-good)}.market-row{grid-column:1 / -1;display:contents}.market-cell{padding:4px var(--space-2);border-top:2px solid var(--border);background:var(--bg-secondary);text-align:center;font-size:11px;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.market-cell:first-child{font-weight:600;color:var(--text-secondary);text-align:left;padding-left:var(--space-3)}.grid-legend{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0;font-size:11px;color:var(--text-tertiary);flex-wrap:wrap}.legend-marker{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle;margin-right:3px}.sold-out-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-tertiary);background:repeating-linear-gradient(-45deg, transparent, transparent 3px, rgba(0,0,0,0.03) 3px, rgba(0,0,0,0.03) 6px)}.hist-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-3)}.hist-tab{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.hist-tab i{font-size:14px}.hist-tab:hover{border-color:var(--accent);color:var(--accent-text)}.hist-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.hist-panel{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.hist-chart-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}.hist-chart-title{font-size:14px;font-weight:600;color:var(--text-primary)}.hist-chart-sub{font-size:12px;color:var(--text-tertiary);margin-top:2px}.hist-canvas-wrap{height:260px;position:relative}.hist-chart-footnote{font-size:11px;color:var(--text-tertiary);margin-top:var(--space-2);display:flex;gap:var(--space-2);flex-wrap:wrap}.hist-legend{display:flex;flex-wrap:wrap;gap:10px}.legend-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.history-toolbar{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:var(--space-2)}.toolbar-label{font-size:12px;font-weight:500;color:var(--text-secondary);white-space:nowrap}.range-pills{display:flex;gap:var(--space-1)}.range-pill{padding:4px 12px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.range-pill:hover{border-color:var(--accent);color:var(--accent-text)}.range-pill.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.hm-wrap{overflow-x:auto}.hm-table{width:100%;border-collapse:collapse;font-size:12px}.hm-table th,.hm-table td{padding:0}.hm-name{font-size:12px;color:var(--text-secondary);padding:5px 10px 5px 0;white-space:nowrap;min-width:120px}.hm-dow{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-tertiary);text-align:center;padding:4px 2px 6px;min-width:70px}.hm-cell{text-align:center;padding:6px 4px;border-radius:var(--radius-sm);transition:filter var(--transition-fast)}.hm-cell:hover{filter:brightness(0.9)}.hm-cell.empty{color:var(--text-tertiary)}.hm-val{font-size:11px;font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums;display:block}.hm-delta{font-size:11px;font-weight:600}.mine-tag{margin-left:5px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--accent-text);background:var(--accent-bg);border-radius:var(--radius-sm);padding:1px 4px;vertical-align:middle}.hist-empty{color:var(--text-tertiary);font-size:13px;padding:32px 0;text-align:center}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.45);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4)}.modal{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-md);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--border)}.modal-header h3{font-size:15px;font-weight:700;color:var(--text-primary)}.modal-close{color:var(--text-tertiary);font-size:18px;padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast)}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.modal-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:var(--space-2)}.form-group{display:flex;flex-direction:column;gap:var(--space-1)}.form-group label{font-size:12px;font-weight:600;color:var(--text-secondary)}.form-input,.threshold-input-wrap input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-family:inherit;font-size:13px;transition:border-color var(--transition-fast)}.form-input:focus,.threshold-input-wrap input:focus{outline:none;border-color:var(--accent)}.url-input-wrap{position:relative}.url-input-wrap input{padding-right:36px}.url-hint{font-size:11px;color:var(--text-tertiary);margin-top:2px}.modal-preview{font-size:12px;color:var(--text-tertiary);background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;gap:6px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-text)}.btn-secondary{background:var(--bg-secondary);border-color:var(--border);color:var(--text-secondary)}.btn-secondary:hover{border-color:var(--border-strong);color:var(--text-primary)}.btn-danger{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn:disabled{opacity:0.5;cursor:not-allowed}.settings-section{margin-bottom:var(--space-6)}.section-title{display:flex;align-items:center;gap:var(--space-2);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-secondary);margin-bottom:var(--space-2)}.section-title i{font-size:14px}.settings-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-row-label{font-size:13px;font-weight:500;color:var(--text-primary);flex:1;min-width:0}.settings-row-sub{font-size:12px;color:var(--text-tertiary);margin-top:2px;max-width:440px}.currency-select{padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-family:inherit;font-size:13px;min-width:100px;cursor:pointer;transition:border-color var(--transition-fast)}.currency-select:focus{outline:none;border-color:var(--accent)}.threshold-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.threshold-input-wrap{display:flex;flex-direction:column;gap:var(--space-1)}.threshold-input-wrap label{font-size:11px;color:var(--text-tertiary);font-weight:500}.hotel-list{display:flex;flex-direction:column;gap:0}.hotel-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);transition:background var(--transition-fast)}.hotel-item:last-child{border-bottom:none}.hotel-item:hover{background:var(--bg-secondary)}.hotel-item-name{font-size:13px;font-weight:500;color:var(--text-primary)}.hotel-item-url{font-size:11px;color:var(--text-tertiary);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.hotel-item-actions{display:flex;gap:var(--space-1);flex-shrink:0}.hotel-item-action{padding:4px 6px;border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:14px;transition:all var(--transition-fast)}.hotel-item-action:hover{color:var(--text-primary);background:var(--bg-secondary)}.hotel-item-action.danger:hover{color:var(--danger)}.hotel-item-mine-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--accent-text);background:var(--accent-bg);border-radius:var(--radius-sm);padding:1px 5px}.stat-cards{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-3);margin-bottom:var(--space-3)}@media (max-width: 600px){.stat-cards{grid-template-columns:repeat(2, 1fr)}}.stat-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3)}.stat-card-value{font-size:22px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.stat-card-label{font-size:12px;color:var(--text-tertiary);margin-top:2px}
