*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0e0e10;color:#f1f1f3;font-size:14px}button{background:#2a2a30;color:#f1f1f3;border:1px solid #3a3a42;border-radius:6px;padding:6px 10px;cursor:pointer;font-size:13px}button:hover{background:#34343c}button.primary{background:#4f7cff;border-color:#4f7cff}button.danger{background:transparent;border-color:#5a2a2a;color:#ff9090;padding:2px 6px;font-size:11px}input,select{background:#1a1a1f;color:#f1f1f3;border:1px solid #2a2a30;border-radius:6px;padding:6px 8px;font-size:13px}input:focus,select:focus{outline:none;border-color:#4f7cff}.app{display:flex;flex-direction:column;height:100vh}.tabs{display:flex;gap:4px;padding:10px 16px;border-bottom:1px solid #1f1f24;background:#131316}.tabs button{background:transparent;border:none;padding:8px 14px}.tabs button.active{background:#2a2a30}.main{flex:1;overflow:hidden}.main--scroll{overflow-y:auto}.empty{color:#555;padding:30px;text-align:center}.settings{padding:20px;overflow:auto;height:100%}.settings .card .list{max-height:none;overflow:visible}.sub-tabs{display:flex;gap:4px;border-bottom:1px solid #1f1f24;margin-bottom:16px;max-width:1200px}.sub-tabs button{background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 14px;color:#aaa;font-size:13px;cursor:pointer}.sub-tabs button.active{color:#f1f1f3;border-bottom-color:#4f7cff}.sub-tabs button:hover:not(.active){color:#d4d8e0}.sub-pane{max-width:1200px}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:1200px}.card{background:#16161a;border:1px solid #1f1f24;border-radius:10px;padding:16px}.card h3{margin:0 0 12px;font-size:15px}.card .row{display:flex;gap:6px;margin-bottom:6px;align-items:center}.card .list{max-height:260px;overflow:auto}.card .list .item{display:flex;gap:8px;align-items:center;padding:4px 6px;border-radius:4px}.card .list .item:hover{background:#1c1c22}.card .list .item .label{flex:1}.section-label{font-size:11px;color:#888}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#16161a;border:1px solid #2a2a30;border-radius:10px;padding:20px;min-width:360px;max-width:480px;box-shadow:0 8px 40px #00000080}.board{display:flex;height:100%}.board-sidebar{width:280px;border-right:1px solid #1f1f24;display:flex;flex-direction:column;padding:12px;gap:10px;background:#131316}.search-box input{width:100%}.seg{display:flex;background:#1a1a1f;border:1px solid #2a2a30;border-radius:6px;padding:2px;gap:2px}.seg button{flex:1;background:transparent;border:none;padding:4px 10px;font-size:12px;color:#aaa;border-radius:4px;white-space:nowrap}.seg button.active{background:#4f7cff;color:#fff}.palette{flex:1;overflow:auto;display:flex;flex-direction:column;gap:4px}.palette h4{margin:8px 0 4px;font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.5px}.palette-recipes-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.palette-cat{font-size:11px;background:#16161a;color:#cdd2da;border:1px solid #2a2a32;border-radius:5px;padding:2px 6px;cursor:pointer;max-width:55%}.chip{background:#1f1f26;border:1px solid #2a2a30;padding:6px 8px;border-radius:6px;cursor:grab;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;align-items:stretch}.chip:hover{background:#25252c;border-color:#3a3a42}.chip.action{border-left:3px solid #4f7cff}.chip.item{border-left:3px solid #5fc16a}.chip.item.ingredient{border-left-color:#e08a3a}.chip.item.ingredient .chip-name{color:#f0a060}.chip.disabled{opacity:.35;cursor:not-allowed;background:#181820}.chip.disabled:hover{background:#181820;border-color:#2a2a30}.chip-main{display:flex;justify-content:space-between;align-items:center;gap:6px}.chip-name{font-weight:500}.chip-meta{font-size:11px;margin-top:2px;color:#888}.chip .tag{font-size:10px;color:#888}.chip.var-under{background:#2e1515;border-color:#6a2a2a}.chip.var-under:hover{background:#371a1a}.chip.var-partial{background:#2f2a12;border-color:#6a5e22}.chip.var-partial:hover{background:#393318}.chip.var-ok{background:#14281a;border-color:#2a5a2e}.chip.var-ok:hover{background:#18301f}.chip.var-over{background:#2a261a;border-color:#5a522a}.chip.var-over:hover{background:#33301f}.chip{cursor:pointer}.chip.item.highlighted{outline:2px solid #ffd24a;outline-offset:-2px;box-shadow:0 0 0 3px #ffd24a2e}.variance,.chip-meta{font-variant-numeric:tabular-nums}.variance{font-size:11px;padding:2px 6px;border-radius:4px;background:#1a1a1f}.variance.ok,.chip-meta.ok{color:#6fcf7d}.variance.partial,.chip-meta.partial{color:#e6c84a}.variance.under,.chip-meta.under{color:#ff8a8a}.variance.over,.chip-meta.over{color:#d6c25d}.variance.none,.chip-meta.none{color:#666}.board-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.board-header{padding:12px 16px;border-bottom:1px solid #1f1f24;display:flex;align-items:center;gap:12px;background:#131316}.timeline-wrap{flex:1;overflow:auto}.grid-board{display:grid;align-items:start}.grid-board.sxs .sxs-corner{position:sticky;top:0;z-index:3;background:#131316;border-bottom:1px solid #1f1f24;height:64px}.sxs-col-head{position:sticky;top:0;z-index:3;background:#131316;border-bottom:1px solid #1f1f24;border-left:1px solid #1a1a1e;padding:6px 12px;height:64px}.sxs-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.sxs-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sxs-shift{font-size:11px;color:#888}.sxs-actions{flex:none;display:flex;flex-direction:column;gap:3px}.shift-dl,.shift-collapse{flex:none;background:transparent;border:1px solid #2a2a32;color:#9fb4ff;border-radius:5px;font-size:11px;line-height:1;padding:2px 6px;cursor:pointer}.shift-dl:hover,.shift-collapse:hover{background:#1b2638;border-color:#5b8def;color:#fff}.sxs-col-head.collapsed{display:flex;flex-direction:column;align-items:center;gap:6px;padding:6px 2px;cursor:pointer;overflow:hidden}.sxs-name-vert{writing-mode:vertical-rl;font-size:11px;font-weight:600;color:#cdd2da;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:38px}.member-col.collapsed{border-left:1px solid #1a1a1e;background:repeating-linear-gradient(0deg,#0e0e11 0,#0e0e11 1px,#0b0b0e 1px,#0b0b0e 76px);cursor:pointer}.member-col.collapsed:hover{background:#14141a}.time-col{border-right:1px solid #1a1a1e}.time-cell{height:76px;padding:6px 12px;font-size:12px;color:#888;border-bottom:1px solid #1a1a1e;box-sizing:border-box}.member-col{position:relative;border-left:1px solid #1a1a1e}.bg-slot{position:relative;height:76px;border-bottom:1px solid #1a1a1e;box-sizing:border-box}.bg-slot.outside{background:#ffc40024;cursor:not-allowed;pointer-events:none}.bg-slot.over{background:#1c2a4f}.insertion-line{position:absolute;left:0;right:0;height:3px;background:#4f7cff;box-shadow:0 0 8px #4f7cffb3;pointer-events:none;z-index:3}.insertion-top{top:-1px}.insertion-bottom{bottom:-1px}.pill{position:absolute;left:4px;right:4px;background:#2a2a32;border-radius:6px;border:1px solid #3a3a42;overflow:hidden;font-size:12px;cursor:grab}.pill:active{cursor:grabbing}.pill.reached{background:#1f3a25;border-color:#4caf50}.pill.reached .pill-resize{background:#4caf5040;border-top-color:#4caf5099}.pill.selected{outline:2px solid #4f7cff;outline-offset:-2px;box-shadow:0 0 0 4px #4f7cff2e}.pill.highlighted{outline:2px solid #ffd24a;outline-offset:-2px;box-shadow:0 0 0 4px #ffd24a40;z-index:4}.pill.dimmed{opacity:.18}.pill.dimmed:hover{opacity:.4}.pill-body{display:flex;flex-direction:column;gap:2px;padding:4px 8px 12px;height:100%;box-sizing:border-box}.pill-r1{display:flex;align-items:baseline;gap:5px;min-width:0}.pill-r2{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pill-r3{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:auto}.pill-action{color:#9fb4ff;flex:none}.pill-body .pill-item-name{flex:1 1 auto;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}.pill-body .qty{width:56px;padding:2px 4px;font-size:12px}.pill-body .qty-unit{font-size:11px;color:#9aa0aa;margin-left:-2px}.pill-body .x{color:#888;cursor:pointer}.pill-body .check{color:#6fcf7d;cursor:pointer;font-size:14px;padding:0 4px}.pill-body .check:hover{color:#8de099}.pill-body .redo{color:#9aa0aa;cursor:pointer;font-size:14px;padding:0 4px}.pill-body .redo:hover{color:#d4d8e0}.pill-resize{position:absolute;left:0;right:0;bottom:0;height:10px;cursor:ns-resize;background:#4f7cff26;border-top:1px solid rgba(79,124,255,.4);z-index:2}.pill-resize:after{content:"";display:block;width:24px;height:2px;background:#ffffff80;border-radius:1px;margin:4px auto 0}.pill-resize:hover{background:#4f7cff73}.pill-duration{font-size:10px;font-variant-numeric:tabular-nums;color:#ffffff80;background:#0000004d;padding:0 5px;border-radius:3px;white-space:nowrap}.pill-pct{display:inline-flex;align-items:center;font-size:10px;font-variant-numeric:tabular-nums;color:#cdb35a;background:#78641e47;padding:0 4px;border-radius:3px;white-space:nowrap}.pill-pct .pct-input{width:26px;background:transparent;border:none;color:#e6c84a;font-size:10px;font-variant-numeric:tabular-nums;text-align:right;padding:0;margin:0}.pill-pct .pct-input:focus{outline:none}.marquee{position:fixed;background:#4f7cff26;border:1px solid rgba(79,124,255,.7);pointer-events:none;z-index:60;border-radius:2px}.rp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:70}.rp-panel{position:fixed;top:0;right:0;bottom:0;width:min(560px,92vw);background:#16161a;border-left:1px solid #2a2a30;box-shadow:-8px 0 32px #00000080;z-index:80;overflow:auto;padding:20px;animation:rpSlide .18s ease-out}@keyframes rpSlide{0%{transform:translate(100%)}to{transform:translate(0)}}.rp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.rp-name{font-size:20px;font-weight:600}.rp-meta{font-size:12px;color:#888;margin-top:4px}.rp-cat{background:#1f3a25;color:#6fcf7d;padding:2px 8px;border-radius:4px;font-size:11px}.rp-close{background:transparent;border:none;color:#888;font-size:28px;line-height:1;padding:0 4px;cursor:pointer}.rp-tag-this{font-size:11px;color:#f0a060;margin-left:6px}.rp-process{margin-top:16px}.rp-process h4{margin:0 0 8px;font-size:13px;color:#aaa;text-transform:uppercase;letter-spacing:.5px}.rp-process pre{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;color:#ccc;white-space:pre-wrap;word-wrap:break-word;background:#0e0e12;border:1px solid #1f1f24;border-radius:8px;padding:12px;margin:0;line-height:1.5}.pill-item-name:hover{color:#c8f0c8!important}.bulk-bar{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:50;background:#1a1a22;border:1px solid #2a2a35;border-radius:10px;padding:10px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 8px 32px #00000080;font-size:13px}.recipes-card .list,.recipes-card{max-height:none;overflow:visible}.recipes-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px}.recipes-table thead th{text-align:left;font-weight:500;color:#888;border-bottom:1px solid #2a2a30;padding:8px 6px}.recipes-table tbody td{padding:8px 6px;border-bottom:1px solid #1a1a1e}.recipes-table tr.recipes-row{cursor:pointer}.recipes-table tr.recipes-row:hover td{background:#1c1c22}.recipes-table tr.recipes-row.checked td{background:#15203a}.recipes-table tr.recipes-row.checked:hover td{background:#1a2848}.recipes-row .caret{color:#888}.recipes-row .recipe-name{font-weight:500}.recipes-detail-row td{background:#121216;padding:8px 16px 14px}.ing-table{width:100%;border-collapse:collapse;font-size:12px}.ing-table th,.ing-table td{text-align:left;padding:4px 8px;border-bottom:1px solid #1a1a1e}.ing-table th{color:#888;font-weight:500}.ing-table tr.ing-hidden td{opacity:.35;text-decoration:line-through;text-decoration-color:#ffffff4d}.ing-table tr.ing-hidden td:last-child{opacity:1;text-decoration:none}.ing-eye{background:transparent;border:none;font-size:14px;cursor:pointer;padding:2px 4px;filter:grayscale(.4);opacity:.6}.ing-eye:hover{opacity:1;filter:none}.tv-shell{min-height:100vh;max-width:640px;margin:0 auto;background:#0e0e10;color:#f1f1f3;display:flex;flex-direction:column}.tv-pin{margin:auto;padding:32px 20px;display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;box-sizing:border-box}.tv-title{font-size:18px;color:#aaa}.tv-pin-input{font-size:38px;letter-spacing:14px;text-align:center;width:280px;padding:14px 16px;background:#1a1a1f;border:1px solid #2a2a30;border-radius:12px;color:#f1f1f3}.tv-primary{width:100%;max-width:280px;background:#4f7cff;color:#fff;border:none;padding:14px;border-radius:10px;font-size:16px}.tv-error{color:#ff8080;font-size:14px}.tv-header{position:sticky;top:0;background:#131316;border-bottom:1px solid #1f1f24;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;z-index:10}.tv-name{font-size:20px;font-weight:600}.tv-shift{font-size:13px;color:#888;margin-top:2px}.tv-logout{background:transparent;color:#888;border:1px solid #2a2a30;border-radius:8px;padding:6px 10px;font-size:12px}.tv-icon-btn{background:transparent;color:#888;border:1px solid #2a2a30;border-radius:8px;padding:6px 10px;font-size:16px;line-height:1;cursor:pointer}.tv-icon-btn.on{background:#14281a;border-color:#4caf50;color:#6fcf7d}.tv-assigned{font-size:12px;color:#6fcf7d;margin-top:4px}.tv-banner{background:#3a2a18;border:1px solid #5a3a1f;color:#f0a060;padding:10px 14px;margin:0 16px 8px;border-radius:8px;cursor:pointer;font-size:13px}.tv-banner:hover{background:#45331c}.tv-list{display:flex;flex-direction:column;padding:8px 0 80px}.tv-empty{color:#666;text-align:center;padding:60px 20px}.tv-task{display:grid;grid-template-columns:84px 1fr auto;gap:14px;padding:14px 18px;border-bottom:1px solid #1a1a1e;align-items:start;cursor:pointer}.tv-task:active{background:#1c1c22}.tv-task.tv-done{opacity:.45}.tv-task.tv-now{background:linear-gradient(90deg,#1c2c55,#15203a);box-shadow:inset 4px 0 #4f7cff,0 0 20px #4f7cff40;border-bottom-color:#2a3a6a;animation:tvNowPulse 2.5s ease-in-out infinite}.tv-task.tv-now .tv-time-start{color:#b8c8ff;text-shadow:0 0 12px rgba(79,124,255,.5)}.tv-task.tv-now .tv-action,.tv-task.tv-now .tv-item{font-size:17px}@keyframes tvNowPulse{0%,to{box-shadow:inset 4px 0 #4f7cff,0 0 20px #4f7cff40}50%{box-shadow:inset 4px 0 #4f7cff,0 0 28px #4f7cff80}}.tv-time-start{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}.tv-time-end{font-size:12px;color:#888;margin-top:2px;font-variant-numeric:tabular-nums}.tv-task-body{min-width:0}.tv-task-title{display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}.tv-action{color:#9fb4ff;font-weight:500}.tv-item{color:#a8e0a8;font-weight:500}.tv-task-elapsed{font-size:14px;color:#6fcf7d;font-variant-numeric:tabular-nums;align-self:center;font-weight:500}.tv-kind{font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:4px;font-weight:500}.tv-kind-recipe{background:#1f3a25;color:#6fcf7d}.tv-kind-ingredient{background:#3a2a18;color:#f0a060}.tv-kind-done{background:#25303a;color:#8aafd0}.tv-kind-doing{background:#2a3a55;color:#9fb4ff}.tv-kind-paused{background:#3a2a3a;color:#d090d0}.tv-qty{margin-top:6px;display:inline-block;background:#2a2a32;border-radius:6px;padding:4px 10px;font-size:13px;font-variant-numeric:tabular-nums}.tv-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:flex-start;justify-content:center;z-index:200}.tv-modal{background:#16161a;width:100%;max-width:640px;max-height:92vh;border-radius:0 0 16px 16px;overflow:auto;padding:20px;border-bottom:1px solid #2a2a30}.tv-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.tv-modal-title{font-size:18px;font-weight:600}.tv-modal-sub{font-size:12px;color:#888;margin-top:4px}.tv-modal-close{background:transparent;border:none;color:#888;font-size:28px;line-height:1;padding:0 4px;cursor:pointer}.tv-timer{text-align:center;padding:18px 0;background:#0e0e12;border-radius:10px;margin-bottom:14px}.tv-timer-display{font-size:44px;font-weight:600;font-variant-numeric:tabular-nums;color:#f1f1f3}.tv-timer-label{font-size:12px;color:#888;margin-top:4px}.tv-actions{display:flex;gap:8px;margin-bottom:18px}.tv-actions button{flex:1;padding:14px;font-size:15px;background:#2a2a30;border:1px solid #3a3a42;color:#f1f1f3;border-radius:10px}.tv-actions .tv-primary{background:#4f7cff;border-color:#4f7cff;color:#fff}.tv-actions .tv-finish{background:#2a5a2e;border-color:#4caf50;color:#d8f0d8}.tv-actions button:disabled{opacity:.4;cursor:not-allowed}.tv-ings{border-top:1px solid #1f1f24;padding-top:14px}.tv-ings-head{font-size:13px;color:#aaa;margin-bottom:8px}.tv-ing{display:grid;grid-template-columns:minmax(0,1fr) minmax(60px,80px) minmax(60px,80px) minmax(36px,50px) minmax(110px,auto);column-gap:10px;align-items:center;padding:10px 12px;border:1px solid #1f1f24;border-radius:8px;margin-bottom:6px;background:#131316}.tv-ing-header{background:transparent;border:none;padding:4px 12px 6px;margin-bottom:0;font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.5px}.tv-ing-header>*{font-weight:500}.tv-ing-net{text-align:right;font-variant-numeric:tabular-nums}.tv-ing-gross-col{text-align:right;font-variant-numeric:tabular-nums;color:#c0a060}.tv-ing-unit{color:#888;font-size:12px}.tv-ing-action{display:flex;align-items:center;gap:8px;justify-content:flex-end}.tv-ing-doing{background:#15203a;border-color:#2a4080}.tv-ing-done{opacity:.55;border-color:#2a5a2e;background:#14281a}.tv-ing-externalized{opacity:.5;background:#131316}.tv-ing-externalized .tv-ing-name{text-decoration:line-through}.tv-ing-pill{font-size:11px;color:#f0a060;background:#2a1f14;border:1px solid #5a3a1f;border-radius:6px;padding:4px 8px}.tv-ing-main{flex:1;min-width:0}.tv-ing-name{font-weight:500}.tv-ing-qty{font-size:12px;color:#9aa0aa;margin-top:2px}.tv-ing-gross{color:#c0a060}.tv-ing-side{display:flex;align-items:center;gap:8px}.tv-ing-time{font-size:12px;color:#888;font-variant-numeric:tabular-nums;min-width:44px;text-align:right}.tv-ing-side button{background:#2a2a30;border:1px solid #3a3a42;color:#f1f1f3;padding:6px 10px;border-radius:6px;font-size:12px}.tv-ing-side .tv-finish{background:#2a5a2e;border-color:#4caf50;color:#d8f0d8}.tv-ing-side button:disabled{opacity:.4;cursor:not-allowed}.tv-assign-list{display:flex;flex-direction:column;gap:6px}.tv-assign-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#1a1a1f;border:1px solid #2a2a30;border-radius:10px;color:#f1f1f3;font-size:15px;cursor:pointer;text-align:left}.tv-assign-row:hover{background:#22222a}.tv-assign-row.selected{background:#14281a;border-color:#4caf50}.tv-assign-clear{color:#ff8080;border-color:#5a2a2a;background:#2a1a1a;margin-top:6px}.analytics{padding:20px;overflow:auto;height:100%;max-width:1400px;margin:0 auto}.analytics-filters{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;margin-bottom:16px;padding:12px 16px;background:#16161a;border:1px solid #1f1f24;border-radius:10px}.analytics-filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#888}.analytics-filters input[type=date],.analytics-filters select{min-width:200px;font-size:14px}.analytics-filters .link-btn{background:transparent;border:none;color:#9fb4ff;font-size:12px;padding:2px 6px;cursor:pointer;align-self:flex-start;margin-top:4px}.analytics-filters .link-btn:hover{color:#c0d0ff;text-decoration:underline}.stat-row{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap}.stat{flex:1;min-width:140px;background:#16161a;border:1px solid #1f1f24;border-radius:10px;padding:14px 18px}.stat-value{font-size:28px;font-weight:600;font-variant-numeric:tabular-nums}.stat-label{font-size:12px;color:#888;margin-top:4px}.analytics-section{background:#16161a;border:1px solid #1f1f24;border-radius:10px;padding:16px;margin-top:16px}.analytics-section h3{margin:0 0 12px;font-size:14px;color:#aaa}.member-table{width:100%;border-collapse:collapse;font-size:13px}.member-table th,.member-table td{padding:8px;border-bottom:1px solid #1a1a1e;text-align:left}.member-table th{color:#888;font-weight:500;font-size:12px}.progress-bar{position:relative;background:#1a1a1f;border-radius:4px;height:18px;overflow:hidden}.progress-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#4f7cff,#6fcf7d)}.progress-label{position:relative;z-index:1;display:block;text-align:right;padding:0 6px;font-size:11px;line-height:18px}.task-row{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:10px 8px;border-bottom:1px solid #1a1a1e}.task-row-now{background:#15203a}.task-row-time{font-weight:600;font-variant-numeric:tabular-nums;color:#aaa}.task-row-title{display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}.task-row-meta{font-size:12px;color:#888;margin-top:4px}.admin-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0e0e10;padding:20px}.admin-card{width:100%;max-width:360px;background:#16161a;border:1px solid #1f1f24;border-radius:14px;padding:28px;display:flex;flex-direction:column;gap:12px;box-shadow:0 8px 40px #00000080}.admin-title{margin:0;font-size:22px}.admin-sub{margin:0 0 6px;color:#888;font-size:13px;line-height:1.5}.admin-card input,.admin-card button.primary{padding:12px;font-size:14px}.admin-err{color:#ff8080;font-size:13px;margin-top:4px}.planning-root{--bg: #0f1115;--panel: #181b22;--panel-2: #1f232c;--border: #2a2f3a;--text: #e7eaf0;--muted: #9aa3b2;--accent: #4f8cff;--accent-soft: #22304d;--good: #35c48a;--row-alt: #1c202a;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100%;display:flex;flex-direction:column;background:var(--bg);color:var(--text)}.planning-root input[type=number]::-webkit-outer-spin-button,.planning-root input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.planning-root input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.planning-root h1{font-size:22px;margin:0 0 4px}.planning-root .sub{color:var(--muted);margin:0 0 28px;font-size:14px}.planning-root .topbar{flex-shrink:0;height:52px;display:flex;align-items:center;gap:24px;padding:0 20px;background:var(--panel);border-bottom:1px solid var(--border)}.planning-root .topbar .brand{font-weight:800;font-size:15px;letter-spacing:.01em;color:var(--muted)}.planning-root .topnav{display:flex;gap:4px}.planning-root .topnav button{padding:8px 16px;border-radius:9px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:14px;font-weight:600;cursor:pointer}.planning-root .topnav button:hover{color:var(--text);background:var(--panel-2)}.planning-root .topnav button.active{color:#fff;background:var(--accent)}.planning-root .shell{flex:1;display:flex}.planning-root .sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column}.planning-root .settings-page{max-width:1040px}.planning-root .sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 14px;border-bottom:1px solid var(--border);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}.planning-root .add-btn{width:28px;height:28px;border-radius:8px;border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);font-size:18px;line-height:1;cursor:pointer}.planning-root .add-btn:hover{background:var(--accent);color:#fff}.planning-root .nav-item{padding:12px 14px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;margin-bottom:6px;border:1px solid transparent}.planning-root .nav-item:hover{background:var(--panel-2)}.planning-root .nav-item.active{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.planning-root .plan-group{margin-bottom:16px}.planning-root .plan-group-head{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 8px;font-size:12px;font-weight:700;color:var(--muted)}.planning-root .add-btn.small{width:22px;height:22px;font-size:15px}.planning-root .empty-hint.small{font-size:12px;padding:4px 8px 8px;margin:0}.planning-root .nav-item.list{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 14px;font-weight:500;font-size:14px}.planning-root .nav-item.list .nav-item-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-root .plan-list{padding:10px;flex:1}.planning-root .empty-hint{color:var(--muted);font-size:13px;padding:10px 8px;line-height:1.5}.planning-root .plan-card{display:flex;align-items:center;gap:8px;padding:12px;border-radius:10px;border:1px solid transparent;cursor:pointer;margin-bottom:6px}.planning-root .plan-card:hover{background:var(--panel-2)}.planning-root .plan-card.active{background:var(--accent-soft);border-color:var(--accent)}.planning-root .plan-card-main{flex:1;min-width:0}.planning-root .plan-card-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-root .plan-card-meta{font-size:12px;color:var(--muted);margin-top:3px}.planning-root .del-btn{border:none;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px}.planning-root .del-btn:hover{color:#ff6b6b;background:var(--panel-2)}.planning-root .content{flex:1;min-width:0;padding:32px 32px 64px;max-width:1360px}.planning-root .content-empty{padding-top:60px}.planning-root .content-empty .btn{margin-top:8px}.planning-root .content-head{margin-bottom:22px}.planning-root .headline-input{width:100%;max-width:560px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text);font-size:22px;font-weight:700;padding:6px 8px;margin-left:-8px}.planning-root .headline-input:hover{border-color:var(--border)}.planning-root .headline-input:focus{outline:none;border-color:var(--accent);background:var(--panel)}.planning-root .content-sub{color:var(--muted);font-size:13px;margin-top:4px;padding-left:0}.planning-root .plan-head{display:flex;align-items:flex-start;gap:16px}.planning-root .print-btn{display:inline-flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 12px;font-size:14px;font-weight:600;cursor:pointer;flex-shrink:0}.planning-root .print-btn:hover{border-color:var(--accent)}.planning-root .plan-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.planning-root .col-gear{position:relative}.planning-root .gear-btn{font-weight:600}.planning-root .col-gear-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:190px;background:var(--panel);border:1px solid var(--accent);border-radius:10px;z-index:30;box-shadow:0 12px 32px #00000073;padding:4px}.planning-root .col-gear-head{padding:8px 10px 6px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.planning-root .col-gear-hint{padding:0 10px 8px;font-size:11px;line-height:1.4;color:var(--muted);border-bottom:1px solid var(--border);margin-bottom:4px}.planning-root .plan-tabs{flex-wrap:wrap}.planning-root .plan-tabs .pill{margin-right:4px}.planning-root .tabs{display:flex;gap:8px;margin-bottom:24px;padding:0;background:transparent;border-bottom:none}.planning-root .tab{padding:10px 18px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;font-size:14px;font-weight:600}.planning-root .tab.active{color:var(--text);border-color:var(--accent);background:var(--accent-soft)}.planning-root .tab.disabled{opacity:.45;cursor:not-allowed}.planning-root .tab .tick{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:4px;border-radius:50%;background:var(--good);color:#0b1f16;font-size:12px;font-weight:800;vertical-align:middle}.planning-root .panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:22px;margin-bottom:20px}.planning-root .drop{border:1.5px dashed var(--border);border-radius:12px;padding:34px;text-align:center;color:var(--muted);cursor:pointer;transition:border-color .15s,background .15s}.planning-root .drop:hover,.planning-root .drop.over{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.planning-root .drop strong{color:var(--text)}.planning-root .controls{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}.planning-root .field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.planning-root .field input,.planning-root .field select{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 12px;font-size:14px;min-width:120px}.planning-root .field .hint{font-size:12px;color:var(--muted);margin-top:6px}.planning-root .pill{position:static;left:auto;right:auto;display:inline-block;width:auto;background:var(--accent-soft);color:var(--accent);border:none;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;cursor:default;overflow:visible}.planning-root .summary{display:flex;gap:28px;margin-bottom:16px;flex-wrap:wrap}.planning-root .stat .n{font-size:20px;font-weight:700}.planning-root .stat .l{font-size:12px;color:var(--muted)}.planning-root .toolbar{display:flex;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.planning-root .toolbar input[type=search]{flex:1;min-width:200px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 12px;font-size:14px}.planning-root table{width:100%;border-collapse:collapse;font-size:14px}.planning-root th,.planning-root td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}.planning-root th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;-webkit-user-select:none;user-select:none}.planning-root td.num,.planning-root th.num{text-align:right;font-variant-numeric:tabular-nums}.planning-root tbody tr:hover{background:var(--panel-2)}.planning-root .per-day{color:var(--good);font-weight:600}.planning-root .prep-table td.per-day.adjusted{background:#b3261e;color:#fff;font-weight:700;border-radius:4px}.planning-root .btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer}.planning-root .btn:hover{background:var(--accent)}.planning-root .btn.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.planning-root .btn.ghost:hover{background:var(--panel-2)}.planning-root .prep-section{padding:16px 18px}.planning-root .prep-section-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.planning-root .section-name{flex:1;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--text);font-size:16px;font-weight:700;padding:6px 8px;margin-left:-8px}.planning-root .section-name:hover{border-color:var(--border)}.planning-root .section-name:focus{outline:none;border-color:var(--accent);background:var(--panel-2)}.planning-root .section-name-static{flex:1;font-size:16px;font-weight:700;padding:6px 0}.planning-root .section-actions{display:flex;gap:4px}.planning-root .icon-btn{width:28px;height:28px;border-radius:7px;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);cursor:pointer;font-size:14px;line-height:1}.planning-root .icon-btn:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.planning-root .icon-btn:disabled{opacity:.35;cursor:not-allowed}.planning-root .icon-btn.danger:hover:not(:disabled){color:#ff6b6b;border-color:#ff6b6b}.planning-root .table-scroll{overflow-x:auto;margin-bottom:10px}.planning-root .prep-table{width:100%;font-size:14px;table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:900px}.planning-root .prep-table.ro{min-width:1130px}.planning-root .prep-table th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap;cursor:default;background:var(--panel)}.planning-root .prep-table td{background:var(--panel)}.planning-root .prep-table tbody tr:nth-child(2n) td{background:var(--row-alt)}.planning-root .prep-table tbody tr:hover td{background:var(--panel-2)}.planning-root .prep-table th.item-head.ro,.planning-root .prep-table td.item-cell.ro{position:sticky;left:0;z-index:2;box-shadow:1px 0 0 var(--border)}.planning-root .prep-table td.item-cell.ro{line-height:1.35}.planning-root .item-edit{display:flex;align-items:center;gap:8px;min-width:0}.planning-root .item-name-input{flex:1;min-width:0;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);font-size:14px;padding:5px 6px;margin-left:-6px}.planning-root .item-name-input:hover{border-color:var(--border)}.planning-root .item-name-input:focus{outline:none;border-color:var(--accent);background:var(--panel-2)}.planning-root .unmapped-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;background:#5a2d2d;color:#ff9b6b;font-weight:800;font-size:11px;flex-shrink:0}.planning-root .mapped-note{color:var(--muted);font-size:12px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.planning-root .unmap-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--muted);font-size:13px;line-height:1;cursor:pointer;flex-shrink:0}.planning-root .unmap-btn:hover{background:#5a2d2d;color:#ff9b6b}.planning-root .manual-tag{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;background:#14402f;color:#6fe0a8;font-weight:800;font-size:11px;flex-shrink:0}.planning-root .map-row{margin-top:6px;max-width:340px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.planning-root .link-btn{background:none;border:none;padding:0;color:var(--accent);font-size:12px;cursor:pointer;white-space:nowrap}.planning-root .link-btn:hover{text-decoration:underline}.planning-root .manual-input{border-color:var(--accent)}.planning-root .manual-unit{max-width:84px}.planning-root .prep-table td .manual-input{box-sizing:border-box;width:100%;max-width:100%;min-width:0}.planning-root .prep-table td{padding:8px 10px;border-bottom:1px solid var(--border)}.planning-root .prep-table td.num,.planning-root .prep-table th.num{text-align:right;font-variant-numeric:tabular-nums}.planning-root .prep-row{cursor:grab}.planning-root .prep-row:hover{background:var(--panel-2)}.planning-root .prep-row .grip{color:var(--muted);cursor:grab;-webkit-user-select:none;user-select:none}.planning-root .missing{color:#ff9b6b;font-size:12px}.planning-root .mult-input{width:62px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:5px 8px;font-size:13px;text-align:right;font-variant-numeric:tabular-nums}.planning-root .mult-input:focus{outline:none;border-color:var(--accent)}.planning-root .prep-table td.recipes{color:#c3aefc;font-weight:700}.planning-root .prep-table td.production{color:#4f8cff;font-weight:700}.planning-root .stock-input{width:72px}.planning-root .col-toggles{display:flex;gap:14px;align-items:center;padding-top:4px}.planning-root .col-toggles .check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer;text-transform:none;letter-spacing:normal}.planning-root .col-toggles .check input{accent-color:var(--accent);cursor:pointer}.planning-root .add-item-row{display:flex;align-items:center;margin-top:4px}.planning-root .origin-tag{display:inline-block;width:16px;height:16px;line-height:16px;text-align:center;border-radius:4px;font-size:10px;font-weight:800;margin-right:8px;vertical-align:middle}.planning-root .origin-tag.recipes{background:#3a2d5a;color:#c3aefc}.planning-root .origin-tag.ingredients{background:#14402f;color:#6fe0a8}.planning-root .picker{position:relative;min-width:320px}.planning-root .picker-input{width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 12px;font-size:13px}.planning-root .picker-input:focus{outline:none;border-color:var(--accent)}.planning-root .picker-list{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:280px;overflow-y:auto;background:var(--panel);border:1px solid var(--accent);border-radius:10px;z-index:30;box-shadow:0 12px 32px #00000073;padding:4px}.planning-root .picker-item{display:flex;align-items:center;gap:2px;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:13px}.planning-root .picker-item.active,.planning-root .picker-item:hover{background:var(--accent-soft)}.planning-root .dropdown-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 12px;font-size:14px;cursor:pointer}.planning-root .dropdown-btn:hover{border-color:var(--accent)}.planning-root .dropdown-btn .caret{color:var(--muted)}.planning-root .picker-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-root .picker-meta{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.planning-root .picker-empty{padding:10px 12px;color:var(--muted);font-size:13px}.planning-root select{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 12px;font-size:14px}.planning-root textarea{width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 12px;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.55;resize:vertical}.planning-root textarea:focus{outline:none;border-color:var(--accent)}.planning-root .import-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.planning-root .import-textarea{min-height:160px}.planning-root .print-legend{display:none}@media print{html,body,#root,.app{height:auto}.app{display:block}.main,.main--scroll{overflow:visible}body{background:#fff}.app>.tabs{display:none!important}.planning-root .topbar,.planning-root .sidebar,.planning-root .print-hide,.planning-root .add-btn,.planning-root .del-btn{display:none!important}.planning-root{--bg: #fff;--panel: #fff;--panel-2: #fff;--border: #ccc;--text: #111;--muted: #555;--accent-soft: #eef;--row-alt: #f3f4f6;overflow:visible;height:auto;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}.planning-root .table-scroll{overflow:visible}.planning-root .prep-table,.planning-root .prep-table.ro{min-width:0}.planning-root .prep-table th.item-head.ro,.planning-root .prep-table td.item-cell.ro{position:static;box-shadow:none}.planning-root .prep-table{table-layout:auto;font-size:12.5px}.planning-root .prep-table th{width:auto!important;white-space:normal;font-size:10px;color:#333;border-bottom:1.5px solid #888}.planning-root .prep-table th.item-head{width:30%!important}.planning-root .prep-table th,.planning-root .prep-table td{padding:5px 6px}.planning-root .prep-table td.num{white-space:nowrap}.planning-root .prep-table tr{break-inside:avoid}.planning-root .prep-section-head{break-after:avoid}.planning-root .origin-tag.recipes{background:#ece6fb;color:#4b2f99}.planning-root .origin-tag.ingredients{background:#dcf3e8;color:#11603d}.planning-root .print-legend{display:block;margin:0 0 12px;font-size:11px;line-height:1.5;color:#333}.planning-root .print-legend .origin-tag{margin:0 4px 0 0}.planning-root .shell{display:block;overflow:visible}.planning-root .content{max-width:none;padding:0;overflow:visible}.planning-root .panel,.planning-root .prep-section{border:1px solid #ccc;box-shadow:none;page-break-inside:avoid}.planning-root .plan-tabs{gap:0;margin-bottom:12px}.planning-root .plan-tabs .tab:not(.active){display:none}.planning-root .plan-tabs .tab.active{background:none!important;border:none;color:#111;font-weight:800;font-size:18px;padding:0}.planning-root .prep-table td.per-day{color:#0a7f52!important}.planning-root .prep-table td.per-day.adjusted{color:#fff!important}.planning-root .prep-table td.recipes{color:#5b3fb0!important}.planning-root .prep-table td.production{color:#1c56c9!important}.planning-root .prep-table input{border:none;background:none;color:#111;font:inherit;padding:0;margin:0;width:100%;max-width:none}.planning-root .headline-input{border:none;padding-left:0;margin-left:0}.planning-root .print-hidden{display:none!important}@page{margin:12mm}}.planning-root .sm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0009;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}.planning-root .sm-modal{width:min(1000px,100%);max-height:calc(100vh - 80px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px}.planning-root .sm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.planning-root .sm-config{display:flex;gap:8px;margin-bottom:12px}.planning-root .sm-config input{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 10px;font-size:13px}.planning-root .sm-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:4px;flex-wrap:wrap}.planning-root .sm-filters{display:flex;gap:6px}.planning-root .chip{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;color:var(--muted);padding:4px 12px;font-size:12px;cursor:pointer}.planning-root .chip.active{background:var(--accent-soft);color:var(--text);border-color:var(--accent)}.planning-root .sm-search{flex:1;min-width:140px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:6px 10px;font-size:13px}.planning-root .sm-tablewrap{overflow:auto;border:1px solid var(--border);border-radius:8px;margin-top:6px}.planning-root .sm-table{width:100%;border-collapse:collapse;font-size:13px}.planning-root .sm-table th,.planning-root .sm-table td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.planning-root .sm-table th{position:sticky;top:0;background:var(--panel-2);color:var(--muted);font-weight:600;z-index:1}.planning-root .sm-table td.num,.planning-root .sm-table th.num{text-align:right;font-variant-numeric:tabular-nums}.planning-root .sm-table tr.warn td{background:#ff9b6b14}.planning-root .sm-table select{background:var(--panel-2);border:1px solid var(--accent);border-radius:6px;color:var(--text);padding:4px 6px;font-size:12px;max-width:320px}.planning-root .warn-tag{color:#ff9b6b;font-size:11px}.planning-root .badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;text-transform:capitalize}.planning-root .badge.auto{background:#14402f;color:#6fe0a8}.planning-root .badge.manual{background:#22304d;color:#9ec1ff}.planning-root .badge.none{background:#3a2323;color:#ff9b9b}.planning-root .sm-config-wrap{margin-bottom:10px}.planning-root .sm-config-wrap summary{cursor:pointer;margin-bottom:6px}
