:root{
  --bg:#F6F4EE; --card:#fff; --ink:#0A1929; --ink-soft:#3B4A5C; --ink-mute:#7A8696;
  --line:#E4DFD2; --navy:#0A1929; --accent:#F5B400; --accent-deep:#A07300;
  --ok:#1B7F4C; --warn:#B4690E; --bad:#B3261E;
  --r:12px; --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,'Helvetica Neue',Arial,sans-serif}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}

/* top bar */
.top{background:var(--navy);color:#F6F4EE;padding:12px 0}
.top .wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.brand{font-size:18px;font-weight:700}
.brand b{color:var(--accent)}
.top nav{display:flex;gap:16px;margin-left:auto;align-items:center;flex-wrap:wrap}
.top nav a{font-size:14px;opacity:.78;text-decoration:none}
.top nav a:hover,.top nav a[aria-current]{opacity:1;color:var(--accent)}
.who{font-size:12.5px;opacity:.6}

main{padding:26px 0 60px}
h1{font-size:24px;letter-spacing:-.02em;margin-bottom:4px}
h2{font-size:17px;margin-bottom:12px}
.sub{color:var(--ink-mute);font-size:13.5px;margin-bottom:20px}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:18px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.spread{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}

/* badges */
.badge{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  padding:4px 10px;border-radius:999px;border:1px solid;white-space:nowrap}
.badge.draft{color:var(--warn);border-color:#EBCB92;background:#FDF6E7}
.badge.confirmed{color:var(--ok);border-color:#A8D5BC;background:#EDF7F1}
.badge.cancelled{color:var(--bad);border-color:#E5B4B0;background:#FBEDEC}
.badge.done{color:var(--ink-mute);border-color:var(--line);background:var(--bg)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);
  color:var(--ink);font:inherit;font-size:14px;font-weight:600;padding:9px 16px;border-radius:9px;
  cursor:pointer;text-decoration:none}
.btn:hover{border-color:var(--ink-mute)}
.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.gold{background:var(--accent);color:var(--navy);border-color:var(--accent)}
.btn.danger{color:var(--bad);border-color:#E5B4B0}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* forms */
label{display:block;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  color:var(--ink-mute);margin-bottom:5px}
input,select,textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line);
  border-radius:9px;background:var(--card);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}
.field{margin-bottom:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:640px){.grid2{grid-template-columns:1fr}}

/* calendar */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cal .dow{background:var(--bg);padding:9px 8px;font-size:11.5px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--ink-mute);text-align:center}
.cal .day{background:var(--card);min-height:112px;padding:7px 8px}
.cal .day.other{background:#FAF8F3}
.cal .day .n{font-size:12px;color:var(--ink-mute);font-weight:600}
.cal .day.today .n{background:var(--navy);color:#fff;border-radius:999px;padding:1px 7px;display:inline-block}
.ev{display:block;margin-top:5px;font-size:12px;line-height:1.35;padding:5px 7px;border-radius:7px;
  text-decoration:none;border-left:3px solid}
.ev.draft{background:#FDF6E7;border-color:var(--warn)}
.ev.confirmed{background:#EDF7F1;border-color:var(--ok)}
.ev.cancelled{background:#FBEDEC;border-color:var(--bad);text-decoration:line-through;opacity:.65}
.ev.done{background:var(--bg);border-color:var(--ink-mute)}
.ev b{display:block;font-weight:700}
@media(max-width:760px){.cal .day{min-height:80px}.ev{font-size:11px}}

/* list */
table.list{width:100%;border-collapse:collapse;font-size:14px}
table.list th{text-align:left;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ink-mute);padding:8px 10px;border-bottom:1px solid var(--line)}
table.list td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.list tr:last-child td{border-bottom:0}
table.list a{font-weight:600;text-decoration:none}
table.list a:hover{color:var(--accent-deep)}

dl.kv{display:grid;grid-template-columns:170px 1fr;gap:9px 16px;font-size:14px}
dl.kv dt{color:var(--ink-mute);font-size:13px}
dl.kv dd{font-weight:600;word-break:break-word}
@media(max-width:600px){dl.kv{grid-template-columns:1fr;gap:2px 0}dl.kv dd{margin-bottom:9px}}

.flash{padding:12px 16px;border-radius:9px;margin-bottom:16px;font-size:14px;border:1px solid}
.flash.ok{background:#EDF7F1;border-color:#A8D5BC;color:#12613A}
.flash.err{background:#FBEDEC;border-color:#E5B4B0;color:#8C1D18}
.empty{color:var(--ink-mute);font-size:14px;padding:22px 0;text-align:center}

/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:22px}
.login{width:100%;max-width:380px}
.login .brand{color:var(--ink);font-size:26px;text-align:center;margin-bottom:6px}
.login p.sub{text-align:center}
