:root{--bg:#f4f0e7;--panel:#fffdf8;--ink:#23231f;--muted:#6e695f;--line:#d7d0c4;--accent:#3f654f;--accent2:#d78d2f;--soft:#eee8dd;--danger:#a5453d;--ok:#2d714b;--shadow:0 12px 34px rgba(30,26,18,.08)}
@media(prefers-color-scheme:dark){html[data-theme="system"]{--bg:#171916;--panel:#22251f;--ink:#f4f0e8;--muted:#b9b3aa;--line:#3b4037;--accent:#79a688;--accent2:#e0a458;--soft:#2d3129;--danger:#ed8b82;--ok:#8fd3a7;--shadow:none}}
html[data-theme="dark"]{--bg:#171916;--panel:#22251f;--ink:#f4f0e8;--muted:#b9b3aa;--line:#3b4037;--accent:#79a688;--accent2:#e0a458;--soft:#2d3129;--danger:#ed8b82;--ok:#8fd3a7;--shadow:none}
html[data-theme="light"]{--bg:#f4f0e7;--panel:#fffdf8;--ink:#23231f;--muted:#6e695f;--line:#d7d0c4;--accent:#3f654f;--accent2:#d78d2f;--soft:#eee8dd;--danger:#a5453d;--ok:#2d714b;--shadow:0 12px 34px rgba(30,26,18,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.35}header{background:var(--ink);color:var(--bg);padding:25px clamp(18px,4vw,50px)}header h1{font-size:clamp(32px,5vw,52px);letter-spacing:-.05em;margin:0}header p{margin:7px 0 0;opacity:.78}.statusbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--panel) 93%,transparent);backdrop-filter:blur(9px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;padding:9px 18px;font-size:13px}.status-ok{color:var(--ok);font-weight:800}.status-warn{color:var(--accent2);font-weight:800}main{max-width:1240px;margin:auto;padding:22px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.wide{grid-column:1/-1}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}h2{margin:0 0 14px;font-size:22px}h3{margin:18px 0 10px;font-size:16px}.small{font-size:12px;color:var(--muted)}label{display:block;font-size:13px;color:var(--muted);margin-bottom:5px}input,select,button{font:inherit}input,select{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink)}input[type="checkbox"],input[type="radio"]{width:auto}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.three{grid-template-columns:repeat(3,minmax(0,1fr))}button{border:1px solid transparent;border-radius:10px;padding:10px 14px;background:var(--accent);color:white;font-weight:800;cursor:pointer;transition:.16s transform,.16s filter,.16s background,.16s border-color}button:hover{filter:brightness(1.07)}button:active{transform:translateY(1px) scale(.99)}button.secondary{background:var(--soft);color:var(--ink);border-color:var(--line)}button.danger{background:transparent;color:var(--danger);padding:5px 8px}button.flash{animation:flash .38s ease}@keyframes flash{50%{filter:brightness(1.45)}}.actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.choice-row{display:flex;gap:9px;flex-wrap:wrap}.toggle{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--ink);cursor:pointer;font-weight:700;transition:.15s}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle.active{background:var(--accent);border-color:var(--accent);color:white;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 23%,transparent)}.toggle.active::before{content:"✓"}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.metric{border:1px solid var(--line);border-radius:12px;background:var(--soft);padding:12px}.metric strong{display:block;font-size:22px}.itinerary-row{border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:10px;background:var(--soft)}.itinerary-row .fields{grid-template-columns:1.4fr 1fr 1fr auto;align-items:end}.weather-stop{border:1px solid var(--line);border-radius:14px;padding:13px;margin-top:10px}.weather-stop h3{margin:0 0 5px}.weather-summary{font-size:17px;font-weight:800}.impact{margin:12px 0 0;padding:12px;border-left:4px solid var(--accent2);background:var(--soft);border-radius:0 10px 10px 0}.impact ul{margin:7px 0 0;padding-left:20px}.tag{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px 8px;margin:2px 4px 2px 0;font-size:12px;background:var(--panel)}.tag-wrap{position:relative;min-width:0}.tag-suggest{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);max-height:220px;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:5px}.tag-suggest button{display:block;width:100%;text-align:left;background:transparent;color:var(--ink);border:0;padding:8px 9px;border-radius:7px;font-weight:700}.tag-suggest button:hover,.tag-suggest button.active{background:var(--soft);filter:none}details>summary{cursor:pointer;font-weight:850;padding:4px 0}.section-summary{font-size:21px}.rule-row,.one-row,.tool-row{display:grid;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0}.rule-row{grid-template-columns:34px 1.35fr 1fr 90px 42px}.one-row{grid-template-columns:34px 1.2fr 80px 1.5fr 42px}.tool-row{grid-template-columns:34px minmax(180px,1fr) 80px minmax(150px,.8fr) 42px}.tool-row-head{border-bottom:2px solid var(--line);padding-bottom:5px}.tool-row-head span{font-weight:800}.group-head{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-bottom:7px;border-bottom:2px solid var(--ink)}.group-head h3{margin:0}.reason{font-size:11px;color:var(--muted)}.pack-columns{columns:2;column-gap:32px}.pack-section{break-inside:avoid;margin-bottom:22px}.pack-weather{margin-top:14px}.pack-weather .weather-stop{background:var(--soft)}.pack-section h3{border-bottom:2px solid var(--ink);padding-bottom:5px}.pack-item{display:grid;grid-template-columns:23px 1fr auto;gap:8px;padding:8px 0;border-bottom:1px dotted var(--line)}.pack-item input{width:18px;height:18px}.qty{font-weight:900}.hidden{display:none!important}.notice{border:1px dashed var(--line);border-radius:12px;padding:12px;color:var(--muted)}body.print-luggage .tool-pack{display:none!important}body.print-tools .luggage-pack{display:none!important}@media(max-width:820px){.grid{grid-template-columns:1fr}.wide{grid-column:auto}.fields,.three,.summary-grid{grid-template-columns:1fr}.itinerary-row .fields{grid-template-columns:1fr}.rule-row,.one-row{grid-template-columns:30px 1fr 74px 38px}.rule-row select,.one-row .tags-input{grid-column:2/4}.tool-row{grid-template-columns:30px minmax(0,1fr) 70px 38px}.tool-row .tag-wrap{grid-column:2/4}.tool-row .danger{grid-column:4;grid-row:1}.tool-row-head{display:none}.pack-columns{columns:1}}@media print{header,.statusbar,.no-print,.settings-card{display:none!important}body{background:#fff;color:#000}.card{border:0;box-shadow:none;padding:0;background:#fff}.grid{display:block}main{max-width:none;padding:0}.card:not(.print-card){display:none}.pack-columns{columns:2}.pack-weather{margin:12px 0 18px}.pack-weather .weather-stop,.pack-weather .impact{background:#fff;break-inside:avoid}}

/* Phase 2A: generic containers */
.container-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:14px}.container-editor{border-top:1px solid var(--line);padding-top:8px}.container-editor-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;padding:10px 0}.container-delete-wrap{padding-bottom:1px}.empty-container{padding:12px 0}@media(max-width:820px){.container-add,.container-editor-head{grid-template-columns:1fr}.container-delete-wrap button{width:100%}}

/* Phase 2A.1: Standard Pack clarity and tagged de-duplication */
.standard-pack-heading{margin-top:20px;padding-top:4px;border-top:1px solid var(--line)}.standard-pack-heading h3{margin-bottom:4px}


/* Phase 2A.2: consolidated inventory tag editor */
.inventory-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin:14px 0 8px}.inventory-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,.55fr) minmax(220px,1.35fr) 42px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.inventory-head{border-bottom:2px solid var(--line);padding-bottom:6px;font-weight:800}.inventory-location{color:var(--muted);font-size:13px}.inventory-empty{padding:14px 0}@media(max-width:820px){.inventory-toolbar{grid-template-columns:1fr}.inventory-row{grid-template-columns:1fr}.inventory-head{display:none}.inventory-location{margin-top:-6px}.inventory-row .tag-wrap{width:100%}}

/* Phase 2A.3: master inventory and known-item Standard Pack picker */
.inventory-add{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) auto;gap:9px;align-items:start;margin:14px 0 8px}.inventory-delete{align-self:center}.container-item-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:12px}.container-add-help{margin-top:6px}@media(max-width:820px){.inventory-add,.container-item-add{grid-template-columns:1fr}.inventory-add button,.container-item-add button{width:100%}}

