:root{--bg: #f7f7f5;--surface: #ffffff;--border: #e3e2dd;--border-strong: #cfcec7;--text: #1f1f1d;--muted: #6b6a64;--accent: #185fa5;--accent-bg: #e6f1fb;--work-bg: #eaf3de;--work-text: #3b6d11;--off-bg: #f1efe8;--off-text: #5f5e5a;--vac-bg: #e6f1fb;--vac-text: #0c447c;--sick-bg: #fcebeb;--sick-text: #a32d2d;--warn-text: #854f0b;--warn-bg: #faeeda;--over-bg: #fcebeb;--over-text: #a32d2d;--disp-bg: #faece7;--disp-text: #993c1d}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}button{font-family:inherit;cursor:pointer}input{font-family:inherit}.app-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px}.app-header .brand{font-weight:600}.app-header .user{font-size:14px;color:var(--muted);display:flex;align-items:center;gap:12px}.container{max-width:920px;margin:0 auto;padding:20px 16px}.login-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px;width:100%;max-width:360px}.login-card h1{font-size:20px;margin:0 0 4px}.login-card .sub{color:var(--muted);font-size:14px;margin:0 0 20px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.field input{width:100%;padding:9px 11px;border:1px solid var(--border-strong);border-radius:8px;font-size:14px}.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.btn{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;padding:8px 14px;font-size:14px;color:var(--text)}.btn:hover{background:var(--bg)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:#14528f}.btn-block{width:100%;padding:10px}.error{color:var(--sick-text);font-size:13px;margin:8px 0 0}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.month-nav{display:flex;align-items:center;gap:10px}.month-nav .label{font-weight:500;min-width:130px;text-align:center}.icon-btn{border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;width:32px;height:32px;font-size:16px}.tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.tab{padding:6px 14px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);font-size:13px}.tab.active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent)}.hint{font-size:12px;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.metric{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.metric .ml{font-size:12px;color:var(--muted)}.metric .mv{font-size:22px;font-weight:600;margin-top:2px}.weekbars{display:flex;align-items:center;gap:6px;margin-bottom:18px}.weekbars .wlabel{font-size:12px;color:var(--muted);margin-right:4px}.weekbar{flex:1;height:8px;border-radius:4px;background:var(--off-bg)}.weekbar.under{background:var(--warn-bg)}.weekbar.ok{background:var(--work-bg)}.weekbar.over{background:var(--over-bg)}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.wd{font-size:11px;color:var(--muted);text-align:center;padding-bottom:2px}.cell{min-height:64px;border:1px solid var(--border);border-radius:8px;padding:5px 6px;background:var(--surface);text-align:left;position:relative;display:flex;flex-direction:column}.cell:hover{border-color:var(--accent)}.cell.empty{background:transparent;border:none;cursor:default}.cell .dn{font-size:12px;color:var(--muted)}.cell .lbl{font-size:11px;font-weight:500;margin-top:auto}.cell.today{border:2px solid var(--accent)}.cell.work{background:var(--work-bg)}.cell.work .lbl{color:var(--work-text)}.cell.off{background:var(--off-bg)}.cell.off .lbl{color:var(--off-text)}.cell.vacation{background:var(--vac-bg)}.cell.vacation .lbl{color:var(--vac-text)}.cell.sick{background:var(--sick-bg)}.cell.sick .lbl{color:var(--sick-text)}.cell.displaced{background:var(--disp-bg);border-style:dashed}.cell.displaced .lbl{color:var(--disp-text)}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted)}.legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:4px}.editor{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-top:18px}.editor h3{font-size:15px;margin:0 0 12px;font-weight:600}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.chip{padding:6px 13px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);font-size:13px}.chip.active{background:var(--work-bg);color:var(--work-text);border-color:var(--work-text)}.interval-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.interval-row input[type=time]{padding:7px 9px;border:1px solid var(--border-strong);border-radius:8px;font-size:13px}.interval-row select{padding:7px 9px;border:1px solid var(--border-strong);border-radius:8px;font-size:13px;min-width:170px}.shift-presets{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.editor-actions{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:10px;flex-wrap:wrap}.editor-note{font-size:12px;color:var(--muted)}.nav{display:flex;gap:6px}.nav button{padding:6px 12px;border:1px solid transparent;border-radius:8px;background:transparent;font-size:14px;color:var(--muted)}.nav button.active{background:var(--accent-bg);color:var(--accent)}.section-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.section-tabs button{padding:6px 12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);font-size:13px}.section-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.card h2{font-size:16px;margin:0 0 12px;font-weight:600}table.grid{width:100%;border-collapse:collapse;font-size:13px}table.grid th{text-align:left;color:var(--muted);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--border)}table.grid td{padding:7px 8px;border-bottom:1px solid var(--border)}table.grid tr:hover td{background:var(--bg)}.tag{display:inline-block;font-size:11px;padding:1px 7px;border-radius:6px;background:var(--accent-bg);color:var(--accent);margin-right:4px}.tag.muted{background:var(--off-bg);color:var(--off-text)}.form-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}.form-row input[type=text],.form-row input[type=number],.form-row input[type=date],.form-row select{padding:7px 9px;border:1px solid var(--border-strong);border-radius:8px;font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:12px}.form-grid label{font-size:12px;color:var(--muted);display:block;margin-bottom:3px}.form-grid input,.form-grid select{width:100%;padding:7px 9px;border:1px solid var(--border-strong);border-radius:8px;font-size:13px}.checks{display:flex;flex-wrap:wrap;gap:10px;font-size:13px}.checks label{display:flex;align-items:center;gap:5px}.multi{display:flex;flex-wrap:wrap;gap:6px}.multi label{display:flex;align-items:center;gap:4px;font-size:12px;border:1px solid var(--border-strong);border-radius:6px;padding:3px 7px}.overlay{position:relative;background:#0006;border-radius:12px;padding:20px;display:flex;justify-content:center}.modal{background:var(--surface);border-radius:12px;padding:20px;width:100%;max-width:620px;max-height:80vh;overflow:auto}.link-btn{background:none;border:none;color:var(--accent);font-size:13px;padding:0}@media(max-width:560px){.metrics{grid-template-columns:1fr}.cell{min-height:52px}.interval-row select{min-width:130px}.form-grid{grid-template-columns:1fr}}
