@charset "UTF-8";
:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#1b263b;background:#f3f5f9;font-size:16px;--blue:#2449df;--nav:#111e38;--line:#e0e5ef;--muted:#64738a}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button,a{touch-action:manipulation}a{color:var(--blue);text-decoration:none}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}.boot{padding:80px;text-align:center;color:var(--muted)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{font-weight:800;letter-spacing:-.07em;font-size:25px;color:#fff;background:var(--blue);padding:10px 12px;border-radius:10px}.brand-name{font-size:16px;font-weight:600}.brand-sub{font-size:14px;color:#94a6c6;margin-top:5px}.auth-shell{min-height:100vh;display:grid;grid-template-columns: minmax(280px, .8fr) minmax(450px,1.2fr)}.auth-side{background:var(--nav);color:white;padding:52px;display:flex;flex-direction:column;justify-content:space-between}.auth-side h1{font-size:42px;font-weight:650;line-height:1.4;letter-spacing:-.04em;margin:60px 0 22px}.auth-side p{color:#bdc9df;line-height:1.9;max-width:340px}.auth-footer{color:#8c9fc0;font-size:14px}.auth-main{display:flex;align-items:center;justify-content:center;padding:48px 30px;background:#fff}.auth-panel{width:100%;max-width:530px}.auth-panel h2{font-size:28px;margin:0 0 12px}.auth-panel>p{color:var(--muted);line-height:1.8}.login-note{border-top:1px solid var(--line);margin-top:32px;padding-top:22px;color:var(--muted);font-size:14px;line-height:1.8}.btn{border:1px solid var(--line);background:white;color:#26364f;padding:10px 16px;border-radius:7px;font-size:14px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:550}.btn.primary{background:var(--blue);border-color:var(--blue);color:white}.btn.danger{color:#b02d42;border-color:#efcbd2}.btn.link{background:transparent;border:0;color:var(--blue);padding:6px 8px}.btn.wide{width:100%;margin-top:20px;font-size:16px;padding:14px}.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#d0d9e9;display:flex;flex-direction:column;padding:26px 18px;position:sticky;top:0;height:100vh}.sidebar .brand{margin:4px 10px 30px}.sidebar .brand-mark{font-size:21px;padding:8px 9px}.sidebar .brand-name{color:#fff}.nav-label{padding:22px 14px 10px;font-size:14px;color:#8195b7}.nav-button{display:flex;align-items:center;gap:12px;padding:13px 16px;width:100%;border:0;background:transparent;color:#c8d3e5;border-radius:7px;text-align:left;margin:3px 0;font-size:15px}.nav-button:hover{background:#1b2c4a}.nav-button.selected{background:#2949cc;color:#fff}.nav-button svg{width:19px;height:19px;flex:none}.sidebar-bottom{margin-top:auto;font-size:14px;color:#8599bb;padding:20px 14px;line-height:1.8}.main{min-width:0}.topbar{height:82px;padding:0 36px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line);gap:20px}.topbar-title{font-weight:600}.topbar-user{display:flex;align-items:center;gap:12px;font-size:14px;flex-wrap:wrap}.avatar{width:34px;height:34px;border-radius:50%;background:#e6ecff;color:var(--blue);display:grid;place-items:center;font-weight:700}.content{max-width:1440px;margin:auto;padding:34px 36px 50px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px}.page-head h1{font-size:28px;letter-spacing:-.03em;margin:0 0 10px}.page-head p{margin:0;color:var(--muted);font-size:15px;line-height:1.8}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:30px}.summary-box{border:1px solid var(--line);border-radius:9px;background:white;padding:22px;display:flex;justify-content:space-between;align-items:center}.summary-box p{margin:0;color:var(--muted);font-size:14px}.summary-box strong{font-size:30px;font-weight:650}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-title h2{font-size:18px;margin:0}.app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:20px}.app-card{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden;max-width:520px}.app-card-body{padding:25px}.app-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.app-icon{height:48px;width:48px;background:#eef1ff;color:var(--blue);border-radius:10px;display:grid;place-items:center}.app-icon svg{width:26px;height:26px}.app-card h3{font-size:20px;margin:0 0 12px}.app-card p{color:var(--muted);font-size:15px;line-height:1.8;margin:0;min-height:54px}.app-card-footer{border-top:1px solid var(--line);padding:16px 25px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fcfdff}.app-card-footer>span{font-size:14px;color:var(--muted)}.badge{font-size:14px;white-space:nowrap;display:inline-block;padding:5px 9px;border-radius:5px;color:#57657b;background:#edf0f5}.badge.active,.badge.approved,.badge.ready{background:#e8f5ee;color:#246d4a}.badge.pending,.badge.invited{background:#fff3da;color:#8c641c}.badge.suspended,.badge.rejected,.badge.disabled{background:#fbe9ed;color:#a12f46}.notice{padding:16px 20px;border:1px solid #d5dffb;background:#eef3ff;border-radius:8px;color:#35517e;font-size:15px;line-height:1.8;margin-bottom:24px}.notice.warn{border-color:#ecd9ac;background:#fff9ea;color:#856421}.panel{background:white;border:1px solid var(--line);border-radius:9px;padding:26px;min-width:0}.panel h2{font-size:18px;margin:0 0 20px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.field{display:flex;flex-direction:column;gap:8px;font-size:14px}.field.full{grid-column:1/-1}.field label{font-weight:550}.field input,.field select,.field textarea{width:100%;border:1px solid #cdd6e4;border-radius:6px;padding:11px 12px;font-size:16px;color:#21324d;background:white;min-width:0}.field textarea{min-height:95px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}.field input:read-only{background:#f5f7fa;color:#68768e}.hint{font-size:14px;color:var(--muted);line-height:1.7}.form-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:25px;align-items:center;flex-wrap:wrap}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:9px}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th{background:#f7f9fc;color:#6a778d;font-weight:550;padding:15px 18px;white-space:nowrap}td{border-top:1px solid var(--line);padding:17px 18px;line-height:1.7;vertical-align:top}.row-name{font-weight:600;color:#22324c}.subtext{color:var(--muted);font-size:14px;margin-top:4px}.actions{display:flex;gap:6px;flex-wrap:wrap}.empty{padding:48px;text-align:center;color:var(--muted);background:white;border-radius:8px;line-height:1.8}.error{color:#a52d40;line-height:1.8;margin-top:14px}.loading{padding:50px;color:var(--muted)}dialog{border:0;border-radius:12px;padding:28px;width:min(640px,calc(100% - 32px));max-height:90vh;color:#22324c;box-shadow:0 22px 80px #0c18323b}dialog::backdrop{background:#101d3b70}dialog h2{font-size:22px;margin:0 0 20px}dialog p{font-size:15px;line-height:1.8;color:var(--muted)}.secret{font-family:Consolas,monospace!important;word-break:break-all;min-height:120px!important;font-size:14px!important}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#172741;color:white;border-radius:8px;padding:13px 22px;box-shadow:0 8px 30px #15254230;z-index:10;display:none;max-width:90%;line-height:1.7;font-size:15px}#toast.show{display:block}.check-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);gap:14px}.check-row:last-child{border:0}.check-row input{width:20px;height:20px}.security-link{display:flex;justify-content:space-between;align-items:center;gap:20px}.profile-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:22px}.mono{font-family:Consolas,monospace;overflow-wrap:anywhere}#dialog-error{color:#a52d40;font-size:14px;line-height:1.7;margin-top:12px}.auth-panel .fields{gap:15px}.auth-panel .field input{padding:10px}.mobile-brand{display:none}
@media(max-width:1050px){.shell{grid-template-columns:205px minmax(0,1fr)}.topbar{padding:0 24px}.content{padding:28px 24px}.profile-layout{grid-template-columns:1fr}.auth-side{padding:35px}.auth-side h1{font-size:34px}}
@media(max-width:720px){.auth-shell{display:block}.auth-side{padding:25px;min-height:auto}.auth-side h1,.auth-side p,.auth-footer{display:none}.auth-main{padding:35px 24px}.shell{display:block}.sidebar{height:auto;position:static;padding:14px}.sidebar .brand{margin:0 4px 12px}.sidebar nav{display:flex;gap:6px;overflow:auto}.sidebar-bottom,.nav-label{display:none}.nav-button{width:auto;white-space:nowrap;padding:10px 12px;margin:0}.nav-button svg{display:none}.topbar{padding:15px 20px;height:auto;min-height:68px}.topbar-title{display:none}.topbar-user{width:100%;justify-content:flex-end}.content{padding:26px 20px}.page-head h1{font-size:25px}.page-head{flex-wrap:wrap}.summary{gap:10px}.summary-box{padding:16px 12px;display:block}.summary-box strong{display:block;margin-top:10px;font-size:27px}.summary-box p{font-size:14px}.fields{grid-template-columns:1fr}.panel{padding:21px}.app-grid{grid-template-columns:1fr}.app-card{max-width:none}.security-link{flex-wrap:wrap}.auth-panel h2{font-size:25px}.topbar .btn{padding:7px 10px}.table-wrap table{min-width:640px}}