/* Phase 2A.4: Add to Trip + Browse your stuff */
.trip-add-quick{display:grid;grid-template-columns:minmax(220px,1.5fr) 90px minmax(150px,.8fr) auto;gap:10px;align-items:end;margin:14px 0}.trip-add-button-wrap{padding-bottom:1px}.trip-browse{margin-top:16px;border:1px solid var(--line);border-radius:14px;padding:12px;background:color-mix(in srgb,var(--soft) 55%,transparent)}.trip-browse>summary{font-size:16px}.trip-browse-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.35fr);gap:10px;margin:12px 0}.trip-browse-row{display:grid;grid-template-columns:30px minmax(170px,1fr) minmax(170px,1fr) minmax(180px,.8fr);gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);color:var(--ink);margin:0}.trip-browse-row>input{width:18px;height:18px}.trip-browse-row.is-packed{opacity:.72}.trip-browse-location{display:block;margin-top:2px}.trip-browse-tags{min-width:0}.trip-browse-status{text-align:right}.trip-item-row{display:grid;grid-template-columns:30px minmax(180px,1.3fr) 80px minmax(140px,.7fr) 42px;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0}.trip-item-row>input[type="checkbox"]{width:18px;height:18px}.trip-item-row .reason{grid-column:2/5}.trip-group-empty{padding:10px 0 4px}.trip-browse .actions{align-items:center}@media(max-width:820px){.trip-add-quick,.trip-browse-toolbar{grid-template-columns:1fr}.trip-add-button-wrap button{width:100%}.trip-browse-row{grid-template-columns:30px 1fr}.trip-browse-tags,.trip-browse-status{grid-column:2}.trip-browse-status{text-align:left}.trip-item-row{grid-template-columns:30px minmax(0,1fr) 72px 38px}.trip-item-row select{grid-column:2/4}.trip-item-row .danger{grid-column:4;grid-row:1}.trip-item-row .reason{grid-column:2/4}}

