:root{--ink:#132a33;--muted:#688088;--line:#dbe7e8;--canvas:#f4f8f8;--panel:#fff;--teal:#078a83;--teal-dark:#056a66;--mint:#e4f5f1;--navy:#062e3b;--danger:#bd3d3d;--warning:#a8650b;--shadow:0 18px 50px rgba(8,52,62,.08);font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--canvas)}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--canvas)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}[hidden]{display:none!important}.eyebrow{margin:0 0 8px;color:var(--teal);font-size:11px;font-weight:800;letter-spacing:.16em}.muted{color:var(--muted)}
.login-shell{display:grid;grid-template-columns:minmax(430px,1.05fr) minmax(430px,.95fr);min-height:100vh}.brand-panel{position:relative;overflow:hidden;padding:9vh 9vw;color:#fff;background:radial-gradient(circle at 75% 20%,rgba(36,190,170,.3),transparent 27%),linear-gradient(145deg,#062c39,#074c55 60%,#087d78)}.brand-panel:after{content:"";position:absolute;right:-190px;bottom:-230px;width:520px;height:520px;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.02)}.brand-mark{display:grid;place-items:center;width:56px;height:56px;margin-bottom:20vh;border:1px solid rgba(255,255,255,.4);border-radius:17px;background:rgba(255,255,255,.1);font-weight:900;letter-spacing:-.08em}.brand-panel .eyebrow{color:#7fe0d4}.brand-panel h1{position:relative;z-index:1;max-width:700px;margin:0;font-size:clamp(42px,5vw,76px);line-height:1.07;letter-spacing:-.045em}.brand-copy{position:relative;z-index:1;max-width:620px;margin:28px 0;color:#c8e0e2;font-size:17px;line-height:1.8}.signal-card{position:absolute;z-index:2;left:9vw;bottom:8vh;display:flex;gap:13px;align-items:center}.signal-card small,.sidebar small,.user-chip small{display:block;color:#8fb0b6;margin-top:3px}.signal-dot,.status-dot{width:9px;height:9px;border-radius:50%;background:#43d2ad;box-shadow:0 0 0 6px rgba(67,210,173,.15)}
.login-panel{display:grid;place-items:center;padding:40px;background:#f7faf9}.login-card{width:min(420px,100%);padding:44px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow)}.login-card h2{margin:0;font-size:31px;letter-spacing:-.03em}.login-card>.muted{margin:10px 0 30px}.login-card label,.inline-form label{display:grid;gap:8px;color:#45616a;font-size:13px;font-weight:700}.login-card label{margin-top:18px}.login-card input,.inline-form input,.inline-form select,.tenant-picker select{width:100%;height:45px;padding:0 13px;border:1px solid #cbdcde;border-radius:11px;background:#fff;color:var(--ink);outline:none}.login-card input:focus,.inline-form input:focus,.inline-form select:focus,.tenant-picker select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(7,138,131,.12)}.form-error{min-height:20px;color:var(--danger);font-size:13px}.security-note{margin:20px 0 0;text-align:center;color:#7c9197;font-size:12px;line-height:1.5}.mobile-brand{display:none}
.button{min-height:39px;padding:0 16px;border:1px solid transparent;border-radius:10px;font-weight:750;color:var(--ink);background:#eef4f4}.button.primary{color:#fff;background:var(--teal)}.button.primary:hover{background:var(--teal-dark)}.button.secondary{color:var(--teal-dark);border-color:#b9deda;background:#fff}.button.ghost{border-color:var(--line);background:transparent}.button.danger{color:var(--danger);border-color:#ebcaca;background:#fff}.button.full{width:100%;height:47px}
.app-shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:245px;display:flex;flex-direction:column;padding:25px 18px;color:#e6f4f4;background:linear-gradient(180deg,#062f3d,#053943)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 8px 26px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand strong{font-size:18px}.mini-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:#fff;background:var(--teal);font-weight:900}.sidebar nav{display:grid;gap:7px;margin-top:26px}.nav-item{height:45px;padding:0 15px;border:0;border-radius:10px;text-align:left;color:#a9c4c8;background:transparent;font-weight:700}.nav-item:hover,.nav-item.active{color:#fff;background:rgba(80,211,190,.14)}.sidebar-status{display:flex;align-items:center;gap:12px;margin-top:auto;padding:17px 13px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:rgba(255,255,255,.04);font-size:12px}.workspace{grid-column:2;min-width:0;padding:0 34px 50px}.topbar{display:flex;justify-content:space-between;align-items:center;min-height:103px;border-bottom:1px solid var(--line)}.topbar h2{margin:0;font-size:25px;letter-spacing:-.025em}.topbar-actions{display:flex;align-items:center;gap:15px}.tenant-picker{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.tenant-picker select{width:170px;height:39px}.user-chip{display:flex;align-items:center;gap:10px;padding-left:15px;border-left:1px solid var(--line)}.user-chip>span{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;color:#fff;background:#0e6670;font-weight:800}.user-chip small{max-width:160px;overflow:hidden;text-overflow:ellipsis}.notice{margin:18px 0 -4px;padding:13px 16px;border:1px solid #b9deda;border-radius:11px;color:var(--teal-dark);background:var(--mint)}.notice.error{color:var(--danger);border-color:#ebcaca;background:#fff2f2}
.view{display:none;padding-top:27px}.active-view{display:block}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 8px 25px rgba(8,52,62,.03)}.metric span{color:var(--muted);font-size:13px;font-weight:700}.metric strong{display:block;margin:11px 0 5px;font-size:33px;letter-spacing:-.04em}.metric small{color:#8ba0a5}.content-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin-top:18px}.panel{border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 8px 25px rgba(8,52,62,.03)}.panel.wide{min-width:0}.panel-heading,.section-actions{display:flex;justify-content:space-between;align-items:center}.panel-heading{padding:22px 23px;border-bottom:1px solid var(--line)}.panel-heading h3{margin:0;font-size:18px}.check-list{display:grid;gap:15px;margin:0;padding:24px;list-style:none}.check-list li:before{content:"✓";display:inline-grid;place-items:center;width:22px;height:22px;margin-right:10px;border-radius:50%;color:var(--teal);background:var(--mint);font-weight:900}.network-list{padding:10px 23px 18px}.network-row{display:grid;grid-template-columns:minmax(150px,1fr) 1fr auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid #edf2f2}.network-row:last-child{border:0}.network-row strong,.network-row small{display:block}.network-row small{margin-top:4px;color:var(--muted)}.pill{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;color:var(--teal-dark);background:var(--mint);font-size:12px;font-weight:800}.pill.gray{color:#63777e;background:#edf2f2}.pill.warn{color:var(--warning);background:#fff3dc}.pill.danger{color:var(--danger);background:#ffe9e9}
.section-actions{min-height:52px;margin-bottom:14px}.section-actions p{margin:0}.inline-form{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin-bottom:16px;padding:18px}.inline-form label{min-width:180px}.inline-form .grow{flex:1}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th,.data-table td{padding:15px 17px;border-bottom:1px solid #eaf0f0;text-align:left;font-size:13px}.data-table th{color:#6f858b;background:#f9fbfb;font-size:11px;letter-spacing:.06em;text-transform:uppercase}.data-table tbody tr:last-child td{border-bottom:0}.data-table td strong{display:block}.data-table td small{display:block;margin-top:3px;color:var(--muted)}.empty-state{padding:54px 24px;text-align:center;color:var(--muted)}
dialog{width:min(580px,calc(100% - 32px));padding:0;border:0;border-radius:19px;box-shadow:0 30px 90px rgba(0,30,38,.3)}dialog::backdrop{background:rgba(1,27,35,.62)}.dialog-card{padding:28px}.dialog-card h3{margin:0}.dialog-card pre{overflow:auto;padding:17px;border:1px solid var(--line);border-radius:11px;color:#14424a;background:#f4f8f8;white-space:pre-wrap;word-break:break-all}.dialog-actions{display:flex;justify-content:flex-end;gap:9px}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.topbar{align-items:flex-start;padding:23px 0;gap:16px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.user-chip{display:none}}
@media(max-width:760px){.login-shell{grid-template-columns:1fr}.brand-panel{display:none}.login-panel{padding:20px}.login-card{padding:30px}.mobile-brand{display:flex;align-items:center;gap:9px;margin-bottom:40px;font-weight:800}.mobile-brand span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:#fff;background:var(--teal)}.app-shell{display:block}.sidebar{position:static;width:auto;padding:12px 14px}.sidebar-brand,.sidebar-status{display:none}.sidebar nav{display:flex;overflow:auto;margin:0}.nav-item{flex:0 0 auto}.workspace{padding:0 16px 35px}.topbar{display:block}.topbar-actions{justify-content:flex-start;margin-top:16px}.tenant-picker span{display:none}.metric-grid{grid-template-columns:1fr 1fr}.inline-form{display:grid}.inline-form label{min-width:0}.section-actions{align-items:flex-start;gap:12px}.data-table th,.data-table td{padding:13px}.network-row{grid-template-columns:1fr auto}.network-row>div:nth-child(2){display:none}}
@media(max-width:440px){.metric-grid{grid-template-columns:1fr}.topbar-actions{display:grid}.tenant-picker select{width:100%}}
.login-panel{align-content:center;gap:16px}.button-row{display:flex;flex-wrap:wrap;gap:8px}.invite-entry{width:min(420px,100%);padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--teal-dark)}.invite-entry summary{cursor:pointer;font-weight:750}.invite-accept-form{display:grid;gap:13px;padding-top:16px}.invite-accept-form label,.dialog-card label{display:grid;gap:7px;color:#45616a;font-size:13px;font-weight:700}.invite-accept-form input,.dialog-card input{width:100%;height:45px;padding:0 13px;border:1px solid #cbdcde;border-radius:11px;outline:none}.invite-accept-form input:focus,.dialog-card input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(7,138,131,.12)}.invite-accept-form .muted{margin:0;font-size:12px}#view-members>.panel+.panel{margin-top:18px}.role-select{height:36px;padding:0 9px;border:1px solid #cbdcde;border-radius:9px;background:#fff;color:var(--ink)}
