:root{--primary:#682145;--primary-dark:#4a1530;--primary-light:#8e3d66;--secondary:#f3e5f5;--success:#22c55e;--success-light:#dcfce7;--warning:#f59e0b;--warning-light:#fef3c7;--danger:#ef4444;--danger-light:#fee2e2;--urgent:#dc2626;--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#e2e8f0;--border-focus:#682145;--header-bg:#682145;--header-text:#fff;--task-gradient-start:#f3e5f5;--task-gradient-end:#e9d5f5;--sidebar-accent:#682145;--timeline-line:#e2e8f0;--timeline-line-light:#f1f5f9;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-full:9999px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:350ms ease}[data-theme=pink]{--primary:#e91e63;--primary-dark:#c2185b;--primary-light:#f48fb1;--secondary:#fce4ec;--bg-primary:#fff0f5;--bg-secondary:#fffafc;--bg-tertiary:#ffe4ed;--border:#f8bbd9;--border-focus:#e91e63;--header-bg:linear-gradient(135deg,#e91e63,#f06292);--header-text:#fff;--task-gradient-start:#fce4ec;--task-gradient-end:#f8bbd9;--sidebar-accent:#e91e63;--timeline-line:#f8bbd9;--timeline-line-light:#fce4ec;--success-light:#f0fff4;--danger-light:#fff0f3}[data-theme=blue]{--primary:#0277bd;--primary-dark:#01579b;--primary-light:#4fc3f7;--secondary:#e1f5fe;--bg-primary:#e3f2fd;--bg-secondary:#f5fbff;--bg-tertiary:#bbdefb;--border:#90caf9;--border-focus:#0277bd;--header-bg:linear-gradient(135deg,#0277bd,#03a9f4);--header-text:#fff;--task-gradient-start:#e1f5fe;--task-gradient-end:#b3e5fc;--sidebar-accent:#0277bd;--timeline-line:#90caf9;--timeline-line-light:#e1f5fe}[data-theme=green]{--primary:#2e7d32;--primary-dark:#1b5e20;--primary-light:#a5d6a7;--secondary:#e8f5e9;--bg-primary:#e8f5e9;--bg-secondary:#f5fff5;--bg-tertiary:#c8e6c9;--border:#a5d6a7;--border-focus:#2e7d32;--header-bg:linear-gradient(135deg,#2e7d32,#66bb6a);--header-text:#fff;--task-gradient-start:#e8f5e9;--task-gradient-end:#c8e6c9;--sidebar-accent:#2e7d32;--timeline-line:#a5d6a7;--timeline-line-light:#e8f5e9}[data-theme=dark]{--primary:#b388ff;--primary-dark:#7c4dff;--primary-light:#d1c4e9;--secondary:#2d2d2d;--bg-primary:#121212;--bg-secondary:#1e1e1e;--bg-tertiary:#2d2d2d;--text-primary:#fff;--text-secondary:#b0b0b0;--text-muted:#757575;--border:#424242;--border-focus:#b388ff;--header-bg:linear-gradient(135deg,#1e1e1e,#2d2d2d);--header-text:#b388ff;--task-gradient-start:#2d2d2d;--task-gradient-end:#424242;--sidebar-accent:#b388ff;--timeline-line:#424242;--timeline-line-light:#2d2d2d;--success:#4ade80;--success-light:#1a3a2a;--danger:#f87171;--danger-light:#3a1a1a;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.5);--shadow:0 1px 3px 0 rgba(0,0,0,.5),0 1px 2px -1px rgba(0,0,0,.4);--shadow-md:0 4px 6px -1px rgba(0,0,0,.5),0 2px 4px -2px rgba(0,0,0,.4);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -4px rgba(0,0,0,.4)}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:.875rem;font-weight:500;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-lg{padding:var(--space-md) var(--space-lg);font-size:1rem}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:.75rem}.card{background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:var(--space-lg)}.input,.select,.textarea{width:100%;padding:var(--space-sm) var(--space-md);font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);transition:border-color var(--transition-fast)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(99,102,241,.1)}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.textarea{min-height:100px;resize:vertical}.form-group{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.error-text{font-size:.75rem;color:var(--danger)}.badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);font-size:.75rem;font-weight:500;border-radius:var(--radius-full)}.badge-success{background:var(--success-light);color:#166534}.badge-warning{background:var(--warning-light);color:#92400e}.badge-danger{background:var(--danger-light);color:#991b1b}.badge-primary{background:rgba(99,102,241,.1);color:var(--primary-dark)}.timeline{position:relative;height:calc(100vh - 200px);overflow-y:auto;scroll-behavior:smooth}.timeline-hour{display:flex;align-items:flex-start;min-height:60px;border-top:1px solid var(--border)}.timeline-label{width:60px;flex-shrink:0;font-size:.75rem;color:var(--text-muted);text-align:right}.timeline-content,.timeline-label{padding:var(--space-xs) var(--space-sm)}.timeline-content{flex:1 1}.timeline-now{position:absolute;left:0;right:0;height:2px;background:var(--danger);z-index:10}.timeline-now:before{content:"NOW";position:absolute;left:4px;top:-10px;font-size:.625rem;font-weight:700;color:var(--danger);background:var(--bg-secondary);padding:0 4px}.task-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm);cursor:pointer;transition:all var(--transition-fast)}.task-card:hover{border-color:var(--primary-light);box-shadow:var(--shadow-md)}.task-card.overdue{border-left:3px solid var(--danger)}.task-card.completed{background:var(--success-light);border-left:3px solid var(--success)}.task-title{font-weight:500;margin-bottom:var(--space-xs)}.task-time{font-size:.75rem;color:var(--text-secondary)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:var(--space-md);z-index:100;animation:fadeIn var(--transition-fast)}.modal{background:var(--bg-secondary);border-radius:var(--radius-xl);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp var(--transition-normal)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border)}.modal-title{font-size:1.125rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);transition:color var(--transition-fast)}.modal-close:hover{color:var(--text-primary)}.modal-body,.modal-footer{padding:var(--space-lg)}.modal-footer{display:flex;gap:var(--space-sm);justify-content:flex-end;border-top:1px solid var(--border)}.alert-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-secondary);border-radius:var(--radius-xl);padding:var(--space-xl);max-width:400px;width:90%;box-shadow:var(--shadow-lg);z-index:202;animation:popIn var(--transition-normal)}.alert-popup.urgent{border:2px solid var(--urgent)}.alert-popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:199;animation:fadeIn var(--transition-fast)}.alert-alarm-flash{position:fixed;inset:0;pointer-events:none;z-index:201}.alert-alarm-flash.urgent{animation:urgentAlertFlash .65s steps(2) infinite}.alert-alarm-flash.normal{animation:normalAlertFlash 1.4s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes urgentAlertFlash{0%{background:rgba(255,0,0,.72)}50%{background:hsla(0,0%,100%,.58)}to{background:rgba(255,0,0,.72)}}@keyframes normalAlertFlash{0%{background:rgba(255,193,7,.18)}50%{background:hsla(0,0%,100%,.38)}to{background:rgba(255,193,7,.18)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:50}.header-title{font-size:1.25rem;font-weight:600}.header-user{display:flex;align-items:center;gap:var(--space-md)}.header-user-name{font-weight:500}.admin-nav{display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border);overflow-x:auto}.admin-nav-link{padding:var(--space-sm) var(--space-md);font-size:.875rem;font-weight:500;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-md);white-space:nowrap;transition:all var(--transition-fast)}.admin-nav-link.active,.admin-nav-link:hover{background:var(--primary);color:#fff}.content{padding:var(--space-lg);max-width:1200px;margin:0 auto}.list{display:flex;flex-direction:column;gap:var(--space-sm)}.list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md)}.list-item-content{flex:1 1}.list-item-actions{display:flex;gap:var(--space-sm)}.grid{display:grid;grid-gap:var(--space-md);gap:var(--space-md)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}@media (max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}}.pin-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-lg)}.pin-display{display:flex;gap:var(--space-md);margin-bottom:var(--space-xl)}.pin-dot{width:20px;height:20px;border:2px solid var(--border);border-radius:var(--radius-full);transition:all var(--transition-fast)}.pin-dot.filled{background:var(--primary);border-color:var(--primary)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-sm);gap:var(--space-sm);max-width:280px}.pin-btn{width:80px;height:80px;font-size:1.5rem;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-secondary);cursor:pointer;transition:all var(--transition-fast)}.pin-btn:hover{background:var(--bg-tertiary)}.pin-btn:active{transform:scale(.95)}.pin-btn.clear{font-size:1rem}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.section-title{font-size:1rem;font-weight:600;color:var(--text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.back-to-now{position:fixed;bottom:var(--space-lg);right:var(--space-lg);z-index:40}.checklist{flex-direction:column}.checklist,.checklist-item{display:flex;gap:var(--space-sm)}.checklist-item{align-items:center}.checklist-item input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary)}.empty-state{text-align:center;padding:var(--space-2xl);color:var(--text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:var(--space-md)}.spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:var(--radius-full);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.oak-stock-page{min-height:100vh;padding:var(--space-lg) var(--space-lg) 110px;background:#f6f8f4}.oak-stock-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md);max-width:1320px;margin:0 auto var(--space-lg)}.oak-stock-header h1{margin-top:var(--space-xs);font-size:2rem;line-height:1.1}.oak-stock-header p,.oak-stock-updated{color:var(--text-secondary);font-size:.9rem}.oak-stock-back{color:var(--primary);font-size:.85rem;font-weight:600;text-decoration:none}.oak-stock-back:hover{text-decoration:underline}.oak-stock-header-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-end}.oak-stock-summary{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:var(--space-md);gap:var(--space-md);max-width:1320px;margin:0 auto var(--space-lg)}.oak-stock-summary-card{border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);padding:var(--space-md);box-shadow:var(--shadow-sm)}.oak-stock-summary-card span{display:block;color:var(--text-secondary);font-size:.78rem;font-weight:700;text-transform:uppercase}.oak-stock-summary-card strong{display:block;margin-top:var(--space-xs);font-size:1.9rem;line-height:1}.oak-stock-summary-card.success{border-color:#86efac}.oak-stock-summary-card.danger{border-color:#fca5a5}.oak-stock-summary-card.inactive{border-color:#94a3b8}.oak-stock-summary-card.pending{border-color:#fcd34d}.oak-stock-summary-card.failed{border-color:#cbd5e1}.oak-stock-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);max-width:1320px;margin:0 auto var(--space-md);flex-wrap:wrap}.oak-stock-filters{display:flex;gap:var(--space-xs);flex-wrap:wrap}.oak-stock-filters button{border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;font-size:.84rem;font-weight:700;padding:.55rem .8rem;transition:all var(--transition-fast)}.oak-stock-filters button.active,.oak-stock-filters button:hover{background:var(--primary);border-color:var(--primary);color:#fff}.oak-stock-error{border:1px solid #fca5a5;border-radius:8px;background:var(--danger-light);color:#991b1b;padding:var(--space-md);font-weight:600}.oak-stock-error,.oak-stock-refresh-status{max-width:1320px;margin:0 auto var(--space-md)}.oak-stock-refresh-status{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;border:1px solid #bbf7d0;border-radius:8px;background:#f0fdf4;color:#166534;padding:var(--space-sm) var(--space-md);font-size:.9rem}.oak-stock-refresh-status.active{border-color:#fcd34d;background:#fffbeb;color:#92400e}.oak-stock-refresh-status.failed{border-color:#fca5a5;background:var(--danger-light);color:#991b1b}.oak-stock-refresh-status strong{font-weight:800}.oak-stock-loading{display:flex;justify-content:center;padding:var(--space-2xl)}.oak-stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:var(--space-md);gap:var(--space-md);max-width:1320px;margin:0 auto var(--space-xl)}.oak-stock-card{position:relative;min-height:230px;width:100%;border:1px solid transparent;border-radius:8px;padding:0;color:var(--text-primary);display:flex;flex-direction:column;align-items:flex-start;text-align:left;overflow:visible;box-shadow:var(--shadow);transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.oak-stock-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.oak-stock-card.in{background:#ecfdf3;border-color:#86efac}.oak-stock-card.out{background:#fff1f2;border-color:#fca5a5}.oak-stock-card.inactive{background:#f1f5f9;border-color:#94a3b8}.oak-stock-card.pending{background:#fffbeb;border-color:#fcd34d}.oak-stock-card.failed{background:#f8fafc;border-color:#cbd5e1}.oak-stock-card.unsaved{border-color:#38bdf8;box-shadow:0 0 0 2px rgba(56,189,248,.25),var(--shadow)}.oak-stock-card.synced{box-shadow:inset 0 0 0 1px rgba(34,197,94,.18),var(--shadow)}.oak-stock-card-main{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer;display:flex;flex:1 1;flex-direction:column;align-items:flex-start;text-align:left;width:100%;padding:var(--space-md);min-height:230px}.oak-stock-card-main:disabled{cursor:not-allowed}.oak-stock-card-status{align-self:flex-end;border-radius:var(--radius-full);background:hsla(0,0%,100%,.78);border:1px solid rgba(15,23,42,.08);font-size:.75rem;font-weight:800;padding:.25rem .55rem}.oak-stock-card-visual{display:grid;place-items:center;width:72px;height:72px;border-radius:8px;margin:var(--space-md) 0;background:hsla(0,0%,100%,.7);border:1px solid rgba(15,23,42,.08);font-size:2.4rem;line-height:1}.oak-stock-card-name{font-size:1.1rem;font-weight:800;line-height:1.2;overflow-wrap:anywhere}.oak-stock-card-category{margin-top:var(--space-xs);color:var(--text-secondary);font-size:.85rem;font-weight:700}.oak-stock-card-error,.oak-stock-card-meta,.oak-stock-card-pending,.oak-stock-card-sync-ok{margin-top:var(--space-sm);font-size:.78rem;color:var(--text-secondary)}.oak-stock-card-sync-ok{color:#166534;font-weight:800}.oak-stock-card-error{color:#991b1b;font-weight:700;overflow-wrap:anywhere}.oak-stock-card-pending{display:inline-flex;align-items:center;gap:var(--space-xs);color:#92400e;font-weight:800}.oak-stock-card-pending .spinner{width:14px;height:14px;border-width:2px}.oak-stock-card-menu{position:absolute;top:var(--space-sm);left:var(--space-sm);z-index:5}.oak-stock-card-menu-button{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:hsla(0,0%,100%,.82);border:1px solid rgba(15,23,42,.1);border-radius:8px;cursor:pointer;display:inline-flex;flex-direction:column;gap:3px;height:32px;justify-content:center;padding:0;width:32px}.oak-stock-card-menu-button span{background:#334155;border-radius:999px;display:block;height:2px;width:14px}.oak-stock-card-menu-button:hover:not(:disabled),.oak-stock-card-menu-button[aria-expanded=true]{background:#fff;border-color:#64748b}.oak-stock-card-menu-button:disabled{cursor:not-allowed;opacity:.7}.oak-stock-card-menu-popover{background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-lg);margin-top:var(--space-xs);min-width:150px;padding:var(--space-xs)}.oak-stock-card-active-toggle{border:0;border-radius:8px;background:transparent;color:#334155;cursor:pointer;font-size:.78rem;font-weight:800;padding:.55rem .65rem;text-align:left;width:100%}.oak-stock-card-active-toggle.inactive{color:#166534}.oak-stock-card-active-toggle:hover:not(:disabled){background:#f1f5f9}.oak-stock-card-active-toggle:disabled{cursor:not-allowed;opacity:.7}.oak-stock-log{max-width:1320px;margin:0 auto}.oak-stock-batch-list{display:flex;flex-direction:column;gap:var(--space-md)}.oak-stock-batch{border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);box-shadow:var(--shadow-sm);overflow:hidden}.oak-stock-batch-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);background:var(--bg-secondary);border-bottom:1px solid var(--border)}.oak-stock-batch-header div{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.oak-stock-batch-header span{color:var(--text-secondary);font-size:.82rem}.oak-stock-batch-error{padding:var(--space-sm) var(--space-md);border-bottom:1px solid #fca5a5;background:var(--danger-light);color:#991b1b;font-size:.85rem;font-weight:700}.oak-stock-section-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-sm)}.oak-stock-section-title h2{font-size:1.2rem}.oak-stock-section-title span{color:var(--text-secondary);font-size:.85rem}.oak-stock-log-table{overflow-x:auto;border:0;border-radius:0;background:var(--bg-secondary);box-shadow:none}.oak-stock-log-row{display:grid;grid-template-columns:minmax(170px,1.3fr) minmax(110px,.8fr) minmax(105px,.7fr) minmax(110px,.75fr) minmax(105px,.7fr) minmax(125px,.85fr) minmax(125px,.85fr) minmax(170px,1.2fr);grid-gap:var(--space-md);gap:var(--space-md);min-width:1120px;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);align-items:center;font-size:.85rem}.oak-stock-log-row:last-child{border-bottom:none}.oak-stock-log-head{background:var(--bg-tertiary);color:var(--text-secondary);font-size:.75rem;font-weight:800;text-transform:uppercase}.oak-stock-log-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.oak-stock-log-empty{padding:var(--space-lg);color:var(--text-muted);text-align:center}.oak-stock-change-bar{position:fixed;left:50%;bottom:var(--space-md);z-index:80;width:min(960px,calc(100vw - 32px));transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);border:1px solid rgba(104,33,69,.18);border-radius:8px;background:hsla(0,0%,100%,.96);box-shadow:var(--shadow-lg);padding:var(--space-md)}.oak-stock-change-bar span,.oak-stock-change-bar strong{display:block}.oak-stock-change-bar span{color:var(--text-secondary);font-size:.85rem;margin-top:2px}.oak-stock-change-actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-end}@media (max-width:640px){.header{padding:var(--space-sm) var(--space-md)}.content{padding:var(--space-md)}.modal{max-height:100vh;border-radius:0}.pin-btn{width:70px;height:70px;font-size:1.25rem}.oak-stock-page{padding:var(--space-md)}.oak-stock-header{align-items:flex-start;flex-direction:column}.oak-stock-header h1{font-size:1.6rem}.oak-stock-header-actions{justify-content:flex-start;width:100%}.oak-stock-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.oak-stock-grid{grid-template-columns:1fr}.oak-stock-change-bar{align-items:stretch;flex-direction:column}.oak-stock-change-actions{justify-content:stretch}.oak-stock-change-actions .btn{flex:1 1}}.worker-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.worker-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.worker-header-left{display:flex;align-items:baseline;gap:var(--space-md)}.worker-header-left h1{font-size:1.5rem;font-weight:600}.worker-date{font-size:.875rem;color:var(--text-secondary)}.worker-header-right{display:flex;align-items:center;gap:var(--space-sm)}.worker-name{font-weight:500;color:var(--text-secondary)}.sound-toggle{width:36px;height:36px;border:none;background:var(--bg-tertiary);border-radius:var(--radius-md);cursor:pointer;font-size:1rem}.sound-toggle.active{background:var(--primary);color:#fff}.worker-content{display:flex;flex:1 1;overflow:hidden}.timeline-container{flex:1 1;display:flex;flex-direction:column;position:relative;background:var(--bg-secondary);border-right:1px solid var(--border)}.timeline-scroll{flex:1 1;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:none;touch-action:pan-y}.timeline-grid{position:relative;margin-left:65px}.timeline-hour-mark{position:absolute;left:-65px;right:0;display:flex;align-items:flex-start}.timeline-hour-label{width:55px;padding-right:var(--space-sm);font-size:.75rem;color:var(--text-muted);text-align:right;flex-shrink:0;transform:translateY(-8px)}.timeline-hour-line{flex:1 1;height:1px;background:var(--border)}.timeline-half-hour-line{position:absolute;left:65px;right:0;height:1px;background:var(--timeline-line)}.timeline-quarter-line{position:absolute;left:65px;right:0;height:1px;background:var(--timeline-line-light)}.timeline-now-indicator{position:absolute;left:-65px;right:0;display:flex;align-items:center;z-index:20;pointer-events:none}.now-dot{width:12px;height:12px;border-radius:50%;margin-left:49px;flex-shrink:0;box-shadow:0 0 0 3px rgba(239,68,68,.2)}.now-dot,.now-line{background:var(--danger)}.now-line{flex:1 1;height:2px}.now-time{position:absolute;left:0;font-size:.625rem;font-weight:700;color:var(--danger);background:var(--bg-secondary);padding:0 4px}.timeline-task{position:absolute;left:10px;right:20px;min-height:48px;background:linear-gradient(135deg,var(--task-gradient-start) 0,var(--task-gradient-end) 100%);border-left:4px solid var(--primary);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);cursor:pointer;transition:all var(--transition-fast);z-index:10;display:flex;flex-direction:column;justify-content:center}.timeline-task:hover{transform:translateX(4px);box-shadow:var(--shadow-md)}.timeline-task.completed{background:linear-gradient(135deg,var(--success-light) 0,var(--success-light) 100%);border-left-color:var(--success);opacity:.9}.timeline-task.overdue{background:linear-gradient(135deg,var(--danger-light) 0,var(--danger-light) 100%);border-left-color:var(--danger)}.timeline-task-time{font-size:.75rem;font-weight:600;color:var(--text-secondary)}.timeline-task-title{font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-task-duration{font-size:.625rem;color:var(--text-muted);margin-top:2px}.timeline-task-check{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;background:var(--success);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem}.back-to-now-btn{position:absolute;bottom:var(--space-lg);left:50%;transform:translateX(-50%);background:var(--danger);color:#fff;border:none;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);font-size:.875rem;font-weight:500;cursor:pointer;box-shadow:var(--shadow-lg);z-index:30;transition:all var(--transition-fast)}.back-to-now-btn:hover{transform:translateX(-50%) scale(1.05)}.worker-sidebar{width:320px;background:var(--bg-primary);overflow-y:auto;display:flex;flex-direction:column;flex-shrink:0}.sidebar-section{padding:var(--space-md);border-bottom:1px solid var(--border)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.sidebar-header h2{font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.badge-count,.sidebar-header h2{font-weight:600;color:var(--text-secondary)}.badge-count{min-width:24px;height:24px;background:var(--bg-tertiary);font-size:.75rem;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 var(--space-sm)}.badge-count.success{background:var(--success-light);color:#166534}.task-list{display:flex;flex-direction:column;gap:var(--space-xs)}.task-item{display:flex;align-items:center;padding:var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.task-item:hover{background:var(--bg-tertiary)}.task-item.overdue{border-left:3px solid var(--danger)}.task-item.completed{opacity:.7}.task-item-left{display:flex;align-items:center;gap:var(--space-sm);flex:1 1;min-width:0}.task-dot{width:8px;height:8px;background:var(--primary);border-radius:50%;flex-shrink:0}.task-dot.overdue{background:var(--danger)}.task-check{width:20px;height:20px;background:var(--success);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.625rem;flex-shrink:0}.task-item-content{flex:1 1;min-width:0}.task-item-title{font-weight:500;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-item-time{display:flex;align-items:center;gap:var(--space-sm)}.task-item-meta,.task-item-time{font-size:.75rem;color:var(--text-muted)}.overdue-label{color:var(--danger);font-weight:500}.empty-message{text-align:center;padding:var(--space-lg);font-size:.875rem}.empty-message,.empty-message.muted{color:var(--text-muted)}.check-icon{display:block;font-size:2rem;margin-bottom:var(--space-sm)}.message-list{display:flex;flex-direction:column;gap:var(--space-xs)}.message-item{padding:var(--space-sm);background:var(--bg-secondary);border-radius:var(--radius-md)}.message-title{font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:var(--space-xs)}.urgent-icon{color:var(--danger)}.message-time{font-size:.75rem;color:var(--text-muted)}@media (max-width:768px){.worker-content{flex-direction:column}.timeline-container{flex:none;height:50vh;border-right:none;border-bottom:1px solid var(--border)}.worker-sidebar{width:100%;flex:1 1}}.task-modal-wrapper{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center}.task-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6);animation:fadeIn var(--transition-fast)}.task-modal-container{position:relative;z-index:1;width:100%;max-width:500px;max-height:90vh;margin:var(--space-md);animation:slideUp var(--transition-normal)}.task-modal{background:var(--bg-secondary);border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px rgba(0,0,0,.25);display:flex;flex-direction:column;max-height:90vh;overflow:hidden}.task-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border);flex-shrink:0}.task-modal-header h2{font-size:1.25rem;font-weight:600;margin:0}.task-modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:none;border-radius:var(--radius-md);font-size:1.25rem;cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast)}.task-modal-close:hover{background:var(--border);color:var(--text-primary)}.task-modal-body{padding:var(--space-lg);overflow-y:auto;flex:1 1}.task-modal-footer{padding:var(--space-lg);border-top:1px solid var(--border);background:var(--bg-tertiary);flex-shrink:0}@media (max-width:640px){.task-modal-container{margin:0;max-height:100vh;max-width:100%}.task-modal{border-radius:0;max-height:100vh}}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:var(--space-md);z-index:100}.modal-backdrop>.modal{border-radius:var(--radius-xl);max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);padding:var(--space-lg)}.form-input,.modal-backdrop>.modal{background:var(--bg-secondary);width:100%}.form-input{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);font-family:inherit;font-size:.95rem;color:var(--text-primary)}.form-input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(104,33,69,.1)}.form-label{font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.03em}.data-table{border-collapse:collapse;background:var(--bg-secondary);border-radius:var(--radius-md);overflow:hidden}.data-table th{text-align:left;background:var(--bg-tertiary);font-weight:600;font-size:.85rem;color:var(--text-secondary)}.data-table td,.data-table th{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border)}.data-table td{font-size:.9rem}.data-table tr:last-child td{border-bottom:none}.btn-danger{background:var(--danger);color:#fff;border:none;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:pointer;font-weight:500}.btn-danger:hover{background:#c41e1e}.rota-shift-chip:hover{filter:brightness(.95)}.rota-shift-add:hover{background:var(--bg-tertiary)}.rota-site-switcher{font-family:inherit}.sweet-cleaning-page{min-height:100vh;background:#fff7fb;padding:20px}.sweet-cleaning-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.sweet-cleaning-header h1{font-size:2rem;line-height:1.15;margin:4px 0;color:#3f1238;letter-spacing:0}.sweet-cleaning-header p,.sweet-cleaning-updated,.sweet-section-title span{color:#6b7280}.sweet-cleaning-back{color:#6b2e66;font-weight:700;text-decoration:none}.sweet-cleaning-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.sweet-cleaning-actions,.sweet-filter-group,.sweet-label-toggle,.sweet-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sweet-legend{padding:8px;background:#fff;border:1px solid #f3d2e8;border-radius:8px}.sweet-legend-item{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 8px;color:#374151;font-size:.875rem}.sweet-legend-item strong{color:#111827}.sweet-legend-dot{width:14px;height:14px;border-radius:50%;border:2px solid}.sweet-legend-dot.clean{color:#15803d;background:#dcfce7}.sweet-legend-dot.due{color:#d97706;background:#fef3c7}.sweet-legend-dot.overdue{color:#dc2626;background:#fee2e2}.sweet-legend-dot.never{color:#64748b;background:#e2e8f0}.sweet-filter-group{padding:4px;background:#fff;border:1px solid #f3d2e8;border-radius:8px}.sweet-filter-group button{min-height:40px;border:0;background:transparent;color:#4b5563;border-radius:6px;padding:0 12px;font-weight:700;cursor:pointer}.sweet-filter-group button.active{background:#6b2e66;color:#fff}.sweet-label-toggle{min-height:48px;padding:0 12px;background:#fff;border:1px solid #f3d2e8;border-radius:8px;color:#374151;font-weight:700}.sweet-label-toggle input{width:20px;height:20px}.sweet-cleaning-updated{margin-bottom:14px;font-size:.875rem}.sweet-cleaning-error,.sweet-form-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;border-radius:8px;padding:10px 12px;margin-bottom:12px}.sweet-cleaning-loading{min-height:360px;display:flex;align-items:center;justify-content:center}.sweet-map-section,.sweet-priority-section{background:#fff;border:1px solid #f3d2e8;border-radius:8px;padding:14px;box-shadow:var(--shadow-sm)}.sweet-map-section{margin-bottom:16px}.sweet-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.sweet-section-title h2{font-size:1.25rem;color:#3f1238;letter-spacing:0}.sweet-map-scroll{width:100%;overflow-x:auto;border:1px solid #f1cfe7;border-radius:8px;background:#fffafc;-webkit-overflow-scrolling:touch}.sweet-wall-svg{display:block;width:100%;min-width:860px;height:auto;touch-action:manipulation}.sweet-bay-frame line{stroke:#111827;stroke-width:1}.sweet-bay-label{fill:#6b7280;font-size:18px;font-weight:700}.sweet-zone{cursor:pointer;outline:none;transition:opacity var(--transition-fast),transform var(--transition-fast)}.sweet-zone:hover{opacity:.88}.sweet-zone.muted{opacity:.22}.sweet-zone.selected{opacity:1}.sweet-zone-label{pointer-events:none;fill:#111827;font-size:14px;font-weight:800}.sweet-priority-list{display:grid;grid-gap:8px;gap:8px}.sweet-priority-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;grid-gap:10px;gap:10px;width:100%;min-height:58px;padding:10px;background:#fffafc;border:1px solid #f3d2e8;border-radius:8px;text-align:left;cursor:pointer}.sweet-priority-row:hover{border-color:#6b2e66}.sweet-priority-main{min-width:0;display:grid;grid-gap:2px;gap:2px}.sweet-priority-main span,.sweet-priority-meta{color:#6b7280;font-size:.875rem}.sweet-priority-score{min-width:40px;height:40px;border-radius:8px;background:#f3e8ff;color:#581c87}.sweet-priority-score,.sweet-status-pill{display:inline-flex;align-items:center;justify-content:center;font-weight:800}.sweet-status-pill{min-height:30px;padding:4px 10px;border-radius:999px;font-size:.78rem;white-space:nowrap}.sweet-status-pill.clean{background:#dcfce7;color:#166534}.sweet-status-pill.due{background:#fef3c7;color:#92400e}.sweet-status-pill.overdue{background:#fee2e2;color:#991b1b}.sweet-status-pill.never{background:#e2e8f0;color:#334155}.sweet-empty{padding:24px;text-align:center;color:#6b7280;background:#fffafc;border:1px dashed #f3d2e8;border-radius:8px}.sweet-empty.compact{padding:14px}.sweet-sheet-wrapper{position:fixed;inset:0;z-index:1200}.sweet-sheet-backdrop{position:absolute;inset:0;border:0;background:rgba(17,24,39,.45);cursor:pointer}.sweet-sheet{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,calc(100vw - 20px));max-height:88vh;overflow-y:auto;background:#fff;border:1px solid #f3d2e8;border-radius:8px 8px 0 0;box-shadow:var(--shadow-lg);padding:16px}.sweet-sheet-header{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #f3d2e8;margin-bottom:12px}.sweet-sheet-header h2{margin-top:8px;color:#3f1238;line-height:1.2;letter-spacing:0}.sweet-sheet-header p{color:#6b7280}.sweet-sheet-close{flex:0 0 auto;width:44px;height:44px;border:1px solid #f3d2e8;border-radius:8px;background:#fff7fb;color:#3f1238;font-size:1.75rem;line-height:1;cursor:pointer}.sweet-zone-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:14px}.sweet-zone-stats div{background:#fff7fb;border:1px solid #f3d2e8;border-radius:8px;padding:10px}.sweet-zone-stats span{display:block;color:#6b7280;font-size:.75rem;margin-bottom:2px}.sweet-zone-stats strong{color:#111827}.sweet-clean-form,.sweet-history,.sweet-instructions{border-top:1px solid #f3d2e8;padding-top:14px;margin-top:14px}.sweet-clean-form h3,.sweet-history h3,.sweet-instructions h3{color:#3f1238;margin-bottom:8px;font-size:1rem}.sweet-instructions p{color:#374151;white-space:pre-wrap}.sweet-clean-form{display:grid;grid-gap:12px;gap:12px}.sweet-clean-form label{display:grid;grid-gap:6px;gap:6px;color:#374151;font-weight:700}.sweet-clean-form textarea{min-height:88px;resize:vertical;padding:10px}.sweet-clean-form textarea,.sweet-text-input{width:100%;border:1px solid #f3d2e8;border-radius:8px;font:inherit}.sweet-text-input{min-height:44px;padding:0 10px}.sweet-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.sweet-photo-capture{display:grid;grid-gap:8px;gap:8px;padding:10px;border:1px solid #f3d2e8;border-radius:8px;background:#fffafc}.sweet-photo-capture>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.sweet-photo-capture>div:first-child span{padding:2px 8px;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:.72rem;font-weight:800}.sweet-photo-capture img,.sweet-photo-placeholder{width:100%;aspect-ratio:4/3;border-radius:8px;border:1px solid #f3d2e8;object-fit:cover;background:#f8fafc}.sweet-photo-placeholder{display:flex;align-items:center;justify-content:center;color:#6b7280;font-weight:700}.sweet-check-row{grid-template-columns:auto 1fr;align-items:center;min-height:44px}.sweet-check-row input{width:22px;height:22px}.sweet-history-list{display:grid;grid-gap:8px;gap:8px}.sweet-history-item{border:1px solid #f3d2e8;border-radius:8px;padding:10px;background:#fffafc}.sweet-history-item div{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.sweet-history-item p,.sweet-history-item span{color:#6b7280}.sweet-history-issue{color:#991b1b!important;font-weight:700}.sweet-history-photos{display:grid!important;grid-template-columns:repeat(2,minmax(0,120px));justify-content:start!important;margin-top:8px}.sweet-history-photos a{position:relative;display:block;min-width:0;color:inherit;text-decoration:none}.sweet-history-photos a>span,.sweet-history-photos img{width:100%;aspect-ratio:4/3;display:block;border-radius:8px;object-fit:cover;background:#f8fafc;border:1px solid #f3d2e8}.sweet-history-photos a>span{display:flex;align-items:center;justify-content:center;color:#6b7280}.sweet-history-photos strong{position:absolute;left:6px;bottom:6px;padding:2px 6px;border-radius:6px;background:rgba(17,24,39,.78);color:#fff;font-size:.7rem}@media (max-width:820px){.sweet-cleaning-page{padding:12px}.sweet-cleaning-header{align-items:stretch;flex-direction:column}.sweet-cleaning-header h1{font-size:1.65rem}.sweet-cleaning-actions,.sweet-cleaning-toolbar{align-items:stretch;flex-direction:column}.sweet-filter-group,.sweet-legend{width:100%}.sweet-filter-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.sweet-label-toggle{justify-content:center}.sweet-wall-svg{min-width:760px}.sweet-priority-row{grid-template-columns:auto minmax(0,1fr) auto}.sweet-priority-meta{display:none}.sweet-sheet{width:100vw;max-height:92vh;border-radius:8px 8px 0 0}.sweet-photo-grid,.sweet-zone-stats{grid-template-columns:1fr}}