:root{
  --paper:#EEF1EA; --paper-raised:#FFFFFF; --paper-sunk:#E4E7DE;
  --ink:#17233A; --ink-soft:#57627A; --line:#D7D8C8;
  --brass:#9C6E2E; --brass-bg:#F1E3C9; --teal:#2F6F62; --teal-bg:#DCEBE6;
  --coral:#B24E33; --coral-bg:#F5DED4; --blue:#33578F; --blue-bg:#DDE5F2;
  --focus:#2F6F62; --danger:#B24E33; --shadow: 0 1px 2px rgba(23,35,58,.06), 0 6px 20px rgba(23,35,58,.06);
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#121A29; --paper-raised:#1B2437; --paper-sunk:#0E1522;
    --ink:#EDEAE0; --ink-soft:#A9B2C6; --line:#2B3550;
    --brass:#E0AC5C; --brass-bg:#3B2F1B; --teal:#6FBBA9; --teal-bg:#1B3530;
    --coral:#E38A6C; --coral-bg:#3A241D; --blue:#8FB0E0; --blue-bg:#1E2C42;
    --focus:#6FBBA9; --danger:#E38A6C; --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.35);
  }
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Public Sans',system-ui,sans-serif;font-size:15px;line-height:1.5;}
img{max-width:100%;}
[hidden]{display:none!important;}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:600;text-wrap:balance;margin:0;}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px;}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace;}
a{color:var(--teal);}

.shell{max-width:880px;margin:0 auto;padding:20px 18px 64px;}

.gate-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
.gate-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:32px 28px;max-width:380px;width:100%;text-align:center;}
.gate-mark{font-family:'IBM Plex Mono';font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);margin-bottom:10px;display:block;}
.gate-card h1{font-size:26px;margin-bottom:6px;}
.gate-card p{color:var(--ink-soft);font-size:13.5px;margin:0 0 18px;}
.gate-card input[type=password],.gate-card input[type=text]{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);margin-bottom:10px;}
.gate-card button.primary{width:100%;}
.gate-error{color:var(--danger);font-size:13px;margin:-2px 0 10px;min-height:16px;}
.gate-hint{font-size:12px;color:var(--ink-soft);margin-top:14px;}
.who-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;}
.who-grid form{display:contents;}
.who-btn{width:100%;padding:16px 10px;border:1px solid var(--line);border-radius:11px;background:var(--paper);font-family:'Fraunces';font-size:17px;font-weight:600;cursor:pointer;transition:border-color .15s, background .15s;}
.who-btn:hover{border-color:var(--teal);background:var(--teal-bg);}

button{cursor:pointer;border-radius:9px;border:1px solid var(--line);background:var(--paper-raised);padding:9px 14px;font-weight:600;transition:border-color .15s,background .15s,color .15s;}
button.primary{background:var(--ink);color:var(--paper);border-color:var(--ink);}
button.primary:hover{opacity:.88;}
button.ghost{background:transparent;}
button.ghost:hover{background:var(--paper-sunk);}
.small,a.small{display:inline-block;padding:6px 10px;font-size:12.5px;border-radius:7px;border:1px solid var(--line);background:var(--paper-raised);color:var(--ink);text-decoration:none;font-weight:600;cursor:pointer;}
.small:hover,a.small:hover{border-color:var(--teal);color:var(--teal);}
.icon-btn{padding:5px 8px;border-radius:7px;line-height:1;background:transparent;border-color:transparent;color:var(--ink-soft);text-decoration:none;display:inline-flex;}
.icon-btn:hover{background:var(--coral-bg);color:var(--danger);border-color:var(--coral-bg);}

.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.trip-title{font-size:30px;}
.eyebrow{font-family:'IBM Plex Mono';font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);display:block;margin-bottom:4px;}
.identity{display:flex;align-items:center;gap:8px;}
.identity select{border:1px solid var(--line);background:var(--paper-raised);border-radius:8px;padding:7px 10px;}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:20px;}
.stat{background:var(--paper-raised);border:1px solid var(--line);border-radius:11px;padding:12px 14px;}
.stat .num{font-family:'IBM Plex Mono';font-weight:600;font-size:22px;font-variant-numeric:tabular-nums;}
.stat .lbl{font-size:11.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;}

