:root{--y:#f7b500;--bk:#111;--bg:#f4f5f7;--bd:#e2e5ea;--tx:#1f2937;--mt:#6b7280}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--tx);display:flex;min-height:100vh}
#side{width:230px;background:var(--bk);color:#fff;flex-shrink:0;position:sticky;top:0;height:100vh;padding:14px 10px}
.logo{font-size:20px;font-weight:700;padding:8px 10px 18px}.logo span{color:var(--y)}
nav button{display:block;width:100%;text-align:left;background:none;border:0;color:#cbd5e1;padding:11px 12px;border-radius:8px;font-size:14px;cursor:pointer;margin-bottom:3px}
nav button:hover{background:#222}nav button.on{background:var(--y);color:#000;font-weight:600}
#wrap{flex:1;min-width:0}header{display:flex;align-items:center;gap:12px;padding:14px 22px;background:#fff;border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:5}
header h2{margin:0;font-size:19px;flex:1}.ham{display:none;background:none;border:0;font-size:22px}
main{padding:20px 22px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-bottom:18px}
.card{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:14px 16px;border-top:4px solid var(--y)}
.card span{display:block;font-size:12px;color:var(--mt)}.card b{font-size:19px}.card.g{border-top-color:#16a34a}.card.r{border-top-color:#dc2626}
.panel{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:16px;margin-bottom:18px}.panel h3{margin:0 0 12px;font-size:16px}
.g{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:12px}
label{display:block;font-size:12px;color:var(--mt);font-weight:600}
input,select,textarea{width:100%;padding:9px 10px;border:1px solid #cfd4db;border-radius:8px;font:inherit;font-size:14px;margin-top:4px;background:#fff;color:var(--tx)}
.btn,.btn2,.sm{border:0;border-radius:8px;padding:9px 16px;font-weight:600;cursor:pointer;font-size:14px;background:var(--y);color:#000}
.btn2{background:#e5e7eb}.sm{padding:5px 9px;font-size:12px;background:#e5e7eb;margin-right:4px}.sm.d{background:#fee2e2;color:#b91c1c}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13.5px}th{text-align:left;background:#f9fafb;padding:9px 10px;border-bottom:1px solid var(--bd);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid #eef0f3;vertical-align:top}.mt{color:var(--mt);text-align:center}.neg{color:#dc2626;font-weight:600}.pos{color:#15803d;font-weight:600}
.badge{background:#fee2e2;color:#b91c1c;border-radius:20px;padding:2px 8px;font-size:12px;font-weight:600}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.row>*{width:auto}.row input,.row select{max-width:220px;margin:0}.sp{flex:1}
dialog{border:0;border-radius:14px;padding:20px;width:min(440px,94vw)}dialog::backdrop{background:#0008}dialog form label{margin-bottom:10px}dialog h3{margin-top:0}dialog .row{justify-content:flex-end;margin:14px 0 0}
canvas{width:100%;display:block}.note{font-size:12.5px;background:#fffbeb;border:1px solid #fde68a;padding:10px;border-radius:8px}
@media(max-width:800px){#side{position:fixed;left:-240px;z-index:20;transition:.2s}#side.open{left:0}.ham{display:block}main{padding:14px}}
a.btn2{text-decoration:none;color:inherit;display:inline-block}#cb{width:auto;max-width:200px}
.lg{max-width:380px;margin:8vh auto;padding:0 14px;width:100%}.lg .panel{padding:22px}.lg h1{font-size:22px;margin:0 0 14px}.err{background:#fee2e2;color:#b91c1c;padding:9px;border-radius:8px;margin-bottom:12px;font-size:13px}.ok{background:#dcfce7;color:#166534;padding:9px;border-radius:8px;margin-bottom:12px;font-size:13px}.lg label{margin-bottom:10px}body.c{display:block}
