:root{--ink:#0b0d0c;--paper:#f7f8f6;--card:#fff;--muted:#68706c;--mint:#baf5d0;--mint-strong:#6ee7a0;--line:#dfe5e1;--danger:#df5959;--radius:22px;--shadow:0 14px 45px rgba(9,28,19,.08)}
*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}.boot{min-height:100vh;display:grid;place-items:center;color:var(--muted)}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:var(--ink)}.login-hero{padding:9vw;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:radial-gradient(circle at 25% 30%,rgba(110,231,160,.2),transparent 38%)}.brand{display:flex;align-items:center;gap:12px;font-weight:800}.logo{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--mint);color:var(--ink)}.login-hero h1{font-size:clamp(44px,6vw,84px);line-height:1.02;letter-spacing:-.06em;margin:40px 0 20px;max-width:780px}.login-hero p{font-size:18px;line-height:1.8;color:#cbd3cf;max-width:660px}.eyebrow{color:var(--mint-strong);text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:800}.login-panel{background:var(--paper);padding:7vw;display:grid;place-items:center}.login-card{width:min(440px,100%)}.login-card h2{font-size:34px;margin:12px 0}.login-card>p{color:var(--muted);line-height:1.7;margin-bottom:28px}
.field{display:grid;gap:8px;margin:14px 0}.field label{font-size:13px;font-weight:700}.field input,.field textarea,.field select,.search{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px 15px;outline:none}.field input:focus,.field textarea:focus,.field select:focus,.search:focus{border-color:var(--mint-strong);box-shadow:0 0 0 4px rgba(110,231,160,.15)}.field textarea{min-height:120px;resize:vertical}.btn{border:0;border-radius:14px;padding:12px 17px;font-weight:800;background:var(--ink);color:#fff;display:inline-flex;justify-content:center;align-items:center;gap:8px}.btn:hover{transform:translateY(-1px)}.btn.mint{background:var(--mint);color:var(--ink)}.btn.ghost{background:#eef2ef;color:var(--ink)}.btn.danger{background:#feeaea;color:#a62d2d}.btn.wide{width:100%;padding:15px}.hint{font-size:12px;color:var(--muted);line-height:1.6}.error{background:#feeaea;color:#9c2929;border-radius:13px;padding:12px 14px;margin:12px 0}.success{background:#e7faee;color:#176638;border-radius:13px;padding:12px 14px;margin:12px 0}
.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--ink);color:#fff;padding:24px 18px;display:flex;flex-direction:column}.sidebar .brand{padding:0 10px 28px}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;color:#9ea8a3;padding:13px 14px;border-radius:13px;text-align:left;font-weight:700}.nav button.active,.nav button:hover{background:#1c211e;color:#fff}.sidebar-foot{margin-top:auto;border-top:1px solid #2a302d;padding:18px 10px 0}.sidebar-foot strong{display:block}.sidebar-foot small{color:#9ea8a3}.main{min-width:0;padding:32px 4vw 90px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.topbar h1{font-size:clamp(28px,3vw,44px);letter-spacing:-.045em;margin:0}.topbar p{color:var(--muted);margin:8px 0 0}.member-pill{white-space:nowrap;padding:10px 13px;border-radius:999px;background:var(--mint);font-size:13px;font-weight:800}
.grid{display:grid;gap:18px}.grid.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.card h2,.card h3{margin:0 0 10px}.card p{line-height:1.75}.stat b{font-size:34px;display:block;letter-spacing:-.04em}.stat span{font-size:13px;color:var(--muted)}.hero-card{background:var(--ink);color:#fff;overflow:hidden;position:relative;padding:32px}.hero-card:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;background:var(--mint);right:-70px;top:-90px;opacity:.9}.hero-card>*{position:relative;z-index:1}.hero-card p{color:#c8d1cc;max-width:680px}.section-title{display:flex;justify-content:space-between;align-items:end;margin:32px 0 14px}.section-title h2{margin:0}.section-title p{margin:5px 0 0;color:var(--muted)}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.toolbar .search{flex:1;min-width:220px}.chips{display:flex;gap:8px;overflow:auto;padding-bottom:4px}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;white-space:nowrap}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.list{display:grid;gap:12px}.list-item{background:#fff;border:1px solid var(--line);border-radius:17px;padding:18px}.list-item header{display:flex;justify-content:space-between;align-items:start;gap:12px}.list-item h3{margin:0;font-size:17px}.list-item p{color:#424a46;line-height:1.75;margin:12px 0}.tag{display:inline-block;background:#edf3ef;color:#3f4a44;border-radius:8px;padding:5px 8px;font-size:12px}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions .btn{padding:9px 12px;font-size:13px}.empty{text-align:center;padding:55px;color:var(--muted)}
.report{display:grid;gap:14px}.report-block{border-left:4px solid var(--mint-strong);background:#f4f8f5;padding:16px;border-radius:0 15px 15px 0}.report-block h3{font-size:15px;margin:0 0 8px}.report-block p,.report-block li{line-height:1.7}.report-block ul{margin:8px 0;padding-left:20px}.steps{counter-reset:step;display:grid;gap:12px}.step{display:grid;grid-template-columns:32px 1fr;gap:10px}.step:before{counter-increment:step;content:counter(step);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--mint);font-weight:800}.source{display:block;color:#176638;margin:7px 0}.lock{min-height:70vh;display:grid;place-items:center;text-align:center}.lock .logo{margin:auto;width:64px;height:64px;font-size:25px}
.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:760px}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);font-size:13px}.table th{color:var(--muted)}.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;padding:20px;z-index:20}.modal-card{background:#fff;border-radius:22px;width:min(720px,100%);max-height:88vh;overflow:auto;padding:25px}.mobile-nav{display:none}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.login-hero{display:none}.login-panel{min-height:100vh;padding:28px}.shell{display:block}.sidebar{display:none}.main{padding:22px 16px 100px}.grid.stats,.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two{grid-template-columns:1fr}.mobile-nav{position:fixed;display:flex;left:10px;right:10px;bottom:10px;background:rgba(11,13,12,.96);padding:8px;border-radius:18px;z-index:10;overflow:auto}.mobile-nav button{flex:1;min-width:64px;border:0;background:transparent;color:#9ea8a3;padding:9px 7px;border-radius:11px;font-size:11px}.mobile-nav button.active{background:var(--mint);color:var(--ink);font-weight:800}.topbar{align-items:start}.member-pill{font-size:11px}.card{padding:17px}.hero-card{padding:24px}.hero-card:after{opacity:.35}}
@media(max-width:520px){.grid.stats{grid-template-columns:1fr 1fr}.stat b{font-size:28px}.topbar h1{font-size:29px}.topbar p{font-size:13px}.actions .btn{flex:1}.login-card h2{font-size:30px}}
