:root{
  --ink:#11231d;
  --muted:#6c7973;
  --subtle:#94a09a;
  --paper:#f4f6f1;
  --panel:rgba(255,255,252,.88);
  --solid:#ffffff;
  --line:#dde4dc;
  --green:#123328;
  --green-2:#1e6f55;
  --gold:#c6a15b;
  --yellow:#b88419;
  --red:#c8473c;
  --blue:#3468a3;
  --gray:#7b827e;
  --shadow:0 24px 70px rgba(18,35,29,.12);
  --soft:0 10px 30px rgba(18,35,29,.08);
}
*{box-sizing:border-box}
html{background:var(--paper)}
body{margin:0;font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--ink);background:radial-gradient(circle at 18% 0%,rgba(198,161,91,.18),transparent 30%),linear-gradient(135deg,#f8f7f1 0%,#eef3ee 54%,#f7f5ed 100%);letter-spacing:0}
button,input,select,textarea{font:inherit}
button{cursor:pointer;border:0;border-radius:8px;background:linear-gradient(135deg,#123328,#1d4b3b);color:#fff;padding:10px 15px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,opacity .18s ease}
button:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(18,51,40,.18)}
button:active{transform:translateY(0) scale(.99)}
button.secondary{background:#edf2ed;color:var(--green);border:1px solid #d7e2d9;box-shadow:none}
a{color:var(--green-2)}
.hidden{display:none!important}
.eyebrow{margin:0 0 8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--green-2);font-weight:800}
.hint{font-size:13px;color:var(--muted)}
.error{color:var(--red);min-height:18px}

.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(360px,.92fr) minmax(520px,1.08fr);position:relative;overflow:hidden}
.login-shell:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,51,40,.04),transparent 36%);pointer-events:none}
.login-art{padding:8vw 6vw;background:linear-gradient(160deg,#0f241d 0%,#142d24 48%,#554321 100%);color:#fff;position:relative;overflow:hidden}
.login-art:before{content:"";position:absolute;inset:22% -24% auto 28%;height:380px;background:radial-gradient(circle,rgba(198,161,91,.28),transparent 62%);filter:blur(8px)}
.login-art:after{content:"";position:absolute;inset:auto -18% -28% 18%;height:48%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.11) 0 1px,transparent 1px 30px);transform:rotate(-9deg);opacity:.55}
.login-art>*{position:relative;z-index:1}
.login-art h1{font-size:58px;line-height:.98;margin:0 0 24px;font-weight:800;letter-spacing:0}
.login-copy{max-width:520px;font-size:16px;line-height:1.85;color:#dde8df}
.login-art .login-copy{padding:16px 0;border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.12)}
.onboard-steps{position:relative;z-index:1;display:grid;gap:10px;margin-top:24px;max-width:480px}
.onboard-steps span{padding:11px 13px;border:1px solid rgba(255,255,255,.13);border-radius:12px;background:rgba(255,255,255,.07);backdrop-filter:blur(10px);color:#eef6f0;font-size:13px}
.auth-link{margin-top:18px}
.login-card{align-self:center;justify-self:center;width:min(520px,calc(100% - 48px));max-height:calc(100vh - 48px);overflow:auto;background:rgba(255,255,252,.92);border:1px solid rgba(216,226,217,.9);border-radius:16px;padding:34px;box-shadow:var(--shadow);backdrop-filter:blur(18px);animation:riseIn .42s ease both}
.login-card h2{font-size:30px;margin:0 0 22px;letter-spacing:0;font-weight:800}
.login-card label,.modal-card label{display:grid;gap:8px;margin:13px 0;color:#40504a;font-size:14px;font-weight:650}
.login-card input,.login-card select,.modal-card input,.modal-card select,.modal-card textarea{width:100%;height:46px;border:1px solid #d7dfd7;background:#fff;border-radius:10px;padding:0 13px;color:var(--ink);outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.login-card textarea,.modal-card textarea{height:auto;min-height:92px;padding:12px}
.login-card input:focus,.login-card select:focus,.modal-card input:focus,.modal-card select:focus,.modal-card textarea:focus{border-color:var(--green-2);box-shadow:0 0 0 4px rgba(30,111,85,.11)}
.login-card button[type=submit],.modal-card button[type=submit]{width:100%;height:48px;margin-top:16px;font-weight:750}

.dashboard{display:grid;grid-template-columns:228px 1fr;min-height:100vh}
.sidebar{background:linear-gradient(180deg,#10231c,#182f26);color:#fff;padding:22px 16px;border-right:1px solid rgba(255,255,255,.08);position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:11px;margin:0 6px 28px;font-size:18px;font-weight:800}
.brand span{width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,#c6a15b,#1e6f55);box-shadow:0 10px 24px rgba(0,0,0,.22)}
.nav{display:flex;width:100%;align-items:center;gap:10px;text-align:left;margin:6px 0;background:transparent;color:#dce7e0;border:1px solid transparent;padding:11px 12px;box-shadow:none}
.nav.active,.nav:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);box-shadow:none}
.nav.active{box-shadow:inset 3px 0 0 var(--gold)}
.workspace{padding:26px;overflow:auto}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px;animation:fadeIn .3s ease both}
.topbar h1{margin:0;font-size:34px;font-weight:850;letter-spacing:0}
.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}

.command-hero{min-height:174px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px;border:1px solid rgba(211,221,212,.9);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,252,.92),rgba(236,243,237,.9));box-shadow:var(--soft);position:relative;overflow:hidden;animation:riseIn .36s ease both}
.command-hero:after{content:"";position:absolute;right:-70px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(30,111,85,.16),transparent 66%)}
.command-hero h2{position:relative;margin:0;font-size:34px;line-height:1.2}
.command-hero p:not(.eyebrow){position:relative;margin:10px 0 0;color:var(--muted);line-height:1.7}
.hero-ring{position:relative;z-index:1;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--green-2),var(--gold),#e4ebe4 76%);box-shadow:inset 0 0 0 12px rgba(255,255,255,.88),0 18px 38px rgba(18,51,40,.14)}
.hero-ring span{font-size:30px;font-weight:850}
.hero-ring small{font-size:12px;color:var(--muted);margin-top:-34px}

