:root{--purple:#6b2fa2;--purple-dark:#29143f;--yellow:#e0dc58;--ink:#23192f;--muted:#73677e;--line:#e6ddec;--paper:#faf8fc;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:12px;background:var(--yellow);color:#251935;font-weight:700;padding:13px 20px;transition:transform .16s,box-shadow .16s}button:hover{box-shadow:0 5px 18px #29143f22;transform:translateY(-1px)}button:disabled{opacity:.55;cursor:wait;transform:none}button.secondary{background:white;border:1px solid var(--line);color:var(--purple)}button.danger{background:#fff1f1;color:#a62936}button.small{padding:9px 13px;font-size:.88rem}button.icon{background:transparent;padding:5px 12px;font-size:1.6rem;color:inherit}input,select{display:block;width:100%;padding:13px 14px;border:1px solid #cfc0dc;border-radius:10px;background:white;color:var(--ink);min-height:48px}label{display:block;font-size:.92rem;font-weight:650;margin:18px 0 8px}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #b57ce5;outline-offset:3px}input[type=checkbox]{display:inline-block;width:20px;min-height:20px;vertical-align:middle;margin-right:10px}.signin{width:min(460px,calc(100% - 32px));margin:10vh auto;background:#fff;padding:40px;border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 80px #3720470d}.signin h1{font-size:2rem;margin:28px 0 10px}.signin p,.hint{color:var(--muted);line-height:1.6}.signin button[type=submit]{width:100%;margin-top:24px}.show-password{position:relative}.show-password input{padding-right:80px}.show-password button{position:absolute;right:7px;top:7px;background:#f3edf8;padding:8px 12px;font-size:.8rem}.top{height:88px;background:var(--purple);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:fixed;top:0;left:0;right:0;z-index:10;color:white;box-shadow:0 4px 20px #28103e14}.top img{width:180px;max-height:54px}.top .who{display:flex;align-items:center;gap:15px}.top small{display:block;opacity:.75;margin-top:4px}.rail{position:fixed;top:88px;bottom:0;left:0;width:236px;background:linear-gradient(170deg,#32164b,#1b1029);padding:30px 16px;color:#dfd4e9;z-index:8}.rail button{background:transparent;color:inherit;width:100%;text-align:left;margin-bottom:9px;font-weight:500;display:flex;gap:14px;align-items:center;padding:15px}.rail button.active{background:linear-gradient(90deg,#7335ae,#4d236e);border:1px solid #ab7dd0;color:white}.rail svg{width:23px;height:23px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8}.page{margin:88px 0 0 236px}.hero{background:radial-gradient(ellipse at 85% 50%,#66348955,transparent 60%),linear-gradient(110deg,#1b1029,#3b1c56);color:white;padding:40px clamp(24px,4vw,70px);border-bottom:3px solid var(--yellow)}.hero h1{font-size:clamp(2.1rem,3.4vw,3.5rem);letter-spacing:-.04em;margin:0 0 8px}.hero p{color:#d1c1df;line-height:1.6;margin:0}.content{padding:32px clamp(24px,4vw,70px);max-width:1720px}.toolbar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.toolbar select{max-width:390px}.toolbar input{max-width:330px}.toolbar .spacer{flex:1}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px}.stat,.panel{background:white;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 35px #42245606}.stat{padding:25px}.stat strong{display:block;font-size:2.3rem;letter-spacing:-.04em;color:var(--purple);margin-bottom:6px}.stat span{color:var(--muted)}.panel{padding:28px;margin-bottom:24px}.panel h2{margin:0 0 12px;font-size:1.4rem}.panel p{line-height:1.6}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{padding:14px 12px;background:#f8f4fb;color:#6d5b7a;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}td{padding:17px 12px;border-bottom:1px solid #eee8f2;font-size:.95rem}tr:last-child td{border-bottom:0}.actions{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-flex;background:#f0e7f8;color:var(--purple);padding:6px 10px;font-size:.8rem;border-radius:20px;white-space:nowrap}.pill.muted{background:#eee;color:#666}.muted{color:var(--muted)}.empty{text-align:center;padding:50px 20px;color:var(--muted)}.error{color:#b42336;line-height:1.5}.success{color:#217347}dialog{border:1px solid var(--line);border-radius:24px;width:min(600px,calc(100% - 32px));max-height:90dvh;box-shadow:0 25px 100px #20102c44;padding:28px}dialog::backdrop{background:#190d2b99;backdrop-filter:blur(4px)}.modal-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.modal-title h2{margin:0;font-size:1.5rem}dialog footer{display:flex;justify-content:flex-end;gap:12px;padding-top:24px;border-top:1px solid var(--line);margin-top:24px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid label{margin-top:0}.linkbox{padding:14px;background:#f8f4fb;border:1px solid var(--line);border-radius:10px;overflow-wrap:anywhere}.notice{background:var(--purple);color:white;border-radius:14px;padding:16px 22px;box-shadow:0 8px 24px #29143f33}#notice{position:fixed;bottom:24px;right:24px;z-index:50;max-width:min(440px,90vw)}.menu-toggle{display:none}.scope{font-size:.8rem;opacity:.6;position:absolute;bottom:24px;left:30px;right:20px;line-height:1.6}@media(max-width:1000px){.rail{width:205px}.page{margin-left:205px}.top{padding:0 20px}.top .name{max-width:200px;overflow:hidden;text-overflow:ellipsis}.stats{gap:12px}.stat{padding:18px}}@media(max-width:760px){.rail{transform:translateX(-100%);transition:transform .2s}.rail.open{transform:translateX(0);box-shadow:20px 0 60px #20102c55}.page{margin-left:0}.menu-toggle{display:block}.top{height:72px;padding:0 14px}.rail{top:72px}.page{margin-top:72px}.top img{width:135px}.top .name{display:none}.hero{padding:30px 22px}.content{padding:22px 16px}.stats{grid-template-columns:1fr}.stat{display:flex;align-items:center;gap:18px}.stat strong{margin:0}.panel{padding:20px}.grid{grid-template-columns:1fr}dialog{padding:22px}.signin{padding:28px;margin:7vh auto}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stat strong{font-size:clamp(1.5rem,2.3vw,2.3rem)}
