:root{--bg:#f6f7f9;--fg:#1d2330;--muted:#6b7280;--line:#d9dde3;--card:#fff;--accent:#e8730c;--danger:#c0392b;--ok:#1e8e3e}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font:14px/1.5 system-ui,-apple-system,Apple SD Gothic Neo,sans-serif}a{color:inherit}input,select,textarea,button{font:inherit}input,select,textarea{border:1px solid var(--line);background:#fff;border-radius:4px;width:100%;padding:6px 8px}button,.btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:4px;padding:6px 12px;text-decoration:none;display:inline-block}.btn-p{background:var(--accent);border-color:var(--accent);color:#fff}.btn-d{color:var(--danger)}.err{color:var(--danger);font-size:12px}.ok{color:var(--ok)}.muted{color:var(--muted)}.login{background:var(--card);border:1px solid var(--line);border-radius:8px;max-width:340px;margin:12vh auto;padding:28px}.login h1{margin:0 0 18px;font-size:18px}.login label{margin:10px 0 4px;display:block}.login button{width:100%;margin-top:16px}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.side{color:#dfe4ea;background:#222a36;padding:16px 0}.side .brand{padding:0 16px 12px;font-weight:700}.side .grp{color:#8f9aa8;padding:10px 16px 4px;font-size:12px}.side a{padding:6px 16px 6px 24px;text-decoration:none;display:block}.side a:hover{background:#2f3947}.top{border-bottom:1px solid var(--line);background:var(--card);justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.main{padding:20px}.main h1{margin:0 0 14px;font-size:18px}table.grid{border-collapse:collapse;background:var(--card);width:100%}table.grid th,table.grid td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 8px}table.grid th{background:#eef0f3;font-weight:600}tr.cnl td{color:var(--muted);text-decoration:line-through}.bar{align-items:center;gap:8px;margin-bottom:12px;display:flex}.form{background:var(--card);border:1px solid var(--line);border-radius:6px;max-width:640px;padding:16px}.form .f{grid-template-columns:140px 1fr;align-items:start;gap:8px;margin-bottom:10px;display:grid}.form .req:after{content:" *";color:var(--danger)}.sec{margin-top:24px}.chk{flex-wrap:wrap;gap:6px 16px;padding:6px 0;display:flex}.chk input{width:auto}.chk label{white-space:nowrap;align-items:center;gap:4px;font-weight:400;display:inline-flex}.cxt-bar{align-items:center;gap:10px;margin-bottom:6px;display:flex}.cxt-wrap{border:1px solid var(--line);background:#fff;border-radius:4px;overflow:auto}.cxt table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.cxt th,.cxt td{border-bottom:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;background:#fff;padding:6px 8px;overflow:hidden}.cxt thead{z-index:2;position:sticky;top:0}.cxt thead th{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f4f5f7;font-weight:600}.cxt thead tr.cxt-g th{cursor:default;border-right:1px solid var(--line)}.cxt thead tr.cxt-f th{cursor:default;padding:3px 4px}.cxt thead tr.cxt-f input{padding:2px 4px;font-size:12px}.cxt .pin{z-index:1;position:sticky}.cxt thead .pin{z-index:3}.cxt tbody tr:hover td{background:#f8fafc}.cxt tr.cnl td{color:#999;text-decoration:line-through}.cxt tr.cnl td:last-child{text-decoration:none}.cxt tfoot td{background:#f4f5f7;font-weight:600;position:sticky;bottom:0}.cxt-empty{text-align:center;color:#999;padding:24px}.cxt-s{color:var(--accent,#e07b24)}
