:root{--ink:#222322;--ink2:#4a4b49;--mute:#76776f;--line:#e4e2da;--bg:#f6f5f0;--card:#fff;--yellow:#FBBC06;--yellow-soft:#fff4d1;--navy:#14284B;--navy2:#1f3a68;--ok:#1d7a4a;--ok-soft:#e5f4ec;--warn:#9a5b00;--err:#b42318;--err-soft:#fdecea;--r:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:16px;line-height:1.5;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--navy)}
button,input,select,textarea{font:inherit;color:inherit}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.topbar .in{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:10px 18px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand img{height:38px;width:auto;display:block}
.brand .app{font-weight:800;font-size:15px;letter-spacing:.2px;border-left:2px solid var(--line);padding-left:12px;line-height:1.15}
.brand .app small{display:block;font-weight:600;color:var(--mute);font-size:12px}
.topbar .grow{flex:1}
.who{font-size:14px;color:var(--ink2);display:flex;align-items:center;gap:10px}
.rail{height:5px;background:linear-gradient(90deg,var(--yellow) 0 33%,#fff 33% 34%,var(--yellow) 34% 66%,#fff 66% 67%,var(--navy) 67%)}
main{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:22px 18px 40px}
.narrow{max-width:620px}
h1{font-size:26px;line-height:1.2;margin:0 0 6px;font-weight:800;letter-spacing:-.3px}
h2{font-size:19px;margin:0 0 10px;font-weight:800}
.lead{color:var(--ink2);margin:0 0 18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.stack>*+*{margin-top:14px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:12px 18px;font-weight:800;cursor:pointer;text-decoration:none;min-height:46px;transition:transform .05s,filter .15s}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--yellow);color:var(--ink)}
.btn.primary:hover{filter:brightness(.96)}
.btn.navy{background:var(--navy);color:#fff}
.btn.ghost{background:#fff;border:1.5px solid var(--line);color:var(--ink)}
.btn.danger{background:#fff;border:1.5px solid #f1c4bf;color:var(--err)}
.btn.small{min-height:36px;padding:7px 12px;font-size:14px;border-radius:10px}
.btn.block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed}
label.f{display:block;font-weight:700;font-size:14px;margin-bottom:6px}
.input,select.input,textarea.input{width:100%;border:1.5px solid var(--line);border-radius:12px;background:#fff;padding:12px 14px;outline:none;min-height:46px}
.input:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(20,40,75,.12)}
textarea.input{min-height:110px;resize:vertical;line-height:1.45}
.hint{font-size:13px;color:var(--mute);margin-top:6px}
.err{background:var(--err-soft);color:var(--err);border-radius:10px;padding:10px 12px;font-weight:600;font-size:14px}
.okmsg{background:var(--ok-soft);color:var(--ok);border-radius:10px;padding:10px 12px;font-weight:600;font-size:14px}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800;white-space:nowrap}
.pill.rh{background:#e8edf6;color:var(--navy)}
.pill.sg{background:var(--yellow-soft);color:#7a5600}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.warn{background:#fff1dc;color:var(--warn)}
.pill.grey{background:#eeede8;color:var(--ink2)}
.seg{display:flex;background:#eeede8;border-radius:12px;padding:4px;gap:4px}
.seg button{flex:1;border:0;background:transparent;border-radius:9px;padding:10px 8px;font-weight:800;font-size:14px;cursor:pointer;color:var(--ink2)}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.foot{border-top:1px solid var(--line);background:#fff;color:var(--ink2);font-size:13px;text-align:center;padding:18px;line-height:1.7}
.foot b{color:var(--ink)}
.sample{background:var(--navy);color:#fff;font-size:13px;text-align:center;padding:6px 12px;font-weight:600}
.sample b{color:var(--yellow)}
.hide{display:none!important}
.spinner{width:18px;height:18px;border:3px solid rgba(0,0,0,.15);border-top-color:var(--ink);border-radius:50%;animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
/* report view */
.report{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px 22px 18px;line-height:1.65}
.report .r-sec{margin-top:16px;padding-left:14px;border-left:4px solid var(--yellow)}
.report .r-sec h3{margin:0 0 4px;font-size:15px;color:var(--navy);display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.report .r-sec h3 span{font-size:12px;color:var(--mute);font-weight:700}
.report p{margin:0}
.report .r-close{margin-top:16px}
.report .r-sign{margin-top:10px;color:var(--ink2)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;font-weight:700;font-size:14px;z-index:99;box-shadow:0 6px 20px rgba(0,0,0,.2)}
@media print{.topbar,.foot,.sample,.noprint{display:none!important}body{background:#fff}main{padding:0}}
@media(max-width:560px){
  .topbar .in{padding:8px 14px;gap:10px}
  .brand img{height:30px}
  .brand .app{font-size:13px;padding-left:10px}
  .brand .app small{display:none}
  .who{font-size:13px;gap:8px}
  .who .hi{display:none}
  .who .btn{white-space:nowrap}
  h1{font-size:23px}
}
