:root{font-family:Inter,Microsoft YaHei,system-ui,sans-serif;color:#202b43;background:#f3f6fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}.muted{color:#8a95aa}.brand-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#6f94ff,#315ad5);font-weight:800;font-size:28px;box-shadow:0 10px 24px #2f5dda44}.brand-mark.small{width:36px;height:36px;border-radius:10px;font-size:18px;box-shadow:none}.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:linear-gradient(135deg,#17233b 0 50%,#f5f7fb 50%)}.login-brand{align-self:center;max-width:600px;margin:auto;color:#fff;padding:60px}.login-brand h1{font-size:50px;margin:34px 0 16px;letter-spacing:-2px}.login-brand p{color:#b9c5dc;font-size:18px;line-height:1.8}.tech-chips{display:flex;gap:12px;margin-top:36px}.tech-chips span{padding:9px 14px;border:1px solid #ffffff33;border-radius:999px;color:#dce5f8;background:#ffffff0d;font-size:13px}.login-card{align-self:center;justify-self:center;width:min(440px,calc(100% - 40px));padding:48px;border-radius:22px;background:#fff;box-shadow:0 24px 80px #2636511c}.login-card h2{margin:40px 0 8px;font-size:30px}.mobile-brand{display:flex;align-items:center;gap:12px;font-weight:700}label{display:grid;gap:9px;margin-top:20px;color:#46526a;font-size:14px;font-weight:600}input,select{width:100%;border:1px solid #dce2ec;border-radius:10px;padding:12px 14px;color:#26334d;background:#fff;outline:none;transition:.2s}input:focus,select:focus{border-color:#4f7cff;box-shadow:0 0 0 3px #4f7cff1c}.primary,.secondary{border:0;border-radius:10px;padding:11px 18px;font-weight:700}.primary{color:#fff;background:#4f75ed;box-shadow:0 7px 18px #4f75ed35}.primary:hover{background:#3e65dd}.primary:disabled{opacity:.6;cursor:wait}.wide{width:100%;margin-top:26px;padding:13px}.secondary{color:#47546e;background:#edf1f7}.error{color:#d9475b;font-size:14px;margin-bottom:-8px}.demo-tip{color:#9aa4b7;text-align:center;font-size:13px;margin:22px 0 0}.admin-shell{min-height:100vh;display:grid;grid-template-columns:244px 1fr}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:28px 18px;background:#18243b;color:#fff}.logo{display:flex;align-items:center;gap:12px;padding:0 10px 28px;font-size:18px}.sidebar nav{display:grid;gap:8px}.sidebar a{display:flex;gap:14px;align-items:center;padding:13px 16px;border-radius:10px;color:#bdc8db;text-decoration:none;transition:.2s}.sidebar a:hover,.sidebar a.active{color:#fff;background:#4f75ed}.sidebar a span{font-size:19px}.stack-note{display:grid;gap:5px;margin-top:auto;padding:18px;border-radius:12px;background:#ffffff0b;color:#d3dced}.stack-note small{color:#8390a9}.main-area{min-width:0}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;border-bottom:1px solid #e7ebf2;background:#fff}.topbar>div:first-child{display:grid;gap:4px}.crumb{color:#9aa5b7;font-size:12px}.account{display:flex;align-items:center;gap:10px;color:#526078;font-size:14px}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:#3c5eca;background:#e3eaff;font-weight:700}.text-button,.link-button{border:0;color:#4b72e7;background:transparent}.page-content{padding:34px}.welcome,.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}.welcome h1,.page-heading h1{margin:0 0 9px;font-size:27px}.welcome p,.page-heading p{margin:0;color:#8290a7}.status-pill{padding:9px 13px;color:#198c61;border-radius:999px;background:#eaf9f2;font-size:13px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.stat-card{display:grid;min-height:148px;padding:24px;border-radius:16px}.stat-card span{color:#64728a;font-size:14px}.stat-card strong{font-size:38px}.stat-card small{color:#8d99ac}.stat-card.blue{background:#eef3ff;color:#315ed8}.stat-card.green{background:#ebfaf4;color:#159866}.stat-card.orange{background:#fff7e7;color:#d68b13}.panel{margin-top:22px;padding:26px;border:1px solid #e5eaf1;border-radius:16px;background:#fff}.panel-title h2{margin:0 0 5px;font-size:19px}.panel-title p{margin:0;color:#93a0b4;font-size:13px}.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}.tech-grid>div{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid #edf0f5;border-radius:12px}.tech-grid section{display:grid;gap:5px}.tech-grid small{color:#96a1b2}.tech-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;color:#fff;font-weight:800}.tech-icon.vue{background:#38aa7d}.tech-icon.java{background:#ef714e}.tech-icon.db{background:#5585df}.table-panel{padding:0;overflow:hidden}.toolbar{display:flex;align-items:center;gap:10px;padding:20px;border-bottom:1px solid #edf0f5}.toolbar input{width:280px}.inline-message{color:#198c61;font-size:13px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:17px 20px;border-bottom:1px solid #edf0f5;text-align:left;font-size:14px}th{color:#718098;background:#f8f9fc;font-weight:600}td{color:#59667d}td strong{color:#2d3951}.role{padding:5px 9px;border-radius:7px;color:#5272d3;background:#eef2ff;font-size:12px}.role.admin{color:#bf7612;background:#fff3df}.user-status{color:#1a9867}.user-status.off{color:#9ba5b5}.link-button.danger{color:#d94b5e}.empty{padding:50px;color:#9aa5b7;text-align:center}.modal-mask{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:#17233b88;z-index:10}.modal{width:min(460px,100%);padding:28px;border-radius:18px;background:#fff;box-shadow:0 20px 70px #1a274b44}.modal-title{display:flex;justify-content:space-between;align-items:center}.modal-title h2{margin:0}.close{border:0;color:#778399;background:transparent;font-size:28px}.switch-row{display:flex;align-items:center;gap:8px}.switch-row input{width:auto}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}@media(max-width:850px){.login-page{grid-template-columns:1fr;background:#f4f7fb}.login-brand{display:none}.login-card{margin:30px auto}.admin-shell{grid-template-columns:74px 1fr}.sidebar{padding:24px 10px}.logo strong,.sidebar a:not(.active) span+*,.sidebar a{font-size:0}.logo{padding:0 9px 28px}.sidebar a{justify-content:center;padding:13px}.sidebar a span{font-size:19px}.stack-note{display:none}.stat-grid,.tech-grid{grid-template-columns:1fr}.page-content{padding:22px}.account>span:not(.avatar){display:none}}
