:root{--ink: #1a2233;--paper: #f5f7fa;--primary: #2f5fd6;--primary-dark: #23479f;--success: #1f9d6c;--danger: #c0392b;--line: #dde3ec;--soft: #eef2f9;--muted: #667085;--white: #ffffff;--r: 10px;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--sans);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--primary)}h1,h2,h3{margin:0 0 .5em}.wrap{max-width:960px;margin:0 auto;padding:24px 16px 64px}.hdr{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:8px}.hdr h1{font-size:1.5rem}.hdr .sub{color:var(--muted);font-size:.9rem}.navrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.navrow .spacer{flex:1}.tabacts{display:flex;gap:8px}.surface{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:20px}.surface+.surface{margin-top:16px}.panel{max-width:380px;margin:64px auto}.chrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.chrow:last-child{border-bottom:none}.chrow .meta strong{display:block}.chrow .meta .sub{color:var(--muted);font-size:.85rem}.chrow .acts{display:flex;gap:8px}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--soft);color:var(--muted)}.pill.ok{background:#e3f6ec;color:var(--success)}.pill.warn{background:#fdece9;color:var(--danger)}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:8px;border:1px solid var(--line);background:var(--white);color:var(--ink);font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{background:var(--soft)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--white)}.btn.primary:hover{background:var(--primary-dark)}.btn.danger{color:var(--danger);border-color:#f3d3ce}.btn.sm{padding:6px 12px;font-size:.82rem}.btn:disabled{opacity:.6;cursor:default}label.fld{display:block;margin-bottom:14px}label.fld>span{display:block;font-size:.85rem;font-weight:600;margin-bottom:4px}label.fld .opt{color:var(--muted);font-weight:400}.hint{display:block;color:var(--muted);font-size:.8rem;margin-top:4px}input,select,textarea{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font-family:var(--sans);font-size:.92rem;background:var(--white);color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:1px}.fldrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 16px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}@media (max-width: 520px){.grid2{grid-template-columns:1fr}}.formacts{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.error{background:#fdece9;color:var(--danger);border:1px solid #f3d3ce;border-radius:8px;padding:10px 14px;font-size:.88rem;margin-bottom:16px}.notice{background:#e3f6ec;color:var(--success);border:1px solid #bfe8d3;border-radius:8px;padding:10px 14px;font-size:.88rem;margin-bottom:16px}.tblwrap{overflow-x:auto}.tbl{width:100%;border-collapse:collapse}.tbl th,.tbl td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);font-size:.9rem}.tbl th{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.tbl .acts{text-align:right}.tbl .blank{text-align:center;color:var(--muted);padding:32px 12px}@media (max-width: 640px){.tbl.stack thead{display:none}.tbl.stack,.tbl.stack tbody,.tbl.stack tr,.tbl.stack td{display:block;width:100%}.tbl.stack tr{border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px;padding:6px 12px}.tbl.stack td{border-bottom:none;padding:6px 0}.tbl.stack td[data-label]:before{content:attr(data-label);display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase}.tbl.stack td.oneline:before{display:inline;margin-right:6px}}.appshell{min-height:100vh}.topbar{display:flex;align-items:center;gap:20px;padding:0 20px;height:56px;background:var(--white);border-bottom:1px solid var(--line)}.topbar .brand{font-weight:700}.topbar nav{display:flex;gap:4px}.topbar nav a{padding:8px 12px;border-radius:8px;color:var(--muted);font-size:.9rem;font-weight:600;text-decoration:none;cursor:pointer}.topbar nav a.active{background:var(--soft);color:var(--primary)}.topbar .spacer{flex:1}.topbar .who{color:var(--muted);font-size:.85rem}
