:root{
  --ink:#0B1520; --ink-2:#0F2033; --paper:#F6F4EC; --paper-dim:#E9E6DA; --white:#fff;
  --amber:#E8A33D; --amber-2:#F2B24F; --teal:#3FA9A0; --deep-teal:#1F6F78; --slate:#5B6573; --text:#1C2733;
  --serif:Georgia,'Times New Roman',serif; --sans:-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --line:rgba(246,244,236,0.14); --line-dark:rgba(11,21,32,0.14); --err:#B3392B; --ok:#1F7A4D; --maxw:1180px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0; background:var(--paper); color:var(--text); font-family:var(--sans); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:var(--serif); font-weight:700; margin:0; color:var(--ink); letter-spacing:-0.01em;}
h1{font-size:34px; line-height:1.15;} h2{font-size:26px;} h3{font-size:21px;}
a{color:var(--deep-teal);}
p{margin:0 0 14px;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
@media (max-width:640px){ .wrap{padding:0 16px;} }

header.top{background:var(--ink); color:var(--paper); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 0; flex-wrap:wrap;}
.brand{display:flex; align-items:center; gap:10px; font-family:var(--serif); font-size:22px; font-weight:700; text-decoration:none; color:var(--paper);}
.brand .dot{width:9px; height:9px; border-radius:50%; background:var(--amber); box-shadow:0 0 0 4px rgba(232,163,61,0.18);}
.brand small{font-family:var(--sans); font-weight:600; font-size:14px; color:var(--teal); margin-left:6px; letter-spacing:.06em;}
.nav-right{display:flex; align-items:center; gap:18px; font-size:16px; color:#E4EAF1;}
.nav-right a{color:#E4EAF1; text-decoration:none;}
.nav-right a:hover{text-decoration:underline; text-underline-offset:6px;}

.tabs{display:flex; gap:4px; flex-wrap:wrap; border-bottom:1px solid var(--line-dark); margin:26px 0 28px;}
.tabs button{background:none; border:0; border-bottom:3px solid transparent; padding:12px 16px; font:inherit; font-size:16px; font-weight:600; color:var(--slate); cursor:pointer; margin-bottom:-1px;}
.tabs button.on{color:var(--ink); border-bottom-color:var(--amber);}
.tabs button.admin{color:var(--deep-teal);}

main{padding:30px 0 90px;}
.card{background:var(--white); border:1px solid var(--line-dark); border-radius:6px; padding:26px; margin-bottom:22px;}
.card.ink{background:var(--ink); color:var(--paper); border-color:transparent;}
.card.ink h2,.card.ink h3{color:var(--paper);}
.card.ink p{color:rgba(246,244,236,0.8);}
.row{display:flex; gap:16px; flex-wrap:wrap; align-items:center;}
.row.between{justify-content:space-between;}
.stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; margin-bottom:22px;}
.stat{background:var(--ink); color:var(--paper); border-radius:6px; padding:22px;}
.stat .n{font-family:var(--serif); font-size:40px; line-height:1; color:var(--amber);}
.stat .l{font-size:15px; margin-top:8px; color:rgba(246,244,236,0.8); font-weight:600; letter-spacing:.04em; text-transform:uppercase;}

label,.lbl{display:block; font-size:16px; font-weight:600; color:var(--ink); margin-bottom:7px;}
.hint{font-size:15px; font-weight:400; color:var(--slate); margin-top:4px; display:block;}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{
  width:100%; font:inherit; font-size:17px; color:var(--ink); background:#fff; border:1px solid var(--line-dark); border-radius:4px; padding:12px 14px;
}
textarea{min-height:100px; resize:vertical;}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(31,111,120,0.5); outline-offset:1px; border-color:var(--teal);}
.grid{display:grid; grid-template-columns:1fr 1fr; gap:18px 22px;}
.grid .full{grid-column:1/-1;}
@media (max-width:700px){ .grid{grid-template-columns:1fr;} }
.field{margin-bottom:18px;}

button.btn,.btn{display:inline-block; background:var(--ink); color:var(--paper); border:0; border-radius:4px; cursor:pointer; padding:13px 22px; font:inherit; font-size:16px; font-weight:600; text-decoration:none; transition:background .15s;}
.btn:hover{background:var(--ink-2);}
.btn.primary{background:var(--amber); color:var(--ink);} .btn.primary:hover{background:var(--amber-2);}
.btn.ghost{background:transparent; color:var(--ink); border:1px solid var(--line-dark);} .btn.ghost:hover{background:var(--paper-dim);}
.btn.danger{background:transparent; color:var(--err); border:1px solid var(--err);} .btn.danger:hover{background:#FBE9E6;}
.btn.sm{padding:9px 14px; font-size:15px;}
.btn:disabled{opacity:.55; cursor:default;}

.alert{display:none; padding:14px 18px; border-radius:4px; margin-bottom:20px; font-size:16px;}
.alert.err{display:block; background:#FBE9E6; border:1px solid var(--err); color:#7A241A;}
.alert.ok{display:block; background:#E6F4EC; border:1px solid var(--ok); color:#164D33;}
.alert.info{display:block; background:#E8F1F2; border:1px solid var(--deep-teal); color:#17454B;}

table{width:100%; border-collapse:collapse; font-size:16px;}
th{text-align:left; font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:var(--slate); padding:10px 12px; border-bottom:2px solid var(--line-dark);}
td{padding:13px 12px; border-bottom:1px solid var(--line-dark); vertical-align:top;}
tr.click{cursor:pointer;} tr.click:hover td{background:var(--paper);}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:15px;}
.pill{display:inline-block; padding:4px 10px; border-radius:999px; font-size:14px; font-weight:600; background:var(--paper-dim); color:var(--ink); white-space:nowrap;}
.pill.live{background:#DDF1E6; color:#164D33;} .pill.under_review,.pill.received{background:#FBEFD9; color:#6B4A0F;}
.pill.cancelled,.pill.suspended{background:#FBE9E6; color:#7A241A;} .pill.completed,.pill.approved{background:#E8F1F2; color:#17454B;}
.pill.test{background:var(--ink); color:var(--amber);}
.key-box{background:var(--ink); color:var(--paper); border-radius:6px; padding:20px; margin:16px 0; word-break:break-all;}
.key-box code{font-size:18px; color:var(--amber);}
.muted{color:var(--slate); font-size:15px;}
.kv{display:grid; grid-template-columns:220px 1fr; gap:8px 18px; font-size:16px;}
.kv dt{font-weight:600; color:var(--ink);} .kv dd{margin:0; white-space:pre-wrap;}
@media (max-width:640px){ .kv{grid-template-columns:1fr;} .kv dt{margin-top:8px;} }
.center{max-width:520px; margin:60px auto;}
.qr{background:#fff; padding:14px; border-radius:6px; display:inline-block; margin:14px 0;}
.qr svg{width:220px; height:220px; display:block;}
pre{background:var(--ink); color:#E4EAF1; padding:18px; border-radius:6px; overflow:auto; font-size:15px; line-height:1.5;}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
.hidden{display:none !important;}
footer{color:var(--slate); font-size:15px; padding:30px 0; border-top:1px solid var(--line-dark);}
.field .msg{display:none; color:var(--err); font-size:15px; margin-top:6px;}
.field.invalid .msg{display:block;}
.field.invalid input,.field.invalid textarea{border-color:var(--err);}
input[type=file]{font-size:15px; margin-left:8px;}

.drop{display:block; border:2px dashed rgba(11,21,32,0.3); border-radius:6px; background:var(--paper-dim); padding:26px 18px; text-align:center; cursor:pointer; margin:0; font-weight:400;}
.drop:hover,.drop.over{background:#fff; border-color:var(--deep-teal);}
.drop b{color:var(--ink); display:block; font-family:var(--serif); font-size:20px; font-weight:500; margin-bottom:6px;}
.drop span{font-size:15px; color:var(--slate);}
.drop input{display:none;}
.files{list-style:none; padding:0; margin:12px 0 0;}
.file{display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center; padding:10px 0; border-top:1px solid var(--line-dark); font-size:16px;}
.file:first-child{border-top:0;}
.fname{overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.fsize{font-weight:700; font-size:15px; color:var(--slate);}
.fx{background:none; border:0; font-size:22px; line-height:1; cursor:pointer; color:var(--slate); padding:2px 8px;}
.fx:hover{color:var(--err);}
.errbox{background:#FBEAEA; border:1px solid var(--err); color:#7A1E1E; border-radius:8px; padding:12px 16px; font-size:15px;}
.errbox ul{margin:6px 0 0 18px;}
p.ok{color:#164D33; background:#E6F4EC; border:1px solid var(--ok); border-radius:8px; padding:10px 14px; font-size:15px;}
