:root{--navy:#12233d;--navy-2:#18304f;--blue:#1677ff;--blue-dark:#0863d7;--bg:#f3f6fa;--card:#fff;--text:#172033;--muted:#7b879b;--line:#e5eaf1;--green:#19aa68;--red:#e5484d;--shadow:0 12px 35px rgba(19,38,68,.08)}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Arial,sans-serif;color:var(--text);background:var(--bg)}
button,input{font:inherit}button,a{transition:.18s ease}a{color:inherit;text-decoration:none}
.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:246px;background:linear-gradient(180deg,var(--navy),#0d1c31);color:#c7d1df;display:flex;flex-direction:column;padding:24px 16px}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 28px;color:#fff}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(145deg,#3397ff,#106bea);font-weight:800;box-shadow:0 8px 20px rgba(22,119,255,.3)}.brand strong,.brand small{display:block}.brand strong{font-size:17px;letter-spacing:.05em}.brand small{font-size:10px;color:#8393a9;margin-top:3px;letter-spacing:.12em}.nav-list{display:grid;gap:7px}.nav-list a{height:46px;display:flex;align-items:center;gap:13px;padding:0 15px;border-radius:10px;font-size:14px}.nav-list a span{width:20px;text-align:center;font-size:17px}.nav-list a:hover{color:#fff;background:rgba(255,255,255,.06)}.nav-list a.active{color:#fff;background:linear-gradient(90deg,#1677ff,#3c8ef5);box-shadow:0 7px 18px rgba(22,119,255,.25)}.nav-list .danger-nav{margin-top:9px}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.09);padding:17px 8px 0;display:flex;align-items:center;justify-content:space-between}.sidebar-footer>a{font-size:12px;color:#94a2b6}.user-chip{display:flex;gap:9px;align-items:center}.user-chip>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#28405e;color:#fff}.user-chip strong,.user-chip small{display:block}.user-chip strong{font-size:13px;color:#fff;max-width:80px;overflow:hidden;text-overflow:ellipsis}.user-chip small{font-size:11px;margin-top:2px}.main{padding-left:246px;min-height:100vh}.topbar{height:88px;padding:0 34px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.topbar p{margin:0 0 3px;color:#9aa5b5;font-size:11px}.topbar h1{margin:0;font-size:20px}.top-status{font-size:12px;color:#667085;background:#f7f9fc;padding:8px 12px;border-radius:20px}.top-status i,.presence i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:7px}.menu-button{display:none;background:none;border:0;font-size:24px}.content{padding:30px 34px 50px;max-width:1500px;margin:auto}.flash{margin:18px 34px 0;padding:13px 16px;border-radius:10px;font-size:14px}.flash.success{background:#eaf9f1;color:#087746;border:1px solid #c9efdc}.flash.error{background:#fff0f0;color:#b4232c;border:1px solid #ffd5d5}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-heading p{margin:0 0 5px;color:var(--blue);font-size:12px;font-weight:700}.section-heading h2{margin:0;font-size:24px}.section-heading span{display:block;color:var(--muted);font-size:13px;margin-top:7px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;min-height:42px;padding:0 18px;font-weight:600;cursor:pointer}.primary-button{color:#fff;background:var(--blue);box-shadow:0 8px 18px rgba(22,119,255,.18)}.primary-button:hover{background:var(--blue-dark);transform:translateY(-1px)}.secondary-button{color:#5f6d82;background:#f1f4f8}.link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.link-card{position:relative;background:#fff;border:1px solid #e7ebf1;border-radius:14px;box-shadow:0 5px 20px rgba(24,42,70,.04);overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;padding:19px 20px;border-bottom:1px solid #edf0f4}.link-identity{display:flex;gap:12px;min-width:0;align-items:center}.link-identity>span{flex:none;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#eaf3ff;color:var(--blue);font-weight:800}.link-identity div{min-width:0}.link-identity p{font-size:14px;font-weight:650;margin:0 0 5px;min-height:17px}.link-identity a{display:block;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#8b96a7}.copy-button{border:1px solid #dce3ec;background:#fff;color:#657287;border-radius:8px;padding:7px 10px;font-size:12px;cursor:pointer}.copy-button:hover{border-color:#9ec8ff;color:var(--blue)}.metrics{display:grid;grid-template-columns:1fr 1.25fr 1fr;padding:19px 20px}.metrics>div+div{border-left:1px solid var(--line);padding-left:18px}.metrics small,.metrics strong{display:block}.metrics small{color:#929cac;font-size:11px;margin-bottom:8px}.metrics strong{font-size:16px}.remaining{font-variant-numeric:tabular-nums;color:#f08c25}.remaining.expired{color:var(--muted)}.presence{font-size:13px!important;color:#8e99aa}.presence i{background:#abb4c2}.presence.online{color:var(--green)}.presence.online i{background:var(--green);box-shadow:0 0 0 3px rgba(25,170,104,.12)}.presence span{display:inline}.card-actions{height:48px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr}.card-actions>button,.card-actions form button{width:100%;height:100%;border:0;background:#fafbfd;color:#637086;cursor:pointer;font-size:13px}.card-actions>*+*{border-left:1px solid var(--line)}.card-actions button:hover{background:#f2f6fb;color:var(--blue)}.card-actions form{height:100%}.card-actions .danger-button:hover,.danger-button.armed{background:#fff0f0;color:var(--red)}.qr-panel{position:absolute;inset:auto 0 48px 0;background:rgba(255,255,255,.98);border-top:1px solid var(--line);padding:18px;text-align:center;z-index:3}.qr-canvas{width:150px;height:150px;margin:auto;padding:8px;background:#fff;border:1px solid var(--line);border-radius:8px}.qr-canvas img,.qr-canvas canvas{width:100%!important;height:100%!important}.qr-panel p{font-size:12px;color:var(--muted);margin:8px 0 0}.empty-state,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.empty-state{text-align:center;padding:75px 20px}.empty-state>div{width:55px;height:55px;margin:auto;display:grid;place-items:center;border-radius:15px;background:#eaf3ff;color:var(--blue);font-size:26px}.empty-state h3{margin:17px 0 8px}.empty-state p{color:var(--muted);font-size:13px;margin:0 0 20px}.narrow-panel{max-width:800px;margin:0 auto;padding:30px}.panel-heading{display:flex;gap:14px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:25px}.panel-heading>span{width:44px;height:44px;display:grid;place-items:center;background:#eaf3ff;color:var(--blue);border-radius:12px;font-size:20px}.panel-heading h2{margin:0;font-size:20px}.panel-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label{font-size:13px;font-weight:600;color:#414d61}.form-grid label.full{grid-column:1/-1}.form-grid label small{font-weight:400;color:#98a1b0;margin-left:5px}.form-grid label em{font-style:normal;color:var(--red)}.form-grid input{display:block;width:100%;height:44px;margin-top:8px;border:1px solid #dbe1e9;border-radius:9px;padding:0 12px;outline:0;color:var(--text);background:#fff}.form-grid input:focus,.login-card input:focus{border-color:#72adff;box-shadow:0 0 0 3px rgba(22,119,255,.1)}.form-grid label>span{font-size:11px;color:#98a1b0;font-weight:400;display:block;margin-top:7px}.input-prefix,.input-suffix{position:relative}.input-prefix b,.input-suffix b{position:absolute;bottom:13px;color:#8792a3;font-size:13px}.input-prefix b{left:12px}.input-prefix input{padding-left:30px}.input-suffix b{right:12px}.input-suffix input{padding-right:48px}.password-wrap{position:relative}.password-wrap input{padding-right:60px}.toggle-password{position:absolute;right:8px;bottom:8px;height:28px;border:0;background:transparent;color:var(--blue);font-size:12px;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.form-note{font-size:12px;color:#8a95a6;background:#f6f8fb;padding:10px 12px;border-radius:8px}.url-example{margin-top:20px;padding:15px;background:#f5f8fc;border-radius:10px}.url-example small{display:block;color:var(--muted);margin-bottom:8px}.url-example code{color:var(--blue);word-break:break-all}.danger-panel{text-align:center;padding:45px 50px}.danger-icon{width:60px;height:60px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#fff0f0;color:var(--red);font-size:30px;font-weight:800}.danger-panel h2{margin:18px 0 10px}.danger-panel>p{color:var(--muted);font-size:13px;line-height:1.8;max-width:520px;margin:0 auto}.danger-summary{display:flex;justify-content:space-between;background:#f7f9fc;border-radius:10px;margin:25px 0;padding:15px;color:#667085}.danger-summary strong{color:var(--text)}.confirm-form.centered{display:flex;justify-content:center}.danger-button.large{border:0;border-radius:9px;background:var(--red);color:#fff;padding:13px 30px;cursor:pointer;font-weight:700}.danger-button.large.armed{background:#b4232c}.danger-hint{display:block;color:#a4adba;margin-top:12px}.edit-dialog{width:min(620px,calc(100% - 28px));border:0;padding:0;border-radius:16px;box-shadow:0 24px 80px rgba(15,29,49,.25)}.edit-dialog::backdrop{background:rgba(12,24,41,.55);backdrop-filter:blur(2px)}.edit-dialog form{padding:25px}.dialog-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:20px}.dialog-head p{font-size:11px;color:var(--muted);margin:0}.dialog-head h3{margin:3px 0 0}.dialog-close{border:0;background:#f0f3f7;color:#647188;width:32px;height:32px;border-radius:8px;cursor:pointer}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.dialog-actions .dialog-close{width:auto;height:42px}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#203c62,#0e1f35 50%,#091727)}.login-page:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:36px 36px}.login-card{position:relative;width:min(420px,100%);background:#fff;border-radius:18px;padding:34px 38px;box-shadow:0 30px 80px rgba(0,0,0,.3)}.login-brand{display:flex;gap:11px;align-items:center}.login-brand strong,.login-brand small{display:block}.login-brand small{font-size:11px;color:#929cac;margin-top:3px}.login-heading{margin:35px 0 25px}.login-heading p{font-size:12px;color:var(--blue);font-weight:700;margin:0 0 6px}.login-heading h1{font-size:25px;margin:0}.login-heading span{font-size:12px;color:var(--muted);display:block;margin-top:8px}.login-card label{display:block;font-size:13px;font-weight:600;margin-bottom:17px}.login-card input{display:block;width:100%;height:46px;border:1px solid #dae1ea;border-radius:9px;padding:0 12px;margin-top:8px;outline:0}.login-error{color:#b4232c;background:#fff1f1;padding:10px 12px;border-radius:8px;font-size:12px;margin-bottom:15px}.login-button{width:100%;margin-top:5px;justify-content:space-between;padding:0 18px}.login-tip{text-align:center;font-size:11px;color:#a0a9b6;margin:20px 0 0}
@media(max-width:1050px){.link-grid{grid-template-columns:1fr}.link-identity a{max-width:480px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s ease}.sidebar.open{transform:none}.sidebar-overlay{display:none;position:fixed;z-index:20;inset:0;background:rgba(8,19,33,.5)}.sidebar.open+.main+.sidebar-overlay{display:block}.main{padding-left:0}.topbar{height:72px;padding:0 18px}.menu-button{display:block}.topbar>div:nth-child(2){margin-right:auto;margin-left:12px}.top-status{display:none}.content{padding:20px 15px 35px}.flash{margin:14px 15px 0}.section-heading{align-items:flex-end}.section-heading h2{font-size:20px}.section-heading span{display:none}.link-grid{grid-template-columns:1fr}.card-head{padding:15px}.copy-button{display:none}.link-identity a{max-width:220px}.metrics{padding:16px 15px;grid-template-columns:1fr 1.25fr}.metrics>div:nth-child(3){grid-column:1/-1;border:0;border-top:1px solid var(--line);padding:13px 0 0;margin-top:14px}.narrow-panel{padding:20px}.form-grid{grid-template-columns:1fr}.form-grid label{grid-column:1/-1}.danger-panel{padding:35px 22px}.login-card{padding:28px 24px}}
.setup-card{width:min(460px,100%)}.setup-card .login-heading{margin:28px 0 22px}.login-card label small{font-weight:400;color:#98a1b0;margin-left:4px}
.admin-summary-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.admin-summary-row>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px}.admin-summary-row span,.admin-summary-row strong{display:block}.admin-summary-row span{font-size:12px;color:var(--muted)}.admin-summary-row strong{font-size:25px;margin-top:7px}.admin-account-list{display:grid;gap:12px}.admin-account-card{display:grid;grid-template-columns:auto minmax(220px,1fr) minmax(180px,.65fr) 130px;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:0 5px 20px rgba(24,42,70,.035)}.admin-avatar{width:44px;height:44px;border-radius:12px;background:#eaf3ff;color:var(--blue);display:grid;place-items:center;font-size:18px;font-weight:800}.admin-name-line{display:flex;align-items:center;gap:9px}.admin-name-line h3{font-size:15px;margin:0}.account-status{font-size:10px;padding:4px 7px;border-radius:12px}.account-status.enabled{background:#e8f8f0;color:#0b8c55}.account-status.disabled{background:#f0f2f5;color:#7d8795}.admin-username{font-size:12px;color:#657287;margin:5px 0}.admin-note{font-size:11px;color:#9aa4b2;margin:0}.admin-login-info{padding-left:18px;border-left:1px solid var(--line)}.admin-login-info small,.admin-login-info strong,.admin-login-info span{display:block}.admin-login-info small{font-size:10px;color:#9ba5b3}.admin-login-info strong{font-size:12px;margin:5px 0}.admin-login-info span{font-size:10px;color:#7e8a9a}.admin-card-actions{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:8px;overflow:hidden}.admin-card-actions button{width:100%;height:34px;border:0;background:#fafbfd;color:#637086;font-size:12px;cursor:pointer}.admin-card-actions form{border-left:1px solid var(--line)}.admin-card-actions .danger-button:hover,.admin-card-actions .danger-button.armed{background:#fff0f0;color:var(--red)}.switch-label{display:flex!important;align-items:center;gap:11px;padding:12px;background:#f7f9fc;border-radius:10px}.switch-label>input{width:18px!important;height:18px!important;margin:0!important}.switch-label>span{margin:0!important}.switch-label b,.switch-label small{display:block}.switch-label small{margin:3px 0 0!important}
@media(max-width:900px){.admin-account-card{grid-template-columns:auto 1fr 120px}.admin-login-info{grid-column:2/3;padding:8px 0 0;border-left:0;border-top:1px solid var(--line)}.admin-card-actions{grid-column:3;grid-row:1/3}.admin-summary-row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.admin-summary-row{grid-template-columns:1fr 1fr}.admin-summary-row>div:last-child{grid-column:1/-1}.admin-account-card{grid-template-columns:auto 1fr;padding:15px}.admin-login-info{grid-column:1/-1}.admin-card-actions{grid-column:1/-1;grid-row:auto}.section-heading>.primary-button{padding:0 12px;font-size:12px}}
.qr-panel{position:static;inset:auto;background:#f8fbff;border-top:1px solid var(--line);padding:20px;text-align:center;z-index:auto}.qr-panel[hidden]{display:none}.qr-canvas{width:166px;height:166px;margin:auto;padding:8px;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.qr-canvas img,.qr-canvas canvas{display:block;width:100%!important;height:100%!important}.qr-panel p{font-size:12px;color:var(--muted);margin:9px 0 0}
.link-owner{display:block;margin-top:5px;color:#617087;font-size:10px}
