:root{color:#111827;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;background:#f6f7fb;font-family:Inter,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{margin:0}button,input{font:inherit}h1,h2,h3,h4,p{margin-top:0}.login-shell{background:linear-gradient(135deg,#f5efe7 0%,#edf3ff 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#ffffffe0;border:1px solid #e5e7eb;border-radius:20px;width:min(100%,480px);padding:32px;box-shadow:0 20px 50px #11182714}.kicker{letter-spacing:.16em;text-transform:uppercase;color:#6b7280;font-size:12px;font-weight:700}.kicker .access-switcher{align-items:center;gap:6px;margin-left:auto;display:flex}.kicker .access-switcher .mode-button{padding:7px 10px;font-size:.75rem}.login-card h1{margin:14px 0 8px;font-size:2rem}.subtitle{color:#4b5563;margin-bottom:20px}.field-label{color:#374151;margin-bottom:8px;font-size:.82rem;font-weight:600;display:block}.key-input{box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:12px;width:100%;margin-bottom:18px;padding:12px 14px;font-size:1rem}.mode-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px;display:grid}.mode-button,.primary-btn,.secondary-btn,.nav-btn,.pill,.small-btn{font:inherit;cursor:pointer}.mode-button{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:10px 12px}.mode-button.active{color:#fff;background:#111827;border-color:#111827}.primary-btn{color:#fff;background:linear-gradient(135deg,#111827 0%,#374151 100%);border:none;border-radius:12px;width:100%;padding:12px 16px;font-weight:700}.form-error{color:#b91c1c;margin:12px 0 0;font-size:.85rem}.login-meta{color:#6b7280;flex-direction:column;gap:6px;margin-top:18px;font-size:.76rem;display:flex}.app-shell{background:#f6f7fb;min-height:100vh;display:flex}.sidebar{color:#fff;background:#111827;flex-direction:column;gap:22px;width:260px;padding:22px 18px;display:flex}.brand{letter-spacing:.08em;text-transform:uppercase;font-size:1.4rem;font-weight:700}.nav{flex-direction:column;gap:8px;display:flex}.nav-btn{color:#fffc;text-align:left;background:0 0;border:1px solid #ffffff14;border-radius:10px;padding:10px 12px}.nav-btn.active{color:#fff;background:#ffffff14}.session-box{background:#ffffff0f;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:4px;margin-top:auto;padding:12px;display:flex}.small-label{text-transform:uppercase;letter-spacing:.12em;color:#9ca3af;font-size:11px}.main-panel{flex:1;padding:28px}.topbar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#6b7280;margin:0;font-size:12px}.topbar h2{margin:8px 0 0;font-size:2rem}.secondary-btn{background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:10px 14px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px;display:grid}.stat-card,.panel,.day-block,.recommend-card,.recommend-detail{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 6px 18px #1118270a}.stat-card{flex-direction:column;gap:6px;padding:18px 20px;display:flex}.stat-card span{color:#6b7280;font-size:.8rem}.stat-card strong{font-size:1.6rem}.panel-grid,.bottom-panel-grid{grid-template-columns:1.4fr .8fr;gap:20px;display:grid}.bottom-panel-grid{margin-top:20px}.panel{padding:20px}.panel.large{min-height:240px}.panel-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.panel-header h3,.recommend-header h3,.settings-panel h3{margin:0}.chip{border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700}.chip.success{color:#047857;background:#ecfdf5}.chip.warning{color:#c2410c;background:#fff7ed}.chip.neutral{color:#374151;background:#f3f4f6}.focus-list,.reminder-list,.source-list,.decision-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.focus-list li,.reminder-list li,.source-list li{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:16px;padding-bottom:10px;display:flex}.focus-list li:last-child,.reminder-list li:last-child,.source-list li:last-child{border-bottom:none;padding-bottom:0}.decision-list li{color:#374151;padding-left:16px;position:relative}.decision-list li:before{content:"•";color:#111827;position:absolute;left:0}.itinerary-panel,.recommendations-panel,.settings-panel{flex-direction:column;gap:18px;display:flex}.itinerary-layout{grid-template-columns:1.4fr .8fr;gap:16px;display:grid}.itinerary-list{flex-direction:column;gap:18px;display:flex}.filter-row{gap:8px;display:flex}.day-block{cursor:pointer;padding:18px 20px;transition:border-color .15s,box-shadow .15s}.day-block.selected{border-color:#111827;box-shadow:0 10px 24px #11182714}.day-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.day-header strong,.day-header span{display:block}.day-header span{color:#6b7280;margin-top:4px}.day-header-actions{align-items:center;gap:8px;display:flex}.day-edit-btn{padding:5px 8px}.city-pill{color:#4338ca;background:#eef2ff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.timeline{flex-direction:column;gap:14px;display:flex}.event-item{grid-template-columns:70px 1px 1fr;align-items:flex-start;gap:12px;display:grid}.event-item.dragging{opacity:.45}.event-item:has(.event-card){cursor:pointer}.event-time{color:#374151;flex-direction:column;gap:3px;padding-top:3px;font-weight:700;display:flex}.event-time span{color:#9ca3af;font-size:11px;font-weight:500}.event-line{background:linear-gradient(#d1d5db,#0000);width:1px;min-height:70px}.event-card{background:#f5f5f4;border:1px solid #eef2f7;border-radius:12px;padding:12px 14px}.event-card.type-flight{background:#e8eef0}.event-card.type-hotel{background:#eee9e2}.event-card.type-attraction{background:#e9eee7}.event-card.type-restaurant{background:#f1e7e4}.event-card.type-transport{background:#e7edf2}.event-card.type-free{background:#efeee8}.event-card.type-shopping{background:#ece8ef}.event-card.type-activity{background:#e8edeb}.event-card.current-event{border:3px solid #7f1d1d;box-shadow:0 0 0 2px #7f1d1d1f,0 8px 18px #7f1d1d1f}.event-topline{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.event-type{text-transform:uppercase;letter-spacing:.08em;color:#6b7280;font-size:11px}.status{border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.status-button{cursor:pointer;border:0}.status.fixed{color:#047857;background:#ecfdf5}.status.flexible{color:#4b5563;background:#f3f4f6}.event-card h4{margin:0 0 6px;font-size:1.05rem}.event-card small{color:#6b7280}.event-location,.event-note{color:#4b5563;margin-top:7px;font-size:12px}.event-note{white-space:pre-wrap}.recommend-action{color:#1d4ed8;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;margin-top:10px;padding:5px 9px;font-size:11px;font-weight:700}.event-actions{align-items:center;gap:8px;margin-top:10px;display:flex}.event-action{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:7px;padding:4px 8px;font-size:11px}.event-action.delete-action{color:#b91c1c;border-color:#fecaca}.drag-hint{color:#9ca3af;margin-left:auto;font-size:11px}.add-event-btn{margin-top:16px}.add-day-btn{margin-left:auto}.new-day-editor{align-items:end;gap:12px;margin-bottom:18px;padding:14px;display:flex}.new-day-editor label{color:#4b5563;flex-direction:column;gap:5px;font-size:.78rem;font-weight:700;display:flex}.new-day-editor input{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:9px 10px}.day-location-editor{background:#fff;border:1px dashed #cbd5e1;border-radius:9px;align-items:end;gap:10px;margin:-4px 0 14px;padding:10px 12px;display:flex}.day-location-editor label{color:#4b5563;flex-direction:column;flex:1;gap:5px;font-size:.78rem;font-weight:700;display:flex}.day-location-editor input{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:9px 10px}.inline-editor{background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px;margin:2px 0 12px 83px;padding:14px}.editor-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.editor-grid label{color:#4b5563;flex-direction:column;gap:6px;font-size:.78rem;font-weight:700;display:flex}.inline-editor-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.editor-wide-field{grid-column:span 2}.editor-grid input:not([type=checkbox]){color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:9px 10px}.editor-grid textarea{resize:vertical;color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:9px 10px}.checkbox-field{align-self:end;align-items:center;padding-bottom:10px;flex-direction:row!important}.editor-actions{gap:10px;margin-top:16px;display:flex}.editor-save{width:auto}.danger-btn{color:#b91c1c;border-color:#fecaca}.recommend-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.recommend-context-title{color:#6b7280;margin:5px 0 0;font-size:.82rem}.recommend-context{background:#eff6ff;border-color:#bfdbfe;justify-content:space-between;align-items:center;gap:18px;display:flex}.recommend-context div{flex-direction:column;gap:5px;display:flex}.recommend-context p{color:#374151;margin:0;font-size:.86rem}.empty-recommendations{color:#6b7280}.replace-btn{color:#1d4ed8;border-color:#bfdbfe}.sort-pills{gap:8px;display:flex}.pill{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:999px;padding:8px 12px}.pill.active{color:#fff;background:#111827;border-color:#111827}.recommend-layout{grid-template-columns:1.4fr .8fr;gap:16px;display:grid}.recommend-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.recommend-card{cursor:pointer;padding:18px;transition:transform .15s,border-color .15s}.recommend-card.selected{border-color:#111827;box-shadow:0 10px 24px #11182714}.card-top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.card-top h4{margin:0 0 6px}.category{color:#6b7280;text-transform:capitalize;font-size:12px}.score-box{color:#047857;background:#ecfdf5;border-radius:12px;place-items:center;min-width:52px;min-height:52px;font-weight:800;display:grid}.recommend-card p{color:#4b5563;margin:0 0 14px}.meta-row,.source-row{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.meta-row span,.source-tag{color:#374151;background:#f3f4f6;border-radius:999px;padding:5px 8px;font-size:12px}.source-link{color:#1d4ed8;text-decoration:underline}.risk-line{color:#b45309;margin-bottom:12px;font-size:12px}.card-actions{gap:8px;display:flex}.small-btn{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:9px 12px}.small-btn.active{color:#fff;background:#111827;border-color:#111827}.small-btn.ghost{background:#f3f4f6}.itinerary-detail,.recommend-detail{height:fit-content;padding:20px}.detail-header{margin-bottom:12px}.detail-header h3{margin:8px 0 0}.detail-score{color:#047857;background:#ecfdf5;border-radius:14px;justify-content:center;align-items:center;width:58px;height:58px;margin-bottom:14px;font-size:1.2rem;font-weight:800;display:flex}.recommend-detail p{color:#4b5563}.recommend-map-actions{border-top:1px solid #e5e7eb;gap:12px;margin-top:14px;padding-top:14px;display:flex}.recommend-map-actions a,.map-actions a{color:#1d4ed8;font-size:12px;font-weight:700;text-decoration:none}.detail-summary{flex-direction:column;gap:4px;margin-bottom:16px;display:flex}.detail-summary strong{font-size:1.25rem}.detail-summary span{color:#6b7280}.detail-items{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.detail-items li{border-bottom:1px solid #f1f5f9;justify-content:space-between;gap:12px;padding-bottom:10px;display:flex}.detail-items li:last-child{border-bottom:none;padding-bottom:0}.detail-items span{color:#6b7280}.map-box{border-top:1px solid #e5e7eb;margin-top:18px;padding-top:16px}.map-box iframe{border:0;border-radius:10px;width:100%;height:170px;display:block}.map-actions{gap:12px;margin-top:10px;display:flex}.detail-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0;display:grid}.detail-metrics div{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:4px;padding:10px;display:flex}.detail-metrics span{color:#6b7280;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px;display:grid}.settings-grid>div{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.key-manager{border-top:1px solid #e5e7eb;flex-direction:column;gap:12px;padding-top:14px;display:flex}.key-manager h4{margin:0}.key-manager-actions{flex-wrap:wrap;gap:8px;display:flex}.generated-key,.access-key-row{background:#f8fbff;border:1px solid #dbeafe;border-radius:9px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.generated-key{flex-wrap:wrap}.generated-key code{overflow-wrap:anywhere;color:#1e3a8a;flex:260px}.access-key-row>div{flex-direction:column;gap:4px;display:flex}.access-key-row span{color:#6b7280;font-size:.78rem}.share-links{border-top:1px solid #e5e7eb;flex-direction:column;gap:12px;margin-top:20px;padding-top:20px;display:flex}.share-link-row{align-items:end;gap:10px;display:flex}.share-link-row>div{flex-direction:column;flex:1;gap:6px;display:flex}.share-link-row input{color:#4b5563;background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:9px 10px;font-size:.85rem}@media (width<=900px){.app-shell{flex-direction:column}.sidebar{width:100%}.stats-grid,.panel-grid,.bottom-panel-grid,.settings-grid,.recommend-layout,.itinerary-layout,.editor-grid,.share-link-row{grid-template-columns:1fr}.inline-editor{margin-left:0}.new-day-editor{flex-direction:column;align-items:stretch}.editor-wide-field{grid-column:auto}.share-link-row{flex-direction:column;align-items:stretch}.recommend-context{flex-direction:column;align-items:flex-start}}
