:root{--color-brand:#244b38;--color-brand-strong:#193a2b;--color-brand-soft:#e9f0eb;--color-action:#168653;--color-action-hover:#117447;--color-action-active:#0d603b;--color-action-soft:#e8f6ee;--color-page:#f5f7f5;--color-surface:#fff;--color-surface-subtle:#f8faf8;--color-surface-muted:#f0f4f1;--color-border:#dce4de;--color-border-strong:#c8d5cc;--color-text:#203229;--color-text-secondary:#52645a;--color-text-muted:#718078;--color-text-inverse:#fff;--color-success:#168653;--color-success-bg:#e8f6ee;--color-success-border:#bfe4cf;--color-warning:#d69a32;--color-warning-text:#8a5a12;--color-warning-bg:#fff6e6;--color-warning-border:#efd8aa;--color-error:#d65c54;--color-error-text:#9f3f39;--color-error-bg:#fff0ef;--color-error-border:#efc5c2;--color-info:#3976a8;--color-info-bg:#edf5fb;--color-info-border:#c9ddeb;--color-neutral:#64756c;--color-neutral-bg:#eef2ef;--font-sans:"HarmonyOS Sans SC", "Microsoft YaHei", "微软雅黑", Arial, Helvetica, sans-serif;--font-size-2xs:10px;--font-size-xs:11px;--font-size-sm:12px;--font-size-md:14px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:22px;--font-size-3xl:30px;--font-size-display:48px;--line-height-tight:1.25;--line-height-base:1.55;--line-height-relaxed:1.75;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-pill:999px;--border-width:1px;--border-default:var(--border-width) solid var(--color-border);--border-strong:var(--border-width) solid var(--color-border-strong);--shadow-xs:0 1px 2px #2032290a;--shadow-sm:0 4px 14px #2032290f;--shadow-md:0 12px 30px #20322917;--shadow-focus:0 0 0 3px #16865329;--control-height-sm:32px;--control-height-md:38px;--control-height-lg:44px;--control-padding-x:14px;--topbar-height:68px;--page-max-width:1800px;--page-gutter:clamp(16px, 2.2vw, 40px);--content-gap:14px;--z-topbar:60;--z-overlay:100;--green:var(--color-action);--green-2:#25a76a;--deep:var(--color-brand-strong);--mint:var(--color-action-soft);--line:var(--color-border);--muted:var(--color-text-muted);--red:var(--color-error);--orange:var(--color-warning);--blue:var(--color-info);--shadow:var(--shadow-sm)}@font-face{font-family:HarmonyOS Sans SC;src:url(/fonts/harmonyos-sans/HarmonyOS_Sans_SC_Regular.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:HarmonyOS Sans SC;src:url(/fonts/harmonyos-sans/HarmonyOS_Sans_SC_Medium.ttf)format("truetype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:HarmonyOS Sans SC;src:url(/fonts/harmonyos-sans/HarmonyOS_Sans_SC_Medium.ttf)format("truetype");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:HarmonyOS Sans SC;src:url(/fonts/harmonyos-sans/HarmonyOS_Sans_SC_Bold.ttf)format("truetype");font-style:normal;font-weight:700;font-display:swap}:root{font-family:var(--font-sans);color:var(--color-text);background:var(--color-page);font-synthesis:none}.file-thumb{overflow:hidden}.file-thumb video{object-fit:cover;width:100%;height:100%}.route-loading{color:#4f6c62;justify-content:center;align-items:center;gap:10px;height:calc(100vh - 70px);display:flex}.route-loading span{border:2px solid #acd4c2;border-top-color:#087a49;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}*{box-sizing:border-box}html{background:var(--color-page);min-width:0}body{background:var(--color-page);min-width:0;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}svg text{font-family:var(--font-sans)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.topbar{z-index:60;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;border-bottom:1px solid #e2eee9;align-items:center;height:70px;padding:0 3.1%;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;min-width:340px;display:flex}.brand>div:last-child{align-items:baseline;gap:12px;display:flex}.brand strong{letter-spacing:.05em;color:#062f26;font-size:23px}.brand-mark{width:40px;height:40px;position:relative}.brand-mark:before{content:"";background:#168f52;border-radius:2px;width:3px;height:30px;position:absolute;bottom:4px;left:18px;transform:rotate(-8deg)}.brand-mark span{background:linear-gradient(135deg,#23a964,#087544);border-radius:18px 2px;width:19px;height:13px;position:absolute}.brand-mark span:first-child{top:8px;left:1px;transform:rotate(28deg)}.brand-mark span:last-child{top:2px;right:1px;transform:rotate(-17deg)scaleX(-1)}.topbar nav{align-items:stretch;height:100%;margin-left:auto;display:flex}.topbar nav a{color:#304b43;align-items:center;gap:6px;padding:0 20px;font-size:14px;font-weight:600;display:flex;position:relative}.topbar nav a:hover{color:var(--green)}.topbar nav a.active:after{content:"";background:var(--green);border-radius:4px 4px 0 0;height:3px;position:absolute;bottom:0;left:16px;right:16px}.research-badge,.demo-badge{color:#08794b;background:#e7f8ef;border:1px solid #d6f0e3;border-radius:999px;align-items:center;gap:7px;font-size:12px;font-weight:700;display:inline-flex}.research-badge{margin-left:24px;padding:9px 14px}.demo-badge{padding:5px 10px}.page{max-width:1800px;margin:0 auto;padding:20px 2% 34px}.card{box-shadow:var(--shadow);background:#fffffff5;border:1px solid #d6e7dff2;border-radius:14px}.hero{background:linear-gradient(90deg,#eff9f5fa 0%,#f1f9f5db 42%,#04563714 100%),url(/assets/rice-field-aerial.png) 50% 39%/cover;border-radius:16px;justify-content:space-between;align-items:center;min-height:128px;margin-bottom:15px;padding:24px 34px;display:flex}.hero h1{color:#083a2d;letter-spacing:.03em;margin:8px 0 4px;font-size:34px}.hero p{color:#49675d;margin:0}.hero-note,.hero-insights{color:#fff;background:#05342ad6;border:1px solid #ffffff29;border-radius:12px;align-items:center;gap:12px;padding:15px 18px;display:flex}.hero-note>svg{color:#58e090}.hero-note div{flex-direction:column;gap:3px;display:flex}.hero-note span{color:#c8ded6;font-size:12px}.hero-insights{flex-direction:column;align-items:flex-start}.hero-insights span{align-items:center;gap:8px;font-size:13px;display:flex}.hero-insights svg{color:#79eaaa;width:16px}.section-title{justify-content:space-between;align-items:center;min-height:30px;margin-bottom:12px;display:flex}.section-title>div{align-items:center;gap:9px;display:flex}.section-title h2{color:#173a31;margin:0;font-size:17px}.process-strip{grid-template-columns:repeat(4,1fr);margin-bottom:15px;padding:14px 18px;display:grid}.process-step{color:#8da09a;align-items:center;gap:12px;min-height:54px;padding:0 20px;display:flex;position:relative}.process-step>svg{width:23px}.process-step.done,.process-step.current{color:#087a49}.process-step.current{background:#effaf5;border-radius:10px}.process-step>div{flex-direction:column;display:flex}.process-step strong{color:#36534a;font-size:14px}.process-step.done strong,.process-step.current strong{color:#0b5138}.process-step small{font-size:11px}.step-num{background:#e6efeb;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:grid}.done .step-num,.current .step-num{color:#fff;background:linear-gradient(135deg,#0f9f5d,#086c45)}.step-arrow{color:#a7d8c0;position:absolute;width:17px!important;right:-5px!important}.detect-top-grid{grid-template-columns:1.05fr 1.35fr .55fr;gap:14px;margin-bottom:14px;display:grid}.upload-card,.metrics-card,.task-facts{padding:16px}.dropzone{color:#2c4f43;background:#f7fcfa;border:1.5px dashed #a7cdc0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:100%;height:135px;display:flex}.dropzone.dragging{border-color:var(--green);background:#eaf8f1}.dropzone strong{font-size:14px}.dropzone small{color:#859790}.upload-icon{width:45px;height:45px;color:var(--green);background:#e2f5eb;border-radius:14px;place-items:center;display:grid}.file-panel{border:1px solid var(--line);background:#f8fcfa;border-radius:12px;align-items:center;gap:12px;height:135px;padding:15px;display:flex}.file-thumb{color:#fff;background:linear-gradient(145deg,#0d6c48,#31a568);border-radius:10px;place-items:center;width:70px;height:64px;display:grid}.file-info{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.file-info strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.file-info span,.file-info small,.tiny-note{color:var(--muted);font-size:11px}.mini-progress,.progress-bar{background:#dfece6;border-radius:9px;height:7px;overflow:hidden}.mini-progress i,.progress-bar i{background:linear-gradient(90deg,#12a15e,#087a49);border-radius:9px;height:100%;transition:width .25s;display:block}.icon-button{color:#71857d;background:#f1f6f4;border:0;border-radius:8px;width:34px;height:34px}.error-banner{color:#b62c2c;background:#fff1f1;border-radius:8px;justify-content:space-between;align-items:center;margin-top:8px;padding:8px 10px;font-size:12px;display:flex}.export-success-toast{z-index:100;color:#076b41;pointer-events:none;background:#e2f7ec;border:1px solid #9dd6b9;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:min(760px,100vw - 48px);min-height:46px;padding:11px 20px;font-size:14px;font-weight:700;animation:.18s ease-out export-toast-in;display:flex;position:fixed;top:82px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #055e3938}.export-success-toast svg{color:#0a8a50}@keyframes export-toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.error-banner button{color:#b62c2c;background:0 0;border:0;align-items:center;gap:4px;display:flex}.primary-button,.ghost-button,.back-button{border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:10px 16px;font-size:13px;font-weight:700;display:inline-flex}.primary-button{color:#fff;background:linear-gradient(135deg,#0b834e,#08643f);box-shadow:0 6px 15px #08643f2b}.primary-button:hover{filter:brightness(1.05)}.ghost-button{color:#25604b;background:#fff;border-color:#bfd9ce}.full{width:100%;margin-top:10px}.metrics-grid{grid-template-columns:1.05fr 1fr 1fr;gap:10px;display:grid}.gauge-wrap{background:#f7fbf9;border-radius:10px;height:145px;position:relative}.gauge-value{flex-direction:column;justify-content:center;align-items:center;padding-top:2px;display:flex;position:absolute;inset:0}.gauge-value strong{color:var(--red);font-size:27px}.gauge-value span{color:var(--muted);font-size:11px}.metric{border-radius:10px;flex-direction:column;gap:4px;padding:17px 14px;display:flex}.metric.green{color:var(--green);background:#f2fbf6}.metric.red{color:var(--red);background:#fff5f4}.metric span,.metric small{color:#61776f;font-size:11px}.metric strong{font-size:27px;line-height:1.1}.analysis-progress{margin-top:12px}.progress-head{justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.progress-head strong{color:#116f49;font-size:20px}.progress-bar{height:9px}.analysis-progress>small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.task-facts dl{margin:8px 0 0}.task-facts dl>div{border-bottom:1px solid #edf2ef;padding:9px 0}.task-facts dt{color:#81948d;font-size:10px}.task-facts dd{word-break:break-all;margin:3px 0 0;font-size:12px;font-weight:600}.results-layout{grid-template-columns:1.55fr .75fr;gap:14px;margin-bottom:14px;display:grid}.result-main,.carousel-card{padding:15px}.field-visual{background:#173c2d;border-radius:10px;min-height:330px;position:relative;overflow:hidden}.field-visual>img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:330px}.annotation-layer{position:absolute;inset:0}.detect-box{background:#f4cc250f;border:2px solid #f2c421;padding:0;position:absolute}.detect-box.missing{background:#ff2d362b;border-color:#ff3c40}.detect-box.manual{background:#0cd67721;border-color:#18e084}.detect-box.selected{outline:2px solid #fff;box-shadow:0 0 0 3px #056c43cc}.detect-box span{color:#fff;white-space:nowrap;background:currentColor;border-radius:4px;padding:2px 6px;font-size:9px;position:absolute;top:-21px;left:-2px}.detect-box.normal{color:#c29c00}.detect-box.missing{color:#e82c32}.detect-box.manual{color:#078b4e}.image-expand{color:#fff;background:#04291ebf;border:0;border-radius:8px;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:12px;right:12px}.field-fullscreen{z-index:100;position:fixed;inset:30px}.field-fullscreen>img{width:100%;height:100%}.canvas-hint{color:#fff;background:#0000009e;border-radius:9px;padding:5px 10px;font-size:10px;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.legend{gap:12px!important;display:flex!important}.legend span{align-items:center;gap:5px;display:flex}.legend i{border-radius:3px;width:11px;height:11px}.legend i.normal{background:#f2c421}.legend i.missing{background:#f03c40}.legend i.manual{background:#16c875}.result-placeholder{color:#9aaea7;background:linear-gradient(135deg,#f5faf8,#edf6f2);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:330px;display:flex}.result-placeholder strong{color:#61786f}.result-placeholder.small{height:245px}.is-locked{opacity:.9}.crop-preview{border-radius:10px;height:190px;position:relative;overflow:hidden}.crop-preview img{object-fit:cover;transform-origin:22% 25%;width:100%;height:100%;transform:scale(2)}.crop-focus{background:#ef393d1f;border:3px solid #ef393d;position:absolute;inset:30px 35px}.carousel-meta{justify-content:space-between;margin:12px 0;display:flex}.carousel-meta div{flex-direction:column;display:flex}.carousel-meta small{color:var(--muted)}.carousel-controls{align-items:center;gap:7px;display:flex}.carousel-controls>button,.frame-carousel>button{border:1px solid var(--line);background:#fff;border-radius:8px;place-items:center;display:grid}.carousel-controls>button{width:32px;height:40px}.thumb-row{flex:1;grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.thumb-row button{background:0 0;border:2px solid #0000;border-radius:7px;padding:2px}.thumb-row button.active{border-color:var(--green)}.thumb-row img{object-fit:cover;border-radius:4px;width:100%;height:36px}.action-bar{justify-content:space-between;align-items:center;padding:13px 16px;display:flex}.action-bar>div{align-items:center;gap:10px;display:flex}.action-bar>div:first-child>svg{color:#fff;background:#12a15e;border-radius:50%;width:34px;height:34px;padding:8px}.action-bar p{flex-direction:column;margin:0;display:flex}.action-bar p span{color:var(--muted);font-size:11px}.about-page{padding-top:30px}.about-hero{grid-template-columns:.92fr 1.2fr;align-items:center;gap:6%;min-height:calc(100vh - 134px);padding:40px 4%;display:grid}.about-copy h1{color:#092f26;margin:22px 0;font-size:clamp(58px,4vw,70px);line-height:1.15}.about-copy h1 em{color:#0a8a50;font-style:normal;display:block}.about-copy>p{color:#5b7169;max-width:720px;font-size:19px;line-height:1.9}.eyebrow{color:#0b7e4c;align-items:center;gap:7px;font-size:16px;font-weight:700;display:flex}.about-actions{gap:14px;margin:32px 0;display:flex}.about-actions .primary-button,.about-actions .ghost-button{padding:12px 19px;font-size:14px}.trust-row{color:#587068;gap:25px;font-size:14px;display:flex}.trust-row span{align-items:center;gap:6px;display:flex}.trust-row svg{width:18px;height:18px;color:var(--green)}.about-visual{border-radius:32px;height:clamp(500px,55vh,610px);position:relative;overflow:hidden;box-shadow:0 30px 60px #00492e2e}.about-visual>img{object-fit:cover;width:100%;height:100%}.scan-overlay{border:1px solid #ffffff80;position:absolute;inset:10%}.scan-overlay:before,.scan-overlay:after,.scan-overlay i{content:"";background:#ff2d2d1f;border:2px solid #ff4141;width:90px;height:70px;position:absolute}.scan-overlay:before{top:15%;left:9%}.scan-overlay:after{top:48%;right:12%}.scan-overlay i:first-child{background:#f0ce221a;border-color:#f0ce22;top:60%;left:44%}.scan-overlay i:nth-child(2){border-color:#f0ce22;top:14%;right:36%}.scan-overlay span{color:#fff;background:#053627cc;border-radius:7px;padding:8px 10px;font-size:11px;position:absolute;bottom:14px;left:14px}.float-stat{color:var(--green);background:#fffffff0;border-radius:13px;align-items:center;gap:10px;padding:14px 18px;display:flex;position:absolute;bottom:20px;right:20px}.float-stat div{flex-direction:column;display:flex}.float-stat small{color:var(--muted)}.float-stat strong{font-size:23px}.kpi-grid{grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px;display:grid}.kpi{align-items:center;gap:13px;padding:17px;display:flex}.kpi-icon{color:#07834d;background:#e5f7ee;border-radius:13px;place-items:center;width:50px;height:50px;display:grid}.kpi.danger .kpi-icon{color:var(--red);background:#fff0ef}.kpi>div{grid-template-columns:auto auto;align-items:end;column-gap:9px;display:grid}.kpi small{color:#5e756c;grid-column:1/-1}.kpi strong{color:#103c30;font-size:28px}.kpi.danger strong{color:var(--red)}.kpi em{color:#14935a;margin-bottom:5px;font-size:10px;font-style:normal}.dashboard-grid{grid-template-columns:1.4fr .75fr;gap:14px;display:grid}.chart-card,.map-card{min-width:0;padding:16px}.chart-card select{border:1px solid var(--line);color:#597168;border-radius:7px;padding:6px}.donut-holder{position:relative}.donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-center strong{font-size:30px}.donut-center span{color:var(--muted);font-size:11px}.status-legend{grid-template-columns:1fr 1fr;gap:8px;display:grid}.status-legend span{color:#657970;align-items:center;gap:6px;font-size:11px;display:flex}.status-legend i{border-radius:50%;width:8px;height:8px}.status-legend strong{color:#183b30;margin-left:auto}.mini-map{border-radius:10px;height:270px;position:relative;overflow:hidden}.mini-map>img{object-fit:cover;width:100%;height:100%}.mini-map>span{background:#f0323238;border:1px solid #f03232e6;border-radius:50%;width:32px;height:32px;animation:2s infinite pulse;position:absolute;transform:translate(-50%,-50%)}.mini-map>span i{background:#f03c40;border-radius:50%;position:absolute;inset:10px}.map-caption{color:#fff;background:#033023c2;border-radius:6px;padding:5px 8px;font-size:10px;position:absolute;bottom:10px;left:10px}@keyframes pulse{50%{box-shadow:0 0 0 11px #f0323200}}.dashboard-bottom{grid-template-columns:1.45fr .55fr;gap:14px;margin-top:14px;display:grid}.recent-card,.analysis-card{padding:16px}.text-button{color:var(--green);background:0 0;border:0;align-items:center;display:flex}.recent-table{flex-direction:column;display:flex}.recent-task-row{color:#466059;background:#fff;border-bottom:1px solid #eef3f1;grid-template-columns:70px 1.5fr 70px 90px 28px;align-items:center;padding:10px 5px;transition:background .15s;display:grid}.recent-task-row:hover{background:#f6fbf8}.recent-task-name,.recent-review-action,.recent-open-action{color:inherit;background:0 0;border:0;padding:0}.recent-task-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-task-name:hover,.recent-open-action:hover{color:var(--green)}.recent-review-action{justify-content:flex-start;display:flex}.recent-review-action:hover .status-tag{filter:brightness(.96);box-shadow:0 0 0 2px #087a491f}.recent-open-action{place-items:center;display:grid}.recent-table em{color:#15945b;font-style:normal;font-weight:700}.recent-table em.high{color:var(--red)}.analysis-card ol{margin:0;padding:0;list-style:none}.analysis-card li{border-bottom:1px solid #eef3f1;gap:10px;padding:10px 0;display:flex}.analysis-card li>span{width:25px;height:25px;color:var(--green);background:#dcf3e7;border-radius:50%;place-items:center;font-weight:700;display:grid}.analysis-card p{color:#60756d;margin:2px 0;font-size:12px;line-height:1.6}.analysis-card p strong{color:#0b7047}.dashboard-hero-actions{align-items:stretch;gap:10px;display:flex}.dashboard-hero-actions .hero-insights{min-width:260px}.hero-export-button{flex-direction:column;align-self:stretch;min-width:176px;line-height:1.3}.status-tag{justify-content:center;align-items:center;gap:4px;width:max-content;font-style:normal;display:inline-flex}@scope(.history-page){.history-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;display:grid}.history-stat{padding:17px 25px}.history-stat span{color:#667b73;font-size:12px}.history-stat strong{margin-top:4px;font-size:27px;display:block}.filters{grid-template-columns:1fr 1fr 2fr auto auto;align-items:end;gap:12px;margin-bottom:14px;padding:14px 16px;display:grid}.filters label{flex-direction:column;gap:5px;display:flex}.filters label>span{color:#5c726a;align-items:center;gap:4px;font-size:10px;font-weight:700;display:flex}.filters label svg{width:13px}.filters input,.filters select,.object-form input,.object-form select{color:#3c554d;background:#fbfdfc;border:1px solid #d8e5df;border-radius:7px;outline:none;height:38px;padding:0 10px}.filters input:focus,.filters select:focus{border-color:#69b894}.history-layout{grid-template-columns:minmax(0,1.75fr) 410px;gap:14px;display:grid}.history-table-card{min-width:0;padding:15px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:11px}th{text-align:left;color:#536b63;white-space:nowrap;background:#f2f7f5;padding:10px 9px;font-weight:700}th button{color:inherit;background:0 0;border:0;padding:0}td{white-space:nowrap;color:#536861;border-bottom:1px solid #edf2f0;padding:12px 9px}tr{transition:background .15s}.selected-row td,tbody tr:hover td{background:#edf9f3}.filename{text-overflow:ellipsis;max-width:135px;overflow:hidden}.rate-high,.rate-ok{font-style:normal;font-weight:700}.rate-high{color:var(--red)}.rate-ok{color:#147b4e}.row-actions{gap:7px;display:flex}.row-actions button{color:#07824e;background:0 0;border:0;padding:0;font-weight:700}.pagination{color:var(--muted);justify-content:space-between;align-items:center;padding-top:14px;font-size:11px;display:flex}.pagination div{gap:5px;display:flex}.pagination button{border:1px solid var(--line);background:#fff;border-radius:7px;width:30px;height:30px}.pagination button.active{background:var(--green);color:#fff}.history-side{flex-direction:column;gap:14px;display:flex}.trend-mini,.task-preview{padding:15px}.trend-mini>strong{font-size:12px}.preview-image{border-radius:8px;height:140px;position:relative;overflow:hidden}.preview-image img{object-fit:cover;width:100%;height:100%}.preview-image i{background:#ff000021;border:2px solid red;width:38px;height:28px;position:absolute;top:30%;left:28%}.preview-image i:last-child{top:53%;left:69%}.task-preview dl{grid-template-columns:1fr 1fr;margin:10px 0;display:grid}.task-preview dl div{border-bottom:1px solid #edf2ef;justify-content:space-between;padding:6px;font-size:10px;display:flex}.task-preview dd{margin:0;font-weight:600}.danger-text{color:var(--red)}.preview-actions{grid-template-columns:1fr 1fr;gap:7px;display:grid}}.annotate-page{max-width:none;padding:14px 1.6% 30px}.annotate-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.annotate-header>div{align-items:center;gap:14px;display:flex}.annotate-header h1{margin:0;font-size:21px}.annotate-header p{color:var(--muted);margin:2px 0;font-size:11px}.annotate-header .ghost-button svg,.annotate-header .primary-button svg{width:16px}.back-button{border-color:var(--line);color:#365b4d;background:#fff}.back-button svg{width:17px}.quick-tip{color:#557069;background:#e7f7ef;border:1px solid #cdeadc;border-radius:10px;align-items:center;gap:8px;height:42px;margin-bottom:10px;padding:0 14px;font-size:11px;display:flex}.quick-tip svg{color:var(--green)}.quick-tip strong{color:#205a43;font-size:13px}.quick-tip em{color:#dc6b17;margin-left:auto;font-style:normal;font-weight:700}.annotate-layout{grid-template-columns:minmax(750px,1fr) 390px;gap:12px;display:grid}.annotate-stage-card{min-width:0;padding:13px}.canvas-toolbar{background:#f6faf8;border:1px solid #e2ece7;border-radius:9px;align-items:center;gap:4px;height:48px;margin-bottom:8px;padding:5px;display:flex}.canvas-toolbar button{color:#5e746c;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:4px;height:36px;font-size:11px;display:flex}.canvas-toolbar button.active{color:#08794a;background:#e3f6ec;border-color:#71b99a}.canvas-toolbar button svg{width:16px}.canvas-toolbar>span{flex:1}.annotation-viewport{background:#163427;border-radius:10px;place-items:center;height:520px;display:grid;overflow:auto}.annotation-viewport.can-pan{cursor:grab;touch-action:none}.annotation-viewport.panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.annotation-stage{transform-origin:50%;width:100%;height:100%;transition:transform .15s;position:relative}.annotation-stage>img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%}.annotation-stage .detect-box{z-index:2}.resize-dot{background:#fff;border:2px solid;border-radius:50%;width:9px;height:9px;bottom:-5px;right:-5px;position:absolute!important}.annotate-side{flex-direction:column;gap:10px;display:flex}.task-info dl{grid-template-columns:1fr 1fr;gap:6px;margin:0;display:grid}.task-info dl div{background:#f7faf9;border-radius:7px;padding:7px}.task-info dt{color:#7c8f88;font-size:9px}.task-info dd{margin:2px 0;font-size:11px;font-weight:600}.object-form{flex-direction:column;gap:8px;display:flex}.object-form label{color:#657a72;flex-direction:column;gap:3px;font-size:10px;display:flex}.object-form>div{grid-template-columns:1fr 1fr;gap:7px;display:grid}.object-form p{border-bottom:1px solid #edf2f0;justify-content:space-between;margin:0;padding:5px 0;font-size:10px;display:flex}.object-form p span{color:var(--muted)}.object-empty{color:#91a19b;place-items:center;height:110px;font-size:12px;display:grid}.annotate-stats>div{grid-template-columns:1fr 1fr;gap:6px;display:grid}.annotate-stat{border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;padding:9px;display:grid}.annotate-stat svg{width:15px}.annotate-stat.red{color:#df3636;background:#fff0f0}.annotate-stat.green{color:#0b8a51;background:#edf9f3}.annotate-stat.orange{color:#dd8012;background:#fff5e9}.annotate-stat.blue{color:#347fd2;background:#eef6ff}.annotate-stats>small{color:#82938d;margin-top:7px;font-size:9px;line-height:1.5;display:block}.frame-strip{margin-top:10px;padding:12px}.frame-strip .section-title label{align-items:center;gap:5px;display:flex}.frame-carousel{align-items:stretch;gap:7px;display:flex}.frame-carousel>button{min-width:35px}.frame-carousel>button:not(:first-child):not(:last-child){background:#fff;border:2px solid #0000;flex-direction:column;align-items:flex-start;width:130px;padding:4px;display:flex}.frame-carousel>button.active{border-color:var(--green)!important;background:#f0faf5!important}.frame-carousel button div{border-radius:6px;width:100%;height:55px;position:relative;overflow:hidden}.frame-carousel img{object-fit:cover;width:100%;height:100%}.frame-carousel button div i{border:2px solid red;width:25px;height:22px;position:absolute;top:20%;left:35%}.frame-carousel strong{margin-top:3px;font-size:10px}.frame-carousel span{color:var(--muted);font-size:9px}.empty-workspace{flex-direction:column;justify-content:center;align-items:center;gap:16px;height:350px;display:flex}@media (width<=1400px){.topbar nav a{padding:0 12px}.brand{min-width:300px}.detect-top-grid{grid-template-columns:1fr 1.3fr}.task-facts{display:none}.field-visual,.field-visual>img,.result-placeholder{height:290px;min-height:290px}.kpi strong{font-size:23px}.history-layout{grid-template-columns:minmax(0,1fr) 340px}.annotate-layout{grid-template-columns:minmax(700px,1fr) 350px}.annotation-viewport{height:460px}}body{color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-md);font-weight:var(--font-weight-regular);line-height:var(--line-height-base);letter-spacing:.006em;font-kerning:normal;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}.brand strong{font-weight:var(--font-weight-bold);letter-spacing:.015em}.brand span{font-weight:var(--font-weight-regular);letter-spacing:0}.topbar nav a{font-weight:var(--font-weight-medium);letter-spacing:.006em}.hero h1,.annotate-header h1{font-weight:var(--font-weight-semibold);letter-spacing:-.015em}.about-copy h1{font-weight:var(--font-weight-medium);letter-spacing:-.025em}.about-copy h1 em{font-weight:var(--font-weight-bold)}.section-title h2{font-weight:var(--font-weight-semibold);letter-spacing:-.004em}.upload-card>.section-title h2{font-size:20px}.eyebrow,.primary-button,.ghost-button,.back-button,.filters label>span,.history-table-card th,.row-actions button,.status-tag{font-weight:var(--font-weight-semibold)}.annotate-side .section-title h2{font-size:20px}.annotate-side .section-title svg{width:23px;height:23px}.annotate-side>section{padding:18px}.task-info dl{gap:9px}.task-info dl div{padding:11px 12px}.task-info dt{font-size:12px;line-height:1.5}.task-info dd{margin-top:3px;font-size:15px;line-height:1.5}.object-form{gap:12px}.object-form label{gap:6px;font-size:13px}.object-form input,.object-form select{height:48px;padding:0 14px;font-size:14px}.object-form p{padding:10px 0;font-size:13px;line-height:1.5}.object-form p strong,.object-empty{font-size:14px}.annotate-stats>div{gap:9px}.annotate-stat{gap:8px;padding:13px 12px}.annotate-stat svg{width:18px;height:18px}.annotate-stat span{font-size:13px}.annotate-stat strong{font-size:24px}.annotate-stats>small{margin-top:10px;font-size:12px;line-height:1.7}.loading-banner{color:#317059;background:#eff9f4;border:1px solid #cfe8dc;border-radius:9px;margin:-2px 0 14px;padding:10px 14px;font-size:12px}.annotate-stage-card{align-self:stretch;width:100%}.annotate-main-column{flex-direction:column;gap:10px;min-width:0;display:flex}.annotate-main-column .frame-strip{margin-top:0}.annotation-viewport{aspect-ratio:16/9;overscroll-behavior:contain;place-items:center;width:100%;height:auto;min-height:0}.annotation-stage{width:100%;height:auto;margin:auto}.annotation-stage>img{object-position:center center;width:100%;height:auto;display:block}.field-visual{min-height:0}.field-visual>img,.field-fullscreen>img{object-fit:contain;width:100%;height:auto;min-height:0;display:block}.seedling-detection{pointer-events:none;z-index:1;background:#36c6eb14;border:2px solid #36c6eb;position:absolute}.seedling-detection>b{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:#167f9b;border-radius:4px;max-width:140px;padding:2px 5px;font-size:9px;font-weight:700;line-height:14px;position:absolute;top:-20px;left:-2px;overflow:hidden}.manual-seedling-detection>b{background:#087b4a}.detection-parameters{background:#f8fcfa;border:1px solid #deebe4;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 12px;padding:10px;display:grid}.detection-parameters>strong{color:#194d3a;grid-column:1/-1;font-size:14px}.detection-parameters label{color:#526e63;flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}.detection-parameters input,.detection-parameters select{color:#173f31;background:#fff;border:1px solid #cfe0d7;border-radius:7px;width:100%;min-width:0;height:34px;padding:0 8px}.detection-parameters small{color:#73887f;grid-column:1/-1;line-height:1.45}.annotation-viewport{justify-content:center;align-items:flex-start;display:flex}.annotation-stage{flex:none;width:100%;height:auto}.annotation-stage>img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.seedling-key{background:#36c6eb}.model-picker{color:#365b4d;flex-direction:column;gap:6px;margin-bottom:12px;font-size:14px;font-weight:500;display:flex}.model-picker select{background:#fff;border:1px solid #d4e5db;border-radius:8px;min-height:38px;padding:0 8px}.model-picker small{color:#677f73}.kpi>div{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.kpi strong{white-space:nowrap;font-size:22px}.kpi em{margin:0}.task-facts .section-title h2{font-size:19px}.task-facts .section-title svg{width:22px;height:22px}.task-facts dl>div{padding:12px 0}.task-facts dt{font-size:12px;line-height:1.5}.task-facts dd{margin-top:5px;font-size:14px;line-height:1.55}.dashboard-grid{grid-template-columns:minmax(0,1fr)}.dashboard-grid>.chart-card{width:100%}.compare-card{grid-column:auto}.sampling-metadata{background:#f8fbf9;border:1px solid #e0ece6;border-radius:10px;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px;padding:12px;display:grid}.sampling-metadata label{color:#365b4d;flex-direction:column;gap:5px;font-size:13px;font-weight:500;display:flex}.sampling-metadata label:first-child,.sampling-metadata label:last-of-type{grid-column:span 1}.sampling-metadata input{background:#fff;border:1px solid #d4e5db;border-radius:7px;min-width:0;height:36px;padding:0 9px}.sampling-metadata>small{color:#6d817a;grid-column:1/-1;line-height:1.5}.file-thumb img{object-fit:cover;width:100%;height:100%}.count-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.raw-seedling-key{background:#f59c33;border:1px dashed #b56a0b}.focus-key{background:#19a96a}.raw-seedling-detection{background:#f59c330d;border:2px dashed #f59c33}.manual-seedling-detection{background:#0e9c5d14;border-color:#0e9c5d}.editable-seedling{pointer-events:auto;cursor:move;padding:0}.editable-seedling span{color:#fff;white-space:nowrap;background:#1388a8;border-radius:4px;padding:2px 5px;font-size:9px;position:absolute;top:-20px;left:-2px}.editable-seedling.selected{z-index:4;outline:2px solid #fff;box-shadow:0 0 0 3px #056c43cc}.editable-seedling.selected>span,.detect-box.selected>span{left:16px}.box-delete{z-index:8;color:#fff;cursor:pointer;background:#dc3d3d;border:2px solid #fff;border-radius:50%;place-items:center;width:24px;height:24px;padding:0;display:grid;position:absolute;top:-12px;left:-12px;box-shadow:0 3px 8px #520d0d4d}.box-delete:hover{background:#bd2929;transform:scale(1.06)}.box-delete svg{pointer-events:none;width:12px;height:12px}.detect-box.focus{color:#107f49;background:#16a05b1f;border-color:#16a05b}.detect-box>span{color:#fff;background:#107f49;font-weight:700;box-shadow:0 2px 6px #03402433}.detect-box.normal>span{background:#9a7900}.legend i.seedling-key{background:#36c6eb}.legend i.raw-seedling-key{background:#f59c33;border:1px dashed #b56a0b}.legend i.focus-key,.focus-key{background:#16a05b}.file-panel .file-thumb{width:94px;height:70px}.dashboard-notes{gap:10px;padding:3px 4px;display:grid}.dashboard-notes p{background:#f8fbf9;border:1px solid #e5efea;border-radius:9px;flex-direction:column;gap:4px;margin:0;padding:13px 15px;display:flex}.dashboard-notes p strong{color:#176342;font-size:13px}.dashboard-notes p span{color:#667b73;font-size:12px;line-height:1.6}.history-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.history-filters .search-box{grid-column:span 2}.record-secondary{color:#81948d;margin-top:3px;font-size:10px;display:block}.series-model{color:#71867e;margin:5px 0 0;font-size:10px;line-height:1.5}.preview-field-image{background:#173c2d;border-radius:8px;max-height:220px;overflow:auto}.preview-field-image .field-visual{min-height:0}.preview-field-image .field-visual>img{object-fit:contain;width:100%;height:auto;max-height:220px}.platform-state{z-index:20;max-width:1800px;margin:12px auto 0;position:relative}button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.app-shell{background:var(--color-page);min-width:0}.topbar{height:var(--topbar-height);padding:0 var(--page-gutter);border-bottom:var(--border-default);box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff7}.brand{gap:var(--space-3);min-width:292px}.brand>div:last-child{gap:var(--space-3)}.brand strong{color:var(--color-brand);font-size:var(--font-size-2xl)}.brand span{color:var(--color-text-muted);font-size:var(--font-size-sm)}.brand-mark{flex:0 0 38px;width:38px;height:38px}.brand-mark:before,.brand-mark .brand-leaf{background:var(--color-action)}.topbar nav{scrollbar-width:none;min-width:0;margin-left:auto;overflow:auto hidden}.topbar nav::-webkit-scrollbar{display:none}.topbar nav a{gap:var(--space-2);min-height:var(--topbar-height);padding:0 var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-md);background:0 0;flex:none}.topbar nav a:hover{color:var(--color-action);background:var(--color-action-soft)}.topbar nav a.active{color:var(--color-action);background:0 0}.topbar nav a.active:after{left:var(--space-4);right:var(--space-4);background:var(--color-action);border-radius:var(--radius-pill) var(--radius-pill) 0 0;height:3px;bottom:0}.topbar nav a svg{stroke-width:2px;width:17px;height:17px}.page{width:100%;max-width:var(--page-max-width);padding:var(--space-5) var(--page-gutter) var(--space-8)}.card{background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.section-title{min-height:32px;margin-bottom:var(--space-3)}.section-title>div{gap:var(--space-2);min-width:0}.section-title svg{color:var(--color-action)}.section-title h2{color:var(--color-brand);font-size:var(--font-size-lg)}.section-title>span,.section-title>div:last-child{color:var(--color-text-muted);font-size:var(--font-size-sm)}.demo-badge,.research-badge{color:var(--color-action);background:var(--color-action-soft);border-color:var(--color-success-border);border-radius:var(--radius-pill)}.primary-button,.ghost-button,.back-button{min-height:var(--control-height-md);padding:0 var(--control-padding-x);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);box-shadow:none;transition:color .16s,background-color .16s,border-color .16s,box-shadow .16s}.primary-button{color:var(--color-text-inverse);background:var(--color-action);border-color:var(--color-action)}.primary-button:hover:not(:disabled){filter:none;background:var(--color-action-hover);border-color:var(--color-action-hover)}.primary-button:active:not(:disabled){background:var(--color-action-active);border-color:var(--color-action-active)}.ghost-button,.back-button{color:var(--color-brand);background:var(--color-surface);border-color:var(--color-border-strong)}.ghost-button:hover:not(:disabled),.back-button:hover:not(:disabled){color:var(--color-action);background:var(--color-action-soft);border-color:var(--color-success-border)}.filters input,.filters select,.object-form input,.object-form select,.model-picker select,.sampling-metadata input,.detection-parameters input,.detection-parameters select{min-height:var(--control-height-md);color:var(--color-text);background:var(--color-surface);border-color:var(--color-border);border-radius:var(--radius-md)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-action);outline-offset:2px;box-shadow:var(--shadow-focus)}.loading-banner{color:var(--color-brand);background:var(--color-action-soft);border-color:var(--color-success-border);border-radius:var(--radius-md)}.error-banner{color:var(--color-error-text);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-md)}.error-banner button{color:var(--color-error-text)}.export-success-toast{color:var(--color-brand);background:var(--color-success-bg);border-color:var(--color-success-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.status-tag{min-height:24px;color:var(--color-neutral);background:var(--color-neutral-bg);border-radius:var(--radius-pill);font-size:var(--font-size-2xs);border:1px solid #0000;padding:3px 9px;line-height:1}.status-tag.submitted,.status-tag.complete{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success-border)}.status-tag.unreviewed,.status-tag.ready{color:var(--color-warning-text);background:var(--color-warning-bg);border-color:var(--color-warning-border)}.status-tag.draft,.status-tag.analyzing,.status-tag.uploading{color:var(--color-info);background:var(--color-info-bg);border-color:var(--color-info-border)}.status-tag.failed{color:var(--color-error-text);background:var(--color-error-bg);border-color:var(--color-error-border)}.status-tag.waiting{color:var(--color-neutral);background:var(--color-neutral-bg);border-color:var(--color-border)}.status-tag.draft svg,.status-tag.analyzing svg,.status-tag.uploading svg,.status-tag.waiting svg{animation:1.4s linear infinite status-spin}@keyframes status-spin{to{transform:rotate(360deg)}}.empty-state{justify-content:center;align-items:center;gap:var(--space-2);min-height:220px;padding:var(--space-8);color:var(--color-text-muted);text-align:center;flex-direction:column;display:flex}.empty-state-icon{width:44px;height:44px;color:var(--color-action);background:var(--color-action-soft);border-radius:50%;place-items:center;display:grid}.empty-state-icon svg{width:21px;height:21px}.empty-state strong{color:var(--color-brand);font-size:var(--font-size-md)}.empty-state>span:last-child{max-width:440px;font-size:var(--font-size-sm)}.page-header{justify-content:space-between;align-items:center;gap:var(--space-6);min-height:108px;padding:var(--space-5) var(--space-1);border-bottom:var(--border-default);display:flex}.page-header-copy{min-width:0}.page-header h1{color:var(--color-brand);font-size:var(--font-size-3xl);line-height:var(--line-height-tight);letter-spacing:-.018em;margin:0}.page-header p{margin:var(--space-2) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-md)}.page-header-meta{margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-xs)}.page-header-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.stat-card{min-height:116px;padding:var(--space-4) var(--space-5);box-shadow:none;flex-direction:column;justify-content:center;display:flex}.stat-card>span{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.stat-card>strong{margin-top:var(--space-2);color:var(--color-brand);font-size:26px;line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold)}.stat-card>small{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:var(--line-height-base)}.stat-card-warning{border-top:2px solid var(--color-warning)}.stat-card-danger{border-top:2px solid var(--color-error)}.topbar-account{margin-left:var(--space-3);padding-left:var(--space-4);border-left:var(--border-default);flex:none;align-items:center;display:flex}.user-account{position:relative}.user-avatar-trigger{min-height:40px;color:var(--color-text-secondary);border-radius:var(--radius-md);font:inherit;background:0 0;border:0;align-items:center;gap:9px;padding:0 7px 0 0;display:inline-flex}.user-avatar-trigger:hover{color:var(--color-action);background:var(--color-surface-subtle)}.user-avatar-trigger:focus-visible{outline:2px solid var(--color-action);outline-offset:2px}.user-avatar-entry{width:38px;height:38px;color:var(--color-action);background:var(--color-action-soft);border:1px solid var(--color-success-border);border-radius:50%;place-items:center;display:grid}.user-avatar-entry svg{stroke-width:1.8px;width:20px;height:20px}.user-avatar-name{text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:12px;overflow:hidden}.user-menu{z-index:calc(var(--z-topbar) + 2);background:var(--color-surface);border:var(--border-default);border-radius:var(--radius-md);width:208px;box-shadow:var(--shadow-md);padding:7px;position:absolute;top:calc(100% + 9px);right:0}.user-menu-identity{border-bottom:var(--border-default);flex-direction:column;gap:3px;padding:9px 10px 11px;display:flex}.user-menu-identity strong{color:var(--color-brand);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.user-menu-identity span{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.user-menu>button{width:100%;min-height:38px;color:var(--color-error-text);border-radius:var(--radius-sm);font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:9px;margin-top:6px;padding:0 10px;font-size:12px;display:flex}.user-menu>button:hover:not(:disabled){background:var(--color-error-bg)}.user-menu>button:disabled{opacity:.6;cursor:wait}.user-menu>button svg{stroke-width:1.8px;width:16px;height:16px}.history-table-card .table-scroll{border:var(--border-default);border-radius:var(--radius-md)}.history-table-card table{font-size:var(--font-size-xs)}.history-table-card th{color:var(--color-text-secondary);background:var(--color-surface-muted)}.history-table-card td{color:var(--color-text-secondary)}.history-table-card .selected-row td,.history-table-card tbody tr:hover td{background:var(--color-action-soft)}@media (width<=1400px){.topbar nav a{padding:0 var(--space-3);font-size:13px}.topbar nav a.active:after{left:var(--space-3);right:var(--space-3)}.brand{min-width:270px}.history-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.history-filters .search-box{grid-column:span 2}}@media (width<=1180px){.topbar{padding:0 2%}.brand{min-width:205px}.brand span,.research-badge{display:none}.topbar nav a{padding:0 10px}.page{padding-left:16px;padding-right:16px}.detect-top-grid,.results-layout,.dashboard-grid,.dashboard-bottom,.history-layout,.annotate-layout{grid-template-columns:minmax(0,1fr)}.task-facts{display:block}.compare-card{grid-column:auto}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.history-side{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.annotate-layout{min-width:0}.annotate-side{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid}.history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.history-filters .search-box{grid-column:span 2}}@media (width<=900px){.topbar{height:auto;min-height:var(--topbar-height);flex-wrap:wrap;padding:0 16px}.brand{flex:auto;order:1;min-width:0;height:56px}.brand strong{font-size:19px}.brand-mark{transform-origin:0;flex-basis:32px;width:32px;height:32px;transform:scale(.86)}.topbar-account{padding-left:var(--space-3);order:2;margin-left:auto}.user-avatar-entry{width:34px;height:34px}.topbar nav{border-top:var(--border-default);order:3;width:calc(100% + 32px);height:48px;margin:0 -16px;padding:0 8px}.topbar nav a{min-height:48px;padding:0 12px}.topbar nav a.active:after{left:12px;right:12px}.page-header{align-items:flex-start;gap:var(--space-4);flex-direction:column;min-height:0}.page-header-actions{width:100%}.page-header-actions>*{flex:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.topbar:not(.landing-topbar){box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border-bottom:1px solid #edf1ee;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;display:grid}.topbar:not(.landing-topbar) .brand{flex:0 auto;justify-self:start;gap:9px;min-width:250px}.topbar:not(.landing-topbar) .brand-mark{transform-origin:0;flex:0 0 30px;width:30px;height:30px;transform:scale(.78)}.topbar:not(.landing-topbar) .brand-mark span{display:block}.topbar:not(.landing-topbar) .brand>div:last-child{gap:9px}.topbar:not(.landing-topbar) .brand strong{color:#173c2d;letter-spacing:.04em;font-size:18px;font-weight:500}.topbar:not(.landing-topbar) .brand>div:last-child>span{color:#79867f;letter-spacing:0;font-size:11px;font-weight:400}.topbar:not(.landing-topbar) .platform-nav{justify-self:center;align-items:stretch;width:max-content;height:100%;margin-left:0;overflow:visible}.topbar:not(.landing-topbar) .platform-nav-link{width:112px;min-height:var(--topbar-height);color:#3f4d46;font-family:var(--font-sans);font-size:13px;font-weight:400;line-height:var(--line-height-base);letter-spacing:.006em;white-space:nowrap;background:0 0;flex:0 0 112px;justify-content:center;align-items:center;gap:7px;padding:0 12px}.topbar:not(.landing-topbar) .platform-nav-link:hover,.topbar:not(.landing-topbar) .platform-nav-link.active{color:#116b43;background:0 0}.topbar:not(.landing-topbar) .platform-nav-link.active:after{background:#168653;height:2px;left:12px;right:12px}.topbar:not(.landing-topbar) .platform-nav-link svg{stroke-width:1.7px;flex:0 0 17px;width:17px;height:17px}.topbar:not(.landing-topbar) .platform-nav-link span{line-height:inherit;align-items:center;display:inline-flex}.topbar:not(.landing-topbar) .topbar-account{border-left:0;justify-self:auto;margin-left:0;padding-left:0;position:absolute;top:50%;left:calc(50% + 294px);transform:translateY(-50%)}@media (width<=1180px){.topbar:not(.landing-topbar) .brand{min-width:205px}.topbar:not(.landing-topbar) .brand>div:last-child>span{display:none}}@media (width<=900px){.topbar:not(.landing-topbar){grid-template-rows:56px 48px;grid-template-columns:minmax(0,1fr) auto}.topbar:not(.landing-topbar) .brand{min-width:0}.topbar:not(.landing-topbar) .brand strong{font-size:18px}.topbar:not(.landing-topbar) .platform-nav{border-top:var(--border-default);grid-column:1/-1;justify-self:stretch;width:calc(100% + 32px);height:48px;margin:0 -16px;padding:0 8px;overflow-x:auto}.topbar:not(.landing-topbar) .topbar-account{justify-self:end;position:static;transform:none}}.dashboard-page{gap:var(--content-gap);flex-direction:column;display:flex}.dashboard-page .page-header{margin-bottom:0}.dashboard-page>.error-banner,.dashboard-page>.loading-banner{margin:0}.dashboard-kpi-grid{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.dashboard-review-panel,.dashboard-trend-panel,.dashboard-recent-panel{min-width:0;padding:var(--space-5)}.dashboard-review-panel .section-title,.dashboard-trend-panel .section-title,.dashboard-recent-panel .section-title{margin-bottom:var(--space-4)}.dashboard-analytics-grid{gap:var(--content-gap);grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:stretch;display:grid}.dashboard-analytics-grid>.card{grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:400px;display:grid}.review-donut-layout{align-items:center;gap:var(--space-3);grid-template-columns:184px minmax(0,1fr);min-height:0;display:grid}.review-donut-holder{justify-self:center;width:184px;height:184px;position:relative}.review-donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.review-donut-center strong{color:var(--color-brand);font-size:27px;line-height:var(--line-height-tight);font-weight:var(--font-weight-semibold)}.review-donut-center span{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:2px}.review-donut-legend{flex-direction:column;min-width:0;display:flex}.review-donut-legend article{align-items:center;gap:var(--space-2);border-bottom:var(--border-default);grid-template-columns:9px minmax(0,1fr) auto;padding:10px 0;display:grid}.review-donut-legend article:last-child{border-bottom:0}.review-donut-legend i{border-radius:50%;width:9px;height:9px}.review-donut-legend div{justify-content:space-between;align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.review-donut-legend span{color:var(--color-text-secondary);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.review-donut-legend strong{color:var(--color-brand);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.review-donut-legend small{min-width:43px;color:var(--color-text-muted);font-size:var(--font-size-xs);text-align:right}.review-legend-success i{background:var(--color-success)}.review-legend-warning i{background:var(--color-warning)}.review-legend-error i{background:var(--color-error)}.review-completion{justify-content:space-between;align-items:center;gap:var(--space-5);padding-top:var(--space-4);margin-top:var(--space-2);border-top:var(--border-default);display:flex}.review-completion>div{gap:var(--space-1);flex-direction:column;display:flex}.review-completion span{color:var(--color-brand);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.review-completion small{max-width:340px;color:var(--color-text-muted);font-size:var(--font-size-2xs);line-height:var(--line-height-base)}.review-completion strong{color:var(--color-brand);font-size:26px;font-weight:var(--font-weight-semibold)}.trend-range-switch{background:var(--color-surface-muted);border-radius:var(--radius-md);padding:2px;display:inline-flex}.trend-range-switch button{min-height:28px;padding:0 var(--space-3);color:var(--color-text-muted);border-radius:var(--radius-sm);font-size:var(--font-size-xs);background:0 0;border:0}.trend-range-switch button.active{color:var(--color-brand);background:var(--color-surface);box-shadow:var(--shadow-xs);font-weight:var(--font-weight-semibold)}.dashboard-analytics-grid .empty-state{height:100%;min-height:0}.dashboard-data-note{margin:var(--space-3) 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:var(--line-height-base)}.dashboard-review-panel>.dashboard-data-note{margin-top:var(--space-2)}.dashboard-recent-table{border:var(--border-default);border-radius:var(--radius-md);width:100%;overflow-x:auto}.dashboard-recent-table table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.dashboard-recent-table th{padding:10px var(--space-4);color:var(--color-text-muted);background:var(--color-surface-muted);font-weight:var(--font-weight-medium);text-align:left;white-space:nowrap}.dashboard-recent-table td{padding:12px var(--space-4);color:var(--color-text-secondary);border-top:var(--border-default);vertical-align:middle}.dashboard-recent-table tbody tr:first-child td{border-top:0}.dashboard-recent-table tbody tr:hover td{background:var(--color-surface-subtle)}.dashboard-recent-table td:nth-child(2){min-width:190px}.dashboard-recent-table td:nth-child(2) strong,.dashboard-recent-table td:nth-child(2) small{display:block}.dashboard-recent-table td:nth-child(2) strong{color:var(--color-text);font-weight:var(--font-weight-medium)}.dashboard-recent-table td:nth-child(2) small{color:var(--color-text-muted);margin-top:2px}.dashboard-recent-table th:first-child,.dashboard-recent-table td:first-child{white-space:nowrap;width:150px}.dashboard-recent-table th:nth-child(3),.dashboard-recent-table td:nth-child(3){text-align:center;width:100px}.dashboard-recent-table th:nth-child(4),.dashboard-recent-table td:nth-child(4),.dashboard-recent-table th:nth-child(5),.dashboard-recent-table td:nth-child(5){width:112px}.dashboard-recent-table th:last-child,.dashboard-recent-table td:last-child{width:110px}.recent-task-link{align-items:center;gap:var(--space-1);color:var(--color-action);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;background:0 0;border:0;padding:0;display:inline-flex}.recent-task-link:hover{color:var(--color-action-hover)}@media (width<=1180px){.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1100px){.dashboard-analytics-grid{grid-template-columns:minmax(0,1fr)}.dashboard-analytics-grid>.card{min-height:380px}.review-donut-layout{grid-template-columns:minmax(190px,.75fr) minmax(0,1.25fr)}}@media (width<=720px){.dashboard-kpi-grid{grid-template-columns:minmax(0,1fr)}.dashboard-review-panel,.dashboard-trend-panel,.dashboard-recent-panel{padding:var(--space-4)}.review-donut-layout{grid-template-columns:minmax(0,1fr)}.review-completion{align-items:flex-end}}@media (width<=520px){.dashboard-kpi-grid{grid-template-columns:minmax(0,1fr)}}.login-page{width:100%;min-height:100vh;color:var(--color-text);background:#fff;grid-template-columns:minmax(0,7fr) minmax(0,3fr);display:grid}.login-visual{background:#173c2d;min-width:0;min-height:100vh;position:relative;overflow:hidden}.login-visual>img{object-fit:cover;object-position:50% 50%;width:100%;height:100%;display:block}.login-panel{background:#fff;justify-content:center;align-items:center;min-width:0;min-height:100svh;padding:40px clamp(28px,3.2vw,56px);display:flex}.login-form-wrap{width:min(100%,360px)}.login-brand{width:100%;color:var(--color-brand);flex-direction:column;justify-content:center;align-items:center;gap:15px;display:flex}.login-brand .brand-mark{transform-origin:50%;flex:0 0 40px;width:40px;height:40px;transform:scale(1.35)}.login-brand strong{color:#173c2d;font-family:var(--font-sans);letter-spacing:.04em;font-size:18px;font-weight:500}.login-form{flex-direction:column;margin-top:48px;display:flex}.login-fields{border-top:1px solid #bdc9c1;border-bottom:1px solid #bdc9c1}.login-field{align-items:center;height:60px;display:flex;position:relative}.login-field+.login-field{border-top:1px solid #bdc9c1}.login-field:after{content:"";background:0 0;height:1px;transition:background-color .16s,height .16s;position:absolute;bottom:-1px;left:0;right:0}.login-field:focus-within:after{background:var(--color-action);height:2px}.login-field-label{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-field input{min-width:0;height:100%;color:var(--color-text);box-shadow:none;font:inherit;background:0 0;border:0;border-radius:0;outline:0;flex:1;padding:0 42px 0 2px;font-size:14px}.login-field input:focus-visible{box-shadow:none;outline:none}.login-field input::placeholder{color:#8c9992}.login-field:has(input:disabled){cursor:not-allowed;opacity:.68}.password-toggle{color:#6f7d76;background:0 0;border:0;border-radius:0;place-items:center;width:36px;height:36px;padding:0;display:grid;position:absolute;right:0}.password-toggle:hover:not(:disabled){color:var(--color-action);background:0 0}.password-toggle:focus-visible{outline:1px solid var(--color-action);outline-offset:1px;box-shadow:none}.password-toggle svg{stroke-width:1.7px;width:17px;height:17px}.login-submit{color:#fff;background:var(--color-action);border:1px solid var(--color-action);min-height:48px;font:inherit;border-radius:4px;justify-content:center;align-items:center;gap:9px;margin-top:30px;font-size:14px;font-weight:500;transition:background-color .16s,border-color .16s;display:inline-flex}.login-submit:hover:not(:disabled){background:var(--color-action-hover);border-color:var(--color-action-hover)}.login-submit:focus-visible{outline-offset:2px;outline:3px solid #16865333}.login-submit:disabled{opacity:.62;cursor:not-allowed}.login-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite login-spin}.login-error{color:var(--color-error-text);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:4px;margin:0 0 20px;padding:11px 13px;font-size:13px;line-height:1.55}.login-back{width:max-content;color:var(--color-text-muted);margin:24px auto 0;font-size:12px;display:block}.login-back:hover{color:var(--color-action)}.auth-checking{min-height:100vh;color:var(--color-text-secondary);background:var(--color-page);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.auth-checking>span{border:2px solid var(--color-success-border);border-top-color:var(--color-action);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite login-spin}.auth-checking strong{font-size:13px;font-weight:500}@keyframes login-spin{to{transform:rotate(360deg)}}@media (width<=1100px){.login-page{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.login-panel{padding-left:28px;padding-right:28px}}@media (width<=760px){.login-page{grid-template-rows:190px auto;grid-template-columns:1fr}.login-visual{min-height:190px}.login-visual>img{object-position:50% 48%}.login-panel{min-height:calc(100svh - 190px);padding:34px 24px}.login-form-wrap{width:min(100%,440px)}.login-form{margin-top:34px}}@media (width<=460px){.login-page{grid-template-rows:165px auto}.login-visual{min-height:165px}.login-panel{min-height:calc(100svh - 165px);padding:30px 18px}.login-field{height:58px}.login-submit{min-height:50px}}@media (prefers-reduced-motion:reduce){.login-spinner,.auth-checking>span{animation-duration:1.6s}.login-field:after,.login-submit{transition:none}}
