:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;color:#172033;background:#f5f7fb;line-height:1.45;font-synthesis:none;--bg:#f5f7fb;--surface:#fff;--surface-2:#eef2f7;--text:#172033;--muted:#6f7b8f;--line:#e1e6ee;--blue:#1463e8;--blue-soft:#e8f0ff;--green:#198754;--green-soft:#e8f7ef;--amber:#b86c00;--amber-soft:#fff3dd;--red:#c43d4b;--shadow:0 8px 24px rgba(30,47,75,.08)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-width:320px;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}.app-shell{max-width:900px;margin:0 auto;min-height:100vh;padding-bottom:92px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(16px + env(safe-area-inset-top)) 18px 14px;background:var(--bg)}h1,h2,h3,p{margin:0}.topbar h1{font-size:24px;letter-spacing:-.03em}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;color:var(--blue);margin-bottom:3px}.icon-button{width:44px;height:44px;border-radius:50%;background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-size:20px}.content{padding:0 16px}.view-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:10px 0 16px}.view-heading h2{font-size:26px;letter-spacing:-.04em}.subtle{color:var(--muted);font-size:13px}.date-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;margin:0 -2px 18px;scrollbar-width:none}.date-strip::-webkit-scrollbar{display:none}.date-pill{flex:0 0 58px;padding:9px 5px;border-radius:16px;background:var(--surface);color:var(--muted);text-align:center;border:1px solid var(--line);min-height:62px}.date-pill strong{display:block;font-size:17px;color:var(--text)}.date-pill small{font-size:11px}.date-pill.selected{background:var(--blue);border-color:var(--blue);color:#fff}.date-pill.selected strong{color:#fff}.section-label{display:flex;align-items:center;justify-content:space-between;margin:23px 2px 9px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:16px}.next-card{background:linear-gradient(145deg,#145fe1,#3988f4);color:#fff;border:0;padding:20px;box-shadow:0 14px 30px rgba(20,99,232,.24)}.next-card .eyebrow{color:#d8e7ff}.next-card h2{font-size:24px;line-height:1.18;letter-spacing:-.03em;margin:5px 0 8px}.next-card .muted-light{color:#dce9ff}.countdown{font-size:28px;font-weight:800;letter-spacing:-.04em;margin:10px 0 16px}.button-row{display:flex;flex-wrap:wrap;gap:8px}.button{min-height:44px;padding:10px 14px;border-radius:12px;background:var(--surface-2);color:var(--text);font-weight:700}.button.primary{background:var(--blue);color:#fff}.next-card .button{background:#fff;color:#145bd6}.next-card .button.ghost{background:rgba(255,255,255,.16);color:#fff}.button.danger{color:var(--red);background:#fff0f2}.button.small{min-height:38px;padding:7px 11px;font-size:13px}.timeline{position:relative;padding-left:23px}.timeline:before{content:"";position:absolute;left:8px;top:7px;bottom:8px;width:2px;background:var(--line)}.timeline-item{position:relative;padding-bottom:13px}.timeline-dot{position:absolute;left:-20px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--blue);border:3px solid var(--bg)}.timeline-item.completed .timeline-dot{background:var(--green)}.timeline-item.skipped .timeline-dot{background:var(--muted)}.timeline-item.completed .event-card,.timeline-item.skipped .event-card{opacity:.58}.event-card{padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.event-top{display:flex;align-items:flex-start;gap:10px}.event-time{flex:0 0 47px;color:var(--muted);font-size:13px;font-weight:800}.event-main{min-width:0;flex:1}.event-title{font-weight:750;line-height:1.25}.event-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.event-notes{font-size:13px;color:var(--muted);margin:9px 0 0}.event-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:var(--surface-2);font-size:11px;font-weight:800;color:var(--muted)}.badge.confirmed,.badge.completed{background:var(--green-soft);color:var(--green)}.badge.tentative,.badge.todo{background:var(--amber-soft);color:var(--amber)}.badge.skipped{background:#edf0f3;color:var(--muted)}.badge.locked{background:#f2eafe;color:#7549b5}.progress{height:7px;border-radius:9px;background:var(--surface-2);overflow:hidden}.progress>i{display:block;height:100%;background:var(--blue);border-radius:inherit}.day-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.day-row:last-child{border-bottom:0}.day-date{width:53px;height:53px;border-radius:15px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:800;line-height:1.05;text-align:center}.day-date strong{font-size:19px;display:block}.day-row-main{flex:1;min-width:0}.day-row-main h3{font-size:15px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-row-right{width:70px}.booking-section{margin-bottom:18px}.booking-card{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}.booking-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:var(--blue-soft);color:var(--blue);font-size:18px;flex:0 0 auto}.booking-card h3{font-size:16px;margin-bottom:4px}.booking-details{font-size:13px;color:var(--muted)}.critical{border:1px solid #f1d39e;background:var(--amber-soft)}.todo-list{list-style:none;padding:0;margin:0}.todo-list li{display:flex;gap:11px;align-items:flex-start;padding:13px 0;border-bottom:1px solid rgba(184,108,0,.18)}.todo-list li:last-child{border-bottom:0}.todo-check{margin-top:2px;width:20px;height:20px;border-radius:6px;border:2px solid var(--amber);background:transparent;flex:0 0 auto}.todo-list li.done .todo-check{background:var(--green);border-color:var(--green);color:#fff}.todo-list li.done span{text-decoration:line-through;opacity:.6}.empty{text-align:center;padding:26px 15px;color:var(--muted)}.empty h3{color:var(--text);margin-bottom:6px}.meal-card{margin-top:10px}.meal-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.meal-title{font-weight:800}.restaurant-option{padding:12px 0;border-top:1px solid var(--line)}.restaurant-option:first-child{border-top:0}.restaurant-option h4{margin:0 0 4px;font-size:15px}.restaurant-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;color:var(--muted);font-size:12px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid var(--line)}.settings-row:last-child{border-bottom:0}.settings-row h3{font-size:15px;margin-bottom:3px}.switch{position:relative;width:50px;height:30px;border-radius:20px;background:var(--line);flex:0 0 auto}.switch i{position:absolute;width:24px;height:24px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}.switch.on{background:var(--blue)}.switch.on i{transform:translateX(20px)}.bottom-nav{position:fixed;z-index:5;bottom:0;left:50%;transform:translateX(-50%);width:min(900px,100%);display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:8px 7px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(18px);border-top:1px solid var(--line)}.nav-item{background:none;color:var(--muted);min-height:55px;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.nav-item span{font-size:19px;line-height:1}.nav-item small{font-size:10px;font-weight:700}.nav-item.active{background:var(--blue-soft);color:var(--blue)}.modal-backdrop{position:fixed;z-index:10;inset:0;background:rgba(11,18,32,.48);display:flex;align-items:flex-end;justify-content:center}.modal{width:min(600px,100%);max-height:92vh;overflow:auto;background:var(--surface);border-radius:22px 22px 0 0;padding:20px 17px calc(22px + env(safe-area-inset-bottom))}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal h2{font-size:21px}.close{width:40px;height:40px;border-radius:50%;background:var(--surface-2);color:var(--muted);font-size:22px}.form-grid{display:grid;gap:12px}.form-field{display:grid;gap:6px}.form-field label{font-size:12px;font-weight:800;color:var(--muted)}.form-field input,.form-field textarea,.form-field select{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:var(--bg);color:var(--text);min-height:44px}.form-field textarea{min-height:90px;resize:vertical}.modal-actions{display:flex;gap:8px;margin-top:16px}.modal-actions .button{flex:1}.restaurant-detail{font-size:13px;color:var(--muted);margin-top:6px}.locked-warning{font-size:12px;color:var(--amber);background:var(--amber-soft);padding:10px;border-radius:11px;margin-top:10px}
body.dark{--bg:#10141c;--surface:#181e29;--surface-2:#252d3a;--text:#f1f4f9;--muted:#9da8b8;--line:#303b4c;--blue-soft:#1c355e;--green-soft:#173a2c;--amber-soft:#3d2d14;--shadow:0 8px 24px rgba(0,0,0,.2)}body.dark .next-card{background:linear-gradient(145deg,#194b9e,#2868ca)}body.dark .modal-backdrop{background:rgba(0,0,0,.66)}
@media(min-width:700px){.topbar{padding-left:24px;padding-right:24px}.content{padding:0 24px}.bottom-nav{border-radius:18px 18px 0 0}.modal-backdrop{align-items:center}.modal{border-radius:22px}}
#toast{position:fixed;z-index:20;left:50%;bottom:90px;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:#1b2432;color:#fff;padding:10px 14px;border-radius:12px;font-size:13px;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}
.topbar-actions{display:flex;align-items:center;gap:8px}.language-select{height:38px;border:1px solid var(--line);border-radius:11px;padding:0 8px;background:var(--surface);color:var(--text);font-size:12px;font-weight:700}.share-box{display:flex;gap:8px;align-items:center}.share-box .button{flex:1}
.sync-status{display:inline-block;font-size:11px;font-weight:750;color:var(--muted);margin-top:3px}.sync-status.synced{color:var(--green)}.sync-status.syncing{color:var(--blue)}.sync-status.offline,.sync-status.pending,.sync-status.conflict{color:var(--amber)}.sync-status.failed{color:var(--red)}.sync-status.viewer{color:var(--muted)}.sync-status-panel{padding:10px 12px;border-radius:12px;background:var(--surface-2);margin-top:12px}.conflict-card{margin:12px 16px 0}.conflict-card strong{color:var(--amber)}
.todo-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}.todo-filter label{display:grid;gap:5px;font-size:12px;font-weight:800;color:var(--muted);flex:1;min-width:130px}.todo-filter select{min-height:40px;border:1px solid var(--line);border-radius:10px;padding:7px 9px;background:var(--bg);color:var(--text)}.todo-list-grid{display:grid;gap:10px}.todo-card{background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:14px;box-shadow:var(--shadow)}.todo-card.overdue{border-color:#e39b38}.todo-card.completed{opacity:.68}.todo-card-top{display:flex;gap:11px;align-items:flex-start}.todo-card-main{min-width:0;flex:1}.todo-card-main h3{font-size:15px;line-height:1.28;margin-bottom:5px}.todo-meta{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:9px}.todo-notes{font-size:13px;color:var(--muted);padding:9px 0 0;margin-top:9px;border-top:1px solid var(--line)}.todo-notes-input{display:block;width:100%;min-height:58px;margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:9px;background:var(--bg);color:var(--text);resize:vertical}.todo-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.upcoming-todos{display:grid;gap:9px}.upcoming-todo{display:flex;gap:9px;align-items:flex-start;padding-bottom:9px;border-bottom:1px solid var(--line)}.upcoming-todo:last-child{border-bottom:0;padding-bottom:0}.upcoming-todo strong{font-size:13px}.plan-switch{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:-6px 0 14px}.plan-switch>span{font-size:12px;font-weight:800;color:var(--muted)}
