@import url('fonts/fonts.css');

*{box-sizing:border-box}
:root{
  --ink:#161a24; --ink-soft:#5b6472; --paper:#f7f6f2; --line:#e4e1d8;
  --navy:#0e1420; --navy-2:#161f30; --gold:#b8965a; --gold-soft:#f4ead9;
  --ok-bg:#f0f6ef; --ok-line:#cfe3cb; --ok-ink:#2f5233;
  --err-bg:#fbeeee; --err-line:#eeccc9; --err-ink:#8a2f2a;
}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;-webkit-font-smoothing:antialiased}

/* ---------- Top bar ---------- */
.topbar{height:72px;background:linear-gradient(180deg,var(--navy-2),var(--navy));color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 34px;box-shadow:0 2px 0 var(--gold)}
.brand{font-family:'Playfair Display',serif;font-weight:700;font-size:21px;letter-spacing:.02em}
.brand span{font-family:'Inter',sans-serif;font-weight:400;color:var(--gold-soft);opacity:.8;margin-left:2px}
.toplink{color:#e9e6dd;text-decoration:none;margin-left:22px;font-size:13.5px;font-weight:500;letter-spacing:.02em;transition:color .15s}
.toplink:hover{color:var(--gold)}

/* ---------- Page shell ---------- */
.page{max-width:1240px;margin:38px auto 90px;padding:0 20px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}
.eyebrow{font-size:11px;letter-spacing:.22em;color:var(--gold);font-weight:700;text-transform:uppercase}
.page-head h1{margin:8px 0 6px;font-family:'Playfair Display',serif;font-weight:700;font-size:36px;color:var(--navy)}
.page-head p{margin:0;color:var(--ink-soft);font-size:14.5px}

/* ---------- Cards ---------- */
.card{background:#fffdf9;border:1px solid var(--line);border-radius:14px;padding:26px 28px;margin-bottom:20px;box-shadow:0 10px 30px rgba(14,20,32,.05)}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.section-title>div{display:flex;align-items:center;gap:13px}
.section-title h2{margin:0;font-family:'Playfair Display',serif;font-weight:600;font-size:19px;color:var(--navy)}
.step{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--navy);color:var(--gold-soft);font-size:11px;font-weight:700;letter-spacing:.03em}
.muted{font-size:12px;color:var(--ink-soft)}

/* ---------- Forms ---------- */
.grid{display:grid;gap:16px}
.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
label{font-size:11.5px;font-weight:700;color:#3b4351;letter-spacing:.03em;display:block;text-transform:uppercase}
input,select,textarea{width:100%;margin-top:7px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 12px;font:inherit;font-size:14px;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}
textarea{resize:vertical}
.span2{grid-column:span 2}
.span4{grid-column:span 4}
.hidden{display:none}
.segmented{display:flex;gap:8px;margin-bottom:20px}
.segmented label{border:1px solid var(--line);border-radius:8px;padding:10px 16px;cursor:pointer;text-transform:none;font-weight:600;color:var(--ink);background:#fff}
.segmented input{width:auto;margin:0 8px 0 0}

/* ---------- Buttons ---------- */
.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 16px;border-radius:8px;font-weight:700;font-size:13.5px;cursor:pointer;text-decoration:none;display:inline-block;transition:all .15s}
.btn:hover{border-color:var(--navy)}
.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.primary:hover{background:var(--navy-2);box-shadow:0 4px 14px rgba(14,20,32,.25)}
.btn.big{padding:14px 26px;font-size:14.5px;letter-spacing:.02em}

/* ---------- Alerts ---------- */
.alert{background:var(--err-bg);border:1px solid var(--err-line);color:var(--err-ink);border-radius:9px;padding:13px 16px;margin-bottom:18px;font-size:14px}
.info{background:var(--ok-bg);border:1px solid var(--ok-line);color:var(--ok-ink);border-radius:9px;padding:13px 16px;margin-bottom:18px;font-size:14px}

/* ---------- Tables ---------- */
.items-wrap{overflow:auto;border-radius:10px}
table{width:100%;border-collapse:collapse}
.items-wrap th{background:var(--navy);color:var(--gold-soft);text-align:left;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:12px 10px}
.items-wrap td{padding:10px;border-bottom:1px solid var(--line);font-size:14px}
.items-wrap tr:last-child td{border-bottom:0}
.items-wrap tbody tr:hover td{background:#faf8f3}
.items-wrap input,.items-wrap select{margin:0;min-width:80px}
.items-wrap td:first-child input{min-width:230px}
.icon-btn{border:0;background:var(--gold-soft);color:var(--navy);border-radius:7px;width:32px;height:32px;cursor:pointer;font-size:18px}

/* ---------- Totals ---------- */
.totals{display:flex;justify-content:flex-end;gap:28px;margin-top:20px;color:var(--ink-soft)}
.totals b{color:var(--ink);margin-left:8px}
.totals .grand{font-size:19px;font-weight:800;color:var(--navy);border-left:2px solid var(--gold);padding-left:28px}

.actions-row{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.saved-select{display:flex;gap:10px;align-items:end;margin-bottom:20px}
.saved-select>div{flex:1}
.mini{font-size:11.5px;color:var(--ink-soft);margin-top:6px}
.mini a{color:var(--navy);font-weight:600}
.check{display:flex;align-items:center;gap:8px;font-size:12px}
.check input{width:auto;margin:0}
.bottom-action{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:8px}

/* ---------- Dashboard quick-link cards ---------- */
a.card:hover{border-color:var(--gold);box-shadow:0 12px 30px rgba(184,150,90,.18);transform:translateY(-1px)}

@media(max-width:900px){
  .grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .span4{grid-column:span 2}
  .page-head{align-items:flex-start;flex-direction:column}
  .totals{justify-content:space-between;gap:8px}
}
@media(max-width:600px){
  .topbar{padding:0 16px}
  .page{padding:0 12px;margin-top:24px}
  .card{padding:18px}
  .grid.four,.grid.two{grid-template-columns:1fr}
  .span2,.span4{grid-column:span 1}
  .totals{display:grid;grid-template-columns:1fr}
  .totals .grand{border-left:0;padding-left:0;border-top:2px solid var(--gold);padding-top:10px}
  .saved-select{display:block}
}
