:root{--ink:#18211d;--muted:#75807a;--line:#e2e7e3;--paper:#fff;--canvas:#f3f5f2;--nav:#13251e;--nav-soft:#1d342a;--green:#2d7657;--green-2:#205b42;--mint:#dff3e8;--danger:#b84b45;--warning:#a66a20;--shadow:0 12px 30px rgba(24,33,29,.07);font-family:DM Sans,Noto Sans SC,Microsoft YaHei,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--canvas);font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:9px;padding:9px 14px;font-weight:600;cursor:pointer;transition:.18s ease}button:hover:not(:disabled){border-color:#aebbb4;transform:translateY(-1px)}button:disabled{opacity:.48;cursor:not-allowed}button[type=submit],.primary-button{background:var(--green);border-color:var(--green);color:#fff}button[type=submit]:hover:not(:disabled),.primary-button:hover{background:var(--green-2)}.app-frame{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--nav);color:#dce8e1;padding:25px 18px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.brand-mark{width:38px;height:38px;border-radius:11px;background:#d7efdf;color:var(--nav);display:grid;place-items:center;font-size:20px;font-weight:800}.brand b{display:block;color:#fff;font-size:16px}.brand small{display:block;color:#89a397;font-size:10px;letter-spacing:.04em}.sidebar-caption,.eyebrow{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#8ea298}.sidebar-caption{padding:0 10px 9px}.side-nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:9px;color:#a9bcb2;font-weight:500}.nav-item>span{width:19px;text-align:center;font-size:16px}.nav-item:hover,.nav-item.active{background:var(--nav-soft);color:#fff}.nav-item.active{box-shadow:inset 3px 0 #77b593}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.09);padding-top:16px;display:flex;align-items:center;justify-content:space-between}.identity{display:flex;align-items:center;gap:10px}.identity .avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#315344;color:#fff;font-weight:700}.identity b,.identity small{display:block}.identity b{font-size:12px;color:#fff}.identity small{font-size:10px;color:#82998e}.logout{padding:7px 9px;background:transparent;border-color:#ffffff1a;color:#b9cbc2}.workspace{min-width:0}.topbar{height:62px;background:#ffffffd1;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;color:var(--muted);font-size:12px;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4d9a72;box-shadow:0 0 0 4px #e5f3eb;margin-right:8px}.content{padding:32px 34px 60px;max-width:1500px;margin:auto}.page-shell,.dashboard-home{width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px}.page-header h1,.welcome-panel h1{margin:5px 0 0;font-size:28px;line-height:1.2;letter-spacing:-.035em}.page-actions{display:flex;align-items:center;gap:9px}.page-actions a{padding:8px 12px;border:1px solid var(--line);background:#fff;border-radius:8px;font-weight:600}.ws-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:var(--shadow);margin-bottom:16px}.ws-head-main h1{margin:5px 0 0;font-size:25px;letter-spacing:-.03em}.ws-meta{display:flex;align-items:center;gap:14px;margin-top:10px;color:var(--muted);font-size:12px}.ws-switch{align-self:center;padding:8px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:600;white-space:nowrap}.ws-switch:hover{border-color:var(--green);color:var(--green-2)}.ws-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.ws-tab{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border:1px solid var(--line);border-radius:99px;background:#fff;font-weight:600;color:var(--muted)}.ws-tab:hover{border-color:#a6b9ae;color:var(--ink)}.ws-tab.active{background:var(--green);border-color:var(--green);color:#fff}.ws-tab-icon{font-size:14px}.ws-tab-soon{opacity:.6;cursor:not-allowed;flex-direction:column;align-items:flex-start;gap:0;padding:6px 14px}.ws-tab-soon small{font-size:9px;letter-spacing:.05em;color:var(--warning)}@media (max-width:760px){.ws-head{flex-direction:column}.ws-tabs{overflow:auto;flex-wrap:nowrap}}.welcome-panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:34px;box-shadow:var(--shadow)}.welcome-panel p{color:var(--muted);font-size:15px;margin:8px 0 26px}.welcome-meta{display:flex;gap:24px;padding-top:19px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:28px 0 14px}.section-heading h2{margin:3px 0 0;font-size:19px}.section-heading>span{font-size:12px;color:var(--muted)}.entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.entry-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;transition:.18s}.entry-card:hover{border-color:#a6b9ae;box-shadow:var(--shadow);transform:translateY(-2px)}.entry-icon,.metric-icon{width:42px;height:42px;border-radius:11px;background:var(--mint);color:var(--green-2);display:grid;place-items:center;font-size:19px}.entry-card h3{margin:0 0 4px}.entry-card p{margin:0;color:var(--muted);font-size:12px}.entry-card>b{color:var(--green)}.card,.page-shell>section:not(.entry-grid):not(.metric-grid):not(.dashboard-row):not(.welcome-panel){background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;margin-bottom:16px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;display:flex;gap:15px;align-items:flex-start}.metric-card p,.metric-card small{margin:0;color:var(--muted);display:block}.metric-card strong{display:block;font-size:28px;line-height:1.25;margin:2px 0}.dashboard-row{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}.success-card{display:grid;grid-template-columns:1fr auto;align-items:center}.success-card p{color:var(--muted)}.success-ring{--progress:0deg;width:112px;height:112px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--green) var(--progress),#e7ece9 0);position:relative}.success-ring:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:50%;background:#fff}.success-ring span{z-index:1;font-size:24px;font-weight:700}.success-ring small{font-size:12px}.quick-card>a{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-weight:600}.quick-card>a:last-child{border:0}.quick-card>a b{color:var(--green)}form>div{margin-bottom:12px}label>span,.field-label,label{font-size:12px;font-weight:600;color:#59655f}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px 11px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#6c9b83;box-shadow:0 0 0 3px #e5f1ea}input[type=checkbox]{width:auto;accent-color:var(--green)}.filter-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;align-items:end}.filter-grid label span{display:block;margin-bottom:5px}.filter-actions{display:flex;gap:7px;margin:0!important}.filter-actions button{flex:1}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:10px;margin:0 0 14px}.alert>span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-weight:700}.alert p{margin:0}.alert-error{background:#f9e9e7;color:#8f342f;border:1px solid #f0cfcc}.loading-state,.empty-state{min-height:180px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:13px}.spinner{width:18px;height:18px;border:2px solid #d4ddd8;border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite}.empty-state{flex-direction:column}.empty-state>span{font-size:28px;color:#9bada3}.empty-state h3,.empty-state p{margin:0}.empty-state p{font-size:12px}.field-error,.form-error{color:var(--danger);font-size:12px}.table-card{padding:0!important;overflow:hidden}.table-toolbar{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.table-toolbar h2,.table-toolbar p{margin:0}.table-toolbar h2{font-size:16px}.table-toolbar p,.table-toolbar>span{font-size:11px;color:var(--muted)}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;background:#fff}th{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f8faf8;text-align:left}th,td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfb}td button{padding:6px 9px;font-size:12px}code{font-family:Consolas,monospace;font-size:11px;background:#eef2ef;padding:3px 6px;border-radius:5px}.items-cell{max-width:280px}.reason-cell{max-width:220px;color:var(--muted)}.status-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:99px;font-size:11px;font-weight:700}.status-success,.status-approved{background:#e2f3e9;color:#236445}.status-failure,.status-rejected{background:#f9e6e4;color:#9c3d37}.status-partial,.status-pending{background:#f8edd9;color:#8b5b19}.pagination{display:flex;justify-content:space-between;align-items:center;padding:13px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.pagination>div{display:flex;align-items:center;gap:10px}.pagination button{padding:5px 10px}.items-editor{border:1px solid var(--line);border-radius:11px;overflow:visible;background:#fff}.items-head{display:flex;justify-content:space-between;padding:10px 14px;background:#f7f9f7;font-size:11px;color:var(--muted)}.item-row{display:grid;grid-template-columns:34px minmax(160px,1fr) 130px 36px;gap:10px;align-items:end;padding:11px 13px;border-top:1px solid var(--line)}.items-editor-search .item-row{grid-template-columns:34px minmax(150px,1.1fr) minmax(120px,.9fr) 120px 36px}.item-search{position:relative}.item-suggest{position:absolute;z-index:20;left:0;right:0;top:100%;margin:4px 0 0;padding:5px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:240px;overflow:auto}.item-suggest li{margin:0}.item-suggest button{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;padding:8px 9px;border-radius:7px;font-weight:500}.item-suggest button:hover{background:var(--mint)}.item-suggest button b{font-weight:600;font-size:13px}.item-suggest button code{color:var(--muted)}.item-row label span{display:block;margin-bottom:4px}.item-index{color:#9ba69f;font-family:Consolas}.icon-button{padding:8px}.danger{color:var(--danger)}.add-row{margin:12px}.items-empty{padding:15px;color:var(--muted)}.result-panel{display:flex;gap:12px;padding:16px;border-radius:11px;margin-top:16px}.result-panel>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700}.result-panel b,.result-panel p,.result-panel small{display:block;margin:0}.result-panel p{font-size:12px}.result-success{background:#e6f4eb;color:#276347}.result-failure{background:#f9e8e6;color:#923c36}.result-partial{background:#f8efdf;color:#875b20}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#13251e6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:20px}.modal-card{width:min(480px,100%);max-height:88vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 24px 60px #18211d47}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}.modal-head h2{margin:0;font-size:17px}.modal-body{padding:20px}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr minmax(430px,560px);background:var(--nav)}.login-visual{padding:64px;display:flex;flex-direction:column;justify-content:space-between;color:#dce9e1}.login-visual .brand{padding:0}.login-copy h1{font-size:46px;max-width:620px;line-height:1.12;color:#fff;margin:0}.login-copy p{max-width:520px;color:#9eb5aa;font-size:16px}.login-points{display:flex;gap:28px;color:#9eb5aa;font-size:12px}.login-panel{background:var(--canvas);display:grid;place-items:center;padding:40px}.login-card{width:100%;max-width:390px}.login-card>header{margin-bottom:25px}.login-card h2{font-size:27px;margin:4px 0}.login-card header p{color:var(--muted)}.login-card form{background:#fff;border:1px solid var(--line);border-radius:15px;padding:26px;box-shadow:var(--shadow)}.login-card form>div{margin-bottom:16px}.login-card label,.login-card .field-label{display:block;margin-bottom:6px}.login-card button[type=submit]{width:100%;padding:11px}.login-foot{text-align:center;color:var(--muted);font-size:11px;margin-top:18px}.dev-login{margin-top:18px;border:1px dashed #c4d3cb;border-radius:13px;background:#f6faf7;padding:15px 16px}.dev-login-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.dev-login-head small{color:var(--muted);font-size:10px}.dev-login-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.dev-login-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;padding:13px 8px;border:1px solid var(--line);border-radius:11px;background:#fff}.dev-login-card:hover:not(:disabled){border-color:var(--green);background:var(--mint)}.dev-login-icon{width:30px;height:30px;border-radius:9px;background:var(--mint);color:var(--green-2);display:grid;place-items:center;font-size:15px;margin-bottom:3px}.dev-login-card b{font-size:12px}.dev-login-card small{color:var(--muted);font-size:10px;line-height:1.3}@media (max-width:520px){.dev-login-grid{grid-template-columns:1fr}}.slider-captcha{-webkit-user-select:none;user-select:none}.slider-stage{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--line);max-width:100%}.slider-bg{display:block;max-width:100%}.slider-piece{position:absolute;filter:drop-shadow(0 2px 5px #33483e);pointer-events:none}.slider-refresh{position:absolute;right:7px;top:7px;padding:5px 9px}.slider-track{position:relative;height:42px;margin-top:8px;background:#eef2ef;border:1px solid var(--line);border-radius:9px;overflow:hidden}.slider-fill{position:absolute;inset:0 auto 0 0;background:var(--mint)}.slider-handle{position:absolute;top:-1px;width:42px;height:42px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;z-index:2;color:var(--green);cursor:grab}.slider-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:11px;color:var(--muted);pointer-events:none}.slider-track.is-error{border-color:var(--danger)}.slider-track.is-error .slider-fill{background:#f9e0de}.slider-track.is-error .slider-hint{color:var(--danger)}.slider-track.is-done .slider-hint{color:var(--green-2)}.slider-track.is-done .slider-fill{background:#cfeadb}.slider-track.is-done .slider-handle{background:var(--green);border-color:var(--green);color:#fff}.slider-track.is-dragging .slider-handle,.slider-handle:active{cursor:grabbing}.captcha-row{display:flex;gap:8px;margin-bottom:8px}.captcha-challenge{flex:1;padding:8px;background:#eef4f0;border-radius:8px;color:var(--green-2);font-weight:700;text-align:center}.image-captcha{-webkit-user-select:none;user-select:none}.image-captcha-row{display:flex;gap:8px;align-items:stretch;margin-bottom:8px}.image-captcha-thumb{position:relative;flex:1;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#eef4f0;cursor:pointer;line-height:0}.image-captcha-thumb:hover:not(:disabled){border-color:var(--green)}.image-captcha-thumb img{display:block;width:100%;height:auto}.image-captcha-mask{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#fffc;font-size:11px;color:var(--muted);line-height:1.4}.image-captcha-refresh{padding:0 12px;border-radius:10px}.image-captcha-input{width:100%;text-transform:uppercase;letter-spacing:5px;font-weight:700;font-size:17px;text-align:center}.image-captcha-input::placeholder{text-transform:none;letter-spacing:normal;font-weight:400;font-size:13px}.image-captcha-hint{display:block;margin-top:6px;font-size:11px;color:var(--muted)}.public-page{min-height:100vh;background:#edf2ee;display:grid;place-items:center;padding:30px}.public-card{width:min(680px,100%);background:#fff;border:1px solid var(--line);border-radius:17px;padding:30px;box-shadow:var(--shadow)}.public-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:20px}.public-header .brand{padding:0}.public-header .brand b{color:var(--ink)}.recipient-card{text-align:center;background:#f2f7f4!important}.recipient-card p,.recipient-card small{color:var(--muted)}.recipient-card h1{font-size:28px;margin:4px}.captcha-block{margin:20px 0!important}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:1050px){.filter-grid,.metric-grid{grid-template-columns:repeat(2,1fr)}.entry-grid,.login-page{grid-template-columns:1fr}.login-visual{display:none}}@media (max-width:760px){.app-frame{display:block}.sidebar{position:static;height:auto;padding:13px}.brand{padding:4px 5px 13px}.sidebar-caption,.sidebar-foot{display:none}.side-nav{display:flex;overflow:auto}.nav-item{white-space:nowrap;padding:9px}.topbar{display:none}.content{padding:22px 14px}.page-header{align-items:flex-start}.metric-grid,.dashboard-row{grid-template-columns:1fr}.welcome-meta{flex-direction:column;gap:8px}.item-row{grid-template-columns:26px 1fr 90px 34px}.filter-grid{grid-template-columns:1fr}.login-panel{padding:22px}.public-card{padding:20px}}
