:root{--font-sans:"Be Vietnam Pro", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--forest-500:#2d4a24;--forest-700:#1e3018;--green-300:#a8d88a;--green-500:#4f8f2f;--green-600:#3d7223;--green-700:#2e5a1a;--green-50:#f1f8ec;--green-100:#e6f4dc;--green-200:#c8e4b4;--orange-500:#ea580c;--orange-100:#ffedd5;--orange-50:#fff7ed;--orange-700:#c2410c;--gray-25:#fafaf8;--gray-50:#f6f6f1;--gray-100:#eeeee6;--gray-700:#57564c;--bg-page:var(--gray-50);--bg-sidebar:#1e2b18;--fg-primary:#3d3d33;--fg-secondary:#5c5b52;--fg-tertiary:#9e9e8c;--fg-disabled:#b8b7ae;--border-subtle:#eeeee6;--border-default:#d4d3c8;--border-strong:#b8b7ae;--shadow-sm:0 1px 2px #141e0f0f;--shadow-focus:0 0 0 3px #4f8f2f40;--shadow-lg:0 10px 40px #141e0f1f;--shadow-xl:0 20px 60px #141e0f26;--ease-out:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--bg-page);color:var(--fg-primary);-webkit-font-smoothing:antialiased;font-size:14px;line-height:20px}.app{grid-template-columns:240px 1fr;height:100vh;display:grid;overflow:hidden}.sidebar{background:var(--bg-sidebar);color:#ffffffdb;flex-direction:column;padding:16px 12px;display:flex;overflow-y:auto}.sidebar .brand{align-items:center;gap:10px;padding:6px 8px 18px;display:flex}.sidebar .brand .mark{background:var(--green-500);border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.sidebar .brand .mark svg{color:#fff;width:18px;height:18px}.sidebar .brand .name{color:#fff;letter-spacing:-.01em;font-size:15px;font-weight:700}.sidebar .brand .name span{color:var(--green-300);font-weight:400}.sidebar .brand .sub{color:#ffffff80;letter-spacing:.08em;text-transform:uppercase;margin-top:1px;font-size:10px}.nav-section{color:#fff6;text-transform:uppercase;letter-spacing:.08em;padding:14px 8px 6px;font-size:10px;font-weight:600}.nav-item{cursor:pointer;color:#ffffffc7;border-radius:7px;align-items:center;gap:11px;padding:8px 10px;font-size:13.5px;font-weight:500;transition:background .12s;display:flex;position:relative}.nav-item:hover{color:#fff;background:#ffffff0d}.nav-item.active{background:var(--green-500);color:#fff;font-weight:600}.nav-item svg{flex-shrink:0;width:18px;height:18px}.nav-item .badge{background:var(--orange-500);color:#fff;border-radius:999px;margin-left:auto;padding:1px 6px;font-size:10.5px;font-weight:700}.nav-item.active .badge{background:#ffffff40}.sidebar .footer{border-top:1px solid #ffffff14;margin-top:auto;padding:10px 8px 4px}.sidebar .user{cursor:pointer;border-radius:7px;align-items:center;gap:10px;padding:8px;display:flex}.sidebar .user:hover{background:#ffffff0d}.sidebar .user .avatar{background:var(--green-300);width:32px;height:32px;color:var(--forest-700);border-radius:999px;place-items:center;font-size:13px;font-weight:700;display:grid}.sidebar .user .info{flex:1;min-width:0}.sidebar .user .nm{color:#fff;font-size:13px;font-weight:600;line-height:1.2}.sidebar .user .role{color:#ffffff8c;font-size:11px;line-height:1.4}.main{flex-direction:column;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border-subtle);background:#fff;flex-shrink:0;align-items:center;gap:16px;height:56px;padding:0 24px;display:flex}.topbar .crumb{color:var(--fg-tertiary);align-items:center;gap:6px;font-size:13px;display:flex}.topbar .crumb b{color:var(--fg-primary);font-weight:600}.topbar .search{width:320px;margin-left:auto;position:relative}.topbar .search input{border:1px solid var(--border-default);width:100%;height:36px;font:13px var(--font-sans);background:var(--gray-25);border-radius:7px;padding:0 12px 0 36px}.topbar .search input:focus{border-color:var(--green-500);box-shadow:var(--shadow-focus);background:#fff;outline:none}.topbar .search svg{width:16px;height:16px;color:var(--fg-tertiary);position:absolute;top:10px;left:12px}.icon-btn{cursor:pointer;width:36px;height:36px;color:var(--fg-secondary);background:0 0;border:1px solid #0000;border-radius:7px;flex-shrink:0;place-items:center;padding:0;transition:background .12s,color .12s;display:grid}.icon-btn:hover{background:var(--gray-50);color:var(--fg-primary)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn svg{width:18px;height:18px}.topbar .icon-btn{position:relative}.topbar .icon-btn .pip{background:var(--orange-500);border:2px solid #fff;border-radius:999px;width:8px;height:8px;position:absolute;top:7px;right:8px}.page{flex:1;padding:24px;overflow-y:auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:-.015em;color:var(--fg-primary);margin-bottom:4px;font-size:24px;font-weight:700}.page-head .sub{color:var(--fg-tertiary);font-size:13px}.page-head .actions{gap:8px;display:flex}.btn{height:36px;font:600 13px/1 var(--font-sans);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:0 14px;transition:all .12s;display:inline-flex}.btn svg{width:15px;height:15px}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn-primary{background:var(--green-500);color:#fff}.btn-primary:hover{background:var(--green-600)}.btn-primary:active{background:var(--green-700)}.btn-secondary{color:var(--fg-primary);border-color:var(--border-default);background:#fff}.btn-secondary:hover{background:var(--gray-50);border-color:var(--border-strong)}.btn-ghost{color:var(--fg-secondary);background:0 0}.btn-ghost:hover{background:var(--gray-50);color:var(--fg-primary)}.btn-danger{color:#fff;background:#c53030}.btn-danger:hover{background:#9b2c2c}.btn-sm{height:30px;padding:0 10px;font-size:12px}.btn-lg{height:42px;padding:0 18px;font-size:14px}.field{flex-direction:column;gap:5px;display:flex}.field-lbl{color:var(--fg-secondary);font-size:12.5px;font-weight:600}.input{border:1px solid var(--border-default);height:36px;font:14px var(--font-sans);color:var(--fg-primary);background:#fff;border-radius:7px;outline:none;width:100%;padding:0 12px;transition:border-color .12s,box-shadow .12s}.input::placeholder{color:var(--fg-disabled)}.input:focus{border-color:var(--green-500);box-shadow:var(--shadow-focus)}.input.t-mono{font-family:var(--font-mono);letter-spacing:-.01em;font-size:13px}textarea.input{resize:vertical;height:auto;min-height:80px;padding:8px 12px;line-height:20px}.card{border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);background:#fff;border-radius:10px}.card-pad{padding:20px}.card-head{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-head h3{color:var(--fg-primary);font-size:15px;font-weight:600}.card-head .link{color:var(--green-700);cursor:pointer;font-size:12px;font-weight:600;text-decoration:none}.card-head .link:hover{text-decoration:underline}.stat .label{color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.stat .label svg{width:14px;height:14px;color:var(--green-600)}.stat .num{font:700 26px/1.1 var(--font-sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--fg-primary)}.stat .delta{font:600 12px var(--font-sans);align-items:center;gap:4px;margin-top:8px;display:inline-flex}.stat .delta.up{color:var(--green-600)}.stat .delta.down{color:#c53030}.stat .sub{color:var(--fg-tertiary);margin-top:4px;font-size:12px}.table{border-collapse:collapse;width:100%}.table th{color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.04em;text-align:left;background:var(--gray-25);border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:10px 14px;font-size:11px;font-weight:600}.table th:first-child{padding-left:20px}.table th:last-child{padding-right:20px}.table td{border-bottom:1px solid var(--border-subtle);color:var(--fg-primary);vertical-align:middle;padding:12px 14px;font-size:13px}.table td:first-child{padding-left:20px}.table td:last-child{padding-right:20px}.table tbody tr:hover{background:var(--gray-25)}.table tbody tr:last-child td{border-bottom:none}.table .num-cell{font-variant-numeric:tabular-nums}.badge{font:600 11.5px/1.4 var(--font-sans);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;display:inline-flex}.badge .dot{border-radius:999px;width:6px;height:6px}.badge.success{color:#2d7a3e;background:#f1f8ec}.badge.warning{color:#92400e;background:#fef3c7}.badge.danger{color:#9b2c2c;background:#fee2e2}.badge.info{color:#1e4e8a;background:#ddeefb}.badge.neutral{background:var(--gray-100);color:var(--gray-700)}.badge.subtle-green{background:var(--green-50);color:var(--green-700)}.thumb{background:var(--green-100);width:36px;height:36px;color:var(--green-700);border-radius:7px;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.thumb.orange{background:var(--orange-100);color:var(--orange-700)}.thumb.blue{color:#1e4e8a;background:#ddeefb}.thumb.gray{background:var(--gray-100);color:var(--gray-700)}.avatar{background:var(--green-300);width:32px;height:32px;color:var(--forest-700);border-radius:999px;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}.chip{border:1px solid var(--border-default);height:30px;font:500 12.5px var(--font-sans);color:var(--fg-secondary);cursor:pointer;background:#fff;border-radius:7px;align-items:center;gap:5px;padding:0 10px;display:inline-flex}.chip:hover{background:var(--gray-50)}.chip.active{background:var(--green-50);border-color:var(--green-300);color:var(--green-700)}.chip svg{width:13px;height:13px}.tabs{border-bottom:1px solid var(--border-subtle);gap:0;display:flex}.tab{font:600 13px var(--font-sans);color:var(--fg-tertiary);cursor:pointer;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 14px;display:flex}.tab:hover{color:var(--fg-primary)}.tab.active{color:var(--green-700);border-bottom-color:var(--green-500)}.tab .count{background:var(--gray-100);color:var(--fg-secondary);border-radius:999px;padding:1px 6px;font-size:10.5px;font-weight:700}.tab.active .count{background:var(--green-100);color:var(--green-700)}.toast{background:var(--forest-500);color:#fff;box-shadow:var(--shadow-lg);z-index:100;animation:slideDown .28s var(--ease-out);border-radius:8px;align-items:center;gap:10px;padding:12px 16px;display:flex;position:fixed;top:70px;right:24px}.toast svg{width:16px;height:16px;color:var(--green-300)}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{z-index:50;background:#141e0f73;place-items:center;display:grid;position:fixed;inset:0}.modal{box-shadow:var(--shadow-xl);width:min(480px,92vw);animation:modalIn .18s var(--ease-out);background:#fff;border-radius:14px}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.modal-head{padding:18px 22px 12px}.modal-head h2{color:var(--fg-primary);font-size:17px;font-weight:700}.modal-body{color:var(--fg-secondary);padding:0 22px 8px;font-size:14px;line-height:22px}.modal-foot{justify-content:flex-end;gap:8px;padding:16px 22px 18px;display:flex}.lg-page{isolation:isolate;background:radial-gradient(1200px 600px at 85% -10%,#e6f4dc 0%,#0000 55%),radial-gradient(900px 500px at 0 110%,#fff7ed 0%,#0000 55%),linear-gradient(#fafaf8 0%,#f1f8ec 100%);place-items:center;width:100%;min-height:100vh;padding:32px 20px;display:grid;position:relative;overflow:hidden}.lg-bg{z-index:0;pointer-events:none;position:absolute;inset:0}.lg-blob{filter:blur(2px);width:620px;height:620px;position:absolute}.lg-blob-1{animation:14s ease-in-out infinite lg-float;top:-180px;right:-160px}.lg-blob-2{animation:18s ease-in-out infinite reverse lg-float;bottom:-200px;left:-180px}.lg-leaf{opacity:.9;filter:drop-shadow(0 6px 14px #1e30182e);width:72px;height:72px;position:absolute}.lg-leaf-1{animation:7s ease-in-out infinite lg-sway;top:12%;left:8%;transform:rotate(-18deg)}.lg-leaf-2{width:60px;height:60px;animation:9s ease-in-out infinite reverse lg-sway;bottom:14%;right:10%;transform:rotate(28deg)}.lg-leaf-3{width:44px;height:44px;animation:11s ease-in-out infinite lg-sway;top:50%;left:4%;transform:rotate(110deg)}.lg-veg{filter:drop-shadow(0 8px 18px #1e301833);position:absolute}.lg-veg-tomato{width:78px;height:78px;animation:6s ease-in-out infinite lg-bob;top:18%;right:12%}.lg-veg-carrot{width:90px;height:90px;animation:8s ease-in-out infinite reverse lg-bob;bottom:18%;left:12%;transform:rotate(-12deg)}.lg-veg-seed{width:56px;height:30px;animation:10s ease-in-out infinite lg-sway;top:70%;right:4%}.lg-dot{background:var(--green-500);opacity:.55;border-radius:999px;width:8px;height:8px;position:absolute}.lg-dot-1{top:28%;left:22%}.lg-dot-2{background:var(--orange-500);top:42%;right:26%}.lg-dot-3{background:var(--green-300);width:6px;height:6px;bottom:32%;left:30%}.lg-dot-4{width:6px;height:6px;bottom:24%;right:22%}.lg-chip{border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);font:600 12px var(--font-sans);color:var(--green-700);z-index:1;pointer-events:none;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;display:inline-flex;position:absolute}.lg-chip svg{color:var(--green-500)}.lg-chip-1{animation:7s ease-in-out infinite lg-bob;top:14%;left:14%}.lg-chip-2{animation:9s ease-in-out infinite reverse lg-bob;bottom:18%;right:14%}.lg-chip-2 svg{color:var(--orange-500)}.lg-chip-3{animation:11s ease-in-out infinite lg-bob;top:22%;right:6%}.lg-chip-3 svg{color:var(--green-600)}.lg-card{z-index:2;-webkit-backdrop-filter:blur(14px);width:100%;max-width:440px;animation:lg-rise .48s var(--ease-out);background:#ffffffeb;border:1px solid #d4d3c899;border-radius:20px;padding:32px 32px 28px;position:relative;box-shadow:0 30px 80px -20px #1e301838,0 8px 24px -8px #1e30181a}@keyframes lg-rise{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:none}}.lg-head{align-items:center;gap:12px;margin-bottom:22px;display:flex}.lg-mark{background:linear-gradient(135deg, var(--green-500) 0%, var(--green-700) 100%);color:#fff;border-radius:12px;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 6px 14px -2px #4f8f2f80}.lg-mark svg{color:#fff}.lg-brand-name{letter-spacing:-.01em;color:var(--forest-700);font-size:18px;font-weight:700}.lg-brand-name span{color:var(--green-500);font-weight:600}.lg-brand-sub{color:var(--fg-tertiary);letter-spacing:.08em;text-transform:uppercase;margin-top:1px;font-size:10.5px}.lg-greet{background:var(--green-50);color:var(--green-700);font:600 11.5px var(--font-sans);border-radius:999px;align-items:center;gap:6px;margin-bottom:10px;padding:5px 10px;display:inline-flex}.lg-wave{transform-origin:70% 70%;animation:1.6s ease-in-out infinite lg-wave;display:inline-block}@keyframes lg-wave{0%,60%,to{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.lg-title{letter-spacing:-.018em;color:var(--fg-primary);margin-bottom:6px;font-size:26px;font-weight:700}.lg-lead{color:var(--fg-secondary);margin-bottom:22px;font-size:13px;line-height:20px}.lg-form{flex-direction:column;gap:14px;display:flex}.lg-field{flex-direction:column;gap:6px;display:flex}.lg-label{color:var(--fg-secondary);font-size:12.5px;font-weight:600}.lg-label-row{justify-content:space-between;align-items:center;display:flex}.lg-input{border:1.5px solid var(--border-default);background:#fff;border-radius:12px;align-items:center;gap:10px;height:46px;padding:0 14px;transition:border-color .16s,box-shadow .16s,background .16s;display:flex}.lg-input svg{color:var(--fg-tertiary);flex-shrink:0;transition:color .16s}.lg-input input{min-width:0;font:14px var(--font-sans);color:var(--fg-primary);letter-spacing:.01em;background:0 0;border:none;outline:none;flex:1}.lg-input input::placeholder{color:var(--fg-disabled)}.lg-input:focus-within{border-color:var(--green-500);box-shadow:0 0 0 4px #4f8f2f26}.lg-input:focus-within>svg:first-child{color:var(--green-600)}.lg-valid{border-color:var(--green-300)}.lg-input-ok{background:var(--green-100);width:22px;height:22px;color:var(--green-700);border-radius:999px;place-items:center;display:grid}.lg-input-ok svg{color:var(--green-700)}.lg-invalid{background:#fff7f7;border-color:#f0a8a8}.lg-invalid:focus-within{border-color:#c53030;box-shadow:0 0 0 4px #c530301f}.lg-hint{color:var(--fg-tertiary);font-size:11.5px}.lg-hint.err{color:#c53030}.lg-eye{width:28px;height:28px;color:var(--fg-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;display:grid}.lg-eye:hover{background:var(--gray-50);color:var(--fg-secondary)}.lg-row-between{color:var(--fg-secondary);justify-content:space-between;align-items:center;margin-top:4px;font-size:12.5px;display:flex}.lg-remember{cursor:pointer;align-items:center;gap:8px;display:flex}.lg-trust{color:var(--green-700);align-items:center;gap:4px;font-weight:600;display:inline-flex}.lg-link{color:var(--green-700);font-size:12.5px;font-weight:600;text-decoration:none}.lg-link:hover{text-decoration:underline}.lg-link.strong{font-weight:700}.lg-alert{color:#9b2c2c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;font-size:12.5px;font-weight:500;display:flex}.lg-btn-primary{background:linear-gradient(135deg, var(--green-500) 0%, var(--green-700) 100%);color:#fff;height:48px;font:700 14px var(--font-sans);letter-spacing:.01em;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;margin-top:6px;transition:transform .12s,box-shadow .2s,filter .16s;display:flex;box-shadow:0 10px 24px -8px #4f8f2f8c,inset 0 1px #ffffff2e}.lg-btn-primary:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 14px 28px -8px #4f8f2f99}.lg-btn-primary:active{transform:translateY(0)}.lg-btn-primary:disabled{cursor:not-allowed;filter:saturate(.7)brightness(.95)}.lg-spin{animation:1s linear infinite lg-rotate;display:inline-flex}@keyframes lg-rotate{to{transform:rotate(360deg)}}.lg-or{text-align:center;color:var(--fg-tertiary);margin:14px 0 4px;font-size:11.5px;position:relative}.lg-or span{z-index:1;text-transform:uppercase;letter-spacing:.08em;background:#ffffffeb;padding:0 12px;position:relative}.lg-or:before{content:"";background:var(--border-subtle);z-index:0;height:1px;position:absolute;top:50%;left:0;right:0}.lg-alt{grid-template-columns:1fr 1fr;gap:10px;display:grid}.lg-btn-alt{border:1.5px solid var(--border-subtle);height:42px;color:var(--fg-primary);font:600 12.5px var(--font-sans);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:6px;transition:border-color .14s,background .14s,transform .14s;display:inline-flex}.lg-btn-alt:hover{border-color:var(--green-300);background:var(--green-50);color:var(--green-700);transform:translateY(-1px)}.lg-btn-alt svg{color:var(--green-600)}.lg-foot{border-top:1px dashed var(--border-subtle);text-align:center;color:var(--fg-secondary);margin-top:22px;padding-top:18px;font-size:12.5px}.lg-version{letter-spacing:.08em;color:var(--fg-tertiary);z-index:1;font-size:10.5px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}@keyframes lg-float{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-20px,12px)scale(1.04)}}@keyframes lg-sway{0%,to{transform:rotate(var(--rot,-18deg)) translateY(0)}50%{transform:rotate(calc(var(--rot,-18deg) + 8deg)) translateY(-6px)}}.lg-leaf-1{--rot:-18deg}.lg-leaf-2{--rot:28deg}.lg-leaf-3{--rot:110deg}@keyframes lg-bob{0%,to{transform:translateY(0) rotate(var(--rot2,0deg))}50%{transform:translateY(-10px) rotate(var(--rot2,0deg))}}.lg-veg-carrot{--rot2:-12deg}@media (width<=560px){.lg-card{border-radius:16px;padding:24px 22px 22px}.lg-title{font-size:22px}.lg-alt{grid-template-columns:1fr}.lg-chip-1,.lg-chip-2,.lg-chip-3,.lg-leaf-1,.lg-leaf-3,.lg-veg-tomato,.lg-veg-seed{display:none}}@media (prefers-reduced-motion:reduce){.lg-blob,.lg-leaf,.lg-veg,.lg-chip,.lg-wave,.lg-card{animation:none!important}}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px;display:grid}.dash-grid{grid-template-columns:2fr 1fr;gap:14px;display:grid}.chart{height:240px;padding:8px 4px 0}.activity-row{border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;padding:12px 20px;display:flex}.activity-row:last-child{border-bottom:none}.activity-row .dot-icon{background:var(--green-50);width:32px;height:32px;color:var(--green-700);border-radius:999px;flex-shrink:0;place-items:center;display:grid}.activity-row .dot-icon svg{width:14px;height:14px}.activity-row .dot-icon.warn{background:var(--orange-50);color:var(--orange-700)}.activity-row .dot-icon.info{color:#1e4e8a;background:#ddeefb}.activity-row .text{flex:1;font-size:13px;line-height:1.4}.activity-row .text b{font-weight:600}.activity-row .when{color:var(--fg-tertiary);white-space:nowrap;font-size:11.5px}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filter-bar .search-wrap{flex:1;min-width:220px;max-width:340px;position:relative}.filter-bar .search-wrap input{border:1px solid var(--border-default);background:#fff;border-radius:7px;width:100%;height:34px;padding:0 12px 0 34px;font-size:13px}.filter-bar .search-wrap input:focus{border-color:var(--green-500);box-shadow:var(--shadow-focus);outline:none}.filter-bar .search-wrap svg{width:15px;height:15px;color:var(--fg-tertiary);position:absolute;top:9px;left:11px}.divider{background:var(--border-subtle);height:1px}.muted{color:var(--fg-tertiary)}.tabular{font-variant-numeric:tabular-nums}.flex{display:flex}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.items-center{align-items:center}.between{justify-content:space-between}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.empty{text-align:center;color:var(--fg-tertiary);padding:60px 20px}.empty svg{width:40px;height:40px;color:var(--green-300);margin:0 auto 12px;display:block}.empty .et{color:var(--fg-secondary);margin-bottom:4px;font-size:14px;font-weight:600}.cb{border:1.5px solid var(--border-strong);cursor:pointer;background:#fff;border-radius:4px;place-items:center;width:16px;height:16px;display:inline-grid}.cb.checked{background:var(--green-500);border-color:var(--green-500)}.cb.checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;transform:rotate(45deg)translate(-1px,-1px)}.t-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.t-overline{letter-spacing:.06em;text-transform:uppercase;color:var(--fg-tertiary);font-size:10px;font-weight:600}