.cards{display:grid;gap:14px;margin:16px 0 18px}
.metric-grid{grid-template-columns:repeat(6,minmax(130px,1fr))}
.card,.panel{background:var(--panel);border:1px solid rgba(216,226,217,.9);border-radius:14px;box-shadow:var(--soft);backdrop-filter:blur(16px)}
.card{position:relative;min-height:126px;padding:18px;overflow:hidden;animation:riseIn .34s ease both;animation-delay:var(--delay,0ms)}
.card:after{content:"";position:absolute;inset:auto -40px -48px auto;width:110px;height:110px;border-radius:50%;background:rgba(30,111,85,.08)}
.metric-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#edf5ef;color:var(--green);font-weight:850}
.card span{display:block;margin-top:12px;color:var(--muted);font-size:13px}
.card strong{display:block;margin-top:4px;font-size:32px;line-height:1;font-weight:850}
.card small{display:block;margin-top:9px;color:var(--subtle);font-size:12px}
.dashboard-grid{display:grid;grid-template-columns:1.3fr .9fr 1fr 1fr;gap:16px;margin-bottom:18px}
.panel{padding:18px;animation:riseIn .36s ease both}
.panel-title{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:15px}
.panel-title h2{margin:0;font-size:19px;font-weight:850}
.panel-title span{color:var(--muted);font-size:12px}
.split{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px}
.overview-lower{align-items:start}

