:root{--bg:#f5f7fa;--ink:#1e293b;--muted:#7b8799;--border:#e5eaf1;--blue:#3867ef;--nav:#111c32}*{box-sizing:border-box}body{margin:0;font:14px/1.6 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--blue);text-decoration:none}button,input,select{font:inherit}button{border:1px solid var(--border);border-radius:8px;background:white;color:var(--ink);padding:10px 16px;cursor:pointer;font-weight:600}button:hover{filter:brightness(.96)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #97b5ff;outline-offset:2px}.primary{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 4px 10px #3867ef18}.full{width:100%}.muted,small{color:var(--muted)}small{display:block;font-size:12px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;line-height:1.25;letter-spacing:-1px;margin-bottom:10px}h2{font-size:17px;font-weight:650;margin-bottom:14px}h3{font-size:14px}aside{position:fixed;width:238px;inset:0 auto 0 0;background:var(--nav);color:#fff;padding:32px 20px;display:flex;flex-direction:column}.brand{font-size:25px;font-weight:750;color:inherit;display:flex;align-items:center;gap:10px;letter-spacing:-1px}.brand-light{font-weight:400}.workspace{font-size:12px;color:#bac5d9;border-top:1px solid #ffffff14;margin-top:30px;padding:26px 10px 0}.workspace small{font-size:9px;letter-spacing:1.5px;margin-top:26px;color:#72819d}.dot{width:6px;height:6px;background:#47ce9c;border-radius:50%;display:inline-block;margin-right:7px}nav{margin-top:12px}nav a{display:flex;gap:12px;color:#a7b4ce;padding:12px 14px;margin-bottom:7px;border-radius:8px}nav a.active{background:#2c4272;color:#fff}nav a:hover{color:#fff}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff14;padding-top:22px;display:flex;align-items:center;gap:10px;font-size:12px}.sidebar-bottom small{font-size:10px}.avatar{background:#314768;width:34px;height:34px;border-radius:50%;display:grid;place-items:center}.logout{padding:5px;color:#b8c6e1;background:transparent;border:0;font-size:21px}main{margin-left:238px;padding:42px 48px;min-height:100vh}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:700;color:#8490a4;margin-bottom:22px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}header p{margin-bottom:0}header button{flex-shrink:0}.card{background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 2px 4px #15264802}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px}.stats .card{padding:23px 26px}.stats span{font-size:12px;color:#728096}.stats strong{display:block;font-size:32px;font-weight:600;margin:9px 0 4px}.stats small{font-size:11px}.table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px}.table-toolbar h2{margin:0}.count{display:inline-block;font-size:11px;background:#edf2ff;color:var(--blue);padding:2px 8px;border-radius:6px;margin-left:7px}.search{display:flex;gap:8px}.search input{width:250px;margin:0}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:10px;text-transform:uppercase;letter-spacing:.8px;font-weight:600;color:#8793a5;background:#fafbfd}th,td{padding:16px 24px;border-bottom:1px solid #edf0f5}td{font-size:12px}.user-link{display:flex;align-items:center;gap:12px;color:var(--ink);font-weight:600}.user-link small{font-size:10px;font-weight:400}.user-icon{width:34px;height:34px;border-radius:9px;background:#eef2ff;color:#5e7ee0;display:grid;place-items:center;font-weight:600}.tag{font-size:10px;background:#f0f3f9;border:1px solid #e5eaf4;border-radius:5px;padding:4px 6px;display:inline-block;margin:2px}.badge{font-size:10px;font-weight:600;padding:5px 9px;border-radius:5px;display:inline-block}.enabled{color:#16805d;background:#eaf8f1}.locked{color:#977131;background:#fff5e3}.arrow{font-size:20px;color:#8c9ab1}.table-footer{padding:16px 24px;display:flex;justify-content:space-between;color:#8a96a7;font-size:10px}.empty{padding:30px;color:var(--muted);text-align:center}.padded{padding:26px}.detail-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.back{display:inline-block;margin-bottom:22px;font-size:12px}.role-line{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}.separated{margin-top:24px;border-top:1px solid var(--border);padding-top:22px}.danger{color:#b94444;border-color:#f1d7d7}.subtle{font-size:12px;padding:7px 12px}.grants{margin-top:22px}pre{background:#f5f7fb;border:1px solid var(--border);padding:16px;border-radius:7px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}code{font:12px ui-monospace,monospace}.role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.role-card{display:block;padding:24px;color:var(--ink)}.role-card:hover{border-color:#a2b7f9}.role-symbol{font-size:26px;color:var(--blue);margin-bottom:10px}.role-bottom{border-top:1px solid var(--border);padding-top:16px;margin-top:24px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.role-bottom span{color:var(--blue)}label{display:block;font-size:12px;font-weight:600;margin-bottom:18px}input,select{display:block;width:100%;padding:10px 12px;background:#fff;border:1px solid #dce3ee;border-radius:7px;color:var(--ink);margin-top:7px;min-height:42px}label small{font-weight:400;margin-top:6px}.checkbox{display:flex;align-items:center;gap:9px}.checkbox input{width:16px;min-height:16px;margin:0;accent-color:var(--blue)}dialog{border:1px solid var(--border);border-radius:14px;padding:28px;width:440px;max-width:calc(100% - 32px);box-shadow:0 24px 80px #17233c33}dialog::backdrop{background:#111c3280;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:0}.ghost{border:0;padding:4px 8px}.notice{padding:14px 18px;background:#eef3ff;border:1px solid #d6e1ff;border-radius:8px;margin-bottom:22px;font-size:12px}.notice.error{background:#fff0f0;border-color:#f5d4d4;color:#a63f3f}.notice.success{background:#eaf8f1;border-color:#c5ead8;color:#16805d}footer{margin-top:38px;font-size:10px;color:#9aa5b5;display:flex;justify-content:space-between}.guest{margin:0;padding:0 5%;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(ellipse at top left,#e8efff,transparent 65%),var(--bg)}.guest footer{max-width:1000px;width:100%;margin:45px auto 25px}.login-wrap{display:grid;grid-template-columns:1fr 420px;gap:80px;align-items:center;max-width:1000px;width:100%;margin:60px auto 0}.login-story h1{font-size:60px;letter-spacing:-3px;line-height:1.1}.login-story p{font-size:16px;color:#78869c;max-width:340px;margin-top:25px}.login-card{padding:36px}.login-card .brand{color:var(--blue);font-size:22px;margin-bottom:35px}.login-card h2{font-size:24px;margin-bottom:8px}.login-card>p{margin-bottom:28px}.login-card>small{margin-top:20px;text-align:center}.login-art{display:flex;align-items:center;margin-top:40px;font:10px ui-monospace,monospace;color:#6881bd}.login-art span{border:1px solid #c6d5f5;padding:16px;border-radius:9px;background:#ffffff80}.login-art i{width:28px;height:1px;background:#c6d5f5}@media(max-width:1100px){main{padding:32px 24px}aside{width:210px}main:not(.guest){margin-left:210px}th,td{padding:14px}.login-wrap{gap:35px}.login-story h1{font-size:45px}}@media(max-width:760px){aside{position:static;width:100%;padding:16px 20px}.workspace,.sidebar-bottom{display:none}nav{display:flex;margin-top:12px;gap:5px}nav a{font-size:12px;padding:8px;margin:0;gap:5px}main:not(.guest){margin:0;padding:25px 16px}header{align-items:flex-start;flex-direction:column}h1{font-size:27px}.stats{gap:8px}.stats .card{padding:15px 12px}.stats strong{font-size:25px}.stats small{display:none}.table-toolbar{align-items:flex-start;flex-direction:column;padding:16px}.search{width:100%}.search input{width:100%}.detail-grid,.role-grid{grid-template-columns:1fr}.table-footer span{display:none}.login-wrap{grid-template-columns:1fr;max-width:420px;margin-top:30px}.login-story{display:none}.login-card{padding:28px}footer span{display:none}.role-line{flex-wrap:wrap}}
