:root{--sun:#f5a800;--sun-deep:#9a6200;--ink:#1f2430;--ink-soft:#4b5265;--paper:#fffdf7;--card:#fff;--line:#e8e2d4;--accent:#0e7c66;--accent-deep:#0a5c4c;--danger:#b3261e;color:var(--ink);background:var(--paper);font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}h1,h2,h3{margin:0 0 .5rem;line-height:1.2}p{margin:0 0 .75rem;line-height:1.55}button{font:inherit;cursor:pointer}input{font:inherit}.app{flex-direction:column;min-height:100vh;display:flex}main{flex:1;width:100%}.page{max-width:960px;margin:0 auto;padding:1.5rem 1rem 3rem}.muted{color:var(--ink-soft)}.app-header{background:var(--card);border-bottom:3px solid var(--sun);z-index:10;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;padding:.75rem 1rem;display:flex;position:sticky;top:0}.brand{cursor:pointer;align-items:center;gap:.6rem;display:flex}.brand-mark{color:var(--sun-deep);font-size:1.9rem;line-height:1}.brand-mark.large{font-size:3.5rem}.brand-title{font-size:1.05rem;font-weight:700}.brand-sub{color:var(--ink-soft);font-size:.75rem}.tabs{flex-wrap:wrap;gap:.25rem;display:flex}.tab-btn{color:var(--ink-soft);background:0 0;border:none;border-radius:8px;padding:.5rem .8rem;font-weight:600}.tab-btn:hover{background:var(--paper);color:var(--ink)}.tab-btn.active{background:var(--ink);color:#fff}.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:10px;padding:.6rem 1.1rem;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-deep)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-icon{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:.35rem .7rem;font-size:.85rem;font-weight:600}.btn-icon.added{background:var(--accent);border-color:var(--accent);color:#fff}.btn-icon.danger{color:var(--danger);border-color:var(--danger)}.chip{border:1px solid var(--line);background:var(--card);color:var(--ink-soft);border-radius:999px;padding:.35rem .9rem;font-size:.85rem;font-weight:600}.chip.active{background:var(--ink);border-color:var(--ink);color:#fff}.filter-row{flex-wrap:wrap;gap:.4rem;margin:.75rem 0 1rem;display:flex}.tag{color:var(--sun-deep);text-transform:uppercase;letter-spacing:.04em;background:#fdf1d4;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:700;display:inline-block}.badge{color:var(--accent-deep);background:#e3f2ec;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700;display:inline-block}.hero-card{background:linear-gradient(135deg, var(--sun) 0%, #ffc94d 100%);color:var(--ink);border-radius:16px;margin-bottom:1.25rem;padding:2rem 1.5rem}.hero-card h1{font-size:1.8rem}.hero-actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.hero-card .btn{border-color:var(--ink)}.hero-card .btn.primary{background:var(--ink);border-color:var(--ink)}.hero-card .btn.primary:hover{background:#000}.quick-links{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}.quick-card{background:var(--card);border:1px solid var(--line);color:var(--ink);text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:.4rem;padding:1rem;font-weight:600;display:flex}.quick-card:hover{border-color:var(--sun)}.quick-icon{font-size:1.6rem}.section h2{margin-bottom:.75rem}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem;display:grid}.place-card,.event-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem}.place-card-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.meta-row{color:var(--ink-soft);flex-direction:column;gap:.25rem;margin-top:.5rem;font-size:.85rem;display:flex}.event-card .event-date{color:var(--sun-deep);text-transform:uppercase;font-size:.85rem;font-weight:800}.event-card .event-title{margin:.25rem 0;font-weight:700}.event-card .event-loc{color:var(--ink-soft);font-size:.85rem}.map-embed{margin-bottom:1rem}.timeline{flex-direction:column;gap:.9rem;margin-top:1rem;display:flex}.timeline-item{background:var(--card);border:1px solid var(--line);border-radius:12px;gap:1rem;padding:1rem;display:flex}.timeline-date{text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:10px;align-self:flex-start;min-width:56px;padding:.4rem 0}.tl-month{text-transform:uppercase;color:var(--sun-deep);font-size:.75rem;font-weight:700}.tl-day{font-size:1.3rem;font-weight:800}.timeline-body{flex:1}.timeline-body .tag{margin-bottom:.4rem}.search-input{border:1px solid var(--line);background:var(--card);width:100%;color:var(--ink);border-radius:10px;margin-top:.5rem;padding:.7rem .9rem}.search-input:focus{outline:2px solid var(--sun)}.itinerary-list{flex-direction:column;gap:.7rem;margin-top:1rem;display:flex}.itinerary-item{background:var(--card);border:1px solid var(--line);border-radius:12px;align-items:center;gap:.9rem;padding:.9rem 1rem;display:flex}.itinerary-num{background:var(--ink);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-weight:700;display:flex}.itinerary-info{flex:1}.itinerary-info h3{margin-bottom:.15rem;font-size:1rem}.itinerary-info p{margin:0;font-size:.85rem}.empty-state{text-align:center;background:var(--card);border:1px dashed var(--line);border-radius:12px;margin-top:1rem;padding:2.5rem 1rem}.admin-login{background:var(--card);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:.75rem;max-width:340px;margin:3rem auto;padding:1.5rem;display:flex}.admin-login input{border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem}.error-text{color:var(--danger);margin:0;font-size:.85rem}.kill-switch-card{background:var(--card);border:2px solid var(--sun);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0 1.5rem;padding:1.25rem;display:flex}.kill-switch-card h3{margin-bottom:.2rem}.kill-switch-card p{margin:0;font-size:.85rem}.admin-section{margin-bottom:2rem}.admin-section-head{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.admin-form{background:var(--card);border:1px solid var(--line);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem;margin-bottom:.75rem;padding:1rem;display:grid}.admin-form label{color:var(--ink-soft);flex-direction:column;gap:.25rem;font-size:.8rem;font-weight:600;display:flex}.admin-form input[type=text],.admin-form input[type=date],.admin-form input:not([type]){border:1px solid var(--line);border-radius:8px;padding:.55rem .7rem}.admin-form-actions{grid-column:1/-1;gap:.5rem;display:flex}.admin-table{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:12px;width:100%;overflow:hidden}.admin-table td{border-bottom:1px solid var(--line);padding:.6rem .9rem}.admin-table tr:last-child td{border-bottom:none}.admin-table-actions{text-align:right;white-space:nowrap}.admin-table-actions .btn-icon{margin-left:.35rem}.kill-screen{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.kill-card{text-align:center;max-width:420px}.app-footer{border-top:1px solid var(--line);color:var(--ink-soft);background:var(--card);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1.5rem;padding:1rem;font-size:.8rem;display:flex}.footer-n3u{align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.n3u-logo{height:22px;display:block}.admin-link{color:var(--ink-soft);text-decoration:underline}@media (width<=640px){.app-header{flex-direction:column;align-items:flex-start;gap:.5rem}.tabs{width:100%;overflow-x:auto}.hero-card h1{font-size:1.45rem}.timeline-item{flex-direction:column}.timeline-date{align-self:flex-start;min-width:64px;padding:.3rem .6rem}}
