:root{--bg:#f6f5f2;--surface:#fff;--border:#ddd8cf;--text:#22201c;--muted:#6f6a61;--accent:#8a5a2b;--accent-soft:#f3e9dd;--ok:#2f6b45;--warn:#8a6a1f;--danger:#a33a2c;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1a1917;--surface:#232120;--border:#3a3734;--text:#ece8e2;--muted:#9a938a;--accent:#d99a5b;--accent-soft:#33291f;--ok:#79c093;--warn:#d8b25c;--danger:#e08a7a}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.app{max-width:1400px;margin:0 auto;padding:16px}.app-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;display:flex}.brand h1{letter-spacing:-.01em;margin:0;font-size:19px}.brand p{color:var(--muted);margin:2px 0 0;font-size:13px}.month-nav{align-items:center;gap:4px;display:flex}.month-nav button{width:30px;font-size:16px;line-height:1}.tabs{gap:4px;display:flex}.who{align-items:center;gap:10px;font-size:12px;display:flex}.sync{font-weight:600}.sync.idle{color:var(--ok)}.sync.saving{color:var(--muted)}.sync.failed{color:var(--danger)}.signin{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:420px;margin:18vh auto;padding:28px}.signin h1{margin:0 0 8px;font-size:20px}.signin p{color:var(--muted);font-size:14px}.signin>div{justify-content:center;margin-top:16px;display:flex}.tabs button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--text);font-weight:600}button,.file-button{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;padding:6px 11px}button:hover:not(:disabled),.file-button:hover{border-color:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.danger{color:var(--danger);padding:4px 8px}.file-button{display:inline-block}.file-button input{display:none}input,select,textarea{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:6px;padding:4px 6px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea{resize:vertical}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;padding:12px 0;display:flex}.saved-months{color:var(--muted);margin-left:auto;font-size:12px}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.table-scroll{overflow-x:auto}.grid{border-collapse:collapse;width:100%;font-size:13px}.grid th,.grid td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:5px 6px}.grid th{background:var(--accent-soft);text-transform:uppercase;letter-spacing:.04em;z-index:1;font-size:11px;position:sticky;top:0}.grid tbody tr:nth-child(2n){background:color-mix(in srgb, var(--surface) 70%, var(--bg))}.grid tr.inactive{opacity:.55}.col-sr{text-align:center;width:34px}.col-date{width:130px}.col-karta{width:210px}.col-stage,.col-bal{width:150px}.col-off{width:205px}.col-narrow{width:90px}.center,td.center{text-align:center}.nowrap{white-space:nowrap}.off-slot{align-items:center;gap:4px;margin-bottom:3px;display:flex}.off-slot .combo{flex:1;margin-bottom:0}.off-num{width:12px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.off-move{flex-direction:column;gap:1px;display:flex}.off-move button{color:var(--muted);background:0 0;border:none;padding:0 3px;font-size:8px;line-height:1.1}.off-move button:hover:not(:disabled){color:var(--accent)}.off-move button:disabled{opacity:.25}.col-karta select{margin-bottom:3px}.col-date strong{display:block}.col-date .muted{color:var(--muted);font-size:11px;display:block}.timings{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.timing{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.timing h3{min-width:74px;margin:0;font-size:13px}.timing span{color:var(--muted);font-size:12px}.timing strong{color:var(--text);font-variant-numeric:tabular-nums}.timing .slots{font-size:11px}button.link{color:var(--accent);background:0 0;border:none;align-self:center;padding:4px 2px;font-size:12px;text-decoration:underline}button.link:hover{opacity:.8}.combo{margin-bottom:3px;position:relative}.combo input{padding-right:20px}.combo-clear{color:var(--muted);background:0 0;border:none;padding:0 4px;font-size:14px;line-height:1;position:absolute;top:50%;right:3px;transform:translateY(-50%)}.combo-clear:hover{color:var(--danger)}.combo-list{z-index:5;background:var(--surface);border:1px solid var(--accent);border-radius:var(--radius);min-width:190px;max-height:210px;margin:0;padding:3px;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 18px #0000002e}.combo-list li{cursor:pointer;border-radius:5px;padding:4px 7px;font-size:13px}.combo-list li.on{background:var(--accent-soft)}.combo-list li.create{color:var(--accent);font-style:italic}.combo-label{display:block}.combo-detail{color:var(--muted);font-size:11px;display:block}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:20px;padding:14px}.panel h2{margin:0 0 6px;font-size:15px}.panel-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px;display:flex}.panel-head h2{margin:0}.panel-head button{margin-left:auto}.panel-head .search{max-width:240px;margin-left:auto}.panel-head .search+button{margin-left:0}.hint{color:var(--muted);margin:0 0 10px;font-size:12px}.muted{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:40px}.fields{gap:14px;max-width:560px;display:grid}.fields.row{grid-template-columns:repeat(3,minmax(0,1fr));max-width:420px}.fields label{gap:4px;font-size:13px;font-weight:600;display:grid}.fields .hint{margin:0;font-weight:400}.picks{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 16px;margin-bottom:12px;display:grid}.picks label{align-items:center;gap:6px;font-size:13px;display:flex}.picks input{width:auto}.picks-head{align-items:center;gap:8px;margin:0 0 6px;font-size:13px;font-weight:600;display:flex}.picks-head code{font-size:12px;font-weight:400}.fit{margin:12px 0 0;font-size:13px;font-weight:600}.fit.ok{color:var(--ok)}.fit.over{color:var(--warn)}.allowlist{gap:4px;margin:12px 0 0;padding:0;list-style:none;display:grid}.allowlist li{justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.load{gap:3px;margin:0;padding:0;list-style:none;display:grid}.load li{justify-content:space-between;gap:12px;font-size:13px;display:flex}.load-counts{color:var(--muted);font-variant-numeric:tabular-nums}.load-counts em{opacity:.7;font-style:normal}.issues{gap:6px;margin-bottom:12px;display:grid}.issues summary{cursor:pointer;font-size:13px;font-weight:600}.issues ul{margin:6px 0 0;padding-left:20px;font-size:13px}summary.blocker{color:var(--danger)}summary.warning{color:var(--warn)}.ok{color:var(--ok);margin:0 0 12px;font-size:13px;font-weight:600}.notes{font-size:13px}.print-sheet{color:#000;background:#fff;display:none}.print-sheet.measuring{width:190mm;padding:0;display:block;position:absolute;top:0;left:-9999px}.print-title{font-size:var(--print-title);text-align:center;margin:0 0 4px}.print-timings{text-align:center;font-size:var(--print-notes);margin:0 0 8px}.print-timings span{display:block}.print-table{border-collapse:collapse;width:100%;font-size:var(--print-body);line-height:1.3}.print-table th,.print-table td{text-align:left;vertical-align:middle;border:.5pt solid #000;padding:3pt 4pt}.print-table th{font-size:calc(var(--print-body) - 1pt);background:#eee}.print-table .print-karta{text-align:center}.print-table .print-karta>span{text-align:left;display:inline-block}.print-table .print-notes{text-align:left;vertical-align:top;font-size:var(--print-notes)}@media print{@page{size:A4 portrait;margin:0}body{color:#000;background:#fff}.app{display:none}.print-sheet{padding:10mm;display:block}.print-table tr{break-inside:avoid}}
