:root{
  color-scheme:light;
  --ink:#1a1e1c;
  --lagoon:#123b3e;
  --lagoon-2:#1e5257;
  --marble:#efe8d8;
  --marble-2:#e2d8bf;
  --brick:#a13d2c;
  --gold:#c9a227;
  --line:#c9bfa2;
  --paper:#f7f3e8;
}
*{box-sizing:border-box; forced-color-adjust:none;}
html{scroll-behavior:smooth;background:var(--paper);}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--gold);color:var(--ink);}
a{color:var(--lagoon);}

/* HERO */
.hero{
  background:radial-gradient(120% 140% at 15% 0%, var(--lagoon-2) 0%, var(--lagoon) 55%, #0d2a2c 100%);
  color:var(--marble);
  padding:3.5rem 1.5rem 2.5rem;
  position:relative;
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute; right:-10%; top:-20%; width:60%; height:140%;
  background:radial-gradient(circle, rgba(201,162,39,0.14) 0%, transparent 65%);
}
.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--gold); margin:0 0 1.1rem;
}
h1{
  font-family:'Fraunces',serif; font-weight:600;
  font-size:clamp(2rem, 7vw, 3.2rem); line-height:1.05; margin:0 0 1rem; max-width:18ch;
}
h1 em{font-style:italic;font-weight:500;color:var(--gold);}
.hero p.sub{max-width:42ch; font-size:1rem; line-height:1.6; color:#d9d2bd; margin:0 0 2rem;}
.route-strip{display:flex; align-items:center; gap:0; font-family:'JetBrains Mono',monospace; font-size:0.78rem; color:var(--marble); flex-wrap:wrap;}
.route-strip .stop{padding:0.4rem 0.7rem; border:1px solid rgba(239,232,216,0.35); border-radius:999px; white-space:nowrap; margin:0.15rem 0;}
.route-strip .arrow{padding:0 0.5rem; color:var(--gold);}
.hero-actions{margin-top:1.6rem; display:flex; gap:0.6rem; flex-wrap:wrap;}
.hero-actions a, .hero-actions button{
  font-family:'JetBrains Mono',monospace; font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase;
  background:rgba(239,232,216,0.1); border:1px solid rgba(239,232,216,0.4); color:var(--marble);
  padding:0.5rem 0.9rem; border-radius:999px; cursor:pointer; text-decoration:none;
}
.hero-actions a:hover, .hero-actions button:hover{border-color:var(--gold); color:var(--gold);}
.badge-mode{font-family:'JetBrains Mono',monospace; font-size:0.65rem; text-transform:uppercase; letter-spacing:0.08em; background:var(--brick); color:#fff; padding:0.25rem 0.6rem; border-radius:999px; display:inline-block; margin-bottom:0.8rem;}

/* QUICK NAV */
.progress{
  position:sticky; top:0; z-index:20;
  background:rgba(247,243,232,0.95); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
  display:flex; justify-content:flex-start; gap:0; padding:0.7rem 1rem; overflow-x:auto;
}
.progress a{
  font-family:'JetBrains Mono',monospace; font-size:0.72rem; letter-spacing:0.03em; text-decoration:none;
  color:#8a8168; padding:0.45rem 0.75rem; border:1px solid var(--line); border-radius:999px;
  white-space:nowrap; margin-right:0.5rem; flex-shrink:0;
}
.progress a:hover{color:var(--brick);border-color:var(--brick);}

main{max-width:760px;margin:0 auto;padding:2rem 1.5rem 1rem;}
main.wide{max-width:920px;}

.controls{display:flex; gap:0.6rem; margin-bottom:1.6rem; flex-wrap:wrap;}
.controls button, .controls a.btn{
  font-family:'JetBrains Mono',monospace; font-size:0.7rem; letter-spacing:0.05em; text-transform:uppercase;
  background:#fff; border:1px solid var(--line); color:var(--lagoon); padding:0.5rem 0.9rem; border-radius:999px;
  cursor:pointer; text-decoration:none; display:inline-block;
}
.controls button:hover, .controls a.btn:hover{border-color:var(--gold);}
.controls .danger{color:var(--brick); border-color:var(--brick);}

/* DATE / STEP BLOCKS */
details.date-block{
  background:#fff; border:1px solid var(--line); border-radius:12px; margin-bottom:1rem;
  overflow:hidden; scroll-margin-top:4rem;
}
details.date-block > summary{
  list-style:none; cursor:pointer; padding:1.1rem 1.3rem; display:flex; align-items:center; gap:1rem;
  background:var(--lagoon); color:var(--marble);
}
details.date-block > summary::-webkit-details-marker{display:none;}
.date-badge{
  font-family:'JetBrains Mono',monospace; font-size:0.85rem; background:var(--gold); color:#221a04;
  padding:0.3rem 0.6rem; border-radius:6px; flex-shrink:0; font-weight:600;
}
.date-summary-text{flex:1;}
.date-weekday{font-family:'JetBrains Mono',monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.1em; color:#b9c9c4; display:block;}
.date-headline{font-family:'Fraunces',serif; font-size:1.25rem; font-weight:600;}
.chevron{width:1.1rem;height:1.1rem; flex-shrink:0; transition:transform .2s; color:var(--gold);}
details.date-block[open] > summary .chevron{transform:rotate(180deg);}
.date-body{padding:1.2rem 1.3rem 1.4rem;}

/* PLACE */
details.place{border:1px solid var(--line); border-radius:10px; margin-bottom:0.9rem; overflow:hidden;}
details.place:last-child{margin-bottom:0;}
details.place > summary{
  list-style:none; cursor:pointer; padding:0.75rem 1rem; display:flex; align-items:center; gap:0.6rem; background:var(--marble);
}
details.place > summary::-webkit-details-marker{display:none;}
.place-title{font-family:'Fraunces',serif; font-weight:600; font-size:1.05rem; flex:1;}
.place-icon{font-size:1rem;}
.place-chevron{width:0.9rem;height:0.9rem; flex-shrink:0; transition:transform .2s; color:var(--brick);}
details.place[open] > summary .place-chevron{transform:rotate(180deg);}
.place-body{padding:1rem 1.1rem 1.1rem;background:#fff;}

.card{background:#fff; border:1px solid var(--line); border-radius:10px; padding:1rem 1.1rem; margin-bottom:0.8rem;}
.card:last-child{margin-bottom:0;}
.card.soft{background:var(--marble-2);border:none;}
.card-label{font-family:'JetBrains Mono',monospace; font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; color:#8a8168; margin-bottom:0.3rem; display:block;}
.card-head{display:flex; align-items:center; justify-content:space-between; gap:0.6rem; margin-bottom:0.1rem;}
.card-head .card-label{margin-bottom:0;}
.card-title{font-family:'Fraunces',serif; font-size:1.1rem; font-weight:600; margin:0 0 0.25rem;}
.card-sub{font-size:0.88rem;color:#3d3a2b;line-height:1.5;margin:0;}
.card-sub.order-number{font-family:'JetBrains Mono',monospace; font-size:0.78rem; color:#5b563f; margin-top:0.4rem;}

.item-row{display:flex; align-items:center; gap:0.8rem; padding:0.7rem 0; border-top:1px solid var(--line); background:#fff;}
.item-row:first-child{border-top:none;}
.item-time{font-family:'JetBrains Mono',monospace; font-size:0.72rem; color:#5b563f; font-weight:600; width:4rem; flex-shrink:0;}
.item-main{flex:1;background:#fff;}
.item-name{font-weight:700;font-size:0.95rem;color:#1a1e1c;}
.item-meta{font-size:0.8rem;color:#4a4633;margin-top:0.1rem;line-height:1.4;}
.status{font-family:'JetBrains Mono',monospace; font-size:0.64rem; padding:0.25rem 0.55rem; border-radius:999px; white-space:nowrap; flex-shrink:0;}
.status.confirmed{background:#e2ecdd;color:#3d6b34;}
.status.open{background:#eee9da;color:#8a8168;}

.maps-link{
  display:inline-flex; align-items:center; gap:0.2rem; font-family:'JetBrains Mono',monospace; font-size:0.68rem;
  font-weight:500; color:var(--lagoon); text-decoration:none; border-bottom:1px dotted var(--lagoon);
  margin-left:0.45rem; white-space:nowrap;
}
.maps-link:hover{color:var(--brick);border-color:var(--brick);}

/* CHECKLIST */
.checklist{margin:1.5rem 0 3rem; background:var(--lagoon); color:var(--marble); border-radius:14px; padding:1.6rem 1.5rem 1.8rem;}
.checklist h2{font-family:'Fraunces',serif; font-size:1.4rem; margin:0 0 0.2rem;}
.checklist .sub{font-size:0.82rem;color:#b9c9c4;margin:0 0 1.2rem;}
.check-item{display:flex; align-items:flex-start; gap:0.75rem; padding:0.7rem 0; border-top:1px solid rgba(239,232,216,0.18);}
.check-item:first-of-type{border-top:none;}
.check-item .box{
  width:1.15rem;height:1.15rem; border:1.5px solid var(--gold); border-radius:4px; flex-shrink:0; margin-top:0.15rem;
  display:flex;align-items:center;justify-content:center; transition:background .15s; cursor:pointer; background:transparent;
}
.check-item .box svg{width:0.75rem;height:0.75rem;opacity:0;transition:opacity .15s;}
.check-item.done .box{background:var(--gold);}
.check-item.done .box svg{opacity:1;}
.check-item.done .check-text{text-decoration:line-through;color:#8fa39e;}
.check-text{font-size:0.92rem;line-height:1.4;flex:1;}
.check-item form.inline-del{margin:0;}
.check-item .del{background:none;border:none;color:#8fa39e;cursor:pointer;font-size:0.75rem;font-family:'JetBrains Mono',monospace;}
.check-item .del:hover{color:var(--brick);}

footer{text-align:center; font-family:'JetBrains Mono',monospace; font-size:0.7rem; color:#8a8168; padding:2rem 1.5rem 3rem;}

/* --- EDIT MODE EXTRAS --- */
.edit-toolbar{display:flex; gap:0.4rem; flex-wrap:wrap; margin-top:0.6rem;}
.edit-toolbar a, .edit-toolbar button{
  font-family:'JetBrains Mono',monospace; font-size:0.62rem; letter-spacing:0.03em; text-transform:uppercase;
  background:var(--paper); border:1px solid var(--line); color:var(--lagoon); padding:0.25rem 0.55rem; border-radius:999px;
  cursor:pointer; text-decoration:none;
}
.edit-toolbar a.danger, .edit-toolbar button.danger{color:var(--brick); border-color:#e3b7ab;}
.edit-toolbar a:hover, .edit-toolbar button:hover{border-color:var(--gold);}
.add-form{background:var(--paper); border:1px dashed var(--line); border-radius:10px; padding:0.9rem 1rem; margin-top:0.6rem;}
.add-form summary{cursor:pointer; font-family:'JetBrains Mono',monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--lagoon);}
.add-form .fields{margin-top:0.8rem; display:grid; gap:0.6rem;}
.field{display:flex; flex-direction:column; gap:0.25rem;}
.field label{font-family:'JetBrains Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.05em; color:#8a8168;}
.field input, .field select, .field textarea{
  font-family:'Inter',sans-serif; font-size:0.9rem; padding:0.55rem 0.7rem; border:1px solid var(--line); border-radius:8px;
  background:#fff; color:var(--ink);
}
.field textarea{min-height:4.5rem; resize:vertical;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:0.6rem;}
.submit-btn{
  font-family:'JetBrains Mono',monospace; font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase;
  background:var(--lagoon); color:var(--marble); border:none; padding:0.6rem 1.1rem; border-radius:8px; cursor:pointer; width:fit-content;
}
.submit-btn:hover{background:var(--lagoon-2);}
.submit-btn.danger{background:var(--brick);}
.hint{font-size:0.78rem; color:#8a8168; margin-top:0.3rem;}

/* DASHBOARD */
.trip-card{
  background:#fff; border:1px solid var(--line); border-radius:12px; padding:1.2rem 1.3rem; margin-bottom:1rem;
  display:flex; flex-direction:column; gap:0.5rem;
}
.trip-card h3{font-family:'Fraunces',serif; font-size:1.25rem; margin:0;}
.trip-card .meta{font-family:'JetBrains Mono',monospace; font-size:0.75rem; color:#8a8168;}
.trip-card .actions{display:flex; gap:0.5rem; flex-wrap:wrap; margin-top:0.4rem;}
.empty-state{text-align:center; padding:3rem 1rem; color:#8a8168;}

/* LOGIN */
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:1.5rem; background:var(--paper);}
.login-box{background:#fff; border:1px solid var(--line); border-radius:14px; padding:2.2rem; max-width:360px; width:100%;}
.login-box h1{font-size:1.8rem; max-width:none;}
.error-msg{background:#f7e3dd; color:var(--brick); border-radius:8px; padding:0.7rem 0.9rem; font-size:0.85rem; margin-bottom:1rem;}
.info-msg{background:#e2ecdd; color:#3d6b34; border-radius:8px; padding:0.7rem 0.9rem; font-size:0.85rem; margin-bottom:1rem;}

.share-box{background:#fff; border:1px solid var(--line); border-radius:10px; padding:1rem 1.2rem; margin-bottom:1.4rem; display:flex; align-items:center; gap:0.8rem; flex-wrap:wrap;}
.share-box code{background:var(--marble-2); padding:0.4rem 0.6rem; border-radius:6px; font-size:0.8rem; word-break:break-all;}

.top-nav{display:flex; justify-content:space-between; align-items:center; padding:1rem 1.5rem; background:#fff; border-bottom:1px solid var(--line);}
.top-nav a{font-family:'JetBrains Mono',monospace; font-size:0.78rem; text-decoration:none; color:var(--lagoon);}
