@charset "UTF-8";
:root{--green:#143628;--lime:#dbeaac;--bg:#f7f8f3;--ink:#24392c;--muted:#7b8479;--line:#e7eae2;--white:#fff;--radius:18px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 "Segoe UI",Arial,sans-serif}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}a{color:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #80b918;outline-offset:4px}[hidden]{display:none!important}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.skip{position:fixed;top:-60px;background:var(--green);color:#fff;padding:12px;z-index:99}.skip:focus{top:0}
.sidebar{width:238px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:34px 22px 20px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:750;font-size:25px;letter-spacing:-1px;padding:0 10px}.brand-icon{width:42px;height:44px;background:var(--green);border-radius:13px;display:grid;place-items:center;color:var(--lime)}.brand-icon .icon{width:28px;height:28px}.brand small{display:block;font-size:9px;font-weight:600;letter-spacing:4px;line-height:1.1;margin-top:2px;color:#7d887a}.nav-caption{margin:50px 12px 15px;font-size:9px;font-weight:600;letter-spacing:1.7px;color:#92998d}.nav-link{width:100%;border:0;background:none;display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:10px;margin-bottom:7px;font-weight:500;text-align:left;color:#6f786d;font-size:13px}.nav-link:hover{background:#f3f5ef}.nav-link.active{background:var(--green);color:white}.nav-dot{height:5px;width:5px;border-radius:50%;background:var(--lime);margin-left:auto}.sidebar-note{margin-top:auto;background:#f1f4e8;border-radius:14px;padding:20px 18px 70px;position:relative;overflow:hidden;min-height:215px}.mini-leaf{color:#67814c;margin-bottom:12px}.sidebar-note strong{font-size:17px;font-weight:600;line-height:1.5}.sidebar-note p{font-size:12px;color:#8a937e;line-height:1.6;margin:8px 0}.field-lines{position:absolute;width:270px;height:90px;border:1px solid #d1dec0;border-radius:50%;bottom:-50px;left:-35px;transform:rotate(-14deg);box-shadow:0 -13px 0 -1px #f1f4e8,0 -14px 0 0 #d1dec0,0 -28px 0 -1px #f1f4e8,0 -29px 0 0 #d1dec0}.sidebar-footer{display:flex;align-items:center;gap:8px;margin:24px 3px 0;font-size:11px}.sidebar-footer small{display:block;color:var(--muted);font-size:10px}.version{margin-left:auto;color:#90998a;font-size:10px}.connection-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:#c5caba;flex-shrink:0}.online .connection-dot,.sidebar-footer .connection-dot{background:#7f9b53;box-shadow:0 0 0 3px #eef3e5}.offline .connection-dot{background:#c4774b}
.workspace{margin-left:238px}.topbar{height:77px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:#fff9;font-size:12px}.breadcrumb{color:#969d90}.slash{margin:0 17px;color:#cad0c3}.top-right{display:flex;gap:7px;align-items:center;color:#8b957f;font-size:11px}.top-right .icon{width:16px}main{max-width:1510px;margin:auto;padding:35px 40px 22px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:600;color:#8d9786;margin-bottom:8px}h1{font-size:36px;letter-spacing:-1.1px;line-height:1.18;font-weight:650;margin:0 0 10px}.title-dot{color:#8eaa5d}h1+p,.page-heading p{color:var(--muted);margin:0;font-size:13px}.status{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:30px;background:white;padding:9px 13px;font-size:10px;white-space:nowrap}.tabs{display:flex;gap:5px;margin-bottom:20px;background:#ebeee4;border-radius:10px;padding:5px;width:fit-content}.tab{display:flex;align-items:center;gap:8px;background:none;border:0;border-radius:7px;padding:9px 23px;font-size:12px;color:#7d8675}.tab .icon{width:16px;height:16px}.tab.active{background:var(--green);color:white;box-shadow:0 2px 5px #14362812}
.analysis-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);gap:22px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 20px #24392c02}.input-card{padding:23px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.card-top>div{display:flex;align-items:center;gap:10px}h2{font-size:14px;font-weight:650;margin:0}.section-number{font-family:Consolas,monospace;color:#9fa88e;font-size:10px}.muted-label{font-size:8px;letter-spacing:1px;color:#a2aa99;white-space:nowrap}.dropzone{position:relative;min-height:325px;border:1px dashed #dbe2cf;border-radius:12px;background:#f9faf6;display:flex;align-items:center;justify-content:center;overflow:hidden}.dropzone.drag{border-color:#648442;background:#f0f6e6}.dropzone>img,.dropzone>video,.dropzone>canvas{max-width:100%;width:100%;max-height:450px;object-fit:contain;display:block}.dropzone.has-media{background:#17261d;border-style:solid}.dropzone #camera-video{display:none}#empty-view{text-align:center;width:100%;padding:24px 12px;position:relative}.landscape{width:225px;height:78px;margin:-4px auto 8px}.landscape svg{width:100%;height:100%}.upload-icon{position:absolute;left:calc(50% - 20px);top:50px;width:41px;height:41px;display:grid;place-items:center;border-radius:12px;background:#fff;border:1px solid #e4eadb;box-shadow:0 4px 12px #32512308;color:#5d744c}.upload-icon .icon{width:19px}h3{font-size:15px;letter-spacing:-.15px;font-weight:600;margin:10px 0 7px}#empty-view p{font-size:12px;color:#929b87;line-height:1.8;margin:0 0 16px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:8px;border:1px solid transparent;font-size:12px;font-weight:600;min-height:42px;padding:10px 17px;text-decoration:none;transition:background .15s}.button .icon{width:17px;height:17px}.secondary{background:white;border-color:#dce2d3}.secondary:hover{background:#f4f7ee}.primary{background:var(--green);color:white}.primary:hover{background:#26503a}.primary .icon{color:#d3e3ab}.file-hint{display:block;font-size:9px;color:#a7af9c;margin-top:11px}.controls{display:flex;align-items:center;gap:20px;margin-top:24px}.confidence{min-width:130px;flex:1}.confidence>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:10px}.confidence output{color:#52683f;background:#f0f4e9;padding:1px 7px;border-radius:4px;font-size:10px;font-family:Consolas,monospace}input[type=range]{width:100%;height:4px;accent-color:var(--green);cursor:pointer;margin:14px 0 5px;display:block}.range-labels{display:flex;justify-content:space-between;font-size:8px;color:#a4ac99}.privacy-note{font-size:9px;color:#a0a995;display:flex;gap:6px;align-items:center;margin-top:22px}.privacy-note .icon{width:12px;height:12px}.file-meta{display:flex;justify-content:space-between;gap:12px;margin:12px 0 0;font-size:11px;color:var(--muted)}#file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:none;border:0;padding:0;font-size:11px;color:#597049;text-decoration:none;cursor:pointer}.text-button:hover{text-decoration:underline}.text-button .icon{width:14px;height:14px}.original-toggle{font-size:11px;display:block;margin-top:10px;color:var(--muted);accent-color:var(--green)}
.results-card{padding:23px;display:flex;flex-direction:column;min-width:0}.small-dot{width:5px;height:5px;border-radius:50%;background:#cad6ba}.result-status{font-size:10px;color:#8e9783;margin-top:-8px}.result-empty{text-align:center;padding:24px 0 27px;flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:204px}.result-illustration{display:grid;place-items:center;width:62px;height:62px;background:#f3f6ec;border-radius:19px;position:relative}.result-illustration>.icon{color:#bac9a5;width:31px;height:31px}.result-illustration i{position:absolute;width:20px;height:20px;border-radius:50%;background:#e3edce;border:3px solid #fff;bottom:-4px;right:-5px}.result-empty h3{font-size:14px;color:#637454;margin-top:18px}.result-empty p{font-size:11px;color:#9da58f;margin:0;line-height:1.8}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-grid>div{background:#f8f9f4;border:1px solid #eef0e8;border-radius:10px;padding:12px 14px}.stat-grid>div>span{display:flex;align-items:center;gap:6px;font-size:9px;color:#8f9982}.stat-grid .icon{width:13px;height:13px}.stat-grid strong{display:block;font-size:27px;font-weight:500;line-height:1.3;margin-top:4px;color:#9ba88a}.result-note{font-size:10px;color:#8c9781;margin:13px 0 17px;line-height:1.6}.advice-button{margin-top:auto;background:#eff3e7;border-color:#e5eadb;color:#5b7147;width:100%;justify-content:flex-start}.advice-button .icon:last-child{margin-left:auto}.small-note{font-size:10px;color:#939d85;line-height:1.6;margin:9px 0 0}.advice-note{text-align:center;font-size:8px}.result-list{min-height:204px;max-height:290px;overflow-y:auto;margin:15px 0;flex:1}.detection-row{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #f0f2eb;font-size:11px}.detection-row .swatch{height:7px;width:7px;border-radius:50%}.detection-row strong{font-size:10px;font-weight:500;color:#78886a}.empty-result{font-size:12px;line-height:1.8;color:#7e8b71;padding:22px 0}.advice-text{border-radius:10px;background:#f6f8f0;padding:14px;margin-top:15px;font-size:12px;line-height:1.8;white-space:pre-wrap}.downloads{display:flex;justify-content:space-between;margin:0 0 15px;gap:10px}.timeline{display:flex;align-items:flex-end;height:48px;gap:2px;margin-bottom:17px;border-bottom:1px solid var(--line)}.timeline span{background:#a9c180;min-width:1px;flex:1;border-radius:2px 2px 0 0}.processing{position:absolute;inset:0;background:#f7f9f0eF;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;font-size:12px;color:#587045;z-index:2}.processing>span:last-child{font-size:10px;color:#8c997d}.spinner{width:30px;height:30px;border:2px solid #d6e0c8;border-top-color:#244832;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.message{padding:13px 17px;background:#fff5e9;border:1px solid #e9d4b8;border-radius:10px;font-size:12px;color:#8a643a;margin:0 0 18px}
.taxonomy-strip{margin:20px 0;display:flex;align-items:center;gap:16px;justify-content:space-between;background:#eef2e4;border:1px solid #e7ecda;border-radius:10px;padding:15px 19px;font-size:10px;color:#849371}.taxonomy-strip>span{display:flex;align-items:center;gap:7px;font-size:10px;color:#667b4d}.taxonomy-strip .icon{width:15px;height:15px}.taxonomy-strip>div{display:flex;align-items:center;gap:5px}.taxonomy-strip strong{font-size:14px;color:#526b3d;font-weight:600;margin-left:2px}.divider{display:inline-block;background:#d5dec8;width:1px;height:12px;margin:0 9px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.step{border:1px solid var(--line);border-radius:13px;background:#fff;padding:20px 22px}.step>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px;color:#8fa671}.step>div>span{font-family:Consolas,monospace;font-size:10px}.step>div>.icon{width:18px;height:18px;color:#a2af92}.step h3{font-size:13px;margin:0 0 8px}.step p{font-size:11px;color:#8f9983;line-height:1.8;margin:0}footer{display:flex;justify-content:space-between;margin-top:30px;font-size:9px;color:#a9b09e;gap:20px}.footer-dot{margin:0 7px}.section-intro{color:var(--muted);margin-bottom:28px}.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.class-item{padding:20px;background:white;border:1px solid var(--line);border-radius:12px}.class-item strong{font-size:14px}.class-item p{margin:5px 0;color:var(--muted);font-size:11px}.class-item small{color:#7e915d;font-size:10px}.guide{padding:30px;margin-top:25px;max-width:860px}.guide h2{margin:22px 0 10px;font-size:17px}.guide h2:first-child{margin-top:0}.guide p{color:#7e8973;font-size:14px;line-height:1.9}
@media(min-width:1550px){main{padding-top:45px}.dropzone{min-height:390px}.result-empty{min-height:268px}.sidebar{width:258px}.workspace{margin-left:258px}}
@media(max-width:1150px){.sidebar{width:204px;padding-left:13px;padding-right:13px}.workspace{margin-left:204px}.topbar{padding:0 27px}main{padding:30px 27px}.analysis-grid{gap:16px;grid-template-columns:minmax(0,1.4fr) minmax(270px,1fr)}.input-card,.results-card{padding:18px}.controls{gap:13px;flex-wrap:wrap}.controls .primary{flex:1}.confidence{flex-basis:100%}.taxonomy-strip{flex-wrap:wrap}.taxonomy-strip>div{margin-left:auto}.taxonomy-strip>.text-button{display:none}.muted-label{display:none}.step{padding:17px}.page-heading .status{font-size:9px}h1{font-size:32px}}
@media(max-width:900px){.sidebar{width:76px;align-items:center;padding:23px 12px}.brand{padding:0}.brand>span:last-child,.nav-caption,.nav-link:not(.active) .nav-dot,.sidebar-note,.sidebar-footer{display:none}.sidebar nav{margin-top:35px;width:100%}.nav-link{font-size:0;gap:0;padding:15px;justify-content:center}.nav-link .icon{width:21px;height:21px}.nav-dot{display:none}.workspace{margin-left:76px}.analysis-grid{grid-template-columns:1fr 300px}.page-heading{align-items:flex-start}.page-heading .status{margin-top:23px}main{padding:27px 22px}.topbar{padding:0 22px}.taxonomy-strip{font-size:9px}.taxonomy-strip>span{display:none}.taxonomy-strip>div{margin:0 auto}.class-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.sidebar{position:static;width:auto;height:70px;flex-direction:row;padding:12px 20px;justify-content:space-between;border-right:0;border-bottom:1px solid var(--line)}.brand>span:last-child{display:block;font-size:21px}.brand-icon{width:35px;height:37px;border-radius:10px}.brand small{font-size:8px;letter-spacing:3px}.sidebar nav{display:flex;margin:0;width:auto;gap:5px}.nav-link{width:38px;height:38px;padding:10px;margin:0}.workspace{margin-left:0}.topbar{height:47px;font-size:10px;padding:0 20px}.top-right{display:none}main{padding:25px 18px 20px}.page-heading{display:block;margin-bottom:22px}.eyebrow{font-size:8px;letter-spacing:1.3px}h1{font-size:32px}.page-heading .status{margin-top:15px;width:fit-content}.tabs{width:100%;gap:3px}.tab{flex:1;justify-content:center;padding:10px 3px;font-size:11px;gap:6px}.analysis-grid{grid-template-columns:1fr}.input-card,.results-card{padding:19px}.dropzone{min-height:320px}.controls{flex-wrap:nowrap}.confidence{flex-basis:auto}.controls .primary{flex:none;padding:10px 13px}.results-card .result-empty{min-height:190px}.taxonomy-strip{padding:14px 9px}.taxonomy-strip>div{font-size:9px;gap:4px}.taxonomy-strip strong{font-size:13px}.divider{margin:0 4px}.steps{grid-template-columns:1fr;gap:10px}.step{padding:15px 18px;display:grid;grid-template-columns:38px 1fr;column-gap:12px}.step>div{grid-row:span 2;display:flex;flex-direction:column;justify-content:flex-start;gap:12px;margin:0}.step h3{margin-bottom:4px}.step p{font-size:11px}.class-grid{grid-template-columns:1fr}.guide{padding:23px}.guide p{font-size:13px}footer{font-size:8px;flex-wrap:wrap;gap:8px;margin-top:25px}}
@media(max-width:380px){.controls{flex-wrap:wrap}.confidence{flex-basis:100%}.controls .primary{width:100%}.taxonomy-strip>div{flex-wrap:wrap;justify-content:center}.brand{gap:7px}.sidebar{padding:12px 15px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.camera-controls{margin-top:17px}.camera-controls>label{display:block;font-size:11px;margin-bottom:7px}.camera-select-row{display:flex;gap:8px}.camera-select-row select{min-width:0;flex:1;padding:10px;border:1px solid #dce2d3;border-radius:8px;background:#fafbf7;color:var(--ink);font:11px "Segoe UI",sans-serif}.camera-select-row .button{font-size:10px;padding:8px 11px;white-space:nowrap}
.sensors-panel{margin-top:22px;padding:23px}.sensors-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}.sensor-kicker{font-size:8px;letter-spacing:1.4px;color:#98a18c;display:block;margin-bottom:5px}.sensors-heading h2{font-size:17px;font-weight:600}.sensor-state{border:1px solid var(--line);background:#fafbf7;border-radius:20px;padding:7px 11px;display:flex;align-items:center;gap:8px;font-size:9px;white-space:nowrap}.sensor-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.sensor-tile{padding:14px 13px;background:#f8f9f3;border:1px solid #edf0e5;border-radius:10px;min-width:0}.sensor-label{display:flex;align-items:center;gap:6px;color:#89957b;font-size:9px;white-space:nowrap}.sensor-label .icon{width:14px;height:14px;color:#9aaa86}.sensor-tile>div{display:flex;gap:5px;align-items:baseline;flex-wrap:wrap;margin-top:10px}.sensor-tile strong{font-size:24px;line-height:1.2;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.6px}.sensor-unit{font-size:9px;color:#97a18b}.sensor-footer{display:flex;gap:14px;justify-content:space-between;margin-top:15px;font-size:9px;color:#9aa48d}
@media(max-width:1250px){.sensor-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sensor-label{font-size:10px}}
@media(max-width:720px){.sensors-panel{padding:19px}.sensors-heading{align-items:flex-start}.sensors-heading h2{font-size:15px}.sensor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.sensor-footer{flex-direction:column;gap:5px}.sensor-tile strong{font-size:24px}.tab{font-size:10px}.camera-select-row{flex-wrap:wrap}.camera-select-row select{flex-basis:100%}.camera-select-row .button{width:100%}}
.camera-help{padding:20px 23px;margin-bottom:18px}.camera-help h2{font-size:16px;margin:0 0 12px}.camera-help ol{padding-left:20px;margin:0 0 17px;color:#637454;font-size:12px;line-height:1.8}.camera-help li+li{margin-top:6px}.camera-help label{display:block;font-size:11px;margin-bottom:7px}.camera-link-row{display:flex;gap:8px;flex-wrap:wrap}.camera-link-row input{flex:1;min-width:0;width:100%;padding:11px;border:1px solid #dce2d3;border-radius:8px;font:12px Consolas,monospace;color:#143628;background:#fafbf7}.camera-link-row button{font-size:11px}@media(max-width:720px){.camera-help{padding:19px}.camera-link-row input{flex-basis:100%}}

/* Camera preview follows the OBS canvas proportions and stays compact. */
.dropzone.camera-mode{min-height:280px}.dropzone.camera-mode.has-media{min-height:0;width:100%;max-width:640px;aspect-ratio:16/9;margin-inline:auto;background:#17261d}.dropzone.camera-mode>canvas{width:100%;height:100%;max-height:none;object-fit:contain}
