:root{--bg: #f4f6f8;--card: #fff;--line: #e4e8ee;--text: #1f2a37;--muted: #6b7686;--green: #37b24d;--green-d: #1f7a34;--red: #c0392b;--sidebar: #0d1b2a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit;font-size:14px}.btn{padding:9px 16px;border:1px solid var(--line);background:#fff;border-radius:8px;font-weight:600;font-size:14px}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.sm{padding:5px 12px;font-size:13px}.btn:disabled{opacity:.6}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--sidebar)}.login form{background:#fff;padding:34px;border-radius:16px;width:340px;display:flex;flex-direction:column;gap:12px}.logo{font-size:26px;font-weight:800}.logo b{color:var(--green)}.lsub{color:var(--muted);font-size:13px;margin-bottom:8px}.login label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.login input{padding:10px;border:1px solid var(--line);border-radius:8px}.error{background:#fbe0e0;color:var(--red);padding:8px 12px;border-radius:8px;font-size:13px}.layout{display:grid;grid-template-columns:210px 1fr;min-height:100vh}.side{background:var(--sidebar);color:#fff;padding:20px 14px;display:flex;flex-direction:column}.side .logo{color:#fff}.side .lsub{color:#7c8b9c}.nav{display:flex;flex-direction:column;gap:4px;margin-top:22px;flex:1}.nav button{text-align:left;background:none;border:0;color:#b9c4d0;padding:10px 12px;border-radius:8px;font-size:14px;font-weight:600}.nav button.active,.nav button:hover{background:#ffffff14;color:#fff}.ver{color:#5f6f80;font-size:11px}.head{display:flex;align-items:center;padding:14px 26px;border-bottom:1px solid var(--line);background:#fff}.head .store{font-weight:700}.head .who{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}.head .role{background:#eef1f4;padding:2px 8px;border-radius:999px;text-transform:capitalize}.content{padding:26px}h1{font-size:22px;margin-bottom:16px}.pagehd{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.pagehd h1{margin:0}.muted{color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.tile{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.tile.warn{border-color:#f0c9a8;background:#fff8f0}.tile .k{color:var(--muted);font-size:13px;margin-bottom:8px}.tile .v{font-size:30px;font-weight:800}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.grid{width:100%;border-collapse:collapse;font-size:14px}.grid th,.grid td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line)}.grid th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px}.grid .rt{text-align:right}.grid tr.rowoff td{opacity:.5}.grid td.exp{color:var(--red);font-weight:600}.modalbg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1b2a8c;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:50}.modal{background:#fff;border-radius:14px;padding:22px}.modal h3{display:flex;align-items:center;margin-bottom:14px}.modal h3 .x{margin-left:auto;background:none;border:0;font-size:22px;color:var(--muted)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-size:12px;color:var(--muted)}.field input,.field select{padding:9px 11px;border:1px solid var(--line);border-radius:8px}.field input[readonly]{background:#f4f6f8;color:var(--muted)}.fg{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.ents,.ownerbox{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.ents b,.ownerbox b{display:block;margin-bottom:8px;font-size:13px}.ents{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.ents label{font-size:14px;display:inline-flex;align-items:center;gap:6px}.editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.matrix{max-height:55vh;overflow-y:auto;border:1px solid var(--line);border-radius:10px}.matmod{border-bottom:1px solid var(--line)}.matmodhd{background:#f4f6f8;padding:8px 12px;font-weight:700;font-size:13px}.matcaps{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;padding:10px 12px}.matcaps label{font-size:13px;display:flex;align-items:center;gap:6px;color:var(--muted)}.matcaps label.on{color:var(--text);font-weight:600}
