
:root{color-scheme:light;--ink:#172b3a;--muted:#697c89;--line:#e2e9ed;--primary:#087e8b;--soft:#eaf6f5;--danger:#bd424a;--nav:#102e3d}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:#f3f6f8;color:var(--ink);font:14px/1.6 "Segoe UI","Microsoft YaHei",system-ui,sans-serif}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,summary{font:inherit}button,.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:9px 16px;border:1px solid transparent;border-radius:9px;font-weight:600;cursor:pointer;line-height:1.4;text-decoration:none;transition:background .15s,box-shadow .15s}button:hover,.button:hover{text-decoration:none;box-shadow:0 3px 10px #102e3d12}button:disabled{cursor:wait;opacity:.65}button svg,.button svg{width:17px;height:17px;flex-shrink:0}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.primary{background:var(--primary);color:#fff}.primary:hover{background:#066d78}.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.danger{color:var(--danger);background:#fff0f1;border-color:#f2d7da}.danger-solid{background:var(--danger);color:#fff}.text-button{padding:5px 8px;min-height:32px;background:transparent;color:var(--muted)}:focus-visible{outline:3px solid #49b9c7;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.35;letter-spacing:-.7px;margin-bottom:10px}h2{font-size:17px;margin-bottom:6px}h3{font-size:15px;margin-bottom:6px}p{color:var(--muted)}small,.small{font-size:12px;color:var(--muted)}strong{font-weight:650}[hidden]{display:none!important}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--primary);margin-bottom:12px}.brand{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:750;letter-spacing:-.6px;color:inherit}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:var(--primary);color:#fff}.brand-mark svg{width:23px;height:23px}.brand small{display:block;letter-spacing:2px;font-size:9px;font-weight:500;color:inherit;opacity:.65;line-height:1.2}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:#fff;border-bottom:1px solid var(--line)}.site-header>span{font-size:12px;color:var(--muted)}.public-main{width:min(1020px,calc(100% - 40px));margin:64px auto 30px}.footer{font-size:12px;color:var(--muted);text-align:center;padding:24px}.login-shell{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 18px 70px #18354609}.login-story{background:var(--nav);padding:52px 44px;color:#fff;position:relative;overflow:hidden}.login-story .eyebrow{color:#70d6cf}.login-story h1{font-size:34px;line-height:1.5;max-width:330px}.login-story p{color:#a9c1cc;max-width:320px}.orbital{height:152px;display:grid;place-items:center;margin:22px 0;position:relative}.orbital:before,.orbital:after{content:"";position:absolute;border:1px solid #315363;border-radius:50%;width:142px;height:142px}.orbital:after{width:218px;height:108px;transform:rotate(-28deg)}.orbital svg{width:64px;height:64px;stroke:#81dcd5;position:relative;z-index:1;background:var(--nav);padding:12px;box-sizing:content-box}.story-note{border-top:1px solid #315363;padding-top:20px;font-size:12px;color:#a9c1cc}.login-card{padding:54px 44px;align-self:center}.login-card h2{font-size:25px}.login-form,.field{display:grid;gap:9px}.login-form{gap:20px;margin-top:28px}.field label{font-size:13px;font-weight:600}.field input,input[type=search],input[type=number],input[type=text],input[type=password]{width:100%;min-height:42px;border:1px solid #cedbe2;border-radius:8px;padding:9px 12px;background:#fff;color:var(--ink)}input::placeholder{color:#8b9aa5}input[type=checkbox]{accent-color:var(--primary);width:15px;height:15px;vertical-align:middle}.password-wrap{position:relative}.password-wrap input{padding-right:58px}.password-wrap button{position:absolute;right:5px;top:5px}.alert{display:flex;gap:10px;border:1px solid #d5eae2;padding:13px 16px;border-radius:10px;background:#eef9f4;color:#236b50;margin:18px 0;overflow-wrap:anywhere}.alert svg{flex-shrink:0;margin-top:1px}.alert.error{background:#fff2f2;color:#a83d46;border-color:#f1d6d9}.alert p{margin:0;color:inherit}.public-card{max-width:600px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:36px;box-shadow:0 14px 50px #18354606}.steps{display:flex;gap:14px;margin:0 0 30px;padding:0;list-style:none;font-size:12px;color:#91a0ab}.steps li{display:flex;align-items:center;gap:7px}.steps span{display:grid;place-items:center;width:23px;height:23px;border:1px solid var(--line);border-radius:50%;font-size:11px}.steps .current{color:var(--primary);font-weight:600}.steps .current span{background:var(--soft);border-color:#c5e4e0}.meta{display:grid;grid-template-columns:88px minmax(0,1fr);gap:15px;background:#f6f8fa;padding:20px;border:1px solid var(--line);border-radius:12px;margin:24px 0}.meta dt{color:var(--muted)}.meta dd{margin:0;overflow-wrap:anywhere}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:22px}.full{width:100%}.result-symbol{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--soft);color:var(--primary);margin:0 auto 23px}.result-symbol svg{width:32px;height:32px}.result-symbol.failure{background:#fff0f1;color:var(--danger)}.result-card{text-align:center}.result-card .actions{justify-content:center}.result-card p{overflow-wrap:anywhere}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:var(--nav);color:#fff;display:flex;flex-direction:column;padding:30px 22px}.sidebar .brand{margin-bottom:50px}.sidebar .brand small{font-size:8px;letter-spacing:1px}.nav-label{font-size:10px;letter-spacing:2px;color:#86a2b0;margin:0 12px 12px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{display:flex;align-items:center;gap:11px;color:#bacdd6;padding:12px;border-radius:9px;font-size:13px}.sidebar nav a:hover,.sidebar nav a.active{background:#214657;color:#fff;text-decoration:none}.sidebar nav a.active{box-shadow:inset 3px 0 #6fd0c8}.sidebar-foot{margin-top:auto;font-size:12px;color:#91adba;border-top:1px solid #315363;padding:24px 10px 0}.sidebar-foot strong{display:block;color:#dae5eb;font-size:13px;margin-bottom:5px}.workspace{margin-left:224px;min-width:0;padding:36px 38px 16px;max-width:1740px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}.page-head p{margin-bottom:0}.account{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted);padding-top:7px}.account form{margin:0}.account-name{max-width:160px;overflow-wrap:anywhere}.avatar{width:34px;height:34px;border-radius:50%;background:#e5edee;display:grid;place-items:center;font-weight:600;color:#397176;flex-shrink:0}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:25px}.stat{padding:20px 22px;border:1px solid var(--line);border-radius:13px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px}.stat p{font-size:12px;margin-bottom:6px}.stat strong{font-size:27px;line-height:1.2;letter-spacing:-1px}.stat-icon{display:grid;place-items:center;width:43px;height:43px;background:var(--soft);color:var(--primary);border-radius:12px}.section{background:#fff;border:1px solid var(--line);border-radius:13px;margin-bottom:24px;overflow:hidden}.section-head{display:flex;align-items:center;justify-content:space-between;padding:23px 24px;gap:16px}.section-head p{font-size:12px;margin-bottom:0}.rule-section{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px}.rule-copy{display:flex;gap:14px;align-items:flex-start}.rule-copy>svg{color:var(--primary);margin-top:2px;flex-shrink:0}.rule-copy p{margin-bottom:0;font-size:12px}.inline-form{display:flex;gap:8px;align-items:center}.inline-form input[type=number]{width:82px}.rule-form{display:grid;gap:8px;flex-shrink:0}.rule-form label{font-size:12px;color:var(--muted)}.toolbar{padding:0 24px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.search{display:flex;align-items:center;gap:8px;flex:1;max-width:500px}.search-box{position:relative;flex:1}.search-box svg{position:absolute;left:12px;top:12px;width:17px;height:17px;color:var(--muted)}.search-box input{padding-left:37px;min-width:130px}.filters{display:flex;padding:4px;background:#f0f4f6;border-radius:9px;gap:2px}.filters button{min-height:31px;padding:5px 11px;color:var(--muted);background:transparent;font-size:12px}.filters button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 4px #17374712}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{font-size:11px;color:var(--muted);font-weight:600;background:#f7f9fa;padding:12px 24px;white-space:nowrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:20px 24px;border-bottom:1px solid #edf1f4;vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdfe}.user-cell{min-width:185px;max-width:270px}.user-cell strong{display:block;margin-bottom:3px;overflow-wrap:anywhere}.identifier{display:block;font:11px/1.6 ui-monospace,Consolas,monospace;color:#8394a1;overflow-wrap:anywhere}.device-cell{min-width:170px;max-width:260px;overflow-wrap:anywhere}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;border-radius:20px;background:#edf8f2;color:#277756;padding:3px 9px;margin-bottom:7px;white-space:nowrap}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.badge.neutral{background:#f0f3f5;color:#7b8c98}.quota{min-width:195px}.quota>strong{font-size:16px}.quota>strong span{font-size:12px;color:var(--muted);font-weight:400}.reset-form{margin-top:5px}.reset-form button{font-size:11px;min-height:26px;padding:3px 0;color:var(--primary)}.quota-form{margin-top:9px;display:flex;gap:6px}.quota-form input[type=number]{width:82px;min-height:33px;padding:5px 8px;font-size:12px}.quota-form button{min-height:33px;padding:5px 10px;font-size:12px}.date{font-size:12px;white-space:nowrap;color:var(--muted)}.row-action{min-width:155px}.row-action details{max-width:250px}.row-action summary{color:var(--danger);cursor:pointer;padding:6px 0;font-size:12px}.unbind-form{display:grid;gap:10px;margin-top:10px;min-width:170px}.unbind-form input[type=text]{font-size:12px}.unbind-form button{font-size:12px}.unbind-form label{font-size:12px;color:var(--muted)}.empty{text-align:center;padding:42px 20px;color:var(--muted)}.empty svg{display:block;margin:0 auto 12px;width:30px;height:30px;color:#a1b4c0}.empty strong{display:block;color:var(--ink);margin-bottom:5px}.list-foot{padding:13px 24px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:12px}.audit-table td{font-size:12px;padding-top:15px;padding-bottom:15px}.audit-detail{max-width:360px;overflow-wrap:anywhere;color:var(--muted)}.audit-detail details summary{cursor:pointer;color:var(--primary);margin-top:5px}.audit-detail pre{white-space:pre-wrap;word-break:break-word;font-size:11px;background:#f4f7f9;padding:10px;border-radius:6px}.dialog{width:min(440px,calc(100% - 32px));border:1px solid var(--line);border-radius:16px;padding:28px;color:var(--ink);box-shadow:0 20px 80px #0d25323d}.dialog::backdrop{background:#10273380;backdrop-filter:blur(3px)}.dialog h2{font-size:20px}.dialog p{white-space:pre-wrap;overflow-wrap:anywhere}.dialog .actions{justify-content:flex-end}.dialog .actions form{margin:0}.loading:before{content:"";width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.loading:before{animation:none}}@media(min-width:1500px){.workspace{padding:42px 50px}}@media(max-width:1100px){.sidebar{width:192px;padding:26px 16px}.workspace{margin-left:192px;padding:28px 24px}.account-name{display:none}.rule-section{align-items:flex-start}.toolbar{align-items:stretch}.search{max-width:none}.login-story,.login-card{padding:36px 28px}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:17px 20px;display:block}.sidebar .brand{margin:0}.sidebar nav{display:grid;grid-template-columns:1fr 1fr;margin-top:18px;gap:6px}.sidebar nav a{padding:8px 11px;white-space:nowrap}.sidebar-foot,.nav-label{display:none}.workspace{margin:0;padding:25px 16px}.page-head{gap:10px}h1{font-size:25px}.account{gap:3px}.account .avatar{display:none}.stats{gap:8px}.stat{padding:15px 12px}.stat strong{font-size:24px}.stat-icon{display:none}.rule-section{flex-direction:column;padding:20px}.rule-form{width:100%}.rule-form .inline-form{justify-content:space-between}.section-head{padding:20px;align-items:flex-start}.toolbar{padding:0 20px 20px}.search{flex-wrap:wrap}.search-box{min-width:170px}.filters{width:100%}.filters button{flex:1}.device-table thead{display:none}.device-table,.device-table tbody,.device-table tr,.device-table td{display:block;width:100%}.device-table tr{padding:16px 20px;border-top:1px solid var(--line)}.device-table td{display:grid;grid-template-columns:83px minmax(0,1fr);padding:8px 0;border:0;max-width:none;min-width:0}.device-table td:before{content:attr(data-label);color:var(--muted);font-size:12px;padding-top:2px}.device-table td>div{min-width:0}.device-table td.empty{display:block}.device-table td.empty:before{content:none}.row-action details{max-width:none}.unbind-form{min-width:0}.list-foot{padding:13px 20px;flex-wrap:wrap}.audit-table{min-width:660px}.site-header{height:68px;padding:0 22px}.site-header>span{display:none}.public-main{margin:28px auto;width:calc(100% - 28px)}.login-shell{grid-template-columns:1fr}.login-story{padding:25px}.login-story h1{font-size:24px;max-width:none;margin-bottom:0}.login-story p,.orbital,.story-note{display:none}.login-card{padding:28px 25px}.public-card{padding:27px 23px}.steps{gap:10px}.footer{font-size:11px}}
