:root{--bg: #f6f7f9;--surface: #ffffff;--text: #1d2330;--muted: #6b7280;--border: #dfe3ea;--accent: #1f5fd6;--short-1: #fde2df;--short-2: #f8b4ad;--short-3: #e8665a;--ok: #e3f3e6;--over: #c9e8d0;--none: #f1f2f4;--warn: #b45309;--error: #b42318;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1,h2,h3{margin:0}h1{font-size:1.25rem}h2{font-size:1.15rem}h3{font-size:1.05rem}button{font:inherit;padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer}button:hover:not(:disabled){border-color:#b8c0cc}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.link{border:none;background:none;color:var(--accent);padding:2px 4px}button.icon{border:none;background:none;color:var(--muted);padding:0 4px}button.icon:hover{color:var(--error)}input,select{font:inherit;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}input.short{width:4.5em}label{display:inline-flex;flex-direction:column;gap:2px;font-size:.85rem;color:var(--muted)}label.check{flex-direction:row;align-items:center;gap:4px;color:var(--text)}.muted{color:var(--muted)}.error{color:var(--error)}.warn-text{color:var(--warn)}.hint{width:100%;margin:0;font-size:.85rem;color:var(--muted)}.spacer{flex:1}.app header{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--border)}.app nav{display:flex;gap:4px}.app nav button{border-color:transparent}.app nav button.active{background:#e8effc;color:var(--accent);font-weight:600}.app main{padding:16px 20px 40px;max-width:1600px;margin:0 auto}.badge{padding:3px 10px;border-radius:999px;font-size:.85rem;white-space:nowrap}.badge.short{background:var(--short-1);color:var(--error)}.badge.ok{background:var(--ok);color:#1c6b34}.badge.demo{background:#fff4d6;color:#8a5a00}.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.toolbar h2{min-width:13em;text-align:center}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;margin-top:16px}.panel-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.grid-scroll{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:10px}table.grid{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}.grid th{font-weight:500;font-size:.8rem;color:var(--muted);padding:4px 0;text-align:left}.grid thead th{position:sticky;top:0;background:var(--surface)}.grid tbody th{position:sticky;left:0;background:var(--surface);padding:0 8px;white-space:nowrap;z-index:1}.grid .day{border:none;background:none;padding:4px 0;font-weight:600;text-align:left}.grid tr.selected-row th{box-shadow:inset 3px 0 var(--accent)}.grid td.half,.grid th.half{border-right:1px solid var(--border)}.cell{min-width:30px;height:38px;text-align:center;font-size:.9rem;cursor:pointer;position:relative;border-bottom:2px solid var(--surface)}.cell small{display:block;font-size:.68rem;line-height:1;font-weight:700;color:var(--error)}.cell.sel{outline:2px solid var(--accent);outline-offset:-2px}.cell.none{background:var(--none);color:var(--muted)}.cell.ok{background:var(--ok)}.cell.over{background:var(--over)}.cell.short-1{background:var(--short-1)}.cell.short-2{background:var(--short-2)}.cell.short-3{background:var(--short-3);color:#fff}.cell.short-3 small{color:#fff}.legend{font-size:.85rem;color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.legend .cell{display:inline-block;height:auto;padding:2px 8px;border-radius:4px;cursor:default}.legend .cell small{display:inline;margin-left:2px}.slot-detail{background:#f3f6fb;border-radius:8px;padding:10px 12px;margin-bottom:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.chips{display:flex;gap:6px;flex-wrap:wrap;width:100%}.chip{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:2px 10px;font-size:.85rem}table.day-list,table.cars{border-collapse:collapse;width:100%}.day-list th,.cars th{text-align:left;font-weight:500;font-size:.8rem;color:var(--muted);padding:4px 8px;border-bottom:1px solid var(--border)}.day-list td,.cars td{padding:4px 8px;border-bottom:1px solid #eef0f4;vertical-align:top}td.car{font-weight:700;width:4em}.shift{display:inline-flex;align-items:center;margin-right:14px;white-space:nowrap}.shift.warn{background:#fff4e5;border-radius:6px;padding:0 4px}.shift button.link{padding:2px 0;font-variant-numeric:tabular-nums}.shift>.muted,.shift>.warn-text{margin-left:6px}.shift-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding:12px;background:#f3f6fb;border-radius:8px;margin-bottom:12px}.shift-form input{width:6em}.shift-form .grow input{width:14em}.fill{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.fill label:not(.check){flex-direction:row;align-items:center;gap:4px;color:var(--text);font-size:.9rem}.targets td{padding:1px}.targets input{width:30px;padding:4px 0;text-align:center;font-size:.85rem;border-radius:4px}.cars tr.inactive td{opacity:.5}form.inline{display:flex;gap:8px;align-items:center}.preview{margin-top:12px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.preview ul{margin:6px 0;padding-left:20px;font-size:.9rem}.login{max-width:360px;margin:12vh auto;display:flex;flex-direction:column;gap:12px}.login input{width:100%}.wish-day{margin-bottom:12px}.wish-day h4{margin:8px 0 4px;font-size:.9rem}.wish{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#f3f6fb;border-radius:8px;margin-bottom:4px;flex-wrap:wrap}.wish .car{font-weight:700;min-width:4em}.wish .time{font-variant-numeric:tabular-nums}.badge.pending{background:#e8effc;color:var(--accent)}.cars tr.unlinked td{background:#fff8e6}.driver{max-width:640px;margin:0 auto}.driver-day{margin-top:10px;padding:12px 14px}.driver-day.today{border-color:var(--accent)}.driver-day .panel-head{margin-bottom:6px}.driver-shift{display:flex;align-items:center;gap:10px;padding:3px 0;font-variant-numeric:tabular-nums;flex-wrap:wrap}.driver-shift .car{font-weight:700}.driver-shift.wish-pending,.driver-shift.wish-rejected{color:var(--muted)}.demo-switch{flex-direction:row;align-items:center;gap:8px;color:var(--text);font-size:.9rem}.who{font-size:.9rem}@media(max-width:700px){.app header{flex-wrap:wrap;padding:10px 16px;gap:8px}.app nav{overflow-x:auto;max-width:100%}.app main{padding:12px 16px 40px}.toolbar h2{min-width:0;flex:1;font-size:1rem}.shift-form input,.shift-form .grow input{width:100%}.shift-form label{flex:1 1 40%}}
