:root{--navy:#0f2b30;--navy-dark:#0a1f23;--brand:#02a49d;--brand-dark:#028894;--brand-deep:#026e77;--brand-soft:#e6f6f5;--brand-glow:#02a49d59;--grad-brand:linear-gradient(135deg, #028894 0%, #02a49d 100%);--grad-brand-hover:linear-gradient(135deg, #026e77 0%, #028f89 100%);--accent-blue:#02a49d;--accent-blue-dark:#028894;--accent-red:#d92d20;--bg-app:#f1f6f7;--bg-panel:#fff;--bg-table-head:#e3f1f1;--bg-table-stripe:#f7fbfb;--border-color:#e0e8ea;--text-main:#15292d;--text-muted:#6b7c80;--text-inverse:#f3f8f8;--success:#12833f;--warning:#b7791f;--danger:#d92d20;--radius:8px;--radius-lg:0px;--shadow-sm:0 1px 2px #0f2b300f, 0 1px 3px #0f2b300f;--shadow-panel:0 4px 16px #0f2b3012;--shadow-lift:0 10px 28px #0f2b3024;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--font-main:"Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{font-family:var(--font-main);background:radial-gradient(1000px 500px at 100% -10%, #02a49d14, transparent 60%), radial-gradient(800px 400px at -10% 110%, #02889412, transparent 60%), var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;background-attachment:fixed;font-size:14px}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:13px}table tbody,table tbody td,table tbody td *{font-family:var(--font-main);-webkit-font-smoothing:antialiased}::selection{background:var(--brand-glow)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#b9cfd1 padding-box padding-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--brand);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-track{background:0 0}.btn{border-radius:var(--radius);white-space:nowrap;transition:transform .2s var(--ease-out), box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:active:not(:disabled){transform:translateY(0)scale(.97)}.btn-primary{background:var(--grad-brand);color:#fff;box-shadow:0 4px 12px var(--brand-glow)}.btn-primary:hover:not(:disabled){background:var(--grad-brand-hover);box-shadow:0 8px 20px var(--brand-glow)}.btn-outline{color:var(--text-main);border-color:var(--border-color);background:#fff}.btn-outline:hover:not(:disabled){background:var(--brand-soft);border-color:var(--brand);color:var(--brand-deep);box-shadow:var(--shadow-panel)}.btn-danger-outline{color:var(--danger);background:#fff;border-color:#f3c6c1}.btn-danger-outline:hover:not(:disabled){background:#fdf1f0;box-shadow:0 6px 16px #d92d2026}.btn-sm{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.app-shell{flex-direction:column;min-height:0;display:flex;overflow:hidden}.main-area{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden auto}.page-body{flex:1;padding:12px 0 0}.panel{background:var(--bg-panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);transition:box-shadow .3s ease, transform .3s var(--ease-out);border:1px solid #0f2b300a}.panel:hover{box-shadow:var(--shadow-lift)}.panel-pad{padding:20px}.tab-row{border-bottom:1px solid var(--border-color);background:var(--bg-panel);border-radius:14px 14px 0 0;flex-wrap:wrap;gap:28px;padding:0 20px;display:flex}.filter-bar{flex-wrap:wrap;align-items:flex-end;gap:14px;padding:18px 20px;display:flex}.field{flex-direction:column;gap:5px;min-width:150px;display:flex}.field label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700}.field input,.field select{border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-main);transition:border-color .2s ease, box-shadow .2s ease, transform .2s var(--ease-out);background:#fff;padding:9px 11px}.field input:hover,.field select:hover{border-color:#b9cfd1}.field input:focus,.field select:focus{border-color:var(--brand);outline:none;transform:translateY(-1px);box-shadow:0 0 0 4px #02a49d24}.actions-row{flex-wrap:wrap;gap:10px;padding:0 20px 18px;display:flex}.level-pills{flex-wrap:wrap;gap:8px;padding:0 20px 16px;display:flex}.pill{border:1px solid var(--border-color);color:var(--text-main);transition:all .2s var(--ease-out);background:#fff;border-radius:16px;padding:6px 14px;font-size:12px;font-weight:600}.pill:hover{border-color:var(--brand);box-shadow:var(--shadow-panel);transform:translateY(-2px)}.pill.active-navy{background:var(--navy);color:#fff;border-color:var(--navy)}.pill.active-green{background:var(--success);color:#fff;border-color:var(--success)}.pill.active-red{background:var(--accent-red);color:#fff;border-color:var(--accent-red)}.table-wrap{overflow-x:auto}table.data-table{border-collapse:separate;border-spacing:0;width:100%;min-width:640px;font-size:13px}.data-table thead th{background:var(--bg-table-head);color:#0f3a3e;letter-spacing:.03em;text-align:left;white-space:nowrap;z-index:1;border-bottom:2px solid #02a49d40;padding:11px 12px;font-size:12px;font-weight:700;position:sticky;top:0}.data-table thead th:first-child{border-top-left-radius:10px}.data-table thead th:last-child{border-top-right-radius:10px}.data-table tbody td{color:var(--text-main);transition:background .2s ease, padding-left .25s var(--ease-out);border-bottom:1px solid #edf3f3;padding:10px 12px}.data-table tbody tr{animation:row-in .45s var(--ease-out) both;transition:transform .2s var(--ease-out), box-shadow .2s ease}.data-table tbody tr:nth-child(2n){background:var(--bg-table-stripe)}.data-table tbody tr:hover{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}.data-table tbody tr:hover td:first-child{padding-left:16px}.table-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:4px;padding-right:3px;display:flex}.table-title-row h3{color:var(--navy);margin:15px;font-size:15px;font-weight:700}.table-meta{color:var(--text-muted);text-align:end;font-size:12px}.status-badge{border-radius:12px;align-items:center;gap:6px;padding:3px 11px;font-size:11.5px;font-weight:700;display:inline-flex}.status-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.status-active{color:var(--success);background:#dcf3e3}.status-inactive{color:var(--danger);background:#fbdada}.status-pending{color:var(--warning);background:#fdefd0}.status-pending:before{animation:1.4s ease-in-out infinite pulse-dot}.icon-btn{color:var(--brand);transition:transform .2s var(--ease-spring), background .2s ease;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:12px;font-weight:600}.icon-btn:hover{background:var(--brand-soft);transform:scale(1.12)}.icon-btn.danger{color:var(--danger)}.icon-btn.danger:hover{background:#fdecec}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:100;background:#0a1f2380;justify-content:center;align-items:flex-start;padding:40px 16px;animation:.2s fade-in;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-box{width:100%;max-width:760px;animation:modal-in .35s var(--ease-spring);background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 30px 70px #0a1f234d}@keyframes modal-in{0%{opacity:0;transform:translateY(-16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--border-color);background:linear-gradient(#f7fcfc,#fff);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{color:var(--navy);align-items:center;gap:8px;margin:0;font-size:15px;display:flex}.modal-close{color:var(--text-muted);transition:transform .25s var(--ease-spring), background .2s, color .2s;background:0 0;border:none;border-radius:8px;padding:6px 8px;font-size:16px;line-height:1}.modal-close:hover{color:var(--danger);background:#fdecec;transform:rotate(90deg)}.modal-body{padding:20px}.modal-footer{border-top:1px solid var(--border-color);background:#fafdfd;justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.form-grid{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.form-grid .field-full{grid-column:1/-1}@media (width<=640px){.form-grid{grid-template-columns:1fr}}.helper-text{color:var(--text-muted);margin-top:4px;font-size:12px}.mt-16{margin-top:16px}.text-muted{color:var(--text-muted)}.flex-between{justify-content:space-between;align-items:center;display:flex}.status-page{text-align:center;min-height:100vh;animation:fade-up .6s var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.status-page h1{background:var(--grad-brand);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:80px;font-weight:800}.status-page p{color:var(--text-muted);margin:0 0 12px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes row-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.5)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes ripple{to{opacity:0;transform:scale(4)}}.ct-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.ct-toolbar-left{flex:1;align-items:center;gap:10px;min-width:220px;display:flex}.ct-toolbar-right{align-items:center;gap:8px;display:flex}.ct-search,.ct-status{border:1px solid var(--border-color,#d1d5db);background:#fff;border-radius:8px;outline:none;height:36px;padding:0 12px;font-size:13px}.ct-search{flex:1;max-width:340px}.ct-search:focus,.ct-status:focus{border-color:var(--brand,#02a49d);box-shadow:0 0 0 3px #02a49d24}.ct-toolbar .btn{white-space:nowrap;height:36px}.ms{width:100%}.ms-trigger{border:1px solid var(--border-color,#d1d5db);cursor:pointer;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-height:38px;padding:4px 10px;display:flex}.ms-trigger:focus,.ms-trigger.is-open{border-color:var(--brand,#02a49d);outline:none;box-shadow:0 0 0 3px #02a49d24}.ms-chips{flex-wrap:wrap;flex:1;gap:6px;display:flex}.ms-placeholder{color:#98a2b3;font-size:13px}.ms-chip{background:var(--brand-soft,#e6f6f5);color:var(--brand-dark,#026e77);border-radius:999px;align-items:center;gap:4px;padding:2px 4px 2px 10px;font-size:12px;display:inline-flex}.ms-chip button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:15px;line-height:1}.ms-caret{color:#667085;font-size:10px}.ms-panel{border:1px solid var(--border-color,#d1d5db);background:#fff;border-radius:8px;max-height:180px;margin-top:6px;overflow-y:auto}.ms-option{cursor:pointer;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.ms-option:hover{background:#f5f9f9}.ms-empty{color:#98a2b3;padding:10px 12px;font-size:13px}.inv-filters{flex-wrap:wrap;gap:12px;margin-bottom:14px;display:flex}.inv-filters .field{min-width:120px}.inv-filters select,.inv-form-grid input,.inv-form-grid select,.inv-info+.field input{border:1px solid var(--border-color,#d1d5db);box-sizing:border-box;background:#fff;border-radius:8px;outline:none;width:100%;height:36px;padding:0 10px;font-size:13px}.inv-filters select:focus,.inv-form-grid input:focus,.inv-form-grid select:focus{border-color:var(--brand,#02a49d);box-shadow:0 0 0 3px #02a49d24}.inv-btn{align-items:center;gap:6px;display:inline-flex}.ct-toolbar-right{flex-wrap:wrap;justify-content:flex-end}.inv-meta{color:#64748b;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:12.5px;display:flex}.inv-scroll{min-height:320px;max-height:calc(100vh - 340px);overflow:auto}.inv-table th{z-index:2;background:var(--brand-dark,#028a8a);color:#fff;position:sticky;top:0}.inv-table td{font-size:12px}.inv-group{border-top:2px solid #e2e8f0}.inv-group.is-alt{background:#f8fafc}.inv-group tr+tr{border-top:1px solid #f1f5f9}.inv-bl{border-left:1px solid #e2e8f0}.inv-actions{gap:4px;display:inline-flex}.inv-icon-btn{background:#fff;border:1px solid #e2e8f0;width:26px;height:26px;padding:0}.inv-icon-btn.danger{color:#dc2626;background:#fef2f2;border-color:#fecaca}.inv-icon-btn:disabled{opacity:.5;cursor:not-allowed}.inv-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px;display:grid}.inv-form-grid.inv-form-2{grid-template-columns:repeat(2,minmax(0,1fr))}.inv-info{flex-direction:column;gap:6px;font-size:13px;display:flex}.inv-info>div{gap:10px;display:flex}.inv-info span{color:#64748b;flex-shrink:0;width:110px;font-weight:600}.inv-note{color:#64748b;margin:10px 0 0;font-size:12px}.inv-parts{border:1px solid var(--border-color,#d1d5db);background:#fff;border-radius:8px;overflow:hidden}.inv-parts-head,.inv-parts-row{align-items:center;gap:8px;padding:6px 10px;display:grid}.inv-parts-head{background:var(--brand-soft,#e6f6f5);text-transform:uppercase;letter-spacing:.3px;color:#355;border-bottom:1px solid #cfe8e7;font-size:11px;font-weight:700}.inv-parts-body{max-height:420px;overflow-y:auto}.inv-parts-row{border-bottom:1px solid #f1f5f9}.inv-parts-row.is-alt{background:#f8fafc}.inv-no{color:#64748b;font-size:13px;font-weight:600}.inv-program{color:#334155;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.inv-parts input{box-sizing:border-box;border:1px solid var(--border-color,#d1d5db);background:#fff;border-radius:6px;outline:none;width:100%;height:32px;padding:0 8px;font-size:12px}.inv-parts input:focus{border-color:var(--brand,#02a49d);box-shadow:0 0 0 3px #02a49d24}.inv-parts input:disabled{color:#475569;background:#f1f5f9}.inv-remove{color:#dc2626;cursor:pointer;background:0 0;border:0;font-size:15px;line-height:1}.inv-remove:disabled{color:#cbd5e1;cursor:default}.inv-parts-foot{color:#94a3b8;background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:8px 10px;font-size:11px;display:flex}@media (width<=720px){.inv-form-grid{grid-template-columns:1fr}}.pg-table th{z-index:2;background:var(--brand-dark,#028a8a);color:#fff;white-space:nowrap;padding:8px;position:sticky;top:0}.pg-table td{vertical-align:middle;padding:6px 10px;font-size:12px}.pg-group{border-top:2px solid #e2e8f0}.pg-group.is-alt{background:#f8fafc}.pg-group tr+tr{border-top:1px solid #f1f5f9}.pg-badge{color:#991b1b;background:#fee2e2;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.pg-badge.on{color:#166534;background:#dcfce7}.pg-ibtn{cursor:pointer;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.pg-ibtn.danger{color:#dc2626;background:#fef2f2;border-color:#fecaca}.pg-ibtn:disabled{opacity:.5;cursor:not-allowed}.pg-chip{white-space:nowrap;cursor:pointer;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.pg-chip.red{color:#dc2626;background:#fef2f2;border-color:#fecaca}.pg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin-bottom:14px;display:grid}.pg-form input:not([type=checkbox]),.pg-form select{box-sizing:border-box;border:1px solid var(--border-color,#d1d5db);background:#fff;border-radius:8px;outline:none;width:100%;height:36px;padding:0 10px;font-size:13px}.pg-form input:focus,.pg-form select:focus{border-color:var(--brand,#02a49d);box-shadow:0 0 0 3px #02a49d24}.pg-form input[readonly],.pg-form input:disabled,.pg-form select:disabled{color:#475569;background:#f1f5f9}.pg-form .is-invalid{border-color:#dc2626}.field-err{color:#dc2626;margin:4px 0 0;font-size:12px}.pg-sec{color:#334155;justify-content:space-between;align-items:center;margin:4px 0 8px;font-size:13px;font-weight:700;display:flex}.pg-sec small{color:#94a3b8;margin-left:6px;font-weight:400}.pg-box{border:1px solid var(--border-color,#d1d5db);background:#fff;border-radius:8px;overflow:hidden}.pg-box-head,.pg-box-row{align-items:center;gap:8px;padding:6px 10px;display:grid}.pg-box-head{background:var(--brand-soft,#e6f6f5);text-transform:uppercase;letter-spacing:.3px;color:#355;border-bottom:1px solid #cfe8e7;font-size:11px;font-weight:700}.pg-box-body{max-height:260px;overflow-y:auto}.pg-box-row{border-top:1px solid #f1f5f9}.pg-box-row.is-alt{background:#f8fafc}.pg-box-row.is-bad{background:#fef2f2}.pg-box .pg-box-row input,.pg-box .pg-box-row select{height:32px;padding:0 8px;font-size:12px}.pg-no{color:#64748b;font-size:12px;font-weight:600}.pg-x{color:#dc2626;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;font-size:15px;line-height:1;display:inline-flex}.pg-x:disabled{color:#cbd5e1;cursor:default}.pg-box-empty{color:#94a3b8;padding:14px;font-size:13px}.pg-box-foot{background:#f8fafc;border-top:1px solid #e2e8f0;padding:8px 10px}.pg-picked{border:1px solid var(--border-color,#d1d5db);background:#f8fafc;border-radius:8px;align-items:center;gap:6px;height:32px;padding:0 8px;font-size:12px;display:flex}.pg-picked b{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pg-picked button{color:var(--brand,#028a8a);cursor:pointer;background:0 0;border:0;font-size:11px;font-weight:600}@media (width<=720px){.pg-grid{grid-template-columns:1fr!important}}button{transition:transform .2s var(--ease-out), box-shadow .2s ease, filter .2s ease, background-color .2s ease, opacity .2s ease;-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}button:not(:disabled):hover{filter:brightness(1.08)saturate(1.05);transform:translateY(-2px);box-shadow:0 8px 18px #0f2b3038}button:not(:disabled):active{filter:brightness(.95);transition-duration:80ms;transform:translateY(0)scale(.96);box-shadow:0 2px 6px #0f2b3033}button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sidebar button:not(:disabled):hover,.tab-item:not(:disabled):hover,.modal-close:not(:disabled):hover,.hamburger:not(:disabled):hover,.user-dropdown button:not(:disabled):hover{box-shadow:none;filter:none}.tab-item:not(:disabled):hover{transform:none}.ripple{pointer-events:none;background:#ffffff8c;border-radius:50%;animation:.6s ease-out forwards ripple;position:absolute;transform:scale(0)}table{border-collapse:collapse}table tbody tr{animation:row-in .4s var(--ease-out) both;transition:box-shadow .2s}table tbody tr:first-child{animation-delay:20ms}table tbody tr:nth-child(2){animation-delay:50ms}table tbody tr:nth-child(3){animation-delay:80ms}table tbody tr:nth-child(4){animation-delay:.11s}table tbody tr:nth-child(5){animation-delay:.14s}table tbody tr:nth-child(6){animation-delay:.17s}table tbody tr:nth-child(7){animation-delay:.2s}table tbody tr:nth-child(8){animation-delay:.23s}table tbody tr:nth-child(n+9){animation-delay:.26s}table tbody tr:hover>td{background-image:linear-gradient(#02a49d1c,#02a49d1c)!important}table tbody tr:hover{box-shadow:inset 3px 0 0 var(--brand)}table td,table th{transition:background-image .2s}table thead th{letter-spacing:.02em}input,select,textarea{transition:border-color .2s,box-shadow .2s,background-color .2s}input:hover:not(:disabled):not([type=checkbox]):not([type=radio]),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#9bbfc1!important}input:focus:not([type=checkbox]):not([type=radio]),select:focus,textarea:focus{border-color:var(--brand)!important;box-shadow:0 0 0 4px #02a49d26!important}input[type=checkbox],input[type=radio]{accent-color:var(--brand)}div[style*="position: fixed"][style*=inset]{-webkit-backdrop-filter:blur(4px);animation:.2s fade-in}div[style*="position: fixed"][style*=inset]>div{animation:modal-in .35s var(--ease-spring)}.page-enter{animation:fade-up .45s var(--ease-out) both}.skeleton{background:linear-gradient(90deg,#e8f0f0 25%,#f5fafa 37%,#e8f0f0 63%) 0 0/200% 100%;border-radius:8px;animation:1.4s linear infinite shimmer}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}:root{--navy:#0f2b30;--text-muted:#6b7c80;--border-color:#0f2b3014;--accent-blue:#02a49d;--accent-blue-dark:#028894;--danger:#d92d20;--glass-bg:#ffffff8c;--glass-bg-strong:#ffffffb8;--glass-border:#fff9;--shadow-panel:0 8px 28px #0f2b301f;--topbar-height:52px}.app-shell{flex-direction:column;height:100vh;min-height:0;display:flex;overflow:hidden}.app-body{min-height:0;height:calc(100vh - var(--topbar-height));flex:1;gap:8px;display:flex;overflow:hidden}.plant-pick-link{cursor:pointer}.sidebar-picker .sidebar-nav{gap:6px}.sidebar-group{background-color:#fff;border-radius:7px;align-items:flex-start;margin-top:10px;margin-left:3px;display:flex;position:relative}.sidebar-plant-tab{z-index:5;color:#ebf4f6;cursor:pointer;background:linear-gradient(#026e77 0%,#02808a 35%,#028f89 100%);border:none;border-radius:0 20px 20px 0;flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:center;width:24px;min-height:60px;margin-top:150px;margin-right:0;padding:18px 0 20px;transition:background .2s,box-shadow .2s,transform .2s;display:flex;position:relative;box-shadow:0 10px 24px #02889466}.sidebar-plant-tab:hover{background:linear-gradient(#026e77 0%,#02808a 35%,#028f89 100%);transform:translateY(-2px);box-shadow:0 12px 28px #02889480}.sidebar-plant-tab:after{content:"";background:radial-gradient(circle at 0 0,#0000 70%,#039196 71%);width:12px;height:12px;top:10px;right:-6px}.sidebar-plant-tab-icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-plant-tab-label{writing-mode:vertical-lr;text-orientation:upright;letter-spacing:.16em;font-size:10px;font-weight:700;line-height:1.3}.sidebar{width:var(--sidebar-width-collapsed);color:#ebf4f6;height:calc(100vh - var(--topbar-height));background-color:#fff;flex-direction:column;flex-shrink:0;margin-top:10px;margin-right:10px;transition:width .25s cubic-bezier(.4,0,.2,1),padding .25s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0;overflow:hidden}.sidebar.sidebar-expanded{width:var(--sidebar-width-expanded);padding:14px 12px}.sidebar-nav{flex-direction:column;flex:1;justify-content:flex-start;gap:2px;min-height:0;display:flex}.sidebar-link{color:#000;box-sizing:border-box;text-align:left;white-space:nowrap;-webkit-backdrop-filter:blur();backdrop-filter:blur();background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:12px;width:100%;padding:8px 12px;font-size:12.5px;font-weight:600;display:flex}.sidebar-collapsed .sidebar-link{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 2px}.sidebar-collapsed .sidebar-icon{width:auto}.sidebar-icon{flex-shrink:0;justify-content:center;align-items:center;width:18px;transition:transform .22s;display:inline-flex}.sidebar-label{white-space:nowrap;letter-spacing:.01em;font-size:11px;font-weight:600;line-height:1.15;display:block}.sidebar-expanded .sidebar-label{font-size:13px}.sidebar-link:hover{-webkit-backdrop-filter:blur(8px);color:#fff;background:linear-gradient(#028894 0%,#039196 25%,#039a98 50%,#02a49d 75%,#02a59d 100%);border-color:#02a59d;transform:translateY(0);box-shadow:0 6px 16px #00000029}.sidebar-collapsed .sidebar-link:hover .sidebar-icon{transform:scale(1.12)}.sidebar-link.active{-webkit-backdrop-filter:blur(8px);color:#fff;background:linear-gradient(#028894 0%,#039196 25%,#039a98 50%,#02a49d 75%,#02a59d 100%);border-color:#02a59d;box-shadow:0 6px 16px #00000029}.sidebar-link.active:hover{background:linear-gradient(#028894 0%,#039196 25%,#039a98 50%,#02a49d 75%,#02a59d 100%);border-color:#02a59d;transform:none}.sidebar-menu-group{flex-direction:column;width:100%;display:flex}.sidebar-menu-toggle{justify-content:flex-start}.sidebar-chevron{flex-shrink:0;margin-left:auto;transition:transform .2s}.sidebar-chevron-open{transform:rotate(180deg)}.sidebar-collapsed .sidebar-menu-toggle{flex-direction:column;gap:4px}.sidebar-collapsed .sidebar-chevron{margin-left:0}.sidebar-submenu{box-sizing:border-box;flex-direction:column;gap:2px;width:100%;margin:2px 0 4px;padding-left:8px;display:flex}.sidebar-sublink{box-sizing:border-box;color:#ebf4f6d9;white-space:nowrap;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;padding:7px 12px 7px 26px;font-size:12px;font-weight:600;transition:background .22s,border-color .22s,color .22s;display:flex}.sidebar-sublink .sidebar-icon{width:15px}.sidebar-sublink:hover{color:#fff;background:#ffffff1f;border-color:#fff3}.sidebar-sublink.active{color:#fff;background:#ffffff2e;border-color:#ffffff4d;box-shadow:0 6px 16px #00000029}.sidebar-collapsed .sidebar-submenu{padding-left:4px}.sidebar-collapsed .sidebar-sublink{padding-left:12px;font-size:10.5px}.sidebar-bottom{border-top:1px solid #fff3;flex-direction:column;flex-shrink:0;gap:2px;padding-top:8px;display:flex}.sidebar-logout{color:#ffe1dd}.sidebar-logout:hover{color:#fff;background:#d92d2038;border-color:#ffb4ae59}.sidebar-footer-brand{text-align:center;color:#7e0505b3;letter-spacing:.12em;white-space:nowrap;padding:8px 0 2px;font-size:10px}.sidebar-scrim{display:none}.hamburger{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);width:34px;height:34px;color:var(--navy);border:1px solid #0f2b301f;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;display:none}.hamburger:hover{background:var(--glass-bg-strong)}.hamburger-active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.hamburger-active:hover{background:var(--accent-blue-dark)}@media (width<=900px){.hamburger{display:inline-flex}.plant-switcher{flex-direction:row;width:auto}.sidebar{left:0;top:var(--topbar-height);height:calc(100vh - var(--topbar-height));z-index:50;width:var(--sidebar-width-expanded);transition:transform .2s;position:fixed;transform:translate(-100%);box-shadow:4px 0 24px #0003}.sidebar.sidebar-collapsed .sidebar-label{display:inline}.sidebar.sidebar-collapsed .sidebar-top{justify-content:flex-start}.sidebar.sidebar-expanded{transform:translate(0)}.sidebar-scrim{top:var(--topbar-height);z-index:40;background:#0f172a66;display:block;position:fixed;bottom:0;left:0;right:0}}.topbar{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);z-index:30;height:52px;box-shadow:var(--shadow-panel);justify-content:space-between;align-items:center;padding-left:3px;display:none;position:sticky}@media (width<=900px){.topbar{display:flex}}.topbar-left{align-items:center;gap:0;display:flex}.topbar-title{color:var(--navy);margin:0;padding-top:10px;padding-left:10px;font-size:17px;font-weight:700}.topbar-brand{align-items:center;gap:8px;padding-right:16px;display:flex}.topbar-brand-mark{border-radius:7px;flex-shrink:0;width:28px;height:28px;display:block}.topbar-brand-text{letter-spacing:.06em;color:var(--navy);white-space:nowrap;font-size:13px;font-weight:800}.topbar-right{align-items:center;gap:16px;display:flex}.user-chip{cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:6px 10px;transition:background .2s;display:flex;position:relative}.user-chip:hover{background:#02a49d14}.user-avatar{color:#fff;background:linear-gradient(135deg,#028894,#02a49d);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:inline-flex}.user-chip-text{flex-direction:column;line-height:1.25;display:flex}.user-chip-text strong{color:var(--navy);font-size:12.5px}.user-chip-text small{color:var(--text-muted);font-size:11px}.chevron{color:var(--text-muted);font-size:10px}.user-dropdown{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);box-shadow:var(--shadow-panel);z-index:30;border-radius:14px;flex-direction:column;min-width:150px;padding:6px;display:flex;position:absolute;top:46px;right:0}.user-dropdown button{text-align:left;color:var(--navy);background:0 0;border:none;border-radius:8px;padding:8px 10px;font-size:13px;font-weight:600}.user-dropdown button:hover{background:#02a49d1a}.user-dropdown button.danger{color:var(--danger)}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:var(--shadow-panel);border-radius:18px}@media (width<=900px){.plant-switcher{flex-direction:row;width:auto}.sidebar{left:0;top:var(--topbar-height);height:calc(100vh - var(--topbar-height));z-index:50;width:var(--sidebar-width-expanded);transition:transform .2s;position:fixed;transform:translate(-100%);box-shadow:4px 0 24px #0003}.sidebar.sidebar-collapsed .sidebar-label{display:inline}.sidebar.sidebar-collapsed .sidebar-top{justify-content:flex-start}.sidebar.sidebar-expanded{transform:translate(0)}.sidebar-scrim{top:var(--topbar-height);z-index:40;background:#0f172a66;display:block;position:fixed;bottom:0;left:0;right:0}}.sidebar{border-radius:0 16px 16px 0;box-shadow:0 6px 24px #0f2b301a}.sidebar-link{transition:background .25s ease, color .2s ease, transform .25s var(--ease-out), box-shadow .25s ease, border-color .25s ease;position:relative}.sidebar-link:hover:not(.active){transform:translate(3px)}.sidebar-collapsed .sidebar-link:hover:not(.active){transform:translateY(-2px)}.sidebar-link.active:before{content:"";width:3px;animation:indicator-in .35s var(--ease-spring);background:#fff;border-radius:0 4px 4px 0;position:absolute;top:22%;bottom:22%;left:-1px;box-shadow:0 0 10px #ffffffe6}@keyframes indicator-in{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.sidebar-link.active .sidebar-icon{animation:icon-pop .45s var(--ease-spring)}@keyframes icon-pop{0%{transform:scale(.6)rotate(-12deg)}to{transform:scale(1)rotate(0)}}.sidebar-link:hover .sidebar-icon{transform:scale(1.18)rotate(-4deg)}.sidebar-logout:hover .sidebar-icon svg{stroke:#fff}.sidebar-nav>.sidebar-link,.sidebar-nav>.sidebar-menu-group{animation:slide-in-left .5s var(--ease-out) both}.sidebar-nav>:first-child{animation-delay:50ms}.sidebar-nav>:nth-child(2){animation-delay:.1s}.sidebar-nav>:nth-child(3){animation-delay:.15s}.sidebar-nav>:nth-child(4){animation-delay:.2s}.sidebar-nav>:nth-child(5){animation-delay:.25s}.sidebar-nav>:nth-child(6){animation-delay:.3s}.sidebar-nav>:nth-child(7){animation-delay:.35s}.sidebar-nav>:nth-child(8){animation-delay:.4s}@keyframes slide-in-left{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:translate(0)}}.sidebar-submenu{animation:fade-up .25s var(--ease-out)}.sidebar-plant-tab{animation:4s ease-in-out infinite tab-float}@keyframes tab-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.user-dropdown{animation:modal-in .25s var(--ease-spring);transform-origin:100% 0}.user-avatar{transition:transform .3s var(--ease-spring), box-shadow .3s ease}.user-chip:hover .user-avatar{box-shadow:0 4px 12px var(--brand-glow);transform:scale(1.1)rotate(-6deg)}.glass-card{transition:transform .3s var(--ease-out), box-shadow .3s ease}.glass-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-3px)}.main-area{scroll-behavior:smooth;padding-right:8px}.login-screen{min-height:100vh;display:flex}.login-side{color:var(--text-inverse);background:linear-gradient(150deg,#0a1f23 0%,#0f3a3e 55%,#026e77 100%) 0 0/200% 200%;flex:1.1;align-items:center;padding:60px;animation:14s ease-in-out infinite bg-drift;display:flex;position:relative;overflow:hidden}@keyframes bg-drift{0%,to{background-position:0%}50%{background-position:100%}}.blob{filter:blur(60px);opacity:.55;pointer-events:none;border-radius:50%;position:absolute}.blob-1{background:#02a49d;width:320px;height:320px;animation:11s ease-in-out infinite float-a;top:-80px;left:-60px}.blob-2{background:#028894;width:260px;height:260px;animation:13s ease-in-out infinite float-b;bottom:-60px;right:10%}.blob-3{opacity:.3;background:#5eead4;width:180px;height:180px;animation:9s ease-in-out infinite reverse float-a;top:45%;right:-40px}@keyframes float-a{0%,to{transform:translate(0)scale(1)}50%{transform:translate(40px,30px)scale(1.12)}}@keyframes float-b{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-40px,-30px)scale(.92)}}.login-side:after{content:"";border:1px solid #ffffff14;border-radius:50%;width:480px;height:480px;animation:40s linear infinite spin;position:absolute;bottom:-160px;right:-160px}.login-side:before{content:"";border:1px dashed #ffffff1a;border-radius:50%;width:320px;height:320px;animation:30s linear infinite reverse spin;position:absolute;bottom:-60px;right:-60px}@keyframes spin{to{transform:rotate(360deg)}}.login-side-inner{z-index:1;max-width:460px;animation:fade-up .8s var(--ease-out) both;position:relative}.login-brand{letter-spacing:.12em;align-items:center;gap:12px;margin-bottom:40px;font-size:13px;font-weight:800;display:flex}.login-brand-mark{background:var(--grad-brand);width:38px;height:38px;box-shadow:0 0 0 0 var(--brand-glow);border-radius:10px;justify-content:center;align-items:center;animation:2.6s ease-out infinite glow-ring;display:inline-flex}@keyframes glow-ring{0%{box-shadow:0 0 #02a49d99}to{box-shadow:0 0 0 16px #02a49d00}}.login-side h1{margin:0 0 16px;font-size:36px;font-weight:800;line-height:1.2}.grad-text{background:linear-gradient(90deg,#5eead4,#02a49d,#5eead4) 0 0/200%;color:#0000;-webkit-background-clip:text;background-clip:text;animation:4s linear infinite shimmer-text}@keyframes shimmer-text{to{background-position:200%}}.login-side p{color:#b9d2d4;margin:0 0 28px;line-height:1.65}.login-highlights{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.login-highlights li{color:#e3f1f1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:slide-in-left .6s var(--ease-out) both;animation-delay:calc(.4s + var(--i) * .15s);transition:transform .3s var(--ease-out), background .3s, border-color .3s;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;font-size:13.5px;display:flex}.login-highlights li svg{color:#5eead4;flex-shrink:0}.login-highlights li:hover{background:#ffffff1f;border-color:#5eead473;transform:translate(8px)}.login-form-side{background:radial-gradient(500px 300px at 80% 10%, #02a49d1a, transparent 70%), var(--bg-app);flex:1;justify-content:center;align-items:center;padding:40px 24px;display:flex}.login-card{width:100%;max-width:400px;animation:card-in .7s var(--ease-spring) both;background:#fff;border:1px solid #0f2b300d;border-radius:20px;flex-direction:column;padding:36px 32px;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 60px #0f2b3024}.login-card:before{content:"";background:linear-gradient(90deg,#028894,#5eead4,#028894) 0 0/200% 100%;height:4px;animation:3s linear infinite shimmer;position:absolute;top:0;left:0;right:0}@keyframes card-in{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:none}}.login-card h2{color:var(--navy);margin:0 0 6px;font-size:24px;font-weight:800}.login-subtitle{color:var(--text-muted);margin:0 0 24px;font-size:13px}.login-card .field{margin-bottom:18px}.login-card .field input{padding:11px 13px;font-size:14px}.password-row{gap:8px;display:flex}.password-row input{flex:1}.password-toggle{border:1px solid var(--border-color);border-radius:var(--radius);color:var(--text-muted);background:#fff;justify-content:center;align-items:center;padding:0 12px;transition:color .2s,background .2s,border-color .2s;display:inline-flex}.password-toggle:hover{background:var(--brand-soft);color:var(--brand-dark);border-color:var(--brand)}.login-error{color:var(--danger);border-radius:var(--radius);background:#fdeceb;border:1px solid #f3c6c1;margin-bottom:16px;padding:10px 12px;font-size:13px;animation:.4s shake}.login-submit{justify-content:center;width:100%;margin-top:4px;padding:12px;font-size:14px}.login-submit:after{content:"";background:linear-gradient(90deg,#0000,#ffffff73,#0000);width:50%;height:100%;transition:left .6s;position:absolute;top:0;left:-75%;transform:skew(-20deg)}.login-submit:hover:not(:disabled):after{left:130%}.login-submit .arrow{transition:transform .25s var(--ease-out)}.login-submit:hover:not(:disabled) .arrow{transform:translate(5px)}.spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.login-demo{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;font-size:12px;display:flex}.login-demo button{border:1px solid var(--border-color);color:var(--accent-blue);background:#f7f9fc;border-radius:14px;padding:4px 12px;font-size:12px;font-weight:600}@media (width<=860px){.login-screen{flex-direction:column}.login-side{padding:40px 28px}.login-side h1{font-size:28px}}.dash-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.dash-card{--tone:var(--brand);--tone-soft:var(--brand-soft);box-shadow:var(--shadow-panel);animation:fade-up .6s var(--ease-out) both;animation-delay:calc(var(--i) * .1s);transition:transform .3s var(--ease-out), box-shadow .3s ease;background:#fff;border:1px solid #0f2b300d;border-radius:16px;padding:20px;position:relative;overflow:hidden}.dash-card.tone-green{--tone:var(--success);--tone-soft:#dcf3e3}.dash-card.tone-amber{--tone:var(--warning);--tone-soft:#fdefd0}.dash-card.tone-red{--tone:var(--danger);--tone-soft:#fdecec}.dash-card:before{content:"";background:var(--tone);transform-origin:0;height:4px;transition:transform .5s var(--ease-out);position:absolute;top:0;left:0;right:0;transform:scaleX(.35)}.dash-card:after{content:"";background:var(--tone-soft);opacity:.8;width:120px;height:120px;transition:transform .5s var(--ease-out);border-radius:50%;position:absolute;top:-40px;right:-40px}.dash-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-6px)}.dash-card:hover:before{transform:scaleX(1)}.dash-card:hover:after{transform:scale(1.5)}.dash-card-icon{z-index:1;background:var(--tone-soft);width:42px;height:42px;color:var(--tone);transition:transform .4s var(--ease-spring);border-radius:12px;justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex;position:relative}.dash-card:hover .dash-card-icon{transform:rotate(-10deg)scale(1.12)}.dash-card-value{z-index:1;color:var(--text-main);font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;position:relative}.dash-card-label{z-index:1;color:var(--text-muted);margin-top:4px;font-size:12.5px;font-weight:600;position:relative}.dash-lower{grid-template-columns:1fr 1fr;gap:16px;display:grid}.dash-lower .panel{animation:fade-up .6s var(--ease-out) .45s both}@media (width<=1000px){.dash-grid{grid-template-columns:repeat(2,1fr)}.dash-lower{grid-template-columns:1fr}}@media (width<=520px){.dash-grid{grid-template-columns:1fr}}.tabs{gap:4px;display:flex;position:relative}.tab-item{color:#3a4f53;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:8px 8px 0 0;align-items:center;gap:6px;padding:10px 12px;font-size:13px;font-weight:600;transition:color .2s,background .25s;display:flex;position:relative}.tab-item:after{content:"";background:var(--grad-brand);width:0;height:3px;transition:width .3s var(--ease-out);border-radius:3px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.tab-item:hover:after{width:40%}.tab-item.active:after{width:100%}.tab-icon{transition:transform .3s var(--ease-spring);justify-content:center;align-items:center;display:inline-flex}.tab-item:hover .tab-icon{transform:scale(1.2)rotate(-6deg)}.tab-item:hover{color:var(--navy,#0f2b30);background:var(--brand-soft)}.tab-item.active{color:var(--accent-blue-dark,#028894);background:linear-gradient(#0000,#02a49d14);border-bottom-color:#0000}@media (width<=700px){.admin-grid,.admin-detail-list{grid-template-columns:1fr}}.admin-grid{grid-template-columns:260px 1fr;gap:16px;display:grid}.admin-photo-card{justify-content:center;align-items:center;display:flex}.admin-avatar{color:#8b98bd;background:#dbe3f3;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;font-size:52px;display:flex}.admin-detail-list{grid-template-columns:1fr 1fr;gap:14px 20px;margin:18px 0 0;display:grid}.admin-detail-list>div{flex-direction:column;gap:4px;display:flex}.admin-detail-list dt{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:11.5px;font-weight:700}.admin-detail-list dd{margin:0;font-size:14px;font-weight:600}.toast{background:var(--navy);color:#fff;z-index:200;border-radius:8px;padding:12px 18px;font-size:13px;position:fixed;bottom:24px;right:24px;box-shadow:0 10px 30px #00000040}@media (width<=700px){.admin-grid,.admin-detail-list{grid-template-columns:1fr}}
