@charset "UTF-8";
[hidden]{display:none!important}
:root{font-family:Inter,"Segoe UI","Microsoft YaHei",system-ui,sans-serif;color:#243647;background:#eef2f5;font-size:14px;--navy:#102b45;--accent:#137d8d;--blue:#2463d1;--line:#dce4eb;--muted:#65778a;--red:#b83947;--green:#167754;--shadow:0 12px 40px #102b4514}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{min-height:36px;border:1px solid #cfd9e3;border-radius:7px;padding:7px 13px;background:#fff;color:#30455a;font-weight:650;cursor:pointer;white-space:nowrap}button:hover{background:#edf3f8;border-color:#9cb2c6}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--blue);color:white;border-color:var(--blue)}button.primary:hover{background:#1957c2}button.danger{color:#b52e3e;background:#fff7f7;border-color:#efbdc3}button.ghost{border-color:transparent;background:transparent}button.small{font-size:12px;min-height:29px;padding:4px 9px}button.icon{font-size:21px;width:36px;min-width:36px;padding:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #62b9cd;outline-offset:2px}input,select,textarea{border:1px solid #bfcedc;border-radius:6px;padding:8px 10px;background:#fff;color:#243647;min-height:38px;max-width:100%;width:100%}input[type=checkbox]{width:16px;min-height:16px;height:16px;accent-color:var(--blue);margin:0;flex:none}input[type=number]{font-variant-numeric:tabular-nums}textarea{resize:vertical;min-height:70px}h1,h2,h3,p{margin:0}small,.muted{color:var(--muted)}a{color:var(--blue)}.boot{padding:60px;text-align:center}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:750;letter-spacing:-.5px}.brand img{width:34px;height:34px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:750;color:#61929e}.app-shell{height:100dvh;display:flex;flex-direction:column}.topbar{height:65px;flex:none;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;gap:15px}.topbar .brand span{border-left:1px solid #ffffff30;margin-left:6px;padding-left:17px;font-size:13px;font-weight:400;letter-spacing:.4px;color:#c3d3df}.top-actions{display:flex;align-items:center;gap:8px}.topbar button{background:#ffffff0c;border-color:#ffffff28;color:#fff}.identity{margin-right:12px;font-size:13px}.identity small{display:block;color:#adc3d5;font-size:11px;margin-top:3px}.main{display:flex;flex-direction:column;flex:1;min-height:0;padding:16px 24px 12px;gap:11px}.overview-strip{display:flex;align-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;flex:none;overflow:hidden;min-height:52px}.overview-strip .stat{display:flex;align-items:baseline;gap:9px;border-right:1px solid #e5ebf0;padding:10px 18px}.stat span{font-size:12px;color:var(--muted)}.stat strong{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums}.stat.amber strong{color:#a66c0a}.stat.red strong{color:var(--red)}.stat.green strong{color:var(--green)}.overview-strip button{margin-left:auto;margin-right:8px}.tools{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap}.search{display:flex;gap:6px;flex:1;max-width:530px;min-width:260px}.search input{min-width:0;flex:1;font-size:13px}.actionbar{display:flex;gap:6px;align-items:center}.menu-wrap{position:relative}.menu{position:absolute;z-index:6;right:0;top:42px;min-width:190px;background:white;border:1px solid var(--line);border-radius:8px;padding:5px;box-shadow:var(--shadow);display:grid;gap:2px}.menu button{text-align:left;border:0;background:white}.menu button:hover{background:#f0f5f9}.badge{display:inline-flex;align-items:center;justify-content:center;background:#c83d4c;color:#fff;font-size:10px;min-width:18px;height:18px;padding:0 5px;border-radius:20px;margin-left:6px;line-height:1}.table-panel{flex:1;min-height:0;border:1px solid var(--line);border-radius:9px;background:white;display:flex;flex-direction:column;overflow:hidden}.table-meta{min-height:39px;display:flex;gap:10px;align-items:center;padding:6px 13px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);flex-wrap:wrap}.table-meta .right{margin-left:auto}.sync-state{font-size:12px}.sync-state.good{color:var(--green)}.sync-state.bad{color:var(--red)}.table-scroll{overflow:auto;flex:1;min-height:0;position:relative}.people-table{border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed;font-size:13px}.people-table th{position:sticky;top:0;z-index:2;text-align:left;background:#edf3f8;color:#4a6074;font-weight:650;border-bottom:1px solid #c7d5e2;height:40px;padding:0 9px;border-right:1px solid var(--line)}.people-table th button{font-size:12px;border:0;background:none;padding:6px 0;width:100%;min-height:34px;text-align:left;color:inherit;overflow:hidden;text-overflow:ellipsis}.people-table th button.filtered{color:var(--blue)}.people-table td{padding:9px 10px;height:46px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);overflow-wrap:anywhere;vertical-align:middle}.people-table tr:hover td:not([rowspan]){background:#f7faff}.people-table tr.selected td:not([rowspan]){background:#edf4ff}.people-table .center{text-align:center}.people-table .name{font-weight:650;color:#203d55;cursor:pointer}.people-table .person-sub{font-size:10px;color:#74899b;font-weight:400;margin-top:3px}.people-table .owner-cell{vertical-align:top;padding-top:17px;font-size:12px}.owner-color-0{background:#f7f0df}.owner-color-1{background:#eaf1fa}.owner-color-2{background:#f1eafa}.owner-color-3{background:#e7f2f2}.owner-color-4{background:#f8eaed}.owner-color-5{background:#eef2e2}.group-project{vertical-align:top!important;padding-top:16px!important;line-height:1.6;background:#f6f8fa}.group-project.online{background:#e9f5ee;color:#23543f}.group-project.offline{background:#fbecee;color:#7f3540}.group-project.disabled,.group-project.none{background:#f5f7fa;color:#55697c}.group-project.unknown{background:#fff8e9;color:#8b671d}.group-project.historical{background:#f0f0f1;color:#626973}.project-state{font-size:11px;opacity:.85;margin-top:7px}.status-mark{font-size:19px;font-weight:750;line-height:1}.success{color:var(--green)}.failure{color:var(--red)}.processing{color:#b47810}.login-tag{font-size:11px;border-radius:4px;padding:3px 5px;background:#edf2f6;color:#627487;display:inline-block;white-space:nowrap}.login-tag.allowed{color:#226845;background:#eaf5ee}.login-tag.pending{color:#9d650f;background:#fff3db}.login-tag.gated{color:#a03e4b;background:#fae9eb}.resize-handle{position:absolute;right:-2px;top:0;width:7px;height:100%;cursor:col-resize;z-index:3;touch-action:none}.resize-handle:hover{background:#418fbe}.empty{padding:60px 20px;text-align:center;color:var(--muted);line-height:1.9}.empty strong{display:block;color:#344d62;font-size:17px}.page-footer{display:flex;justify-content:space-between;gap:12px;color:#718497;font-size:11px;padding:0 2px}.selection-chip{color:var(--blue);font-weight:650}.notice{padding:11px 13px;border:1px solid #c9ddea;border-radius:7px;background:#f0f7fc;color:#3d627e;line-height:1.65;font-size:13px;overflow-wrap:anywhere}.notice.warning{background:#fffaed;border-color:#edd69d;color:#90661a}.notice.error{background:#fff1f2;border-color:#edc3c8;color:#a73340}.notice.success{background:#edf8f1;border-color:#c2e4d0;color:#26714d}#notifications{position:fixed;z-index:100;right:22px;bottom:22px;display:grid;gap:8px;max-width:min(470px,calc(100vw - 32px));pointer-events:none}#notifications .notice{box-shadow:var(--shadow)}dialog{border:1px solid #d9e3eb;border-radius:12px;padding:0;width:min(530px,calc(100vw - 24px));max-height:calc(100dvh - 36px);color:#263e52;box-shadow:0 24px 100px #071d3b40}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:#0b1c36aa;backdrop-filter:blur(2px)}dialog.wide{width:min(840px,calc(100vw - 24px))}.dialog-head{padding:20px 22px 15px;display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);flex:none}.dialog-head h2{font-size:19px;line-height:1.4;letter-spacing:-.3px}.dialog-head p{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.6}.dialog-head .icon{border:0;color:#748699;align-self:flex-start}.dialog-body{padding:20px 22px;overflow:auto;min-height:0;display:flex;flex-direction:column;gap:16px}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:13px 22px;border-top:1px solid var(--line);flex:none;background:#f8fafc;border-radius:0 0 12px 12px;flex-wrap:wrap}.dialog-error:empty{display:none}.dialog-error{padding:0 22px 12px;max-height:170px;overflow:auto}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{font-size:12px;font-weight:650;color:#456076}.field small{font-size:11px;line-height:1.5}.field select{font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.section-label{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:#46647b;font-weight:750;border-bottom:1px solid #e5ebf0;padding-bottom:8px;display:flex;align-items:center;justify-content:space-between}.check{display:flex;align-items:center;gap:9px;font-size:13px;line-height:1.6;cursor:pointer}.person-rows{display:grid;gap:7px}.person-row{display:grid;grid-template-columns:25px minmax(80px,1fr) minmax(150px,1.8fr) 33px;gap:6px;align-items:center}.person-row .number{font-size:11px;color:#7890a4}.person-row input{font-size:13px}.person-row button{padding:0;font-size:18px;color:#af5360;min-width:33px}.facts{display:grid;grid-template-columns:100px minmax(0,1fr);gap:11px 14px;font-size:13px;margin:0;line-height:1.65}.facts dt{color:var(--muted)}.facts dd{margin:0;overflow-wrap:anywhere}.card-list{display:grid;gap:10px}.info-card{border:1px solid var(--line);border-radius:8px;padding:13px;line-height:1.7;background:#fff}.info-card.online{border:2px solid #4a9b71;padding:12px}.info-card.offline{border-color:#e5aeb6;background:#fffafb}.info-card h3{font-size:14px;margin-bottom:5px}.info-card p{font-size:12px;color:#647b90;overflow-wrap:anywhere}.card-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.split-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.metrics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.metric{border:1px solid var(--line);border-radius:8px;padding:15px;background:#f8fafc}.metric strong{display:block;font-size:27px;margin-top:8px}.metric span{font-size:12px;color:#647c8f}.metric.green{background:#edf7f1;color:#21724b}.metric.red{background:#fdf0f1;color:#b23746}.metric.amber{background:#fff8e9;color:#9f721d}.filter-list{max-height:300px;overflow:auto;display:grid;gap:10px}.audit-item{font-size:12px;border-bottom:1px solid var(--line);padding:9px 0;line-height:1.65}.audit-item:last-child{border:0}.audit-item strong{font-weight:650}.audit-item small{display:block}.pending-row{display:flex;gap:10px;align-items:center;border:1px solid var(--line);padding:10px;border-radius:7px}.pending-row .grow{flex:1;min-width:0}.pending-row small{display:block;margin-top:4px}.login-page{min-height:100dvh;display:grid;grid-template-columns:1.15fr 1fr;background:#f7f9fb}.login-story{background:var(--navy);padding:50px 11%;color:#d6e2eb;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-story:after{content:"";position:absolute;right:-180px;bottom:-170px;width:550px;height:550px;border:1px solid #ffffff0b;border-radius:50%;box-shadow:0 0 0 90px #ffffff03,0 0 0 180px #ffffff02;pointer-events:none}.login-story .brand{color:white;font-size:26px}.login-story .brand img{width:42px;height:42px}.story-copy{padding:80px 0;z-index:1}.story-copy h1{font-size:clamp(30px,3.2vw,48px);line-height:1.35;letter-spacing:-1.4px;color:#fff;font-weight:650;margin:19px 0}.story-copy p{font-size:15px;line-height:1.95;color:#b5cad9;max-width:370px}.story-points{display:flex;gap:25px;margin-top:38px;padding-top:25px;border-top:1px solid #ffffff20;max-width:370px;font-size:12px}.story-points strong{display:block;color:#d8f3ec;font-size:14px;margin-bottom:6px}.login-story footer{font-size:11px;color:#8ba8bc;z-index:1;line-height:1.8}.login-main{display:flex;align-items:center;justify-content:center;padding:40px}.login-box{width:100%;max-width:360px}.login-box h2{font-size:27px;letter-spacing:-.7px;margin:12px 0}.login-box>p{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:28px}.login-form{display:grid;gap:17px}.login-form input{height:44px}.login-form button.primary{height:44px;margin-top:5px}.login-help{font-size:11px!important;line-height:1.9!important;margin-top:22px!important;color:#718497!important}.login-box .notice{margin:12px 0}.password-wrap{display:flex;gap:5px}.password-wrap button{width:52px;font-size:12px;padding:4px}.mobile-brand{display:none}.version-label{font-size:10px;letter-spacing:.5px;color:#8598a9}.login-lock{font-size:12px;color:#5d7b8e;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
@media(min-width:1100px){.people-table{min-width:970px}.main{gap:12px}.tools{flex-wrap:nowrap}}
@media(max-width:850px){.topbar{padding:0 14px}.main{padding:12px;gap:9px}.topbar .brand span{display:none}.identity{margin-right:0}.overview-strip .stat{padding:8px 12px;gap:6px}.stat strong{font-size:18px}.tools{gap:8px}.search{max-width:none}.actionbar{width:100%}.actionbar>button{flex:1}.actionbar .menu-wrap{flex:1}.menu-wrap>button{width:100%}.people-table{min-width:790px}.page-footer span:last-child{display:none}.overview-strip{min-height:47px}.topbar{height:60px}.login-story{padding:35px 9%}.story-copy h1{font-size:32px}.story-points{flex-wrap:wrap}.login-main{padding:28px}}
@media(max-width:600px){.login-page{display:block;min-height:100dvh;background:#f3f7fa}.login-story{display:none}.login-main{min-height:100dvh;padding:32px 27px;align-items:center}.mobile-brand{display:flex;margin-bottom:50px;color:var(--navy)}.login-box h2{font-size:26px}.login-box>p{margin-bottom:24px}.topbar .brand{font-size:18px}.topbar .brand img{width:29px;height:29px}.identity{font-size:11px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity small{font-size:10px}.top-actions{gap:4px}.topbar button{font-size:11px;padding:5px 7px;min-height:32px}.main{padding:9px 8px 7px;gap:8px}.overview-strip .stat{padding:7px 8px;display:block;min-width:52px}.stat strong{font-size:17px;margin-left:0;display:block}.stat span{font-size:10px}.overview-strip button{font-size:11px;padding:5px 6px;margin-right:3px}.search{min-width:0}.search input{font-size:12px;padding:7px 8px}.search button{font-size:12px;padding:6px 12px}.actionbar{gap:5px}.actionbar button{font-size:12px;padding:6px 8px}.table-meta{font-size:11px;padding:7px 9px;gap:7px}.table-meta .right{margin-left:0}.dialog-head{padding:16px}.dialog-head h2{font-size:17px}.dialog-body{padding:16px;gap:13px}.dialog-footer{padding:11px 16px}.dialog-error{padding:0 16px 12px}.form-grid{grid-template-columns:1fr}.person-row{grid-template-columns:20px minmax(65px,1fr) minmax(130px,1.8fr) 28px;gap:4px}.person-row input{padding:7px 6px;font-size:12px}.person-row button{min-width:28px}.facts{grid-template-columns:80px 1fr;gap:9px;font-size:12px}.metrics-grid{gap:7px}.metric{padding:11px}.metric strong{font-size:23px}.metric span{font-size:11px}.page-footer{font-size:10px}.top-actions .refresh-text{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(max-width:600px){.people-table{min-width:680px;font-size:12px}.people-table td{padding:8px 7px}.people-table th{padding:0 6px}.people-table .owner-cell{font-size:11px}}
.login-page{display:flex;align-items:center;justify-content:center;padding:24px;min-height:100dvh;background:#f3f6f9}.login-main{padding:0;min-height:0;width:100%;max-width:390px}.login-box{max-width:none;padding:32px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 6px 24px #102b4508}.login-box .brand{color:var(--navy);justify-content:center;font-size:24px}.login-box h1{font-size:16px;font-weight:500;text-align:center;color:var(--muted);margin:12px 0 28px}.login-box .version-label{display:block;text-align:center;margin-top:24px;font-size:11px}.login-box .login-form{gap:18px}@media(max-width:400px){.login-page{padding:16px}.login-box{padding:26px 22px}}