.map-card{border:1px solid var(--line);border-radius:13px;overflow:hidden;margin-bottom:20px;background:var(--paper-raised);box-shadow:var(--shadow);}
#wp-map{height:280px;width:100%;background:var(--paper-sunk);}
#wp-map .empty-state{border:none;margin:0;padding:110px 20px;}
.map-note{padding:8px 14px;font-size:12.5px;color:var(--ink-soft);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px;align-items:center;}

.controls-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.tabs{display:flex;gap:4px;background:var(--paper-sunk);border-radius:10px;padding:4px;}
.tab-btn{border:none;background:transparent;padding:7px 14px;border-radius:7px;font-weight:600;color:var(--ink-soft);text-decoration:none;}
.tab-btn.active{background:var(--paper-raised);color:var(--ink);box-shadow:var(--shadow);}
.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.filters select{border:1px solid var(--line);background:var(--paper-raised);border-radius:8px;padding:6px 9px;font-size:13px;}
.filters label{font-size:13px;display:flex;align-items:center;gap:5px;color:var(--ink-soft);}

.add-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:13px;padding:16px;margin-bottom:22px;box-shadow:var(--shadow);}
.add-card h2{font-size:16px;margin-bottom:12px;}
.add-grid{display:grid;grid-template-columns:1.4fr 1.4fr 1fr;gap:10px;}
.add-grid .full{grid-column:1/-1;}
.field label{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);margin-bottom:4px;}
.field input,.field select{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:9px 10px;}
.add-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:10px;flex-wrap:wrap;}
.star-toggle{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer;user-select:none;}
.star-toggle input{width:16px;height:16px;}
@media (max-width:640px){.add-grid{grid-template-columns:1fr 1fr;}}

.day-toggles{display:flex;gap:6px;flex-wrap:wrap;}
.day-toggle{position:relative;display:inline-block;}
.day-toggle input{position:absolute;opacity:0;width:34px;height:34px;margin:0;cursor:pointer;}
.day-toggle label{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;font-family:'IBM Plex Mono';font-weight:600;font-size:13px;background:var(--paper);color:var(--ink-soft);cursor:pointer;user-select:none;transition:background .15s,border-color .15s,color .15s;}
.day-toggle input:checked + label{background:var(--teal);border-color:var(--teal);color:#fff;}
.day-toggle input:focus-visible + label{outline:2px solid var(--focus);outline-offset:2px;}

.week-strip{display:inline-flex;gap:2px;}
.week-day{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono';font-size:9px;font-weight:600;border-radius:4px;background:var(--paper-sunk);color:var(--ink-soft);}
.week-day.on{background:var(--teal-bg);color:var(--teal);}

.examples-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--brass-bg);border:1px solid var(--brass);color:var(--brass);border-radius:10px;padding:8px 12px;font-size:13px;margin-bottom:12px;flex-wrap:wrap;}
.place-list{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:8px;}
.place-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:11px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.place-main{display:flex;flex-direction:column;gap:2px;min-width:180px;}
.place-name-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.place-name{font-family:'Fraunces';font-weight:600;font-size:16.5px;}
.star{color:var(--brass);}
.place-loc{font-size:12.5px;color:var(--ink-soft);}
.place-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.chip{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:4px 9px;border-radius:999px;}
.chip-sight{background:var(--teal-bg);color:var(--teal);}
.chip-food{background:var(--coral-bg);color:var(--coral);}
.chip-activity{background:var(--brass-bg);color:var(--brass);}
.chip-stay{background:var(--blue-bg);color:var(--blue);}
.chip-other{background:var(--paper-sunk);color:var(--ink-soft);}
.chip-date{background:var(--coral-bg);color:var(--coral);font-family:'IBM Plex Mono';letter-spacing:0;text-transform:none;}
.tag-by{font-family:'IBM Plex Mono';font-size:11px;color:var(--ink-soft);}
.maps-link{font-size:12.5px;font-weight:600;white-space:nowrap;}
.example-badge{font-family:'IBM Plex Mono';font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--brass);border:1px solid var(--brass);border-radius:5px;padding:2px 6px;}
.empty-state{text-align:center;padding:40px 20px;color:var(--ink-soft);border:1px dashed var(--line);border-radius:12px;margin-bottom:22px;}

.footer-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;}
.footer-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.footer-note{font-size:12px;color:var(--ink-soft);max-width:320px;}
