:root{--navy:#183163;--blue:#2340FC;--gray:#F2F2F2;--line:#D5DEE4;--ink:#1A1A1A;--muted:#606060;--warn:#FFF4CC;--warnb:#E3B500;--ok:#E6F4EA}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:#F7F8FA;font-size:15px}
a{color:var(--blue)}
header{background:var(--navy);color:#fff;padding:0 24px;height:58px;display:flex;align-items:center;gap:20px;position:sticky;top:0;z-index:5}
header img{height:22px}
header .app{font-weight:600;opacity:.85;border-left:1px solid #ffffff44;padding-left:16px}
header nav{margin-left:auto;display:flex;gap:16px;align-items:center}
header nav a{color:#fff;text-decoration:none;opacity:.85;font-size:14px}
header nav a:hover{opacity:1}
main{max-width:1100px;margin:0 auto;padding:24px 16px 80px}
h1{font-size:24px;color:var(--navy);margin:4px 0 16px}
h2{font-size:17px;color:var(--navy);margin:0}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:16px}
.btn{display:inline-block;background:var(--blue);color:#fff;border:0;border-radius:8px;padding:10px 18px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none}
.btn.sec{background:#fff;color:var(--navy);border:1px solid var(--line)}
.btn.navy{background:var(--navy)}
.btn.danger{background:#fff;color:#B00020;border:1px solid #f0c0c8}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
table.list{width:100%;border-collapse:collapse;background:#fff}
table.list th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:10px;border-bottom:1px solid var(--line)}
table.list td{padding:12px 10px;border-bottom:1px solid var(--line)}
table.list tr:hover td{background:#FAFBFF}
input[type=text],input[type=password],input[type=date],input[type=search],select,textarea{width:100%;padding:9px 10px;border:1px solid #C9D3DB;border-radius:7px;font-size:15px;font-family:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid #2340FC55;border-color:var(--blue)}
textarea{min-height:64px;resize:vertical}
label{font-size:13px;color:var(--muted);display:block;margin-bottom:4px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px 16px}
.grid .wide{grid-column:1/-1}
details.sec{background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:12px}
details.sec>summary{cursor:pointer;padding:14px 18px;font-weight:600;color:var(--navy);list-style:none;display:flex;justify-content:space-between}
details.sec>summary::after{content:'▾';color:var(--muted)}
details.sec[open]>summary::after{content:'▴'}
details.sec .body{padding:4px 18px 18px}
.empty input,.empty textarea,.empty select{background:#FFFBEA;border-color:#EBD58A}
.alert{border-radius:8px;padding:12px 16px;margin-bottom:12px;font-size:14px}
.alert.warn{background:var(--warn);border:1px solid var(--warnb)}
.alert.ok{background:var(--ok);border:1px solid #9CCFA9}
.alert.info{background:#EEF2FF;border:1px solid #C7D0FF;white-space:pre-line}
.alert ul{margin:6px 0 0;padding-left:18px}
.drop{border:2px dashed #AFC0E8;border-radius:12px;padding:36px;text-align:center;background:#FAFBFF;cursor:pointer}
.drop.over{background:#EEF2FF;border-color:var(--blue)}
.muted{color:var(--muted);font-size:13px}
.sticky{position:sticky;bottom:0;background:#F7F8FAee;padding:12px 0;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end}
.sum{display:grid;grid-template-columns:1fr auto;gap:4px 16px;font-size:14px}
.sum .t{font-weight:700;border-top:1px solid var(--line);padding-top:4px}
.badge{display:inline-block;font-size:12px;border-radius:20px;padding:2px 8px;background:#EEF2FF;color:var(--navy)}
.login{max-width:380px;margin:80px auto}
.spinner{display:none}
form.busy .spinner{display:inline-block}
@media (max-width:640px){header{padding:0 12px}header .app{display:none}main{padding:16px 12px 80px}}
