:root{--bg: #f4f1eb;--bg-elevated: #fffdf9;--ink: #1c1917;--muted: #78716c;--line: #e7e0d6;--accent: #1f4d3a;--accent-soft: #dceae3;--danger: #b42318;--warn: #b54708;--radius: 10px;--font: "Plus Jakarta Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:radial-gradient(circle at top left,#e8efe9 0,transparent 42%),linear-gradient(180deg,#f7f4ef 0%,var(--bg) 100%)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:#16362a;color:#f5f5f4;padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1.5rem}.brand{font-weight:700;letter-spacing:.02em;font-size:1.1rem}.nav{display:flex;flex-direction:column;gap:.35rem}.nav a{padding:.55rem .75rem;border-radius:8px;color:#d6d3d1}.nav a.active,.nav a:hover{background:#ffffff14;color:#fff}.sidebar-foot{margin-top:auto;font-size:.85rem;color:#a8a29e;display:flex;flex-direction:column;gap:.5rem}.main{padding:1.5rem 1.75rem 2.5rem}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.page-head h1{margin:0;font-size:1.45rem}.card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.7rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}.table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:var(--accent);color:#fff;border-radius:8px;padding:.55rem .9rem;cursor:pointer;font-weight:600}.btn:hover{filter:brightness(1.05)}.btn.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.btn.ghost{background:transparent;color:#d6d3d1;border-color:transparent;padding-inline:.4rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem}.field label{font-size:.85rem;color:var(--muted)}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:8px;padding:.55rem .7rem;background:#fff}.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}.badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.78rem;font-weight:600}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.9rem}.login-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(400px,100%);background:var(--bg-elevated);border:1px solid var(--line);border-radius:14px;padding:1.5rem;box-shadow:0 18px 40px #1c19170f}.login-card h1{margin:0 0 .35rem;font-size:1.5rem}.stack-form{margin-top:1.25rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.tabs{display:flex;flex-wrap:wrap;gap:.35rem}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:#fff;border-radius:999px;padding:.35rem .75rem;cursor:pointer;font-size:.85rem;color:var(--muted)}.tab.active{background:var(--accent-soft);border-color:transparent;color:var(--accent);font-weight:600}.override-dot{color:var(--warn);font-weight:700}.cell-input{width:5.5rem;border:1px solid var(--line);border-radius:6px;padding:.25rem .4rem}.badge.warn{background:#fef3c7;color:var(--warn)}.badge.danger{background:#fee2e2;color:#b42318}.warn-text{color:var(--warn);font-size:.9rem}.row-risk td{background:#fff7ed}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}.cal-page{display:flex;flex-direction:column;gap:.75rem}.cal-month-title{margin:.15rem 0 0;text-transform:capitalize;font-size:1.05rem}.cal-check{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--muted)}.cal-shortage-strip{background:#fff8f1;border:1px solid #f5d9b8;border-radius:var(--radius);padding:.65rem .85rem}.cal-shortage-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.45rem;font-size:.9rem}.cal-shortage-head a{color:var(--accent);font-weight:600;font-size:.85rem}.cal-shortage-chips{display:flex;flex-wrap:wrap;gap:.35rem}.cal-shortage-chip{font-size:.78rem;background:#fff;border:1px solid #f0d4b0;border-radius:999px;padding:.2rem .55rem;color:#7a4a1e}.cal-shortage-ok{margin:0;font-size:.85rem}.cal-drag-hint{margin:0;font-size:.82rem}.cal-view-toggle{display:inline-flex;gap:.25rem}.cal-day.drop-target,.cal-track-cell.drop-target{background:var(--accent-soft);border-color:var(--accent)}.cal-block{display:flex;align-items:center;justify-content:space-between;gap:.25rem;font-size:.68rem;border-radius:5px;padding:.15rem .3rem;border:1px dashed #a8a29e;background:#f5f5f4;color:#57534e}.cal-block-own_job{background:#ecfeff;border-color:#67e8f9;color:#155e75}.cal-block-absence{background:#fafaf9;border-style:dashed}.cal-block-holiday{background:#fdf2f8;border-color:#f9a8d4;color:#9d174d;border-style:solid;font-weight:600}.cal-block-x{border:none;background:transparent;cursor:pointer;color:inherit;padding:0 .15rem;line-height:1}.cal-block-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.75rem}.cal-side-label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;margin:.5rem 0}.cal-tracks{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated)}.cal-tracks-head,.cal-track-row{display:grid;grid-template-columns:7.5rem repeat(7,minmax(5.5rem,1fr));min-width:52rem}.cal-tracks-head{border-bottom:1px solid var(--line);background:#faf8f4}.cal-track-label{padding:.45rem .55rem;font-size:.78rem;font-weight:700;border-right:1px solid var(--line);display:flex;align-items:center}.cal-track-dayhead{padding:.45rem;text-align:center;font-size:.75rem;font-weight:600;color:var(--muted);border-right:1px solid var(--line)}.cal-track-dayhead.today{color:var(--accent)}.cal-track-row{border-bottom:1px solid var(--line);min-height:5.5rem}.cal-track-row:last-child{border-bottom:none}.cal-track-cell{padding:.3rem;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.2rem;min-height:5.5rem}.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:.85rem;align-items:start}.cal-month{min-width:0}.cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;margin-bottom:.35rem}.cal-weekday{text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.cal-grid-month{gap:.35rem}.cal-day{background:var(--bg-elevated);border:1px solid var(--line);border-radius:8px;padding:.35rem;min-height:7.2rem;display:flex;flex-direction:column}.cal-day.outside{background:#f3f0ea;opacity:.72}.cal-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal-day-head{display:flex;justify-content:flex-end;margin-bottom:.25rem}.cal-day-num{font-size:.78rem;font-weight:600;color:var(--muted);width:1.45rem;height:1.45rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px}.cal-day-num.is-today{background:var(--accent);color:#fff}.cal-day-events{display:flex;flex-direction:column;gap:.22rem;min-height:0;overflow:hidden}.cal-chip{display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;width:100%;text-align:left;border:1px solid;border-radius:6px;padding:.22rem .35rem;cursor:pointer;line-height:1.2}.cal-chip.selected{outline:2px solid var(--accent);outline-offset:1px}.cal-chip-title{font-size:.72rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cal-chip-meta{font-size:.65rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cal-chip-flags{display:flex;align-items:center;gap:.25rem;margin-top:.05rem}.cal-chip-status{font-size:.6rem;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:7rem}.cal-dot{width:.45rem;height:.45rem;border-radius:999px;display:inline-block;flex-shrink:0}.cal-dot.warn{background:#d97706}.cal-dot.wait{background:#0ea5e9}.cal-dot.danger{background:#dc2626}.cal-dot.conflict{background:#7c3aed}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.75rem;margin-bottom:1.5rem}.dash-card{display:flex;flex-direction:column;gap:.25rem;padding:1rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);text-decoration:none;color:inherit}.dash-card strong{font-size:1.5rem}.dash-card em{font-style:normal;font-size:.85rem;color:var(--muted)}.dash-card.dash-warn{border-color:#f59e0b}.dash-status-list{list-style:none;padding:0;margin:0}.dash-status-list li{display:flex;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid var(--border)}.row-warn td{background:#fffbeb}.field-report{margin:.75rem 0;padding-top:.5rem;border-top:1px dashed var(--border)}.field-report .input{width:100%;margin:.35rem 0}.input.narrow{width:5rem;margin-right:.35rem}.cal-side-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem;position:sticky;top:.75rem}.cal-side-swatch{height:.35rem;border-radius:999px;margin-bottom:.65rem}.cal-legend{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem}.cal-legend span{display:inline-flex;align-items:center;gap:.4rem}.cal-event{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:8px;padding:.4rem;margin-bottom:.35rem;cursor:pointer}.cal-event strong{font-size:.82rem}.cal-event span{font-size:.75rem}@media(max-width:1100px){.cal-layout{grid-template-columns:1fr}.cal-side-card{position:static}}@media(max-width:860px){.shell{grid-template-columns:1fr}.sidebar{flex-direction:row;align-items:center;overflow-x:auto}.nav{flex-direction:row}.sidebar-foot{margin-top:0;margin-left:auto}.grid-2{grid-template-columns:1fr}.cal-day{min-height:5.5rem}.cal-chip-meta,.cal-chip-status{display:none}}.configurator-page{display:flex;flex-direction:column;min-height:calc(100vh - 2rem)}.configurator-frame-wrap{flex:1;min-height:70vh;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff}.configurator-frame{width:100%;height:min(78vh,900px);border:0;display:block}.ledger-balance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:.75rem}.ledger-balance>div{background:var(--accent-soft);border-radius:8px;padding:.75rem .9rem;display:flex;flex-direction:column;gap:.25rem}.ledger-remaining.debt strong{color:var(--warn)}.ledger-remaining.over strong{color:var(--accent)}@media(max-width:800px){.ledger-balance{grid-template-columns:1fr}}.field-app{min-height:100dvh;max-width:40rem;margin:0 auto;padding:1rem 1rem 2.5rem;background:radial-gradient(120% 80% at 10% -10%,#d9eee4 0%,transparent 55%),linear-gradient(180deg,#f4f7f5,#eef2f0)}.field-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.field-brand{margin:0;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent, #1f6b4a);font-weight:700}.field-top h1{margin:.15rem 0 0;font-size:1.45rem}.field-tabs{display:flex;gap:.35rem;margin-bottom:1rem;background:#fff;padding:.25rem;border-radius:999px;border:1px solid var(--line)}.field-tabs button{flex:1;border:0;background:transparent;padding:.55rem .75rem;border-radius:999px;font:inherit;font-weight:600;cursor:pointer;color:var(--muted)}.field-tabs button.active{background:var(--accent, #1f6b4a);color:#fff}.field-week-strip{display:flex;gap:.35rem;margin-bottom:.85rem;overflow-x:auto}.field-week-day{flex:1;min-width:2.6rem;border:1px solid var(--line);background:#fff;border-radius:10px;padding:.45rem .25rem;font:inherit;font-size:.75rem;font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.15rem;color:var(--muted)}.field-week-day em{font-style:normal;font-size:.7rem;background:var(--accent-soft, #e8f5ef);color:var(--accent, #1f6b4a);border-radius:999px;min-width:1.1rem;padding:0 .25rem}.field-week-day.active{border-color:var(--accent, #1f6b4a);color:var(--accent, #1f6b4a);background:#f0faf5}.field-week-day.has-jobs:not(.active){color:#1e293b}.field-notice{color:var(--accent, #1f6b4a);font-weight:600}.field-msg{padding:.5rem 0}.field-day h2{font-size:.95rem;margin:1.1rem 0 .5rem;color:var(--muted);font-weight:600}.field-card{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:.65rem;overflow:hidden;box-shadow:0 1px #0f281e0a}.field-card-head{width:100%;display:flex;justify-content:space-between;gap:.75rem;text-align:left;border:0;background:transparent;padding:.9rem 1rem;font:inherit;cursor:pointer}.field-card-head p{margin:.2rem 0 0}.field-status{align-self:flex-start;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.25rem .45rem;border-radius:6px;background:#e8eef0;color:#334155;white-space:nowrap}.field-status-planned,.field-status-scheduled{background:#e0f2fe;color:#075985}.field-status-in_progress{background:#fef3c7;color:#92400e}.field-status-done,.field-status-accepted{background:#dcfce7;color:#166534}.field-card-body{padding:0 1rem 1rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.55rem}.field-card-body a{color:var(--accent, #1f6b4a);font-weight:600}.field-note{background:var(--accent-soft, #e8f5ef);padding:.65rem .75rem;border-radius:8px;margin:0}.field-schema{background:#f8fafc;border-radius:8px;padding:.5rem;min-height:2rem}.field-schema img{display:block;width:100%;max-height:7rem;object-fit:contain}.field-card-body h3{margin:.35rem 0 0;font-size:.85rem}.field-mats{margin:0;padding-left:1.1rem}.field-photos{display:flex;gap:.4rem;overflow-x:auto}.field-photos img{width:4.5rem;height:4.5rem;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.field-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.35rem}.field-photo-btn{cursor:pointer}.btn-ghost{background:transparent;border:1px solid var(--line);color:inherit}.btn-primary{background:var(--accent, #1f6b4a);color:#fff;border-color:transparent}.activity-list{margin:0;padding-left:1.1rem;max-height:16rem;overflow:auto;font-size:.85rem}.choice-stack{display:inline-flex;flex-wrap:wrap;gap:.35rem;align-items:center}.choice-stack--sm .choice-stack__btn{font-size:.78rem;padding:.28rem .55rem}.choice-stack__btn{border:1px solid var(--line, #d6d3d1);background:#fafaf9;color:var(--text, #1c1917);border-radius:999px;padding:.35rem .7rem;font-size:.82rem;cursor:pointer;transition:background .12s,border-color .12s,color .12s;white-space:nowrap}.choice-stack__btn:hover:not(:disabled){background:#f5f5f4;border-color:#a8a29e}.choice-stack__btn--selected{font-weight:600;box-shadow:0 1px 2px #0000000f}.choice-stack__btn:disabled{opacity:.45;cursor:not-allowed}.stock-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem}.stock-toolbar .input{min-width:12rem}.stock-empty{text-align:center;padding:2rem 1rem}.stock-product-cell{display:flex;flex-direction:column;gap:.12rem}.stock-product-name{font-weight:500}.stock-product-sku{font-size:.72rem;color:var(--muted, #78716c);font-family:ui-monospace,monospace;letter-spacing:.01em}.stock-receipt-row{display:flex;flex-wrap:wrap;gap:.25rem}.stock-quick-btn{min-width:2.5rem;padding-left:.45rem;padding-right:.45rem}.stock-qty{font-variant-numeric:tabular-nums}.badge.muted{background:#f5f5f4;color:#78716c;margin-left:.35rem}