.cycle-score{display:flex;align-items:baseline;gap:10px;margin:8px 0 12px}
.cycle-score strong{font-size:44px;line-height:1;font-weight:900}
.cycle-score span{color:var(--muted)}
.hero-progress,.progress{height:10px;background:#e5ece5;border-radius:999px;overflow:hidden}
.hero-progress i,.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--green-2),var(--gold));border-radius:999px;transform-origin:left;animation:barIn .7s ease both}
.cycle-facts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.cycle-facts span,.mini-pill{border:1px solid #d9e2da;border-radius:999px;padding:5px 9px;font-size:12px;color:#58665f;background:#fbfdf9}
.risk-distribution{display:grid;grid-template-columns:repeat(5,1fr);align-items:end;gap:8px;height:164px}
.risk-chip{height:100%;min-width:0;display:grid;grid-template-rows:1fr auto;gap:8px;padding:10px;border-radius:12px;background:#f8fbf7;border:1px solid #dfe8df;position:relative;overflow:hidden}
.risk-chip div{position:relative;z-index:1;align-self:end}
.risk-chip strong,.risk-chip span{display:block;font-size:12px}
.risk-chip span{color:var(--muted);margin-top:3px}
.risk-chip i{position:absolute;left:0;right:0;bottom:0;background:rgba(30,111,85,.18)}
.risk-chip.warning i{background:rgba(184,132,25,.2)}.risk-chip.danger i,.risk-chip.critical i{background:rgba(200,71,60,.18)}.risk-chip.exempt i{background:rgba(123,130,126,.16)}
.pipeline{display:grid;gap:10px}
.pipe-step{display:grid;grid-template-columns:82px 1fr;align-items:center;gap:10px;animation:fadeIn .3s ease both;animation-delay:var(--delay)}
.pipe-step strong{display:block;font-size:20px}
.pipe-step span{display:block;color:var(--muted);font-size:12px}
.pipe-track{height:8px;border-radius:999px;background:#e5ece5;overflow:hidden}
.pipe-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green-2),var(--gold));transform-origin:left;animation:barIn .7s ease both}
.todo-list{display:grid;gap:9px}
.todo-item{height:44px;display:flex;align-items:center;justify-content:space-between;background:#f8fbf7;color:var(--ink);border:1px solid #dfe8df;box-shadow:none}
.todo-item strong{font-size:20px}.todo-item.danger{border-color:rgba(200,71,60,.28);background:#fff6f4}.todo-item.warning{border-color:rgba(184,132,25,.28);background:#fffaf0}
.notice-strip{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin:0 0 14px;padding:13px 14px;border:1px solid #dfe7df;border-radius:12px;background:linear-gradient(135deg,#f8fbf7,#fffaf0);color:#43534c}
.notice-strip strong{color:var(--green);white-space:nowrap}
.notice-strip span{font-size:13px;line-height:1.7;color:var(--muted)}

.tree-table{display:block}.org-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:14px 16px;border:1px solid #dfe7df;border-radius:12px;background:linear-gradient(135deg,#fff,#f4faf5);box-shadow:inset 4px 0 0 var(--green-2)}.org-toolbar strong{display:block;font-size:22px;line-height:1.15}.org-toolbar small{display:block;margin-top:5px;color:var(--muted);font-size:13px}.org-kicker{display:block;margin-bottom:4px;color:var(--green-2);font-size:11px;font-weight:800;letter-spacing:.12em}.org-tools,.org-crumbs{display:flex;gap:8px;flex-wrap:wrap}.org-crumbs{margin:0 0 14px}.org-crumbs button{position:relative;background:#f8fbf7;color:var(--ink);border:1px solid #dfe8df;padding:7px 11px;font-size:12px;box-shadow:none}.org-crumbs button.active{background:var(--green);color:#fff;border-color:var(--green)}.org-list{display:grid;gap:10px}.org-node{position:relative;margin-left:calc(var(--depth,0)*30px);animation:orgIn .22s ease both}.org-node:before{content:"";position:absolute;left:-14px;top:0;bottom:0;width:1px;background:#d8e2d8}.org-node:after{content:"";position:absolute;left:-14px;top:31px;width:14px;height:1px;background:#d8e2d8}.org-node[data-depth="0"]{margin-left:0}.org-node[data-depth="0"]:before,.org-node[data-depth="0"]:after{display:none}.org-card{display:grid;grid-template-columns:54px minmax(230px,1.45fr) minmax(150px,.85fr) minmax(130px,.7fr) auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid #dfe7df;border-radius:12px;background:#fff;box-shadow:0 10px 22px rgba(18,35,29,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.org-card:hover{transform:translateY(-1px);border-color:#bfd4c7;box-shadow:0 15px 30px rgba(18,35,29,.1)}.org-line{display:flex;align-items:center;gap:8px}.icon-action{width:30px;height:30px;padding:0;border-radius:9px;background:#edf5ef;color:var(--green);display:inline-flex;align-items:center;justify-content:center;box-shadow:none}.icon-action:hover{background:#dcebe2}.leaf-dot{width:30px;height:30px;border-radius:9px;border:1px dashed #cddbd0;background:#f8fbf7}.level-badge{width:30px;height:30px;border-radius:9px;background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}.org-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.org-head strong{font-size:16px}.org-main small,.org-task small,.org-progress small{display:block;margin-top:4px;color:var(--muted);font-size:12px}.node-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}.org-task span{font-size:13px;color:#2a342d}.org-progress{min-width:120px}.org-children{display:grid;gap:10px;margin-top:0;padding-left:34px;max-height:0;opacity:0;overflow:hidden;transform:translateY(-4px);transition:max-height .34s ease,opacity .22s ease,transform .22s ease,margin-top .22s ease}.org-children.is-open{max-height:2400px;opacity:1;transform:translateY(0);margin-top:10px}

.tag{display:inline-flex;align-items:center;justify-content:center;min-width:54px;border-radius:999px;padding:5px 9px;font-size:12px;border:1px solid currentColor;font-weight:750}.normal,.passed{color:var(--green-2)}.warning{color:var(--yellow)}.danger,.critical,.failed{color:var(--red)}.exempt,.paused{color:var(--gray)}.active{color:var(--blue)}
.condition-grid,.review-stack{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.leader-path{display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:360px;line-height:1.7}
.leader-path span{display:inline-flex;align-items:center;border:1px solid #dfe7df;border-radius:999px;background:#f8fbf7;color:#52615a;padding:4px 8px;font-size:12px;font-weight:750}
.leader-path span.current{background:#eef7f1;border-color:#cfe5d5;color:var(--green-2)}
.leader-path i{font-style:normal;color:#a5b1aa;font-size:12px}
.path-meta{display:block;margin-top:5px;color:var(--muted);font-size:12px}
.condition-pill,.review-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #dfe7df;border-radius:999px;background:#f8fbf7;color:#52615a;padding:6px 9px;font-size:12px;font-weight:750;white-space:nowrap}
.condition-pill i,.review-badge i{width:17px;height:17px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:11px;font-weight:900;background:#dfe8df;color:#52615a}
.condition-pill small{font-size:11px;color:var(--muted);font-weight:700}
.condition-pill.ok,.review-badge.approved{background:#f0f8f3;border-color:#cfe5d5;color:var(--green-2)}
.condition-pill.ok i,.review-badge.approved i{background:var(--green-2);color:#fff}
.condition-pill.wait,.review-badge.pending{background:#fffaf0;border-color:#eadbb8;color:var(--yellow)}
.condition-pill.wait i,.review-badge.pending i{background:#d9b766;color:#fff}
.review-badge.rejected{background:#fff3f1;border-color:#efcac5;color:var(--red)}
.review-badge.rejected i{background:var(--red);color:#fff}
.newcomer-mini{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
button:disabled{cursor:not-allowed;opacity:.58;transform:none!important;box-shadow:none!important}
.risk-list{display:grid;gap:10px}.risk-item{padding:13px;border:1px solid #dfe7df;border-radius:12px;background:#fff;animation:riseIn .25s ease both;animation-delay:var(--delay)}.risk-item strong{display:block;margin-top:8px}.risk-item p{margin:7px 0 10px;color:var(--muted);font-size:13px;line-height:1.55}.risk-item button{padding:7px 9px;font-size:12px}
.table-wrap{overflow:auto;border:1px solid #dfe7df;border-radius:12px;background:#fff}table{width:100%;border-collapse:collapse;min-width:920px}th,td{text-align:left;border-bottom:1px solid #edf2ed;padding:13px;font-size:14px}th{color:var(--muted);font-size:12px;background:#f8fbf7;font-weight:800}tr:hover td{background:#fbfdf9}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.row-actions button{padding:7px 9px;font-size:12px}.leader-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.leader-card{border:1px solid #dfe7df;background:#fff;border-radius:14px;padding:15px;box-shadow:var(--soft);transition:transform .18s ease,box-shadow .18s ease}.leader-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.drawer,.modal{position:fixed;inset:0;background:rgba(16,35,28,.48);z-index:20;display:flex;justify-content:flex-end;animation:fadeIn .18s ease both}.drawer-card{width:min(640px,100%);height:100%;background:rgba(255,255,252,.96);padding:28px;overflow:auto;box-shadow:var(--shadow);position:relative;animation:slideIn .22s ease both}.modal{align-items:center;justify-content:center}.modal-card{width:min(540px,calc(100% - 28px));max-height:calc(100vh - 34px);overflow:auto;background:rgba(255,255,252,.96);border:1px solid #dfe7df;border-radius:16px;padding:28px;box-shadow:var(--shadow);position:relative;animation:modalIn .2s ease both}.modal-card h2{margin:0 0 18px}.close{position:absolute;right:14px;top:14px;width:34px;height:34px;border-radius:50%;padding:0;background:#edf3ed;color:var(--ink);font-size:22px;box-shadow:none}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.detail-grid div{background:#f8fbf7;border:1px solid #dfe7df;padding:12px;border-radius:12px}.detail-grid span{display:block;color:var(--muted);font-size:12px}.task-list{display:grid;gap:10px;margin-top:14px}.task{border:1px solid #dfe7df;border-radius:12px;padding:12px;background:#fff}.toast{position:fixed;right:20px;bottom:20px;background:#10231c;color:#fff;border-radius:12px;padding:12px 16px;z-index:40;box-shadow:var(--shadow);animation:toastIn .2s ease both}
.invite-link-card{width:min(620px,calc(100% - 28px))}
.invite-link-box{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:18px;padding:10px;border:1px solid #dfe7df;border-radius:14px;background:#f8fbf7}
.invite-link-box input{height:44px;border:0;background:#fff;border-radius:10px;padding:0 12px;color:var(--ink);outline:none}
.invite-link-box button{height:44px}
.app-dialog-card{width:min(520px,calc(100% - 28px));padding:30px}
.dialog-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;margin-bottom:14px;background:#fff7e4;color:var(--yellow);font-weight:900;font-size:20px;border:1px solid #eadbb8}
.dialog-icon.danger{background:#fff3f1;color:var(--red);border-color:#efcac5}
.dialog-icon.success{background:#f0f8f3;color:var(--green-2);border-color:#cfe5d5}
.dialog-body{color:#43534c;line-height:1.7}
.dialog-body p{margin:0 0 12px}
.dialog-reason-list{display:grid;gap:9px;margin-top:14px}
.dialog-reason-list div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;padding:10px 12px;border:1px solid #eadbb8;border-radius:12px;background:#fffaf0}
.dialog-reason-list strong{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#d9b766;color:#fff;font-size:12px}
.dialog-field{margin-top:18px}
.dialog-field label{display:block;margin-bottom:8px;color:#40504a;font-size:14px;font-weight:750}
.dialog-field input{width:100%;height:46px;border:1px solid #d7dfd7;background:#fff;border-radius:10px;padding:0 13px;outline:none}
.dialog-field input:focus{border-color:var(--green-2);box-shadow:0 0 0 4px rgba(30,111,85,.11)}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.dialog-actions button{min-width:96px}
@keyframes riseIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes orgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{from{transform:translateX(24px);opacity:.8}to{transform:translateX(0);opacity:1}}@keyframes modalIn{from{transform:scale(.98) translateY(8px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}@keyframes toastIn{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes barIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:1280px){.metric-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1100px){.dashboard{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:5;height:auto;display:flex;gap:8px;overflow:auto}.brand{margin:0 18px 0 0}.nav{white-space:nowrap}.split{grid-template-columns:1fr}.workspace{padding:18px}.login-shell{grid-template-columns:1fr}.login-art{min-height:360px}.login-art h1{font-size:42px}.login-card{margin:24px 0}.command-hero{display:grid}.hero-ring{width:112px;height:112px}.org-toolbar,.org-card{display:grid;grid-template-columns:1fr}.org-node{margin-left:calc(var(--depth,0)*14px)}.org-children{padding-left:18px}}
@media(max-width:720px){.metric-grid,.dashboard-grid{grid-template-columns:1fr}.topbar{display:grid}.actions{justify-content:flex-start}.login-art h1{font-size:36px}.login-card{width:calc(100% - 28px);padding:24px}.command-hero h2{font-size:26px}.detail-grid{grid-template-columns:1fr}}
