:root{color-scheme:light dark;--bg: #f4f5f7;--card: #fff;--text: #1c1f24;--muted: #6b7280;--line: #e5e7eb;--green: #16a34a;--red: #dc2626}@media(prefers-color-scheme:dark){:root{--bg: #14161a;--card: #1e2127;--text: #e8eaed;--muted: #9aa0a9;--line: #2d3138}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.app{max-width:720px;margin:0 auto;padding:32px 16px 48px;display:grid;gap:16px}h1{margin:0;font-size:1.6rem}h2{margin:0 0 12px;font-size:1.1rem}.date{margin:-8px 0 0;color:var(--muted)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}.today{text-align:center}.timer{font-size:3.5rem;font-weight:700;font-variant-numeric:tabular-nums}.status{color:var(--muted);margin:4px 0 20px}.btn{border:0;border-radius:10px;padding:14px 28px;font-size:1.05rem;font-weight:600;color:#fff;cursor:pointer}.btn.start{background:var(--green)}.btn.stop{background:var(--red)}.btn:hover{filter:brightness(1.1)}.stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stats .card{display:grid;gap:4px}.stats strong{font-size:1.6rem}.label,.empty{color:var(--muted)}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:500;font-size:.85rem}.del{background:none;border:0;color:var(--muted);cursor:pointer}.del:hover{color:var(--red)}.back{color:var(--muted);text-decoration:none}.back:hover{color:var(--text)}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn.pause{background:#d97706}.archive{list-style:none;margin:0;padding:0}.archive li+li{border-top:1px solid var(--line)}.archive a{display:grid;grid-template-columns:1fr auto auto auto auto;gap:16px;padding:12px 6px;color:inherit;text-decoration:none;border-radius:8px}.archive a:hover{background:var(--bg)}.archive-time{color:var(--muted);font-variant-numeric:tabular-nums}.link-danger{justify-self:start;background:none;border:0;color:var(--red);cursor:pointer;padding:0}.topbar{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.settings-link{color:var(--muted);text-decoration:none}.settings-link:hover{color:var(--text)}.earned{display:grid;gap:4px}.earned strong{font-size:2rem}.hint{color:var(--muted);font-size:.85rem;margin:0}.form{display:grid;gap:12px}.form h2{margin:0}.field{display:grid;grid-template-columns:1fr 180px;align-items:center;gap:12px}input,select{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-width:0}.holiday-add{display:flex;gap:12px}.btn.small{padding:8px 16px;font-size:.95rem}.btn:disabled{opacity:.5;cursor:default}.holidays{list-style:none;margin:0;padding:0}.holidays li{display:flex;justify-content:space-between;padding:8px 6px;border-bottom:1px solid var(--line)}.topnav{display:flex;gap:16px}.cal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.cal-head h2{margin:0}.cal-nav{background:var(--bg);border:1px solid var(--line);border-radius:8px;color:inherit;font-size:1.3rem;width:40px;height:36px;cursor:pointer}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-wd{text-align:center;color:var(--muted);font-size:.8rem;padding-bottom:4px}.cal-cell{min-height:72px;padding:6px;border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;gap:2px;color:inherit;text-decoration:none;font-size:.75rem;overflow:hidden}.cal-cell.weekend{background:color-mix(in srgb,var(--muted) 10%,transparent)}.cal-cell.holiday{background:color-mix(in srgb,var(--red) 16%,transparent)}.cal-cell.today-cell{outline:2px solid var(--green)}.cal-cell.worked{border-color:var(--green)}a.cal-cell:hover{filter:brightness(1.08)}.cal-num{font-weight:600;font-size:.9rem}.cal-money{color:var(--muted)}@media(max-width:520px){.cal-cell{min-height:56px;padding:4px}.cal-money{display:none}}.aw-summary{display:grid;gap:12px}.aw-row{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.aw-row>div{display:grid;gap:2px}.aw-right{text-align:right}.aw-next{font-size:2.6rem;font-variant-numeric:tabular-nums;color:var(--green)}.aw-right strong{font-size:1.4rem}.progress{height:10px;background:var(--bg);border:1px solid var(--line);border-radius:6px;overflow:hidden}.progress div{height:100%;background:var(--green);transition:width .3s}.task-form{display:grid;gap:8px;margin-bottom:8px}.task-form-row{display:flex;gap:8px;flex-wrap:wrap}.task-form-row>input[type=text]{flex:1 1 180px}.task-form-row>input[type=number]{flex:1 1 100px}.plate{text-transform:uppercase}.job{margin-top:16px;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.job-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px}.plate-label{letter-spacing:.04em;margin-right:auto}.job-total{color:var(--muted);font-variant-numeric:tabular-nums}.link-btn{background:none;border:0;color:var(--green);cursor:pointer;padding:0;font:inherit}.conv{color:var(--muted)}.card>.hint{margin:4px 0 12px}@media(max-width:560px){.archive a{grid-template-columns:1fr auto auto;gap:4px 12px}.archive-main{grid-column:1 / -1}}.new-car{display:flex;gap:8px;flex-wrap:wrap}.new-car .plate{flex:1 1 220px}.job .task-form{margin:10px 0 0}.job .task-form .hint{margin:0}.suggest{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.suggest li+li{border-top:1px solid var(--line)}.suggest button{width:100%;display:grid;grid-template-columns:70px 1fr auto;gap:10px;text-align:left;padding:8px 10px;background:var(--card);color:inherit;border:0;font:inherit;cursor:pointer}.suggest button:hover{background:var(--bg)}.suggest-code{font-weight:600;font-variant-numeric:tabular-nums}.suggest-min{color:var(--green);font-variant-numeric:tabular-nums}.catalog-search{width:100%;margin-bottom:8px}.link-btn-block{display:inline-block;text-decoration:none;justify-self:start;color:#fff;border-radius:10px}.catalog-add{display:flex;gap:8px;flex-wrap:wrap}.catalog-add input:nth-child(1){flex:1 1 130px}.catalog-add input:nth-child(2){flex:3 1 220px}.catalog-add input:nth-child(3){flex:1 1 70px}.cell-input{width:100%;padding:4px 6px}.cell-input.narrow{width:70px}.row-actions{white-space:nowrap;text-align:right}.row-actions button:disabled{opacity:.4;cursor:default}.car-edit{display:flex;align-items:center;gap:8px;margin-right:auto}.car-edit input{width:160px}tr.missing td{background:color-mix(in srgb,#d97706 14%,transparent)}.btn.cancel{background:var(--muted)}.popular{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.popular-label{color:var(--muted);font-size:.75rem}.chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 9px;font-size:.75rem;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:999px;cursor:pointer}.chip:hover{border-color:var(--green)}.shift{border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:10px}.shift-head{display:flex;gap:8px;align-items:center}.shift-head input{flex:1;font-weight:600}.shift-grid{display:grid;grid-template-columns:60px 1fr auto 1fr;gap:8px;align-items:center}.breaks{display:grid;gap:8px;justify-items:start}.break-row{display:flex;gap:8px;align-items:center}.shift-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.shift-pick{display:flex;gap:8px;align-items:center}.chev{background:none;border:0;color:var(--muted);cursor:pointer;font-size:1rem;padding:0 4px}.chev:hover{color:var(--text)}.job.done{border-color:var(--green)}.done-badge{color:var(--green);font-size:.85rem;font-weight:600}.btn.done-btn{background:var(--green);padding:8px 16px;font-size:.95rem}.job-foot{margin-top:12px}.photo-block{display:grid;gap:4px;margin:6px 0 8px}.photos{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.thumb{position:relative;width:72px;height:72px}.thumb img,.thumb-loading{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:zoom-in;background:var(--bg)}.thumb-del{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:0;background:var(--red);color:#fff;font-size:.7rem;line-height:1;cursor:pointer}.photo-add{display:inline-flex;align-items:center;justify-content:center;min-width:72px;height:72px;border:2px dashed var(--line);border-radius:8px;color:var(--muted);cursor:pointer}.photo-add:hover{border-color:var(--green);color:var(--text)}.lightbox{position:fixed;inset:0;z-index:50;background:#000000e0;display:flex;align-items:center;justify-content:center;padding:16px}.lightbox img{max-width:100%;max-height:100%;object-fit:contain}.lightbox-close{position:absolute;top:12px;right:16px;border:0;background:none;color:#fff;font-size:1.6rem;cursor:pointer}.icon{flex:none;vertical-align:-.2em}.settings-link,.back,.plate-label,.done-badge,.btn.done-btn,.link-btn,.del,.photo-add,.job-head .conv,.thumb-del,.lightbox-close{display:inline-flex;align-items:center;gap:6px}.link-btn-block{display:inline-block}.thumb-del{justify-content:center;padding:0}.photo-add{gap:2px}.del{gap:4px;padding:4px;border-radius:6px}.plate-label .icon{color:var(--green)}.pct{font-weight:600;font-variant-numeric:tabular-nums}.pct.ok{color:var(--green)}.pct.low{color:#d97706}.login{min-height:100vh;align-content:center}.login-card{display:grid;gap:14px;max-width:340px;margin:0 auto;width:100%;text-align:center}.login-card h1{font-size:1.3rem}.login-card .status{margin:0}.pin{text-align:center;font-size:1.8rem;letter-spacing:.4em;padding:10px}.hint.err{color:var(--red)}.remember{display:flex;gap:8px;align-items:center;justify-content:center;color:var(--muted);font-size:.9rem}.remember input{padding:0}button.settings-link{background:none;border:0;font:inherit;cursor:pointer;padding:0}.earn-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.earn-table th{font-size:.8rem}.earn-table th:not(:first-child),.earn-table td:not(:first-child){text-align:right}.earn-table td strong{font-size:1.25rem}.earn-table tr:last-child td{border-bottom:0}.money{display:grid;text-align:right}.money small{color:var(--muted);font-size:.75rem}.add-past{margin-bottom:12px}.past-form{display:grid;gap:10px;margin-bottom:14px;padding:12px;border:1px solid var(--line);border-radius:10px}.past-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.past-row label{display:grid;gap:4px}.past-actions{display:flex;gap:8px}.remember.left{justify-content:flex-start}.stats-table td strong{font-size:1rem}.stats-table .sub{display:block;color:var(--muted);font-size:.72rem}@media(max-width:560px){.stats-table{font-size:.82rem}.stats-table th,.stats-table td{padding:8px 3px}}.paid-check{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:.85rem;white-space:nowrap}.paid-check input{padding:0}.archive-main{display:grid;gap:2px}.archive-photos{color:var(--muted);font-size:.75rem;display:inline-flex;align-items:center;gap:4px}.archive-photos.has{color:var(--green)}.archive-link{display:inline-flex;align-items:center;gap:4px;margin-top:12px;color:var(--green);text-decoration:none;font-weight:600}.month-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 16px}.month-total{color:var(--muted);font-size:.85rem;font-weight:400;text-transform:none}:root{--series-1: #2a78d6;--series-2: #eb6834}@media(prefers-color-scheme:dark){:root{--series-1: #3987e5;--series-2: #d95926}}.chart-title{margin:0 0 8px;font-size:1rem}.chart-box{position:relative;padding-top:26px}.chart-svg{display:block;width:100%;height:auto}.chart-grid{stroke:var(--line);stroke-width:1}.chart-ref{stroke:var(--muted);stroke-width:1}.chart-axis{fill:var(--muted);font-size:11px}.chart-val{fill:var(--text);font-size:12px;font-weight:600}.chart-tip{position:absolute;top:0;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-size:.8rem;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px #00000026}.chart-table{margin-top:8px;color:var(--muted);font-size:.85rem}.chart-table summary{cursor:pointer}.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin-bottom:12px}.plan-grid>div,.forecast{display:grid;gap:2px}.plan-grid strong,.forecast strong{font-size:1.35rem}.plan-grid small,.forecast small{color:var(--muted)}.forecast{margin-top:14px}.vac-table td small.sub{display:block;color:var(--muted);font-size:.72rem}.plan-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:12px}.plan-toggle{display:inline-flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}.plan-toggle input{padding:0}.dot-legend{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);vertical-align:middle}.plan-edit{display:grid;gap:10px;margin-top:10px}.plan-pick{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.chip.on{border-color:var(--green);background:color-mix(in srgb,var(--green) 18%,transparent)}.vac-range{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px}button.cal-cell{font:inherit;color:inherit;background:none;text-align:left;cursor:pointer}.cal-cell{position:relative}.cal-cell.planned-work:after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--green)}.cal-cell.plan-vacation{background:color-mix(in srgb,var(--series-1) 20%,transparent)}.cal-cell.plan-sick{background:color-mix(in srgb,var(--series-2) 20%,transparent)}.cal-cell.selected{outline:2px solid var(--text)}.cal-plan{font-size:.65rem;color:var(--muted)}.weekdays{display:grid;gap:6px}.wd-row{display:flex;flex-wrap:wrap;gap:12px}.wd{display:inline-flex;align-items:center;gap:4px}.wd input{padding:0}.topnav{flex-wrap:wrap}.report-tools{display:grid;gap:10px}.report-head h1{margin-bottom:4px}.report-head p{margin:0;color:var(--muted)}.report{display:grid;gap:16px}.report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}.report-summary>div{display:grid;gap:2px}.report-summary strong{font-size:1.2rem}.report-day h2{margin:0 0 4px;font-size:1.05rem}.report-meta{margin:0 0 10px;color:var(--muted)}.report-job{margin-top:10px}.report-job h3{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;margin:0 0 4px;font-size:.95rem}.report-job-sum{color:var(--muted);font-weight:400}.report-table{font-size:.9rem}.report-table th:nth-child(n+4),.report-table td:nth-child(n+4){text-align:right}.report-foot{color:var(--muted);font-size:.8rem;text-align:right}@media print{:root{--bg: #fff;--card: #fff;--text: #000;--muted: #444;--line: #bbb;--green: #000}body{background:#fff;color:#000}.no-print{display:none!important}.app{max-width:none;padding:0}.card{border:0;border-top:1px solid #999;border-radius:0;padding:8px 0}.report-day{break-inside:avoid}.report-summary{border-top:0}}.archive.no-money a{grid-template-columns:1fr auto auto auto}@media(max-width:560px){.archive.no-money a{grid-template-columns:1fr auto auto}}.present-badge{display:inline-block;margin-left:10px;padding:2px 10px;border:1px solid var(--muted);border-radius:999px;color:var(--muted);font-size:.7rem;font-weight:500;vertical-align:middle}.modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:#0009}.quick{display:grid;gap:6px;margin-bottom:14px}.quick-input{flex:1 1 260px}.quick-preview{display:grid;gap:4px}.quick-preview .hint{margin:0}.quick-list{margin:0;padding-left:18px;color:var(--muted);font-size:.85rem}code{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:.85em}.holidays .sub{display:block;color:var(--muted);font-size:.75rem}.del.star.on{color:#d99a00}.cap:first-letter,.date:first-letter,.archive-date:first-letter,.stats-table .sub:first-letter{text-transform:uppercase}span.cap{display:inline-block}.app{grid-template-columns:minmax(0,1fr)}.card{min-width:0;overflow-wrap:anywhere}.card{overflow-x:auto}@media(max-width:560px){.field{grid-template-columns:1fr;gap:6px}.field input,.field select{width:100%}.shift-grid{grid-template-columns:56px 1fr auto 1fr}.break-row,.car-edit{flex-wrap:wrap}.job table,.job tbody{display:block}.job tr{display:grid;grid-template-columns:auto 1fr auto auto;gap:2px 10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.job td{border:0;padding:0}.job td:nth-child(1){grid-column:1;grid-row:1}.job td:nth-child(2){grid-column:2 / -1;grid-row:1;font-weight:500}.job td:nth-child(3){grid-column:2;grid-row:2;color:var(--muted);font-size:.85rem}.job td:nth-child(4){grid-column:3;grid-row:2}.job td:nth-child(5){grid-column:4;grid-row:2}.job td:nth-child(6){grid-column:1 / -1;grid-row:3;justify-self:end}.archive .money{grid-column:1 / -1;display:flex;gap:8px;justify-content:flex-end;align-items:baseline}.task-form-row>select{flex:1 1 120px}}@media(pointer:coarse){.del,.chev,.link-btn{min-width:40px;min-height:40px;justify-content:center}.chip{padding:8px 12px;font-size:.8rem}.thumb-del{width:28px;height:28px;top:-10px;right:-10px}.cal-nav{width:48px;height:44px}input[type=checkbox]{width:20px;height:20px}}.task-form,.quick,.photo-block,.report-job,.job{grid-template-columns:minmax(0,1fr);min-width:0}.popular .chip{min-width:0}@media(pointer:coarse){.back,.link-danger,.archive-link{padding:10px 0}}@media(pointer:coarse){.settings-link,a.hint{min-height:40px;padding-top:8px;padding-bottom:8px}}.plate-scan{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 6px}.scan-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:.85rem;cursor:pointer}.scan-btn:hover{border-color:var(--green);color:var(--text)}.scan-btn.busy{opacity:.6;cursor:progress}.plate-scan .popular{flex-basis:100%}@media(pointer:coarse){.scan-btn{min-height:44px;padding:8px 14px}}.place-pick{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}.place-pick select{min-width:0;flex:1 1 160px}.place-tag{padding:2px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.75rem;white-space:nowrap}.place-chips{margin-bottom:10px}.sheet-open-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-bottom:10px}.sheet-modal{position:fixed;inset:0;z-index:55;overflow-y:auto;background:var(--bg);padding:16px}.sheet-card{max-width:720px;margin:0 auto;display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}.sheet-head{display:flex;align-items:center;justify-content:space-between}.sheet-head h2{margin:0}.sheet-pick{display:grid;justify-items:center;gap:6px;padding:28px 16px;border:2px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center;cursor:pointer}.sheet-pick:hover{border-color:var(--green);color:var(--text)}.sheet-pick.busy{opacity:.6;cursor:progress}.sheet-photo{display:grid;gap:6px;justify-items:start}.sheet-photo img,.sheet-thumb img{max-width:100%;max-height:42vh;border:1px solid var(--line);border-radius:8px;cursor:zoom-in}.sheet-field{display:grid;gap:4px}.sheet-sugg{padding:8px;border:1px dashed var(--line);border-radius:8px}.sheet-thumb{display:grid;gap:4px;justify-items:start;margin:6px 0 8px}.sheet-thumb img{max-height:120px}
