:root{--ink:#25272a;--muted:#6c727a;--bg:#f4f5f7;--line:#e5e7eb;--red:#e3062f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 'Segoe UI',system-ui,sans-serif}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button,.button{border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);padding:10px 14px;cursor:pointer;min-height:44px;display:inline-block;text-decoration:none;font-weight:600;font-size:13px}button:disabled{opacity:.5;cursor:wait}button:hover,.button:hover{filter:brightness(.95)}.primary{background:var(--red);color:white;border-color:var(--red)}.danger{color:#a51d31}.layout{display:grid;grid-template-columns:230px 1fr;min-height:100vh}aside{background:#242629;color:white;padding:28px 20px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{font-weight:800;font-size:26px;letter-spacing:-1px}.brand span{color:var(--red)}.brand small{display:block;font-size:10px;letter-spacing:3px;color:#b9bdc4}nav{display:grid;gap:6px;margin-top:36px}nav button{text-align:left;background:none;color:#d8dade;border:0}nav .active{background:var(--red);color:white}.asidefoot{margin-top:auto;padding-top:20px;font-size:12px;color:#b9bdc4}.asidefoot button{margin-top:14px;background:none;color:#ddd;border-color:#494c52}main{padding:32px 40px;max-width:1450px;width:100%;margin:0 auto}.top,.row,.actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.actions{justify-content:flex-start;flex-wrap:wrap}.top{font-size:12px;color:var(--muted)}.heading{margin:28px 0}.heading h1{margin:0;font-size:32px;letter-spacing:-1px;line-height:1.2}.muted{color:var(--muted)}p{margin:7px 0 14px}h2{font-size:20px;margin:0 0 12px}h3{font-size:16px;margin:0 0 5px}.card{background:white;border:1px solid var(--line);border-radius:15px;padding:23px;margin-bottom:18px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.stat{border-top:3px solid var(--red)}.stat b{display:block;font-size:30px}.stat small{color:var(--muted)}.tag{font-size:11px;padding:4px 9px;border-radius:14px;background:#fff0f3;color:#ac1232;display:inline-block}.tag.ok{background:#eaf7f0;color:#216c49}.tag.warn{background:#fff1d8;color:#80561b}.item{padding:17px 0;border-top:1px solid var(--line)}.item:last-child{padding-bottom:0}.notice{background:#fff0f3;border-left:3px solid var(--red);padding:12px 15px;font-size:13px;margin:16px 0}.neutral{background:#f4f5f7;border-color:#b9bdc4}.empty{padding:30px;text-align:center;color:var(--muted)}label{display:block;font-size:13px;font-weight:600;margin:12px 0 5px}input,select,textarea{width:100%;border:1px solid #d6dae0;border-radius:8px;background:white;color:var(--ink);padding:11px;min-height:44px}textarea{min-height:95px;resize:vertical}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.wide{grid-column:1/-1}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #e3062f44;outline-offset:2px}.search{margin-bottom:18px}.error{color:#a51d31;white-space:pre-wrap}.auth{max-width:490px;margin:8vh auto;padding:28px}.auth .brand{margin-bottom:20px}.check{display:flex;gap:10px;align-items:flex-start}.check input{width:20px;min-height:20px;margin-top:3px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:12px 8px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--muted);font-size:11px}td input{min-width:75px}td:first-child input{min-width:180px}.num{text-align:right;white-space:nowrap}.total{margin-left:auto;max-width:310px;margin-top:15px}.total .row{padding:5px 0}.total .grand{border-top:1px solid var(--line);font-size:24px;font-weight:750;padding-top:10px}dialog{border:0;border-radius:18px;padding:0;width:min(900px,95vw);max-height:94vh;color:var(--ink);box-shadow:0 20px 80px #0004}dialog::backdrop{background:#242629bd}dialog header{display:flex;align-items:center;justify-content:space-between;padding:15px 24px;border-bottom:1px solid var(--line)}dialog header button{border:0;font-size:22px}#mb{padding:24px}.paperhead{display:flex;justify-content:space-between;gap:16px;border-bottom:3px solid var(--red);padding-bottom:20px;margin-bottom:20px}.paperhead small{display:block}.signature{width:100%;height:175px;border:1px dashed #a9afb8;background:#fcfcfd;touch-action:none;border-radius:9px}.sigimg{max-width:100%;height:160px;object-fit:contain}.pre{white-space:pre-wrap}.small{font-size:12px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}.tabs .active{background:#25272a;color:white}.footer{color:var(--muted);font-size:11px;margin-top:24px}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#25272a;color:white;border-radius:10px;padding:14px 22px;max-width:92vw;z-index:9}.nowrap{white-space:nowrap}.right{margin-left:auto}.pill{background:#fff0f3;color:var(--red);padding:7px 10px;border-radius:8px}.hidden{display:none!important}
@media(max-width:950px){main{padding:25px}.grid{grid-template-columns:1fr}.layout{grid-template-columns:190px 1fr}}@media(max-width:640px){.layout{display:block}aside{position:static;height:auto;padding:15px}.brand{font-size:22px}.brand small{display:none}nav{display:flex;overflow:auto;margin-top:12px}nav button{white-space:nowrap;flex-shrink:0;padding:9px 11px}.asidefoot{display:none}main{padding:18px 15px}.heading h1{font-size:27px}.heading.row{align-items:flex-start;flex-direction:column}.stats{gap:7px}.stat{padding:12px}.stat b{font-size:25px}.stat small{font-size:11px}.fields{grid-template-columns:1fr}.card{padding:17px}#mb{padding:18px}.paperhead{flex-wrap:wrap}.row{flex-wrap:wrap}.auth{margin:25px 12px}.top{flex-wrap:wrap}.tablewrap{max-width:100%}}
@media print{body{background:white}#app,#toast,dialog header,.no-print{display:none!important}dialog[open]{position:static;display:block!important;max-height:none;width:100%;margin:0;padding:0;box-shadow:none;border:0}#mb{padding:0}dialog::backdrop{background:none}.tablewrap{overflow:visible}tr,.acceptance{break-inside:avoid}button{display:none!important}.paperhead{break-after:avoid}}
.guide-card summary{cursor:pointer;list-style:none}.guide-card summary h3{margin-top:10px}.guide-answer{font-size:18px;border-left:3px solid var(--red);padding:12px 16px;background:#fff6f8;margin-top:18px;white-space:pre-wrap}.guide-options{display:grid;gap:10px;margin:20px 0}.guide-options button{text-align:left}#practice-feedback{margin:18px 0}
