:root{--ink:#152b38;--muted:#60737e;--line:#dce5e7;--paper:#fff;--bg:#f3f6f6;--nav:#142e37;--green:#097765;--pale:#e5f4ef;--amber:#a66509;--danger:#af3436;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:16px;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #4799d1}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border:1px solid #cbd8db;background:#fff;color:var(--ink);border-radius:7px;cursor:pointer;font-size:14px;text-decoration:none;white-space:nowrap}button:hover,.button:hover{background:#eef4f4}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover{background:#065f51}.danger{color:var(--danger);border-color:#e3b9b9}.quiet{background:transparent}h1,h2,h3,p{margin-top:0}h1{font-size:26px;letter-spacing:-.6px;margin-bottom:8px}h2{font-size:19px;margin-bottom:16px}h3{font-size:16px;margin-bottom:8px}p{line-height:1.8}.muted,small{color:var(--muted)}small{font-size:14px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:224px;background:var(--nav);color:#d4e3e6;padding:30px 18px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:12px;align-items:center;padding:0 10px 34px;font-weight:700;font-size:22px;text-decoration:none;color:#fff}.brand-mark{background:#a7dac6;color:#163b36;border-radius:9px;width:40px;height:40px;display:grid;place-items:center}.brand small{display:block;font-weight:400;font-size:12px;letter-spacing:1px;color:#a9c2c7;margin-top:5px}.nav-label{padding:0 14px 12px;font-size:12px;letter-spacing:2px;color:#8fadb4}nav{display:grid;gap:5px}nav a{color:#c5d8dd;text-decoration:none;display:flex;align-items:center;gap:13px;padding:13px 15px;font-size:15px;border-radius:7px}nav a:hover{background:#203d47}nav a.active{color:white;background:#28564f;box-shadow:inset 3px 0 #94d8bc}nav .nav-icon{width:20px;font-size:17px;text-align:center}.sidebar-foot{margin-top:auto;padding:18px 8px 0;border-top:1px solid #34505a;font-size:13px}.sidebar-foot small{font-size:12px;display:block;margin:9px 0;color:#89a6af}.online-dot{width:6px;height:6px;display:inline-block;background:#83d6ae;border-radius:50%;margin-right:7px}.workspace{margin-left:224px}.topbar{background:#fff;min-height:80px;border-bottom:1px solid var(--line);display:flex;gap:18px;justify-content:space-between;align-items:center;padding:18px 36px}.topbar>div:first-child{display:flex;gap:12px;align-items:center;font-size:14px}.top-controls{display:flex;gap:16px;align-items:center}.top-controls label{display:flex;gap:10px;align-items:center;white-space:nowrap;color:var(--muted);font-size:14px}.top-controls input{width:146px}main{padding:32px 36px;max-width:1680px;min-height:calc(100vh - 130px)}footer{padding:0 36px 24px;color:var(--muted);font-size:12px}.page-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.page-head p{color:var(--muted);font-size:14px;margin:0}.actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.stat{padding:21px 23px;background:#fff;border:1px solid var(--line);border-radius:10px}.stat label{color:var(--muted);font-size:14px}.stat strong{display:block;font-size:30px;font-weight:600;line-height:1.4;margin:12px 0 8px;font-variant-numeric:tabular-nums}.stat small{font-size:13px}.stat.accent{background:#e7f2ee;border-color:#c6e3d8}.stat.warn strong{color:var(--amber)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px}.panel-head h2{margin:0}.panel-head p{margin:8px 0 0;font-size:14px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:1.25fr 1fr;gap:22px}.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding-top:8px}.step{border-top:2px solid var(--line);padding:20px 18px 0 0;position:relative}.step:before{content:"";position:absolute;top:-6px;left:0;width:10px;height:10px;background:#bdced1;border:2px solid #fff;border-radius:50%}.step.done{border-color:#64ab96}.step.done:before{background:var(--green)}.step span{font-size:12px;color:var(--muted);letter-spacing:1px}.step h3{margin:10px 0}.step p{font-size:14px;color:var(--muted);margin-bottom:14px}.tag{display:inline-block;padding:4px 9px;border-radius:5px;font-size:12px;white-space:nowrap;background:#edf2f4;color:#526871}.tag.green{background:#e3f3ea;color:#176747}.tag.amber{background:#fff0d8;color:#946008}.tag.red{background:#fde9e8;color:#a83837}.banner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 19px;border:1px solid #d2e4df;background:#ecf6f1;border-radius:8px;margin-bottom:20px;font-size:14px;line-height:1.8}.banner.amber{background:#fff6e7;border-color:#f0dec1}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:17px;flex-wrap:wrap}.toolbar input{max-width:260px}.toolbar select{width:auto;min-width:136px}.toolbar .count{margin-left:auto;color:var(--muted);font-size:14px}input,select,textarea{padding:10px 12px;border:1px solid #cad8dc;border-radius:6px;background:#fff;color:var(--ink);width:100%;font-size:14px}textarea{min-height:82px;resize:vertical}input[type=checkbox]{width:17px;height:17px;accent-color:var(--green)}.table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:8px;background:#fff}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap;font-size:14px}th{background:#f7f9fa;color:#596f79;font-weight:500;padding:13px 16px;border-bottom:1px solid var(--line)}td{padding:14px 16px;border-bottom:1px solid #eaf0f1;vertical-align:middle}tr:last-child td{border:0}tbody tr:hover{background:#f8fbfa}td small{display:block;margin-top:5px;font-size:12px}td.numeric,th.numeric{text-align:right;font-variant-numeric:tabular-nums}td button{font-size:13px;padding:5px 9px}td .actions{flex-wrap:nowrap}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:15px;font-size:14px;color:var(--muted)}.empty{padding:48px;text-align:center;color:var(--muted);white-space:normal}.empty h3{color:var(--ink)}.project-row{padding:14px 0;border-bottom:1px solid #edf0f1}.project-row:last-child{border:0}.project-row>div:first-child{display:flex;justify-content:space-between;font-size:14px;margin-bottom:10px}.bar{height:7px;background:#eaf0ef;border-radius:3px;overflow:hidden}.bar i{display:block;background:#68a893;height:100%;border-radius:3px}.bar i.over{background:#c88550}.bullet-list{list-style:none;margin:0;padding:0}.bullet-list li{font-size:14px;line-height:1.8;padding:11px 0;border-bottom:1px solid #edf0f1}.bullet-list li:last-child{border:0}.bullet-list small{font-size:12px;display:block}.bullet-list code{font:inherit;color:var(--muted)}.issues{background:#fff4e7;border:1px solid #efd4b3;padding:16px 20px;border-radius:8px;margin:15px 0;max-height:280px;overflow:auto;font-size:14px;line-height:1.9}.issues ul{margin-bottom:0;padding-left:20px}.cost-total{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}.loading{padding:80px;text-align:center;color:var(--muted)}dialog{width:min(800px,calc(100% - 30px));max-height:90vh;border:1px solid var(--line);padding:0;border-radius:12px;box-shadow:0 24px 80px #142e3730;color:var(--ink)}dialog::backdrop{background:#13252f80;backdrop-filter:blur(2px)}.dialog-head{padding:22px 26px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.dialog-head h2{margin:0}.icon-btn{font-size:25px;padding:0 8px;border:0;background:none;color:var(--muted)}#dialog-body{padding:24px 26px;max-height:65vh;overflow:auto}.dialog-actions{padding:18px 26px;display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--line)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:block;font-size:14px}.field>span{display:block;margin-bottom:9px;color:#4c636f}.field.full{grid-column:1/-1}.field small{display:block;font-size:12px;line-height:1.7;margin-top:7px}.check-label{display:flex;gap:10px;font-size:14px;line-height:1.8;align-items:flex-start;margin:18px 0 0}.check-label input{flex-shrink:0;margin-top:5px}.form-error{color:var(--danger);padding:0 26px 12px;font-size:14px}.form-error:empty{display:none}#toast{position:fixed;bottom:30px;left:calc(50% + 90px);transform:translateX(-50%);max-width:80%;padding:14px 23px;background:#183e36;color:#fff;box-shadow:0 5px 20px #0002;border-radius:8px;font-size:14px;z-index:99;display:none}#toast.show{display:block}.mapping{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.mapping label{font-size:14px}.mapping select{margin-top:7px}.inline-note{font-size:14px;line-height:1.8;color:var(--muted)}.roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.roadmap article{padding:18px;background:#f6f9f8;border-radius:8px;font-size:14px}.roadmap article p{margin:12px 0 0;color:var(--muted)}a{color:var(--green)}
[hidden]{display:none!important}
@media(min-width:1550px){main{padding:38px 48px}.topbar{padding-left:48px;padding-right:48px}}
@media(max-width:1100px){.sidebar{width:180px;padding-left:10px;padding-right:10px}.brand{font-size:20px;gap:8px;padding-left:4px;padding-right:4px}.brand-mark{flex-shrink:0}.brand small{letter-spacing:0;white-space:nowrap}.workspace{margin-left:180px}main{padding:26px 22px}.topbar{padding:18px 22px;flex-wrap:wrap}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat{padding:18px 15px}.stat strong{font-size:25px;overflow-wrap:anywhere}.grid-2{grid-template-columns:1fr}.page-head{align-items:flex-start}.flow{grid-template-columns:1fr 1fr;gap:25px}.roadmap{grid-template-columns:1fr}}
@media(max-width:720px){.sidebar{position:static;width:auto;padding:16px}.brand{padding:0 0 16px}.sidebar-foot,.nav-label{display:none}nav{display:flex;overflow:auto}nav a{padding:9px;white-space:nowrap}nav .nav-icon{display:none}.workspace{margin:0}.topbar{padding:16px}.top-controls{gap:9px}main{padding:22px 16px}.stats{grid-template-columns:1fr 1fr}.page-head{flex-direction:column;gap:12px}.panel{padding:18px}.fields,.mapping{grid-template-columns:1fr}.field.full{grid-column:auto}.banner{align-items:flex-start;flex-direction:column;gap:10px}.topbar>div:first-child{flex-wrap:wrap}#toast{left:50%}footer{padding:15px;font-size:11px}}

.signed-out .sidebar,.signed-out .topbar,.signed-out footer{display:none}.signed-out .workspace{margin-left:0}.signed-out main{min-height:100vh;display:grid;place-items:center}.login-card{background:#fff;border:1px solid #dce4e0;border-radius:20px;padding:40px;width:min(460px,100%);box-shadow:0 20px 60px #163c2a10}.login-card h1{font-size:27px;margin:12px 0}.login-card p{color:#61726b;line-height:1.7}.login-card .field{margin:18px 0}.login-card small{display:block;color:#61726b;line-height:1.7;margin-top:22px}.eyebrow{color:#397057;font-size:13px;font-weight:700;letter-spacing:2px}#identity{display:block;margin-top:7px;color:#61726b}.credential{display:block;padding:16px;background:#eef6ef;overflow-wrap:anywhere;font-size:18px;user-select:all}.timeline li{margin-bottom:16px}.timeline small{display:block;color:#61726b;margin-top:4px}.timeline p,.request-reason{white-space:pre-wrap;overflow-wrap:anywhere}.top-controls{flex-wrap:wrap}@media(max-width:600px){.login-card{padding:24px}.topbar{align-items:flex-start;gap:16px}.top-controls{gap:8px}}
/* Employee onboarding remains usable on phone widths. */
.bulk-people{max-height:420px;overflow:auto;border:1px solid var(--line,#dfe7e2);border-radius:10px}
.bulk-person{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid var(--line,#dfe7e2);cursor:pointer}
.bulk-person[hidden]{display:none}.bulk-person>input{width:18px;height:18px;flex-shrink:0}.bulk-person>span{flex:1;min-width:0}.bulk-person small{display:block;color:#65736c;margin-top:4px}.bulk-person code{max-width:40%;overflow-wrap:anywhere}
.path-note{overflow-wrap:anywhere}#download-credentials{margin-bottom:18px}#bulk-count{display:inline-block;margin:8px}
.staff-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.staff-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.staff-project-card{margin:0;min-width:0}.staff-project-card h2{overflow-wrap:anywhere}.staff-project-number strong{font-size:34px;color:var(--green)}.staff-project-number{margin:10px 0 16px}.staff-toolbar{flex-wrap:wrap}.staff-toolbar label{display:flex;align-items:center;gap:10px}.staff-history{border-bottom:1px solid var(--line);padding:14px 0}.staff-history summary{cursor:pointer;line-height:1.8}.staff-history p{overflow-wrap:anywhere}.staff-target.field>.field{margin:0}.staff-target[hidden]{display:none}.staff-picker{max-height:270px}.sidebar nav{min-height:0;overflow-y:auto}.sidebar-foot{flex-shrink:0}.staff-toolbar>input{min-width:160px;max-width:100%}@media(max-width:720px){.staff-project-grid{grid-template-columns:1fr}.staff-toolbar>*{max-width:100%}.staff-toolbar label{flex-wrap:wrap}.sidebar nav{overflow-y:hidden;overflow-x:auto}}
.staff-toolbar label{white-space:nowrap}.staff-toolbar label input{width:195px}.staff-toolbar>input{flex:1;max-width:480px}.staff-toolbar small{flex-basis:100%}
.top-controls label[hidden]{display:none}

/* Compact business page headings. */
.page-head h1{margin-bottom:0}.stat strong:last-child{margin-bottom:0}

/* Keep wide identity tables inside their own scroller on narrow screens. */
.grid-2{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}.grid-2>*{min-width:0}@media(max-width:1100px){.grid-2{grid-template-columns:minmax(0,1fr)}}