/* Phase 3: editable condition library */
.automatic-conditions{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.automatic-condition-label{margin-bottom:7px;font-weight:800}.condition-pills{display:flex;gap:7px;flex-wrap:wrap}.condition-pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:6px 10px;background:var(--soft);font-size:12px;font-weight:800}.condition-pill.active{background:color-mix(in srgb,var(--accent) 16%,var(--panel));border-color:var(--accent)}.condition-row{display:grid;grid-template-columns:34px minmax(150px,1.05fr) minmax(110px,.55fr) minmax(160px,.9fr) minmax(260px,1.35fr) 42px;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.condition-head{border-bottom:2px solid var(--line);font-weight:800;padding-bottom:6px}.condition-row>input[type="checkbox"]{width:18px;height:18px}.condition-trigger{min-width:0}.condition-trigger-text{font-size:13px;color:var(--muted)}.condition-trigger-inline{display:grid;grid-template-columns:auto 82px auto;gap:7px;align-items:center;font-size:13px;color:var(--muted)}.condition-trigger-custom{display:grid;grid-template-columns:minmax(95px,1fr) 58px 82px auto;gap:7px;align-items:center}.condition-trigger-custom select,.condition-trigger-custom input,.condition-trigger-inline input{padding:8px 9px}.condition-row button:disabled{opacity:.35;cursor:not-allowed;filter:none}.condition-help{margin-top:12px}.condition-row select:disabled{opacity:.65;cursor:not-allowed}
@media(max-width:980px){.condition-row{grid-template-columns:30px 1fr 1fr 38px}.condition-row>[data-condition-tag]{grid-column:2/4}.condition-trigger{grid-column:2/4}.condition-head{display:none}.condition-row>[data-delete-condition]{grid-column:4;grid-row:1}.condition-trigger-custom{grid-template-columns:1fr 62px 82px auto}}
@media(max-width:620px){.condition-row{grid-template-columns:30px 1fr 38px}.condition-row>[data-condition-source]{grid-column:2}.condition-row>[data-condition-tag],.condition-trigger{grid-column:2/4}.condition-row>[data-delete-condition]{grid-column:3;grid-row:1}.condition-trigger-custom{grid-template-columns:1fr 58px 76px auto}}

/* Phase 4A rules */
.rule-card{border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-top:10px;background:color-mix(in srgb,var(--soft) 45%,transparent)}
.rule-card>summary{display:flex;align-items:center;gap:9px;line-height:1.35}
.rule-status{flex:0 0 auto;font-size:10px;letter-spacing:.05em;border:1px solid var(--line);border-radius:999px;padding:3px 7px;color:var(--muted);background:var(--panel)}
.rule-status.active{background:color-mix(in srgb,var(--accent) 18%,var(--panel));border-color:var(--accent);color:var(--ink)}
.rule-editor{padding:13px 2px 3px}.rule-editor-top{display:grid;grid-template-columns:auto minmax(150px,.4fr) auto;gap:12px;align-items:end;margin-bottom:13px}.rule-enabled{display:flex;gap:8px;align-items:center;padding-bottom:9px}.rule-enabled input{width:18px;height:18px}
.rule-condition-list{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.rule-condition-choice{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:12px;font-weight:750;cursor:pointer}.rule-condition-choice:has(input:checked){background:color-mix(in srgb,var(--accent) 15%,var(--panel));border-color:var(--accent)}.rule-condition-choice.is-disabled{opacity:.55}.rule-condition-choice input{width:15px;height:15px}
.rule-action-row{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(220px,1.3fr) minmax(150px,.7fr);gap:10px;margin-top:14px}.rule-pack-destination.is-disabled{opacity:.5}.rule-plain-language{margin-top:11px;padding:9px 10px;border-left:3px solid var(--accent2);background:var(--soft);border-radius:0 9px 9px 0}
.trip-excluded-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
@media(max-width:820px){.rule-editor-top,.rule-action-row,.trip-excluded-row{grid-template-columns:1fr}.rule-enabled{padding-bottom:0}.trip-excluded-row button{width:100%}}

/* Phase 4B: compact quantity controls inside existing Rules */
.rule-quantity-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(140px,.55fr) minmax(140px,.55fr);gap:10px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.rule-quantity-row .is-disabled{opacity:.45}.rule-number-with-suffix{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}.rule-number-with-suffix span{font-size:12px;color:var(--muted);font-weight:800}
@media(max-width:820px){.rule-quantity-row{grid-template-columns:1fr}}

/* Phase 5: compact trip review. Suggestions require an explicit Add or Dismiss. */
.trip-extras-editor{margin:14px 0;border:1px solid var(--line);border-radius:14px;padding:12px;background:color-mix(in srgb,var(--soft) 45%,transparent)}
.trip-extras-editor>summary{font-size:16px}
.trip-suggestion-row{display:grid;grid-template-columns:minmax(220px,1.5fr) 80px minmax(130px,.6fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.trip-suggestion-actions{display:flex;gap:8px;justify-content:flex-end}
.trip-decisions,.trip-dismissed{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.trip-decision-row{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(220px,1.3fr) minmax(130px,.55fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
#tripSuggestionReview:empty{display:none}
@media(max-width:820px){.trip-suggestion-row,.trip-decision-row{grid-template-columns:1fr}.trip-suggestion-actions{justify-content:flex-start}.trip-suggestion-actions button,.trip-decision-row button{width:100%}}

/* Phase 6: accounts + cloud sync */
header{display:flex;align-items:center;justify-content:space-between;gap:18px}
.header-account{flex:0 0 auto;white-space:nowrap}
.account-summary{float:right;margin-left:14px;font-size:12px;font-weight:800;color:var(--muted)}
.account-card details>summary{display:block}
.account-message,.account-choice,.account-sync-ok,.account-recovery{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--soft) 45%,transparent)}
.account-choice{border-color:var(--accent2)}
.account-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.account-signed-in{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px}
.account-password-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:7px}
.account-card code{font-size:12px;background:var(--soft);padding:2px 5px;border-radius:5px}
@media(max-width:720px){header{align-items:flex-start;flex-direction:column}.header-account{width:100%}.account-auth-grid,.account-password-row{grid-template-columns:1fr}.account-signed-in{align-items:stretch;flex-direction:column}.account-signed-in button{width:100%}.account-summary{float:none;display:block;margin:3px 0 0}}
