@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--app: #f6f7f9;--surface: #ffffff;--surface-subtle: #f2f4f6;--surface-hover: #eaedf0;--surface-active: #e2e6ea;--line: #e4e7ea;--line-strong: #d2d7dd;--text: #14181c;--text-secondary: #55606c;--text-tertiary: #666e79;--text-inverse: #ffffff;--accent: #205090;--accent-hover: #1a4279;--accent-active: #153663;--accent-soft: #eaf0f8;--accent-line: #b9cce5;--defect: #701010;--defect-soft: #fbecec;--defect-line: #e3bcbc;--normal: #0f6b2e;--normal-soft: #e8f4ec;--normal-line: #b5d9c2;--pending: #5e6874;--pending-soft: #f4f6f7;--warning: #8a5a08;--warning-soft: #fdf4e4;--warning-line: #ecd7ab;--logo-plate: transparent;--logo-plate-padding: 0;--t-micro: .6875rem;--t-xs: .75rem;--t-sm: .8125rem;--t-base: .875rem;--t-md: 1rem;--t-lg: 1.125rem;--t-xl: 1.375rem;--t-metric: 2rem;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--r-container: 12px;--r-element: 8px;--r-control: 6px;--ease: cubic-bezier(.16, 1, .3, 1);--dur: .16s;--dur-slow: .22s;font-family:Inter Variable,Inter,Segoe UI Variable Text,Segoe UI,Roboto,Helvetica Neue,Arial,ui-sans-serif,system-ui,sans-serif;font-size:16px;font-synthesis-weight:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*{box-sizing:border-box}:root[data-theme=dark]{color-scheme:dark;--app: #0d1013;--surface: #15191e;--surface-subtle: #1b2027;--surface-hover: #222932;--surface-active: #2a323d;--line: #262d36;--line-strong: #38414d;--text: #e9edf2;--text-secondary: #a6b1bd;--text-tertiary: #8d98a5;--text-inverse: #0d1013;--accent: #4f92da;--accent-hover: #6aa4e3;--accent-active: #8bb9ec;--accent-soft: #16283c;--accent-line: #2f4a6b;--defect: #f0908f;--defect-soft: #331717;--defect-line: #5b2a2a;--normal: #63c88a;--normal-soft: #12291c;--normal-line: #2b4c37;--pending: #97a2af;--pending-soft: #1b2027;--warning: #dfb168;--warning-soft: #332711;--warning-line: #58441f;--logo-plate: #eef1f5;--logo-plate-padding: 4px 8px}.login-logo,.sidebar-brand img{box-sizing:content-box;padding:var(--logo-plate-padding);border-radius:var(--r-control);background:var(--logo-plate)}html,body{margin:0;min-height:100%}body{min-width:320px;background:var(--app);color:var(--text);font-size:var(--t-base);line-height:1.5}::selection{background:var(--accent-soft);color:var(--accent-active)}*{caret-color:var(--accent);scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:var(--line-strong);background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary);background-clip:content-box}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-control)}a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.02em;text-wrap:balance}h1{font-size:var(--t-xl)}h2{font-size:var(--t-lg)}h3{font-size:var(--t-md)}p{margin:0}.tnum,.metric-value,.map-cell,.result-row span,.detail-list dd,.coord-readout{font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:36px;padding:0 var(--s-4);border:1px solid transparent;border-radius:var(--r-control);font-size:var(--t-sm);font-weight:500;letter-spacing:-.01em;white-space:nowrap;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.btn-primary{background:var(--accent);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-active)}.btn-secondary{border-color:var(--line-strong);background:var(--surface);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-subtle)}.btn-secondary:active:not(:disabled){background:var(--surface-active)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn-icon{width:36px;min-height:36px;padding:0;border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface);color:var(--text-secondary);transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.btn-icon:hover:not(:disabled){background:var(--surface-subtle);color:var(--text)}.btn:disabled,.btn-icon:disabled{opacity:.5}.btn[aria-busy=true] svg{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spin-icon{color:var(--text-tertiary);animation:spin .9s linear infinite}.field{display:flex;flex-direction:column;gap:var(--s-2);font-size:var(--t-xs);font-weight:600;color:var(--text-secondary)}.field input,.field textarea,.field select{width:100%;padding:8px 10px;border:1px solid var(--line-strong);border-radius:var(--r-control);background:var(--surface);font-size:var(--t-base);font-weight:400;color:var(--text);transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.field textarea{min-height:84px;resize:vertical;line-height:1.55}.field input:hover:not(:disabled),.field textarea:hover:not(:disabled){border-color:var(--text-tertiary)}.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{border-color:var(--accent);outline:2px solid var(--accent-soft);outline-offset:0}.field input:disabled,.field textarea:disabled{background:var(--surface-subtle);color:var(--text-tertiary)}.field input::placeholder,.field textarea::placeholder{color:var(--text-tertiary)}.input-affix{display:flex;align-items:center;gap:var(--s-2);padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--r-control);background:var(--surface);color:var(--text-tertiary);transition:border-color var(--dur) var(--ease)}.input-affix:focus-within{border-color:var(--accent);outline:2px solid var(--accent-soft)}.input-affix input{min-width:0;flex:1;padding:9px 0;border:none;background:transparent;font-size:var(--t-base);font-weight:400}.input-affix input:focus-visible{outline:none}.input-action{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:4px;border:0;border-radius:var(--r-control);background:none;color:var(--text-tertiary);transition:color var(--dur) var(--ease)}.input-action:hover{color:var(--text)}.login-shell{display:grid;min-height:100vh;place-items:center;padding:var(--s-6);background:var(--app)}.login-card{width:100%;max-width:380px;padding:var(--s-8);border:1px solid var(--line);border-radius:var(--r-container);background:var(--surface)}.login-logo{height:30px;width:auto;margin-bottom:var(--s-6)}.login-card h1{margin-bottom:var(--s-2);font-size:var(--t-lg)}.login-intro{margin-bottom:var(--s-6);color:var(--text-secondary);font-size:var(--t-sm);line-height:1.55}.login-form{display:flex;flex-direction:column;gap:var(--s-4)}.login-form .btn-primary{margin-top:var(--s-2);min-height:38px}.turnstile-field{display:flex;flex-direction:column;gap:var(--s-2)}.turnstile-slot{min-height:65px}.form-error{display:flex;align-items:flex-start;gap:var(--s-2);padding:10px 12px;border:1px solid var(--defect-line);border-radius:var(--r-control);background:var(--defect-soft);color:var(--defect);font-size:var(--t-sm)}.app-shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:var(--s-6);padding:var(--s-5) var(--s-3);border-right:1px solid var(--line);background:var(--app)}.sidebar-brand{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-2)}.sidebar-brand img{height:22px;width:auto}.sidebar-brand span{color:var(--text-tertiary);font-size:var(--t-xs);font-weight:600;letter-spacing:.02em}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-back{display:flex;align-items:center;gap:var(--s-2);margin-top:auto;padding:10px var(--s-3);border-radius:var(--r-control);color:var(--text-tertiary);font-size:var(--t-xs);text-decoration:none;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.sidebar-back:hover{background:var(--surface-hover);color:var(--text)}.sidebar-nav button{display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;border-radius:var(--r-control);background:transparent;color:var(--text-secondary);font-size:var(--t-sm);font-weight:500;text-align:left;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.sidebar-nav button svg{color:var(--text-tertiary);transition:color var(--dur) var(--ease)}.sidebar-nav button:hover{background:var(--surface-hover);color:var(--text)}.sidebar-nav button:hover svg{color:var(--text-secondary)}.sidebar-nav button.active{background:var(--accent-soft);color:var(--accent-active);font-weight:600}.sidebar-nav button.active svg{color:var(--accent)}.workspace{display:flex;min-width:0;flex-direction:column;background:var(--surface)}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) var(--s-6);border-bottom:1px solid var(--line);background:var(--surface)}.topbar-title{display:flex;min-width:0;flex-direction:column;gap:3px}.topbar-meta{display:flex;flex-wrap:wrap;gap:var(--s-4);color:var(--text-secondary);font-size:var(--t-xs)}.topbar-meta span{display:inline-flex;align-items:center;gap:5px}.topbar-meta svg{color:var(--text-tertiary)}.topbar-actions{display:flex;align-items:center;gap:var(--s-2)}.plant-select{position:relative;display:flex;align-items:center}.plant-select select{height:36px;padding:0 30px 0 10px;border:1px solid var(--line-strong);border-radius:var(--r-control);background:var(--surface);font-size:var(--t-sm);font-weight:500;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background-color var(--dur) var(--ease)}.plant-select select:hover{background:var(--surface-subtle)}.plant-select svg{position:absolute;right:9px;color:var(--text-tertiary);pointer-events:none}.content-area{padding:var(--s-6)}.view-stack{display:flex;flex-direction:column;gap:var(--s-6)}.view-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-4)}.view-header p{margin-top:3px;color:var(--text-secondary);font-size:var(--t-sm)}.notice{display:flex;align-items:flex-start;gap:var(--s-2);margin-bottom:var(--s-4);padding:10px 12px;border:1px solid var(--defect-line);border-radius:var(--r-element);background:var(--defect-soft);color:var(--defect);font-size:var(--t-sm)}.notice svg{flex-shrink:0;margin-top:1px}.metric-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:var(--r-container);background:var(--surface);overflow:hidden}.metric{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-5);border-left:1px solid var(--line)}.metric:first-child{border-left:none}.metric-label{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:var(--t-xs);font-weight:600}.metric-value{font-size:var(--t-metric);font-weight:600;line-height:1.1;letter-spacing:-.03em}.metric-detail{color:var(--text-tertiary);font-size:var(--t-xs)}.metric-hotspot .metric-label svg,.metric-hotspot .metric-value{color:var(--defect)}.metric-normal .metric-label svg,.metric-normal .metric-value{color:var(--normal)}.metric-neutral .metric-label svg{color:var(--text-tertiary)}.inspection-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s-3)}.inspection-toolbar-dates{display:flex;align-items:center;gap:var(--s-2)}.inspection-toolbar-dates .plant-select select{min-width:220px}.inspection-toolbar-hint{color:var(--text-tertiary);font-size:var(--t-xs)}.sun-card{padding:var(--s-4) var(--s-5);display:flex;flex-direction:column;gap:var(--s-3)}.sun-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.sun-card-title{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:var(--t-xs);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.sun-card-next{color:var(--accent);font-size:var(--t-xs);font-weight:600}.sun-card-times{display:flex;gap:var(--s-6);flex-wrap:wrap}.sun-card-item{display:flex;align-items:center;gap:var(--s-2);color:var(--text-tertiary)}.sun-card-item div{display:flex;flex-direction:column}.sun-card-item strong{font-size:var(--t-md);font-weight:600;color:var(--text)}.sun-card-item span{font-size:var(--t-xs)}.sun-card-attribution{color:var(--text-tertiary);font-size:var(--t-micro)}.sun-card-note{color:var(--text-secondary);font-size:var(--t-sm);line-height:1.5}.location-picker{display:flex;flex-direction:column;gap:var(--s-3)}.location-search{display:flex;gap:var(--s-2)}.location-search .input-affix{flex:1}.location-results{display:flex;flex-direction:column;gap:2px;margin:calc(var(--s-3) * -1) 0 0;padding:var(--s-2);border:1px solid var(--line);border-radius:var(--r-element);background:var(--surface);max-height:180px;overflow-y:auto}.location-results button{display:flex;align-items:flex-start;gap:var(--s-2);width:100%;padding:var(--s-2) var(--s-3);border:none;border-radius:var(--r-control);background:transparent;color:var(--text);text-align:left;font-size:var(--t-sm);line-height:1.4}.location-results button:hover{background:var(--surface-hover)}.location-results button svg{flex-shrink:0;margin-top:2px;color:var(--text-tertiary)}.location-search-error{color:var(--defect);font-size:var(--t-xs)}.location-map{height:320px;border:1px solid var(--line-strong);border-radius:var(--r-element);overflow:hidden;background:var(--surface-subtle)}.location-map-loading{display:flex;align-items:center;justify-content:center;gap:var(--s-2);color:var(--text-tertiary);font-size:var(--t-sm)}.location-map .leaflet-control-zoom a{color:var(--text);background:var(--surface)}.location-map .leaflet-control-attribution{font-size:var(--t-micro);background:color-mix(in srgb,var(--surface) 85%,transparent);color:var(--text-tertiary)}.location-pin{filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}.location-attribution{color:var(--text-tertiary);font-size:var(--t-micro)}.profile-account{display:flex;align-items:center;gap:var(--s-5);flex-wrap:wrap}.profile-avatar{width:72px;height:72px;flex-shrink:0;border-radius:999px;overflow:hidden;background:var(--surface-subtle);border:1px solid var(--line)}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-tertiary)}.profile-account-info{display:flex;flex-direction:column;gap:var(--s-1);flex:1;min-width:160px}.profile-account-info strong{font-size:var(--t-md)}.profile-account-info span:not(.badge){color:var(--text-secondary);font-size:var(--t-sm)}.profile-account-info .badge{margin-top:var(--s-1);align-self:flex-start}.profile-account-actions{display:flex;gap:var(--s-2)}.panel{border:1px solid var(--line);border-radius:var(--r-container);background:var(--surface)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--line)}.panel-header h2,.panel-header h3{font-size:var(--t-base)}.panel-header p{margin-top:2px;color:var(--text-secondary);font-size:var(--t-xs)}.panel-body{padding:var(--s-5)}.plant-headline{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;padding:var(--s-5)}.plant-headline h2{font-size:var(--t-lg)}.plant-headline .plant-location{margin-top:2px;color:var(--text-secondary);font-size:var(--t-sm)}.plant-facts{display:flex;gap:var(--s-6)}.plant-facts div{display:flex;flex-direction:column;gap:1px}.plant-facts dt{color:var(--text-tertiary);font-size:var(--t-xs)}.plant-facts dd{margin:0;font-size:var(--t-base);font-weight:600;font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid transparent;border-radius:999px;font-size:var(--t-xs);font-weight:600;white-space:nowrap}.badge-hotspot{border-color:var(--defect-line);background:var(--defect-soft);color:var(--defect)}.badge-normal{border-color:var(--normal-line);background:var(--normal-soft);color:var(--normal)}.badge-pending{border-color:var(--line-strong);background:var(--pending-soft);color:var(--pending)}.badge-neutral{border-color:var(--line-strong);background:var(--surface-subtle);color:var(--text-secondary)}.panels-layout,.inspection-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--s-4);align-items:start}.map-legend{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:var(--s-4);padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--line);background:var(--surface);color:var(--text-secondary);font-size:var(--t-xs)}.map-legend span{display:inline-flex;align-items:center;gap:6px}.legend-swatch{display:inline-flex;width:14px;height:14px;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:3px;background:var(--pending-soft)}.legend-swatch.normal{color:var(--normal)}.legend-swatch.hotspot{color:var(--defect)}.legend-swatch.pending{border-style:dashed}.legend-swatch.normal{border-color:var(--normal-line);background:var(--normal-soft)}.legend-swatch.hotspot{border-color:var(--defect-line);background:var(--defect-soft)}.map-scroll{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity}.map-hint{padding:0 var(--s-5) var(--s-4);color:var(--text-tertiary);font-size:var(--t-xs)}.form-hint{color:var(--text-tertiary);font-size:var(--t-xs)}.map-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-2);padding:var(--s-5)}.map-cell{display:flex;aspect-ratio:1;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:2px;border:1px solid var(--line-strong);border-radius:var(--r-control);background:var(--pending-soft);color:var(--pending);font-size:var(--t-micro);font-weight:600;line-height:1;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.map-cell.is-pending{border-style:dashed}.map-cell.is-normal{border-color:var(--normal-line);background:var(--normal-soft);color:var(--normal)}.map-cell.is-hotspot{border-color:var(--defect-line);background:var(--defect-soft);color:var(--defect)}.map-cell:hover:not(:disabled){border-color:var(--accent)}.map-cell:disabled{cursor:default}.map-cell.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.map-cell.just-settled{animation:settle var(--dur-slow) var(--ease)}@keyframes settle{0%{transform:scale(.88)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.map-scroll,.sidebar{animation-duration:auto!important}}.detail-list{display:flex;flex-direction:column;gap:var(--s-4);margin:0}.detail-list>div{display:flex;flex-direction:column;gap:2px}.detail-list dt{color:var(--text-tertiary);font-size:var(--t-xs)}.detail-list dd{margin:0;font-size:var(--t-sm);line-height:1.5}.coord-readout{font-size:var(--t-sm);font-weight:600}.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2);padding:var(--s-6) var(--s-5);color:var(--text-secondary);font-size:var(--t-sm);line-height:1.55}.empty-state svg{color:var(--text-tertiary)}.empty-state strong{color:var(--text);font-size:var(--t-base);font-weight:600}.result-table,.recent-list{display:flex;margin:0;padding:0;flex-direction:column;list-style:none}.recent-item{display:grid;grid-template-columns:120px 168px minmax(0,1fr);align-items:center;gap:var(--s-4);width:100%;padding:10px var(--s-5);border:none;border-top:1px solid var(--line);background:transparent;font-size:var(--t-sm);text-align:left;transition:background-color var(--dur) var(--ease)}.recent-item:hover{background:var(--surface-subtle)}.recent-code{font-weight:600;font-variant-numeric:tabular-nums}.recent-when{color:var(--text-secondary);font-variant-numeric:tabular-nums}.result-row{display:grid;grid-template-columns:120px 168px 88px minmax(0,1fr);align-items:center;gap:var(--s-4);width:100%;padding:10px var(--s-5);border:none;border-top:1px solid var(--line);background:transparent;font-size:var(--t-sm);text-align:left;transition:background-color var(--dur) var(--ease)}.result-head{border-top:none;color:var(--text-tertiary);font-size:var(--t-xs);font-weight:600}.result-table button.result-row:hover{background:var(--surface-subtle)}.result-table button.result-row[aria-current=true]{background:var(--accent-soft)}.result-row .cell-code{font-weight:600}.result-row .cell-info{overflow:hidden;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap}.result-verdict{display:inline-flex;align-items:center;gap:6px;font-weight:600}.result-verdict.is-hotspot{color:var(--defect)}.result-verdict.is-normal{color:var(--normal)}.inspection-form{display:flex;flex-direction:column}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4)}.field-grid .field-wide{grid-column:1 / -1}.file-drop{display:flex;flex-direction:column;gap:6px;padding:var(--s-4);border:1px dashed var(--line-strong);border-radius:var(--r-element);background:var(--surface-subtle);cursor:pointer;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.file-drop:hover{border-color:var(--accent);background:var(--accent-soft)}.file-drop-title{display:flex;align-items:center;gap:6px;font-size:var(--t-xs);font-weight:600;color:var(--text-secondary)}.file-drop-name{font-size:var(--t-sm);color:var(--text);overflow-wrap:anywhere}.file-drop-hint{font-size:var(--t-xs);color:var(--text-tertiary)}.file-drop input[type=file]{display:none}.empty-state .btn{margin-top:var(--s-2)}.file-field{display:flex;flex-direction:column;gap:var(--s-3)}.image-preview{display:flex;flex-direction:column;gap:var(--s-2);margin:0;padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-element);background:var(--surface-subtle)}.image-preview img{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:var(--r-control);background:var(--surface-active)}.image-preview figcaption{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;font-size:var(--t-xs);color:var(--text-secondary)}.image-preview-name{display:flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}.image-preview-size{color:var(--text-tertiary)}.btn-link{display:inline-flex;align-items:center;gap:4px;margin-left:auto;padding:0;border:0;background:none;color:var(--accent);font-size:var(--t-xs);font-weight:500}.btn-link:hover{text-decoration:underline;text-underline-offset:.2em}.classification{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-element);background:var(--surface-subtle)}.classification-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);flex-wrap:wrap}.classification-title{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:var(--t-xs);font-weight:600;color:var(--text-secondary)}.classification-model{font-size:var(--t-micro);color:var(--text-tertiary)}.classification-bar{display:flex;overflow:hidden;height:10px;border-radius:999px;background:var(--surface-active)}.classification-fill{height:100%;transition:width var(--dur-slow) var(--ease)}.classification-fill.is-normal{background:var(--normal)}.classification-fill.is-hotspot{background:var(--defect)}.classification-legend{display:flex;gap:var(--s-5);margin:0;padding:0;list-style:none}.classification-legend li{display:flex;align-items:baseline;gap:6px;font-size:var(--t-xs);color:var(--text-secondary)}.classification-legend strong{font-size:var(--t-md);font-weight:600;letter-spacing:-.01em}.classification-legend li.is-normal strong{color:var(--normal)}.classification-legend li.is-hotspot strong{color:var(--defect)}.classification-note{margin:0;font-size:var(--t-micro);color:var(--text-tertiary);line-height:1.5}.result-card{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-element);background:var(--surface)}.result-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap}.result-card-head h4{margin:0;font-size:var(--t-base);font-weight:600}.result-card-body{display:flex;flex-direction:column;gap:var(--s-3)}.result-card-image{display:block;width:100%;max-height:200px;object-fit:contain;border-radius:var(--r-control);background:var(--surface-subtle)}.plant-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.plant-list button{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);width:100%;padding:var(--s-3) var(--s-5);border:0;border-top:1px solid var(--line);background:none;color:var(--text);font-size:var(--t-sm);text-align:left;transition:background-color var(--dur) var(--ease)}.plant-list li:first-child button{border-top:0}.plant-list button:hover{background:var(--surface-subtle)}.plant-list-name{display:flex;align-items:center;gap:var(--s-2);min-width:0;overflow-wrap:anywhere}.plant-list-name svg{color:var(--text-tertiary);flex-shrink:0}.plant-list-open{color:var(--accent);font-size:var(--t-xs);font-weight:500;flex-shrink:0}.login-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-6)}.login-head .login-logo{margin-bottom:0}.form-section{display:flex;flex-direction:column;gap:var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--line)}.form-section-title{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--t-sm);font-weight:600}.form-section-title svg{color:var(--text-tertiary)}.form-section-hint{margin:0;font-size:var(--t-xs);color:var(--text-tertiary);line-height:1.55}.segmented{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s-2);padding:var(--s-2);border:1px solid var(--line);border-radius:var(--r-container);background:var(--surface)}.segmented button{display:flex;flex-direction:column;gap:2px;padding:var(--s-3) var(--s-4);border:1px solid transparent;border-radius:var(--r-element);background:none;color:var(--text-secondary);text-align:left;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.segmented button strong{color:var(--text);font-size:var(--t-base);font-weight:600}.segmented button span{font-size:var(--t-xs);line-height:1.5}.segmented button:hover{background:var(--surface-subtle)}.segmented button.is-active{border-color:var(--accent-line);background:var(--accent-soft)}.segmented button.is-active strong{color:var(--accent-active)}.grid-editor{display:flex;flex-direction:column;gap:var(--s-3)}.grid-stage{position:relative;width:fit-content;max-width:100%;margin-inline:auto;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-element);background:var(--surface-active);line-height:0;touch-action:none;-webkit-user-select:none;user-select:none}.grid-stage img{display:block;width:auto;height:auto;max-width:100%;max-height:68vh}.grid-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.grid-area{fill:var(--accent);fill-opacity:.08;stroke:none}.grid-line-halo{stroke:#0b0f14;stroke-width:3;stroke-opacity:.45}.grid-line-halo.is-edge{stroke-width:5}.grid-line{stroke:#fff;stroke-width:1;stroke-opacity:.85}.grid-line.is-edge{stroke:#6aa4e3;stroke-width:2.5;stroke-opacity:1}.grid-handle{position:absolute;display:grid;place-items:center;width:28px;height:28px;margin:-14px 0 0 -14px;padding:0;border:2px solid var(--surface);border-radius:50%;background:var(--accent);color:var(--text-inverse);font-size:var(--t-micro);font-weight:700;line-height:1;cursor:grab;touch-action:none;transition:transform var(--dur) var(--ease)}.grid-handle:hover,.grid-handle:focus-visible{transform:scale(1.15)}.grid-handle:active{cursor:grabbing}.grid-hint{margin:0;font-size:var(--t-xs);color:var(--text-tertiary);line-height:1.55}.crop-grid{display:grid;gap:var(--s-2);margin:0;padding:0;list-style:none}.crop-grid li{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-control);background:var(--surface-subtle);line-height:0}.crop-grid li.is-hotspot{border-color:var(--defect);box-shadow:inset 0 0 0 1px var(--defect)}.crop-grid li.is-normal{border-color:var(--normal-line)}.crop-grid li.is-error{border-color:var(--warning-line);background:var(--warning-soft)}.crop-grid img{display:block;width:100%;aspect-ratio:1;object-fit:cover}.crop-label{position:absolute;right:3px;bottom:3px;padding:1px 4px;border-radius:4px;background:var(--surface);color:var(--text-secondary);font-size:var(--t-micro);line-height:1.4}.crop-grid li.is-low-resolution{border-color:var(--warning-line)}.crop-warning{position:absolute;top:3px;left:3px;display:grid;place-items:center;width:18px;height:18px;border-radius:4px;background:var(--warning-soft);color:var(--warning)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.resolution-notice{display:flex;align-items:flex-start;gap:var(--s-2);margin:0;padding:10px 12px;border:1px solid transparent;border-radius:var(--r-control);font-size:var(--t-sm);line-height:1.55}.resolution-notice svg{flex-shrink:0;margin-top:2px}.resolution-notice.is-ok{border-color:var(--normal-line);background:var(--normal-soft);color:var(--normal)}.resolution-notice.is-tight,.resolution-notice.is-low{border-color:var(--warning-line);background:var(--warning-soft);color:var(--warning)}.resolution-notice.is-low{border-color:var(--defect-line);background:var(--defect-soft);color:var(--defect)}.batch-progress{display:flex;align-items:center;gap:var(--s-3);font-size:var(--t-xs);color:var(--text-secondary)}.batch-progress-bar{flex:1;overflow:hidden;height:6px;border-radius:999px;background:var(--surface-active)}.batch-progress-bar span{display:block;height:100%;background:var(--accent);transition:width var(--dur) var(--ease)}.batch-errors{display:flex;flex-direction:column;gap:var(--s-2);margin:0;padding:var(--s-3);border:1px solid var(--warning-line);border-radius:var(--r-element);background:var(--warning-soft);color:var(--warning);font-size:var(--t-xs);list-style:none}.batch-errors li{display:flex;gap:var(--s-2)}.analysis-image{display:flex;flex-direction:column;gap:6px;margin:0;padding:var(--s-3);border:1px solid var(--line);border-radius:var(--r-element);background:var(--surface-subtle)}.analysis-image img{display:block;width:100%;max-height:240px;object-fit:contain;border-radius:var(--r-control);background:var(--surface-active)}.analysis-image figcaption{font-size:var(--t-micro);color:var(--text-tertiary)}.analysis-image.is-loading{height:140px;border-style:dashed;background:linear-gradient(90deg,var(--surface-subtle) 25%,var(--surface-hover) 37%,var(--surface-subtle) 63%);background-size:400% 100%;animation:shimmer 1.4s ease-in-out infinite}.analysis-image.is-empty{align-items:flex-start;gap:var(--s-2);color:var(--text-tertiary);font-size:var(--t-xs)}.analysis-image.is-empty .btn-link{margin-left:0}.form-feedback{display:flex;align-items:flex-start;gap:var(--s-2);padding:10px 12px;border:1px solid transparent;border-radius:var(--r-control);font-size:var(--t-sm)}.form-feedback svg{flex-shrink:0;margin-top:1px}.form-feedback.success{border-color:var(--normal-line);background:var(--normal-soft);color:var(--normal)}.form-feedback.error{border-color:var(--defect-line);background:var(--defect-soft);color:var(--defect)}.skeleton{border-radius:var(--r-element);background:linear-gradient(90deg,var(--surface-subtle) 25%,var(--surface-hover) 37%,var(--surface-subtle) 63%);background-size:400% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.skeleton-strip{height:104px;border-radius:var(--r-container)}.skeleton-map,.skeleton-side{height:420px;border-radius:var(--r-container)}@media(max-width:1180px){.panels-layout,.inspection-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-4);border-right:none;border-bottom:1px solid var(--line);overflow-x:auto}.sidebar-nav{flex-direction:row;gap:var(--s-1)}@supports (animation-timeline: scroll(self x)){.sidebar{animation:fade-edges-nav linear both;animation-timeline:scroll(self x)}}@keyframes fade-edges-nav{0%{-webkit-mask-image:linear-gradient(90deg,#000 0 90%,transparent 100%);mask-image:linear-gradient(90deg,#000 0 90%,transparent 100%)}to{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 10% 100%);mask-image:linear-gradient(90deg,transparent 0,#000 10% 100%)}}.topbar{position:static;flex-direction:column;align-items:flex-start}.view-header{flex-direction:column;align-items:flex-start;gap:var(--s-2)}.sidebar-brand span{display:none}.sidebar-nav button{padding:8px;white-space:nowrap}.content-area{padding:var(--s-4)}.metric-strip{grid-template-columns:1fr}.metric{border-left:none;border-top:1px solid var(--line);padding:var(--s-4)}.metric:first-child{border-top:none}.plant-facts{flex-wrap:wrap;gap:var(--s-4)}.result-row{grid-template-columns:1fr 1fr;gap:var(--s-2)}.result-row .cell-info,.result-head{display:none}.recent-item{grid-template-columns:1fr 1fr;gap:var(--s-2)}.recent-when{display:none}.field-grid{grid-template-columns:1fr}}@media(max-width:560px){.map-grid{gap:5px;padding:var(--s-3)}.map-grid{min-width:440px}@supports (animation-timeline: scroll(self x)){.map-scroll{animation:fade-edges linear both;animation-timeline:scroll(self x)}}@keyframes fade-edges{0%{-webkit-mask-image:linear-gradient(90deg,#000 0 90%,transparent 100%);mask-image:linear-gradient(90deg,#000 0 90%,transparent 100%)}to{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 10% 100%);mask-image:linear-gradient(90deg,transparent 0,#000 10% 100%)}}.map-cell{font-size:10px}}.detector-picker{display:grid;gap:var(--s-2);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.detector-option{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-element);background:var(--surface);text-align:left;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.detector-option.is-active{border-color:var(--accent-line);background:var(--accent-soft)}.detector-option.is-soon{background:var(--surface-subtle);color:var(--text-tertiary);cursor:not-allowed}.detector-option-head{display:flex;align-items:center;gap:var(--s-2);font-size:var(--t-sm)}.detector-option.is-soon .detector-option-head strong{color:var(--text-secondary);font-weight:500}.detector-option-detail{color:var(--text-tertiary);font-size:var(--t-xs);line-height:1.45}.detector-option-detail svg{vertical-align:-2px}.detector-option-head .badge{margin-left:auto}.detector-option:not(:disabled):hover{border-color:var(--accent-line)}.segmented button:disabled{color:var(--text-tertiary);cursor:not-allowed}.segmented button:disabled:hover{background:none}.segmented button strong svg{vertical-align:-2px}.detail-when{color:var(--text-tertiary);font-size:var(--t-xs)}.generation-field,.generation-card{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4) var(--s-5);border:1px solid var(--line);border-radius:var(--r-container);background:var(--surface)}.generation-field-head>div{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-1)}.generation-field-head strong{display:flex;align-items:center;gap:6px;font-size:var(--t-sm)}.generation-field-head p,.generation-field-previous{color:var(--text-secondary);font-size:var(--t-xs);line-height:1.5}.generation-field-previous ul{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:var(--s-2) 0 0;padding:0;list-style:none}.generation-field-form{display:flex;flex-direction:column;gap:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line)}.generation-field-actions{display:flex;gap:var(--s-2);flex-wrap:wrap}.generation-card{border-color:var(--accent-line);background:var(--accent-soft)}.generation-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.generation-card-title{display:flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:600}.generation-card-facts{display:grid;gap:var(--s-3);margin:0;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.generation-card-facts dt{color:var(--text-secondary);font-size:var(--t-micro);text-transform:uppercase;letter-spacing:.04em}.generation-card-facts dd{margin:2px 0 0;font-size:var(--t-sm);font-weight:600}.generation-card-values{display:grid;gap:4px var(--s-4);margin:0;padding:var(--s-3) 0 0;border-top:1px solid var(--accent-line);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));list-style:none}.generation-card-values li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-2);color:var(--text-secondary);font-size:var(--t-xs)}.generation-card-note{display:flex;align-items:flex-start;gap:6px;margin:0;color:var(--text-secondary);font-size:var(--t-xs);line-height:1.5}.generation-card-note svg{flex:none;margin-top:2px;color:var(--normal)}.generation-card-note.is-warning svg{color:var(--warning)}.performance-panel{display:grid;gap:2px;padding:var(--s-3) var(--s-4);border:1px solid var(--accent-line);border-left:3px solid var(--normal);border-radius:var(--r-element);background:var(--surface-subtle)}.performance-panel.is-atencao,.performance-panel.is-acima{border-left-color:var(--warning)}.performance-panel.is-baixa{border-left-color:var(--defect)}.performance-panel-head{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:var(--t-micro);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.performance-panel-value{font-size:var(--t-xl);font-weight:700;line-height:1.1}.performance-panel-label{color:var(--normal);font-size:var(--t-sm);font-weight:600}.performance-panel.is-atencao .performance-panel-label,.performance-panel.is-acima .performance-panel-label{color:var(--warning)}.performance-panel.is-baixa .performance-panel-label{color:var(--defect)}.performance-panel p{margin:4px 0 0;color:var(--text-secondary);font-size:var(--t-xs);line-height:1.5}.performance-panel-formula{padding-top:6px;border-top:1px solid var(--line);font-size:var(--t-micro)!important}.performance-panel-missing{display:flex;align-items:flex-start;gap:6px;margin:0;padding:var(--s-3) var(--s-4);border:1px dashed var(--line);border-radius:var(--r-element);color:var(--text-secondary);font-size:var(--t-xs);line-height:1.5}.performance-panel-missing svg{flex:none;margin-top:2px;color:var(--warning)}.generation-context-performance{display:flex;align-items:flex-start;gap:6px;margin:6px 0 0;padding-top:6px;border-top:1px solid var(--line);color:var(--text-secondary);font-size:var(--t-xs);line-height:1.5}.generation-context-performance svg{flex:none;margin-top:3px;color:var(--normal)}.generation-context-performance.is-atencao svg,.generation-context-performance.is-acima svg{color:var(--warning)}.generation-context-performance.is-baixa svg{color:var(--defect)}.generation-context{padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-element);background:var(--surface-subtle)}.generation-context-title{display:flex;align-items:center;gap:6px;margin-bottom:4px;color:var(--text-secondary);font-size:var(--t-micro);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.generation-context p{color:var(--text-secondary);font-size:var(--t-xs);line-height:1.5}
