:root{font-family:Inter,"Microsoft YaHei",Arial,sans-serif;color:#1e2940;background:#f5f7fb;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{opacity:.55;cursor:wait}.primary{background:#f35f42;color:white;border-radius:10px;padding:12px 18px;font-weight:700}.primary:hover{background:#dc5034}.outline{background:white;border:1px solid #dce3ef;border-radius:10px;padding:11px 16px;color:#34415b}.outline:hover{background:#f8faff}.muted{color:#79849a}.eyebrow{font-size:11px;letter-spacing:.2em;color:#f35f42;font-weight:800}.mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#f35f42;color:white;font-weight:800;font-size:21px}.login-shell{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(145deg,#edf2ff,#f9fafc)}.login-card{width:min(420px,100%);padding:34px;background:white;border:1px solid #e4e9f2;border-radius:22px;box-shadow:0 18px 48px #27406815}.login-card h1{font-size:27px;margin:16px 0 8px}.login-card label{margin-top:20px}.login-card .primary{width:100%;margin-top:22px}.error{color:#c23a39;min-height:1.2em}label{display:flex;flex-direction:column;gap:7px;color:#46536a;font-weight:600}input,select,textarea{border:1px solid #d8e1ed;border-radius:9px;background:white;padding:11px 12px;color:#1e2940;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #ffb3a2;border-color:#f35f42}label small{font-weight:400;color:#8b95a8}#appView{display:flex;min-height:100vh}#appView[hidden],section[hidden],main[hidden]{display:none!important}aside{width:225px;flex:0 0 225px;background:#17243c;color:#e5ebf6;padding:26px 17px;display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;font-size:18px;font-weight:800}.brand small{display:block;color:#8fa1c0;font-size:11px;font-weight:400;margin-top:3px}nav{display:grid;gap:8px;margin-top:42px}nav button{text-align:left;padding:13px 12px;border-radius:9px;background:transparent;color:#aab9cf}nav button:hover,nav button.active{background:#2a3954;color:white}.side-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;color:#aab9cf}.side-bottom button{background:transparent;color:#aab9cf}.content{flex:1;min-width:0;padding:32px 38px;max-width:1650px}.content header{display:flex;justify-content:space-between;align-items:start;margin-bottom:26px}.content h1{margin:4px 0;font-size:28px}.content p{margin:6px 0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stats article,.card{background:white;border:1px solid #e5eaf2;border-radius:15px;box-shadow:0 5px 20px #17243c08}.stats article{padding:18px 22px}.stats span{display:block;color:#78869c}.stats strong{display:block;font-size:28px;margin-top:9px}.card{padding:20px 22px;margin-bottom:20px}.card h2{margin:0 0 5px;font-size:19px}.card-title{display:flex;justify-content:space-between}.card-title p{color:#8793a6}.create-row{display:grid;grid-template-columns:1.2fr .75fr .8fr .9fr .9fr auto;gap:13px;align-items:end;padding:18px 0}.create-row .primary{height:42px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:13px 10px;border-top:1px solid #edf0f6;text-align:left}th{font-size:12px;color:#8290a7;font-weight:700}td button{background:#eef3fa;color:#3a4d6b;border-radius:8px;padding:7px 10px;margin-right:5px}.badge{padding:4px 8px;border-radius:8px;background:#e5f6ed;color:#248456;font-size:12px}.badge.off{background:#fff0ef;color:#ba4a43}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.log-list{max-height:65vh;overflow:auto}.log-item{padding:12px 0;border-bottom:1px solid #e9edf4}.log-item strong{display:block;font-size:13px}.log-item small{display:block;color:#8894a8;margin-top:5px;word-break:break-all}#notice{color:#47617c;min-height:1.2em}dialog{border:1px solid #e1e7f0;border-radius:16px;padding:24px;width:min(480px,calc(100vw - 30px));box-shadow:0 24px 70px #111c3740}dialog::backdrop{background:#15223f80}dialog h2{margin:0 0 8px}dialog form{display:grid;gap:16px}.check{flex-direction:row;align-items:center}.dialog-actions{display:flex;justify-content:end;gap:10px;margin-top:12px}.secret-card textarea{width:100%;height:100px;resize:none;word-break:break-all;margin-top:15px}.token-row{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid #e8edf5}.token-row code{overflow-wrap:anywhere;font-size:11px}.token-row button{background:#fff0ef;color:#ba4a43;border-radius:7px;padding:7px 10px}@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.create-row{grid-template-columns:repeat(2,1fr)}.create-row .primary{grid-column:span 2}.grid-two{grid-template-columns:1fr}}@media(max-width:700px){#appView{display:block}aside{width:auto;min-height:0;padding:16px}nav{margin-top:14px;display:flex}.side-bottom{margin-top:15px}.content{padding:18px}.stats{grid-template-columns:repeat(2,1fr)}.create-row{grid-template-columns:1fr}.create-row .primary{grid-column:span 1}}

#groupForm{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;max-width:760px}#grantForm{display:grid;gap:12px;margin:16px 0}#grantList{max-height:240px;overflow:auto}
@media(max-width:700px){#groupForm{grid-template-columns:1fr}}
.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stats article small{display:block;color:#8591a5;font-size:12px;margin-top:6px}.stats strong b{font:inherit}.content{max-width:none}@media(min-width:1400px){.stats{grid-template-columns:repeat(8,minmax(0,1fr))}}@media(max-width:900px){nav{overflow:auto}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
