:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#211d2d;background:#f6f4fb;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #211d2d;--muted: #6f687c;--panel: #ffffff;--border: #ded8e8;--accent: #5b4aa1;--accent-soft: #eeeafd;--drive: #3f6f87;--stop: #a06733;--meal: #8c4f67;--transit: #497271;--attraction: #624aa1;--character: #a24d6e;--show: #865c24;--shopping: #556b39;--rest: #5b668b;--hotel: #6d5f4b;--water: #35778b;--general: #6d6677}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,#fff,#f6f4fb 48%,#ebe6f7)}button,input{font:inherit}button,a{color:inherit}#app,.portfolio-shell{min-height:100vh}.portfolio-header{max-width:1480px;margin:0 auto;padding:28px 28px 0;display:flex;justify-content:space-between;gap:24px;align-items:center}.portfolio-nav{display:flex;gap:10px;flex-wrap:wrap}.portfolio-nav a{text-decoration:none;padding:10px 14px;border-radius:999px;background:#ffffffbf;border:1px solid var(--border);color:var(--muted);font-weight:700}.portfolio-nav a.router-link-active{background:var(--accent);border-color:var(--accent);color:#fff}.portfolio-shell:has(.app-shell){min-height:100vh}.app-shell{max-width:1480px;margin:0 auto;padding:28px}.app-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:18px}.eyebrow{display:block;color:var(--accent);font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:7px;font-size:clamp(1.9rem,4vw,3.2rem);letter-spacing:-.045em}.app-header p,.day-header p{color:var(--muted);margin-bottom:0}.header-actions{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}.year-control{display:grid;gap:5px;color:var(--muted);font-size:.76rem;font-weight:700}.year-control input{width:112px;border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:var(--panel)}.import-button{border:0;border-radius:12px;background:var(--accent);color:#fff;padding:11px 15px;font-weight:800;cursor:pointer}.import-button:disabled{opacity:.65;cursor:wait}.import-message{background:#e9f5ed;border:1px solid #bfdac8;color:#285637;padding:10px 12px;border-radius:12px}.segmented-control{display:inline-flex;gap:4px;padding:4px;background:#ebe7f2;border-radius:14px;flex-wrap:wrap}.segmented-control button{border:0;background:transparent;padding:8px 11px;border-radius:10px;cursor:pointer;font-weight:700;color:var(--muted)}.segmented-control button.active{background:var(--panel);color:var(--ink);box-shadow:0 1px 4px #281f401f}.overview-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px;margin-bottom:24px}.day-card{min-height:145px;text-align:left;border:1px solid var(--border);background:#ffffffbf;padding:14px;border-radius:16px;cursor:pointer;display:flex;flex-direction:column;transition:transform .15s ease,border-color .15s ease,background .15s ease}.day-card:hover{transform:translateY(-2px);border-color:#b8acd5}.day-card.active{background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.day-number{color:var(--accent);font-size:.75rem;font-weight:800;text-transform:uppercase}.day-date{color:var(--muted);font-size:.84rem;margin:2px 0 8px}.day-card strong{line-height:1.25}.day-card-footer{margin-top:auto;padding-top:14px;display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:.75rem}.day-workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}.day-main,.side-panel{min-width:0}.day-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px;background:var(--panel);border:1px solid var(--border);border-radius:20px}.day-header h2{font-size:clamp(1.55rem,3vw,2.25rem);margin:8px 0 4px;letter-spacing:-.03em}.day-subtitle{margin:0 0 8px;color:#4f4860;font-weight:700}.day-type-pill,.event-kind,.status-badge,.feature-row span{display:inline-flex;align-items:center;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.day-type-pill{padding:6px 9px;background:var(--accent-soft);color:var(--accent)}.variant-picker{display:grid;gap:6px;justify-items:end;color:var(--muted);font-size:.76rem;font-weight:800}.day-header-right{display:grid;gap:10px;justify-items:end;min-width:330px}.header-resource-grid{width:100%;display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:8px}.header-resource-card{border:1px solid var(--border);border-radius:12px;padding:10px;background:#faf8ff}.header-resource-card h3{font-size:.78rem;margin:0 0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.header-resource-card dl{margin:0;display:grid;gap:6px}.header-resource-card dt{font-size:.68rem;color:var(--muted);text-transform:uppercase;font-weight:800}.header-resource-card dd{margin:1px 0 0;font-size:.8rem;line-height:1.3}.header-resource-card a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0 8px}.metric-card{background:var(--panel);border:1px solid var(--border);border-radius:15px;padding:13px 14px}.metric-card span{color:var(--muted);display:block;font-size:.75rem}.metric-card strong{display:block;font-size:1.3rem;margin-top:3px}.timeline{position:relative;padding-top:8px}.timeline:before{content:"";position:absolute;left:144px;top:12px;bottom:14px;width:2px;background:#d9d2e6}.timeline-event{--kind-color: var(--general);display:grid;grid-template-columns:122px 44px minmax(0,1fr);gap:0;align-items:stretch;position:relative;margin:11px 0}.event-time{padding:13px 14px 0 0;text-align:right}.event-time strong{display:block;font-size:.85rem}.event-time span{display:block;color:var(--muted);font-size:.68rem;margin-top:3px}.timeline-marker{position:relative;display:flex;justify-content:center;padding-top:11px;z-index:1}.timeline-marker span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--kind-color);color:#fff;border:4px solid #f6f4fb;font-size:.76rem;font-weight:900}.event-card{background:var(--panel);border:1px solid var(--border);border-left:5px solid var(--kind-color);border-radius:15px;padding:14px 16px}.timeline-event.flexible .event-card{border-style:dashed}.event-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.event-kind{color:var(--kind-color);margin-bottom:4px}.event-card h3{font-size:1rem;margin-bottom:0}.event-card p{margin:9px 0 0;color:#514a5d;line-height:1.48}.status-badge{background:#f5ead6;color:#7a531d;padding:5px 7px;white-space:nowrap}.feature-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.feature-row span{padding:4px 7px;background:#f0edf5;color:var(--muted)}.kind-drive{--kind-color: var(--drive)}.kind-stop{--kind-color: var(--stop)}.kind-meal{--kind-color: var(--meal)}.kind-transit{--kind-color: var(--transit)}.kind-attraction{--kind-color: var(--attraction)}.kind-character{--kind-color: var(--character)}.kind-show{--kind-color: var(--show)}.kind-shopping{--kind-color: var(--shopping)}.kind-rest{--kind-color: var(--rest)}.kind-hotel{--kind-color: var(--hotel)}.kind-water{--kind-color: var(--water)}.kind-arrival,.kind-general{--kind-color: var(--general)}.side-panel{display:grid;gap:12px;position:sticky;top:16px}.panel-section{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:17px}.panel-section h2{font-size:1rem;margin-bottom:12px}.info-list{margin:0;display:grid;gap:12px}.info-list div{border-bottom:1px solid #eeeaf3;padding-bottom:10px}.info-list div:last-child{border-bottom:0;padding-bottom:0}.info-list dt{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.info-list dd{margin:3px 0 0;line-height:1.4}.general-notes-block{margin-top:14px;padding-top:12px;border-top:1px solid #eeeaf3}.general-notes-block h3{margin:0 0 8px;font-size:.8rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.general-notes-block p{font-size:.88rem;line-height:1.5;color:#5c5367}.general-notes-block p:last-child{margin-bottom:0}.empty-state{padding:50px;text-align:center;background:var(--panel);border:1px solid var(--border);border-radius:18px}.home-shell{max-width:880px;margin:0 auto;padding:48px 28px 72px}.home-card{background:#ffffffd1;border:1px solid var(--border);border-radius:28px;padding:32px;box-shadow:0 18px 45px #2e224814}.home-card p{color:var(--muted);font-size:1rem;line-height:1.6}.primary-link{display:inline-flex;align-items:center;justify-content:center;margin-top:12px;padding:12px 18px;border-radius:14px;text-decoration:none;background:var(--accent);color:#fff;font-weight:800}@media(max-width:1050px){.day-workspace{grid-template-columns:1fr}.side-panel{position:static;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}@media(max-width:760px){.portfolio-header{padding:16px 16px 0;flex-direction:column;align-items:flex-start}.app-shell{padding:16px}.app-header,.day-header{flex-direction:column}.header-actions{justify-content:flex-start;width:100%}.day-header-right{justify-items:start;min-width:0;width:100%}.header-resource-grid{grid-template-columns:1fr}.variant-picker{justify-items:start;width:100%}.metrics-grid{grid-template-columns:repeat(2,1fr)}.overview-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.day-card{min-width:215px;scroll-snap-align:start}.timeline:before{left:18px}.timeline-event{grid-template-columns:36px minmax(0,1fr)}.event-time{grid-column:2;grid-row:1;text-align:left;padding:0 0 5px 4px}.event-time strong,.event-time span{display:inline;margin-right:8px}.timeline-marker{grid-column:1;grid-row:1 / span 2;padding-top:23px;justify-content:flex-start}.timeline-marker span{border-color:#f6f4fb}.event-card{grid-column:2;grid-row:2}}@media print{body{background:#fff}.portfolio-header{padding:0 0 12px}.portfolio-nav,.home-shell{display:none}.app-shell{max-width:none;padding:0}.header-actions,.overview-strip{display:none}.day-workspace{grid-template-columns:1fr}.side-panel{position:static}.timeline-event,.event-card{break-inside:avoid}}
