@font-face{font-family:Manrope;src:url('/manrope.woff2') format('woff2');font-display:swap;font-weight:200 800}
:root{font-family:Manrope,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;color:#202923;background:#f5f6f2;font-synthesis:none;--ink:#202923;--muted:#68756e;--dark:#19231e;--line:#e2e8e1;--paper:#fff;--green:#2d6347;--accent:#d9eb98;--radius:14px}
*{box-sizing:border-box}
body{margin:0;min-width:320px;font-size:14px}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
button:disabled{cursor:wait;opacity:.65}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #4b9167;outline-offset:3px}
h1,h2,h3,p{margin:0}
.icon{display:inline-block;vertical-align:middle;flex:none;width:var(--size);height:var(--size);background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.layout{min-height:100vh;display:grid;grid-template-columns:234px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;min-height:0;display:flex;flex-direction:column;overflow:auto;background:#19231e;color:#c1cac3;padding:28px 17px 16px;z-index:6}
.brand{display:flex;gap:12px;align-items:center;color:#fff;padding:0 9px}
.brand b{display:block;font-size:21px;font-weight:800;letter-spacing:-.065em;line-height:1.2;white-space:nowrap}
.brand b span{margin-left:3px;letter-spacing:-.05em}
.brand small{display:block;margin-top:4px;font-size:8.5px;letter-spacing:.16em;font-weight:800;color:#a7b8a8}
.brand-mark{width:38px;height:38px;display:grid;grid-template-columns:repeat(2,8px);grid-template-rows:repeat(2,8px);place-content:center;gap:3px;border-radius:11px;background:#d9eb98;flex:none;transform:rotate(-4deg)}
.brand-mark i{background:#213428;border-radius:1px}
.brand-mark i:nth-child(2){border-radius:100% 1px 1px 1px}
.brand-mark i:nth-child(3){border-radius:1px 1px 1px 100%}
.brand-mark i:nth-child(4){background:#6a8554;border-radius:50%}
.sidebar nav{display:grid;gap:25px;margin-top:42px}
.nav-group{display:grid;gap:3px}
.nav-label{font-size:11px;font-weight:700;color:#91a398;letter-spacing:.1em;padding:0 11px 6px}
.nav-link{display:flex;align-items:center;gap:11px;min-height:42px;padding:0 11px;border-radius:8px;font-weight:650;white-space:nowrap;transition:background .16s,color .16s}
.nav-link .icon{color:#a9b9ac}
.nav-link:hover{background:#2a3830;color:#fff}
.nav-link.selected{background:#d9eb98;color:#1b2c20;font-weight:800}
.nav-link.selected .icon{color:#25462f}
.nav-link i{margin-left:auto;width:6px;height:6px;background:#375b39;border-radius:50%}
.sidebar-end{margin-top:auto;padding:17px 5px 0;border-top:1px solid #35433a;display:flex;align-items:center;gap:7px;color:#a8b8aa;font-size:11px;white-space:nowrap}
.sidebar nav{margin-bottom:27px}
.online{width:7px;height:7px;border-radius:50%;background:#b7d788;box-shadow:0 0 0 3px #334d38}
.side-version{margin-left:auto;color:#9ca99e;font-weight:750;letter-spacing:.09em}
.main{min-width:0}
.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 31px;background:#fff;border-bottom:1px solid var(--line)}
.crumb,.top-controls,.account summary{display:flex;align-items:center;gap:12px}
.crumb{color:var(--muted);white-space:nowrap}
.crumb strong{color:var(--ink);font-weight:800}
.demo-pill{display:flex;align-items:center;gap:6px;color:#69521d;border:1px solid #efe7c9;background:#fff8e5;border-radius:20px;padding:5px 10px;font-size:11px;font-weight:750;white-space:nowrap}
.demo-pill i,.hero-label i{width:6px;height:6px;border-radius:50%;background:#c39330}
.account{position:relative;z-index:8}
.account summary{list-style:none;cursor:pointer;border-radius:8px;padding:4px;gap:9px}
.account summary::-webkit-details-marker{display:none}
.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:10px;background:#e3ecdf;color:#376248;font-size:12px;font-weight:800}
.user-label{display:grid;gap:1px;line-height:1.25;min-width:48px;max-width:160px}
.user-label b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.user-label small{font-size:10px;color:var(--muted)}
.account-menu{position:absolute;min-width:156px;top:calc(100% + 8px);right:0;padding:5px;border:1px solid var(--line);background:#fff;border-radius:9px;box-shadow:0 10px 25px #233b2715}
.account-menu button{width:100%;text-align:left;padding:9px;border:0;border-radius:5px;background:#fff;display:flex;gap:8px;align-items:center}
.account-menu button:hover{background:#eef3e9}
.mobile-menu,.nav-backdrop{display:none!important}
.main-body{max-width:1550px;margin:auto;padding:27px 31px 45px;outline:none}
.dashboard{display:grid;gap:17px}
.hero{position:relative;isolation:isolate;min-height:178px;overflow:hidden;background:#21392c;color:#fff;border-radius:16px;display:flex;justify-content:space-between;padding:24px 27px}
.hero:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 90% 50%,#3d5941,transparent 65%),repeating-linear-gradient(0deg,#ffffff03 0 1px,transparent 1px 5px)}
.hero-content{z-index:1;align-self:center}
.hero-label{display:flex;align-items:center;gap:7px;color:#d7edb8;font-size:11px;letter-spacing:.12em;font-weight:800}
.hero-label i{background:#d9eb98}
.hero-label span{color:#a9bea6;margin-left:3px}
.hero h1{font-weight:800;font-size:clamp(30px,3vw,44px);letter-spacing:-.095em;margin:8px 0 6px}
.hero h1 span{color:#d9eb98}
.hero p{color:#c6d3c7;font-size:13px;letter-spacing:.045em}
.hero-date{z-index:1;align-self:flex-start;display:flex;align-items:center;gap:8px;border:1px solid #adc1a552;background:#243b30d9;padding:7px 11px;border-radius:7px;color:#e3eddf;font-size:12px;white-space:nowrap}
.hero-motif{position:absolute;z-index:-1;right:45px;top:-103px;width:460px;height:410px;opacity:.72;transform:rotate(-23deg);border-radius:50%;background:repeating-radial-gradient(ellipse at 63% 52%,transparent 0 15px,#c5dca577 16px 17px,transparent 18px 30px);-webkit-mask-image:linear-gradient(87deg,transparent 5%,#000 52%,#000 85%,transparent);mask-image:linear-gradient(87deg,transparent 5%,#000 52%,#000 85%,transparent)}
.hero-motif:after{content:"";position:absolute;width:180px;height:180px;border-radius:48% 52% 25% 75%;left:200px;top:100px;transform:rotate(20deg);background:repeating-linear-gradient(128deg,#cee8a766 0 1px,transparent 1px 6px)}
.hero-marker{position:absolute;right:28px;bottom:17px;color:#b8caaa;font-size:9px;font-weight:800;letter-spacing:.25em}
.subheading{display:flex;align-items:baseline;gap:12px;margin:3px 0 -7px}
.subheading h2{font-size:17px;font-weight:800}
.subheading span{color:var(--muted);font-size:11px}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.metric{padding:13px 15px 15px;min-width:0}
.metric-top{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:13px;color:#536458;font-weight:750}
.metric-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:9px;background:#e8f0e5;color:#386347}
.sage{background:#e8f0e5;color:#386347}
.ink{background:#e9eef6;color:#455e7e}
.gold{background:#f5f1dc;color:#7b652c}
.rose{background:#f7eae6;color:#925c4d}
.metric-value{font-size:clamp(20px,2.5vw,34px);font-weight:800;letter-spacing:-.075em;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.15;margin-top:4px}
.metric-note{margin-top:8px;font-size:11px;color:var(--muted);line-height:1.4}
.dash-split{display:grid;grid-template-columns:minmax(0,2.05fr) minmax(238px,1fr);gap:13px;align-items:stretch}
.chart-panel,.todo-panel{padding:17px 17px 12px;min-width:0}
.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}
.panel-head h2{font-size:16px;font-weight:800}
.panel-head p{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}
.small-label,.filter-select{border:1px solid var(--line);border-radius:7px;background:#f9faf7;color:#57695c;padding:5px 8px;font-size:11px;white-space:nowrap}
.plot-wrap{margin:7px 0 -4px}
.plot{display:block;width:100%;height:auto;max-height:200px;overflow:visible}
.plot text{fill:#617468;font:700 13px Manrope,"PingFang SC",sans-serif}
.plot-grid{stroke:#e0e8e0;stroke-dasharray:3 4}
.plot-line{fill:none;stroke:#447859;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.plot-point{fill:#f8fff5;stroke:#447859;stroke-width:2}
.chart-legend{display:flex;justify-content:center;align-items:center;gap:7px;font-size:11px;color:#5d7163;padding-bottom:2px}
.chart-legend i{width:14px;height:3px;background:#447859;border-radius:10px}
.todo-list{display:grid}
.todo{display:flex;align-items:center;gap:9px;padding:6px 0;min-width:0;border-top:1px solid #edf0eb}
.todo:first-child{border:0}
.todo:hover strong{color:var(--green)}
.todo .metric-icon{width:28px;height:28px;border-radius:7px}
.todo strong{font-size:12px;font-weight:750}
.todo b{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums}
.todo>.icon{color:#748479}
.recent{padding:16px 0 0;margin-top:16px;overflow:hidden}
.dashboard .recent{margin-top:0}
.recent .panel-head{padding:0 17px}
.recent .table-wrap{border:0;border-radius:0}
.text-link{display:inline-flex;align-items:center;gap:5px;color:#37684c;font-size:12px;font-weight:800;white-space:nowrap}
.text-link:hover{text-decoration:underline}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}
th,td{padding:11px 15px;border-bottom:1px solid #e9ede7}
th{font-size:11px;color:#54655a;font-weight:800;background:#f7f9f5}
td{font-size:13px}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fafbf8}
.cell-person{display:flex;align-items:center;gap:8px}
.cell-person .avatar{width:27px;height:27px;border-radius:7px}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:750;white-space:nowrap;padding:4px 8px;border-radius:20px;background:#eff2ee;color:#5c6b61}
.badge i{height:5px;width:5px;border-radius:50%;background:currentColor}
.badge.green,.badge.success{color:#326046;background:#e8f1e6}
.badge.blue,.badge.info{color:#465f87;background:#eaf0f8}
.badge.amber,.badge.warning{color:#77571b;background:#fbf1d7}
.badge.red,.badge.danger{color:#964f42;background:#f9ece8}
.empty{color:var(--muted);text-align:center;padding:28px 14px;font-size:13px;white-space:normal}
.empty .icon{color:#91a797;margin-bottom:7px}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:6px 0 23px}
.eyebrow{font-size:10px;font-weight:850;color:#50755a;letter-spacing:.16em;text-transform:uppercase}
.page-head h1{font-size:36px;line-height:1.2;letter-spacing:-.075em;margin:7px 0}
.page-head p,.muted{color:var(--muted);line-height:1.55}
.page-tools,.toolbar,.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #dce4db;border-radius:8px;padding:8px 11px;background:#fff;font-size:12px;font-weight:750;line-height:1.4;white-space:nowrap;min-height:34px}
.btn:hover{background:#f2f5ee;border-color:#bfd1bf}
.btn.primary{background:#284d37;border-color:#284d37;color:#fff}
.btn.primary:hover{background:#356347}
.btn.compact,.btn.small,.btn.ghost{padding:4px 8px;font-size:11px;min-height:27px}
.btn.danger{color:#973e30;border-color:#f0d6cd}
.btn.danger:hover{background:#fff1ed}
.icon-button{border:0;background:transparent;border-radius:6px;padding:6px;display:inline-grid;place-items:center;color:#566b5b}
.icon-button:hover{background:#edf2eb}
.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace}
.analytics-metrics,.analytics-split{margin-bottom:15px}
.stage-list{display:grid;gap:13px;padding:10px 0 4px}
.stage-list>div{display:grid;grid-template-columns:55px 1fr 24px;gap:8px;align-items:center;color:#516358;font-size:11px}
.stage-list strong{text-align:right;color:var(--ink)}
.stage-track{height:8px;border-radius:9px;background:#edf2eb;overflow:hidden}
.stage-track i{height:100%;display:block;border-radius:9px;background:#a7bdad}
.stage-track i.green{background:#558367}.stage-track i.amber{background:#c9a354}.stage-track i.blue{background:#7e9bba}
dialog{width:min(590px,calc(100vw - 28px));padding:0;border:1px solid var(--line);border-radius:15px;color:var(--ink);box-shadow:0 22px 80px #14251b30;max-height:calc(100dvh - 28px);overflow:auto}
dialog::backdrop{background:#19251f80;backdrop-filter:blur(2px)}
.dialog-head{padding:18px 20px 12px;display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.dialog-head h2{font-size:21px;line-height:1.3}
.dialog-head p{color:var(--muted);font-size:12px;line-height:1.55;margin-top:5px}
.dialog-head>.icon-button{margin:-3px -4px 0 0}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:4px 20px 15px}
.field{display:flex;flex-direction:column;gap:6px;color:#45574a;font-size:12px;font-weight:750;min-width:0}
.field.wide,.fields .wide{grid-column:1 / -1}
.field input,.field select,.field textarea,input[type=search],.toolbar select{width:100%;min-width:0;padding:9px 10px;background:#fafbf8;border:1px solid #dce5da;border-radius:7px;line-height:1.45}
.field input[type=file]{font-size:11px}
.field textarea{resize:vertical}
.field .required{color:#567a5d;font-size:10px}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding:13px 20px;background:#f8faf6}
.form-error{color:#942e26;font-size:12px;margin:0 20px 12px}
#toast{position:fixed;right:20px;bottom:20px;z-index:9;background:#253b2e;color:#fff;border:1px solid #496553;box-shadow:0 8px 22px #253b2e33;padding:10px 14px;border-radius:8px;opacity:0;transform:translateY(6px);pointer-events:none;transition:.18s;max-width:calc(100vw - 40px)}
#toast.show{opacity:1;transform:none}
.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.14fr) minmax(340px,1fr)}
.login-art{isolation:isolate;position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:100%;background:#21382c;color:#fff;padding:42px 44px 29px;overflow:hidden}
.login-art:after{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 80% 70%,#4a6142,transparent 65%),repeating-linear-gradient(0deg,#ffffff05 0 1px,transparent 1px 5px)}
.login-art .brand{padding:0}
.login-copy{padding:35px 0}
.login-index{color:#d9eb98;font-weight:850;letter-spacing:.19em;font-size:11px}
.login-copy h1{font-size:clamp(46px,6vw,90px);line-height:1.15;font-weight:800;margin:14px 0 16px;letter-spacing:-.115em}
.login-copy h1 span{color:#d9eb98}
.login-copy p{font-size:15px;color:#d8e3d5}
.login-motif{position:absolute;z-index:-1;right:-158px;bottom:-154px;width:590px;height:590px;border-radius:50%;transform:rotate(-30deg);background:repeating-radial-gradient(ellipse at center,transparent 0 12px,#c0dba96b 13px 14px,transparent 15px 25px);-webkit-mask-image:linear-gradient(50deg,transparent,#000);mask-image:linear-gradient(50deg,transparent,#000)}
.login-motif:after{content:"";position:absolute;inset:175px;border-radius:70% 30% 45% 55%;background:repeating-linear-gradient(45deg,#ccdf9977 0 1px,transparent 1px 6px)}
.login-foot{display:flex;justify-content:space-between;color:#c5d6c0;font-size:10px;font-weight:800;letter-spacing:.16em}
.login-main{display:grid;place-items:center;padding:34px 20px}
.login-form{width:min(360px,100%)}
.login-form h2{font-size:37px;font-weight:800;letter-spacing:-.08em;margin:8px 0}
.login-form>p{color:var(--muted);margin-bottom:21px}
.login-form form{display:grid;gap:13px}
.login-form input{background:#fff;min-height:42px}
.login-form .form-error{margin:0}
.login-submit{justify-content:space-between;min-height:44px;font-size:14px;margin-top:4px;padding-inline:13px}
.demo-login{border-top:1px solid var(--line);margin-top:22px;padding-top:14px;color:#68776a;font-size:11px}
.demo-login>div{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.demo-login button{border:1px solid #dce5da;border-radius:5px;padding:4px 8px;background:#fff;color:#405b48;font-size:11px;font-weight:750}
.demo-login button:hover{background:#e7efe4}
@media(max-width:1090px){
  .layout{grid-template-columns:194px minmax(0,1fr)}
  .main-body,.topbar{padding-left:20px;padding-right:20px}
  .metric{padding-left:11px;padding-right:11px}
}
@media(max-width:850px){
  .layout{grid-template-columns:minmax(0,1fr)}
  .sidebar{position:fixed;inset:0 auto 0 0;width:220px;transform:translateX(-100%);transition:transform .18s;box-shadow:0 0 38px #14271d30;visibility:hidden}
  .menu-open .sidebar{transform:none;visibility:visible}
  .mobile-menu{display:inline-grid!important;margin-left:-5px}
  .menu-open .nav-backdrop{display:block!important;position:fixed;inset:0;background:#19251f70;border:0;z-index:5}
}
@media(max-width:620px){
  .topbar{height:58px;padding:0 12px}
  .crumb,.top-controls{gap:7px}
  .crumb>span:not(.icon){display:none}
  .crumb>.icon{display:none}
  .user-label{display:none}
  .main-body{padding:14px 12px 25px}
  .hero{padding:17px 14px;min-height:156px;display:grid;align-content:center;gap:10px}
  .hero-date{justify-self:start;font-size:10px;padding:4px 6px}
  .hero-date .icon{width:12px;height:12px}
  .hero-marker{right:13px;bottom:12px}
  .hero-motif{right:-200px;opacity:.45}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .metric-icon{width:28px;height:28px}
  .dash-split{grid-template-columns:1fr;gap:9px}
  .dashboard{gap:12px}
  .page-head{align-items:flex-start;flex-direction:column;margin-bottom:16px}
  .page-head h1{font-size:29px}
  th,td{padding-left:10px;padding-right:10px}
  .login-layout{grid-template-columns:1fr}
  .login-art{min-height:255px;padding:22px 18px 15px}
  .login-copy{padding:15px 0}
  .login-copy h1{font-size:43px;margin:9px 0}
  .login-copy p{font-size:12px}
  .login-main{padding:28px 18px 35px}
  .fields{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}
.subheading>.btn{margin-left:auto}

.agent-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.agent-guide .panel{padding:16px}
.agent-guide h2{font-size:15px;margin:10px 0 5px}
.agent-guide p{font-size:12px;line-height:1.65;color:var(--muted)}
.agent-tools{padding:0 17px 12px}
.agent-error{margin-bottom:12px}
@media(max-width:620px){.agent-guide{grid-template-columns:1fr;gap:8px}}
