:root,:root[data-theme=twilight]{--bg:#fff0d9;--surface:#fff8ec;--text:#5b6186;--text-h:#333d6d;--border:#ffcf95;--accent:#723ec3;--accent-border:#723ec380;--error:#b3261e;--nav-bg:#333d6d;--nav-text:#fff0d9;--nav-accent:#ffcf95;--nav-underline:#ffcf95;--check-bg:#ffcf95;--check-fg:#333d6d}:root[data-theme=olive]{--bg:#f5efe3;--surface:#fbf8f1;--text:#5f6547;--text-h:#4f5b2a;--border:#d8c9a8;--accent:#8a6420;--accent-border:#b8892d99;--error:#b3261e;--nav-bg:#4f5b2a;--nav-text:#f5efe3;--nav-accent:#fffaf0;--nav-underline:#d8c9a8;--check-bg:#b8892d;--check-fg:#1f2410}:root[data-theme=forest]{--bg:#f3deba;--surface:#faf0dc;--text:#5e5446;--text-h:#4a4238;--border:#abc4aa;--accent:#6f5847;--accent-border:#a9907eb3;--error:#b3261e;--nav-bg:#675d50;--nav-text:#f3deba;--nav-accent:#fff6e6;--nav-underline:#abc4aa;--check-bg:#abc4aa;--check-fg:#3a3329}:root{--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root,:root[data-theme=twilight]{--bg:#1f2544;--surface:#283058;--text:#c4bfd6;--text-h:#fff0d9;--border:#3b4577;--accent:#ffcf95;--accent-border:#ffcf9580;--error:#ff8a80}:root[data-theme=olive]{--bg:#22271a;--surface:#2d3323;--text:#d8c9a8;--text-h:#f5efe3;--border:#4a5233;--accent:#d0a54a;--accent-border:#d0a54a80;--error:#ff8a80}:root[data-theme=forest]{--bg:#2a2520;--surface:#36302a;--text:#d9c8b4;--text-h:#f3deba;--border:#4d453c;--accent:#abc4aa;--accent-border:#abc4aa80;--error:#ff8a80}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{background:var(--bg);margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}.account-menu{position:relative}.account-menu-button{font:inherit;color:var(--nav-text);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:flex}.account-menu-button:hover,.account-menu-button[aria-expanded=true]{color:var(--nav-accent)}.account-menu-button.active{color:var(--nav-accent);box-shadow:inset 0 -2px 0 var(--nav-underline)}.account-menu-caret{font-size:1.25em;line-height:1;transition:transform .15s}.account-menu-button[aria-expanded=true] .account-menu-caret{transform:rotate(180deg)}.account-menu-panel{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:8px;flex-direction:column;min-width:160px;padding:6px;display:flex;position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 8px 24px #00000026}.account-menu-panel a,.account-menu-panel button{width:100%;font:inherit;text-align:left;color:var(--text-h);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:8px 12px;text-decoration:none;display:block}.account-menu-panel a:hover,.account-menu-panel button:hover,.account-menu-panel a:focus-visible,.account-menu-panel button:focus-visible{background:var(--bg);color:var(--accent)}.account-menu-panel a.active{color:var(--accent);font-weight:600}.app-header{z-index:10;background:var(--nav-bg);color:var(--nav-text);align-items:center;gap:24px;padding:16px 24px;display:flex;position:sticky;top:0}.app-name{color:var(--nav-text);font-weight:600}.app-header nav{gap:16px;display:flex}.app-header nav a{color:var(--nav-text);opacity:.8;text-decoration:none}.app-header nav a:hover{opacity:1}.app-header nav a.active{color:var(--nav-accent);opacity:1;box-shadow:inset 0 -2px 0 var(--nav-underline)}.app-account{align-items:center;gap:16px;margin-left:auto;display:flex}.app-account>a{color:var(--nav-text);text-decoration:none}.app-account>a:hover{color:var(--nav-accent)}.page{text-align:left;padding:32px 24px}.page h1{color:var(--text-h);margin:0 0 24px}.back-link{margin:0 0 16px}.back-link a{color:var(--text);text-decoration:none}.back-link a:hover{color:var(--accent)}.trip-summary{margin:-16px 0 24px}.page-intro{margin:-12px 0 24px}.category-add{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.category-add input,.category-rename input,.item-form input:not([type=checkbox]){border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:6px;padding:8px 12px}.category-add input{flex:240px;max-width:360px}.category-add input:focus-visible,.category-rename input:focus-visible,.item-form input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.item-form [aria-invalid=true]{border-color:var(--error)}.form-error{margin:4px 0 0;font-size:.9rem}.category-grid{grid-template-columns:1fr;align-items:start;gap:20px;margin-top:24px;display:grid}@media (width>=760px){.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.category-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:16px}.category-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.category-card h2{margin:0;font-size:1.1rem}.category-count{font-size:.85rem;font-weight:400}.category-actions,.item-actions{gap:4px;display:flex}.category-rename{flex-wrap:wrap;flex:1;gap:6px;display:flex}.category-rename input{flex:160px}.text-button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 8px;font-size:.9rem}.text-button:hover{background:var(--bg)}.text-button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.text-button-danger{color:var(--error)}.item-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.item-row,.item-empty{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 0;display:flex}.item-row-main{flex-wrap:wrap;flex:140px;align-items:baseline;gap:2px 8px;min-width:0;display:flex}.item-name{color:var(--text-h)}.item-row-inactive .item-name{color:var(--text)}.item-badge{border:1px solid var(--border);color:var(--text);border-radius:999px;padding:0 8px;font-size:.75rem}.item-notes{flex-basis:100%;font-size:.85rem}.item-qty{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.item-row-error{flex-basis:100%}.item-row-editing{display:block}.add-item-button{margin-top:8px}.item-form{flex-direction:column;gap:10px;padding:4px 0;display:flex}.item-form-row{flex-wrap:wrap;gap:10px;display:flex}.item-field{flex-direction:column;gap:4px;display:flex}.item-field label{color:var(--text);font-size:.85rem}.item-field-name{flex:160px}.item-field-qty{flex:0 0 96px}.item-form-checks{flex-wrap:wrap;gap:6px 16px;display:flex}.item-form-checks label{color:var(--text-h);cursor:pointer;align-items:center;gap:6px;display:inline-flex}.item-form-checks input{accent-color:var(--accent)}.item-form .form-hint{color:var(--text);margin:-4px 0 0;font-size:.85rem}.item-form-actions{justify-content:flex-end;gap:8px;display:flex}.login{justify-content:center;padding-top:24px;display:flex}.login-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;gap:16px;width:100%;max-width:380px;padding:28px 24px;display:flex}.page .login-card h1{margin:0 0 4px;font-size:1.75rem}.login-field{flex-direction:column;gap:6px;display:flex}.login-field label{color:var(--text-h);font-weight:500}.login-field input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:6px;padding:10px 12px}.login-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.login-error{margin:0}.login-error-list{padding:0;font-size:.9rem;list-style:none}.login-field [aria-invalid=true]{border-color:var(--error)}.login-hint{color:var(--text);margin:0;font-size:.85rem}.login-switch{text-align:center;color:var(--text);margin:0}.login-submit{padding-block:10px}.settings{flex-direction:column;gap:16px;display:flex}.settings-section{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:20px}.settings-section h2{margin:0 0 12px;font-size:1.1rem}.settings-form label{color:var(--text);margin-bottom:6px;display:block}.settings-field{flex-wrap:wrap;gap:8px;display:flex}.settings-field input{border:1px solid var(--border);background:var(--bg);max-width:360px;color:var(--text-h);font:inherit;border-radius:6px;flex:220px;padding:8px 12px}.settings-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.settings-field input[aria-invalid=true]{border-color:var(--error)}.settings-field button{background:var(--nav-bg);color:var(--nav-text);font:inherit;cursor:pointer;border:0;border-radius:6px;padding:8px 16px}.settings-field button:disabled{opacity:.5;cursor:default}.settings-errors{margin:8px 0 0;padding:0;list-style:none}.settings-saved{color:var(--text);margin-top:8px}.theme-options{flex-wrap:wrap;gap:12px;display:flex}.theme-option{border:2px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.theme-option:has(input:checked){border-color:var(--accent)}.theme-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.theme-option input{opacity:0;pointer-events:none;position:absolute}.theme-swatches{border:1px solid #0000001a;border-radius:4px;display:flex;overflow:hidden}.theme-swatches span{width:36px;height:36px}.theme-name{color:var(--text-h)}.theme-option:has(input:checked) .theme-name{font-weight:600}.packing-list{flex-direction:column;gap:24px;display:flex}.packing-groups{grid-template-columns:1fr;align-items:start;gap:24px;display:grid}@media (width>=760px){.packing-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}.packing-group{position:relative}.packing-group.dragging{z-index:1;opacity:.85;filter:drop-shadow(0 8px 16px #0003)}.packing-group-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.packing-list h2{color:var(--text-h);margin:0;font-size:1rem}.drag-handle{width:28px;height:28px;color:var(--text);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:6px;flex:none;padding:0;font-size:1.1rem;line-height:1}.drag-handle:hover{background:var(--surface);color:var(--text-h)}.drag-handle:active{cursor:grabbing}.drag-handle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.packing-list ul{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin:0;padding:0;list-style:none}.packing-progress{flex-direction:column;gap:6px;display:flex}.packing-progress progress{appearance:none;background:var(--border);border:0;border-radius:999px;width:100%;height:8px;overflow:hidden}.packing-progress progress::-webkit-progress-bar{background:var(--border)}.packing-progress progress::-webkit-progress-value{background:var(--accent);border-radius:999px;transition:width .2s}.packing-progress progress::-moz-progress-bar{background:var(--accent);border-radius:999px}.packing-list li{color:var(--text-h);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 16px;display:flex}.packing-list li+li{border-top:1px solid var(--border)}.packing-main{cursor:pointer;flex:160px;align-items:center;gap:12px;min-width:0;display:flex}.packing-checkbox{width:20px;height:20px;accent-color:var(--check-bg);cursor:pointer;flex:none;margin:0}.packing-list li.packed .packing-name{color:var(--text);text-decoration:line-through}.packing-amount{align-items:center;gap:10px;display:flex}.packing-slider{width:110px;accent-color:var(--accent);cursor:pointer;margin:0}.packing-count{text-align:right;min-width:3.5ch;color:var(--text);font-variant-numeric:tabular-nums}.packing-error{flex-basis:100%;font-size:.85rem}.trip-weather{margin-bottom:32px}.trip-weather h2{color:var(--text-h);margin:0 0 12px;font-size:1rem}.weather-days{gap:8px;margin:0;padding:0 0 4px;list-style:none;display:flex;overflow-x:auto}.weather-day{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:8px;flex-direction:column;flex:none;align-items:center;gap:4px;min-width:96px;padding:12px 8px;display:flex}.weather-day-past{opacity:.75;border-style:dashed}.weather-date{color:var(--text);font-size:.85rem}.weather-icon{font-size:1.75rem;line-height:1}.weather-temps{color:var(--text-h)}.weather-precip{font-size:.8rem}.weather-note{margin-top:8px;font-size:.85rem}.modal{border:1px solid var(--border);background:var(--surface);width:min(520px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--text);border-radius:12px;padding:0;box-shadow:0 16px 48px #00000040}.modal::backdrop{background:#00000073}.modal-body{text-align:left;padding:20px 24px 24px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h2{margin:0;font-size:1.25rem}.modal-close{width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:1.5rem;line-height:1}.modal-close:hover{background:var(--bg);color:var(--text-h)}.trip-form{flex-direction:column;gap:16px;display:flex}.form-field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.form-field label,.form-field legend{color:var(--text-h);padding:5px;font-weight:500}.form-field input:not([type=checkbox]),.form-field textarea{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font:inherit;border-radius:6px;padding:8px 12px}.form-field textarea{resize:vertical}.form-field input:focus-visible,.form-field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.form-field [aria-invalid=true]{border-color:var(--error)}.form-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.form-hint{color:var(--text);margin:0;font-size:.85rem}.form-errors{margin:0;padding:0;font-size:.9rem;list-style:none}.category-chips{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.category-chip{border:1px solid var(--border);color:var(--text-h);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-weight:400;display:inline-flex}.category-chip:has(input:checked){border-color:var(--accent);background:var(--bg);box-shadow:inset 0 0 0 1px var(--accent)}.category-chip:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.category-chip input{accent-color:var(--accent);margin:0}.form-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.trip-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.trip{border:1px solid var(--border);background:var(--surface);color:inherit;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;transition:border-color .15s;display:flex}.trip:hover,.trip:focus-visible{border-color:var(--accent-border)}.trip h2{color:var(--text-h);margin:0;font-size:1.1rem}.trip-dates{color:var(--text-h);flex-direction:column;align-items:flex-end;display:flex}.page-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page .page-heading h1{margin:0}.muted{color:var(--text);margin:0}.error{color:var(--error)}a{color:var(--accent)}.button{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;padding:8px 16px;font-weight:600;line-height:1.2;transition:filter .15s,box-shadow .15s,transform 50ms}.button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.5;cursor:default}.button-primary{background:var(--nav-bg);color:var(--nav-text);box-shadow:0 1px 2px #0003,inset 0 1px #ffffff1f}.button-primary:hover:not(:disabled){filter:brightness(1.15);box-shadow:0 3px 8px #0003,inset 0 1px #ffffff1f}.button-primary:active:not(:disabled){filter:brightness(.95);box-shadow:inset 0 1px 3px #00000040}.button-with-icon{align-items:center;gap:6px;padding-left:12px;display:inline-flex}.button-icon{font-size:1.3em;line-height:1}.button-secondary{border-color:var(--border);color:var(--text-h);background:0 0}.button-secondary:hover{background:var(--bg)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
