.notif-bell{position:relative;display:inline-flex}.notif-trigger{position:relative;background:none;border:none;cursor:pointer;font-size:18px;padding:4px 6px;line-height:1}.notif-badge{position:absolute;top:-2px;right:-2px;background:var(--crit);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}.notif-dropdown{position:absolute;top:130%;right:0;width:320px;max-height:420px;background:var(--surface, #fff);color:var(--ink, #222);border:1px solid var(--line-2, #ddd);border-radius:8px;box-shadow:0 12px 32px #00000040;z-index:9999;display:flex;flex-direction:column;overflow:hidden}.notif-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line-2, #eee);font-size:13px}.notif-readall{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px}.notif-list{overflow-y:auto}.notif-empty{padding:24px 12px;text-align:center;color:var(--ink-2, #888);font-size:13px}.notif-item{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--line-2, #f0f0f0);padding:10px 12px;cursor:pointer}.notif-item:hover{background:var(--surface-2, #f6f7f9)}.notif-item.unread{background:color-mix(in srgb,var(--accent) 8%,transparent)}.notif-item.unread .notif-item-title:before{content:"● ";color:var(--accent)}.notif-item-title{font-size:13px;font-weight:600;color:var(--ink, #222)}.notif-item-body{font-size:12px;color:var(--ink-2, #666);margin-top:2px}.notif-item-time{font-size:11px;color:var(--ink-2, #999);margin-top:3px}@media (max-width: 900px){.notif-dropdown{position:fixed;top:56px;right:8px;left:8px;width:auto;max-height:70vh}}.app-layout{display:flex;flex-direction:column;min-height:100vh}.masthead{display:flex;align-items:stretch;gap:0;border-bottom:1px solid var(--line-2);background:var(--surface);padding:0;margin-bottom:18px;box-shadow:0 1px 3px #0000000f}.plate{width:54px;flex-shrink:0;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;border-right:1px solid var(--line-2)}.id{display:flex;flex-direction:column;justify-content:center;padding:0 16px;border-right:1px solid var(--line-2);min-width:0;flex-shrink:0;overflow:hidden}.co{font-weight:800;font-size:15px;letter-spacing:-.01em;text-transform:uppercase;color:var(--ink);white-space:nowrap}.loc{font-family:ui-monospace,Courier New,monospace;font-size:11px;color:var(--ink-2);margin-top:2px;white-space:nowrap}.tabs{display:flex;align-items:stretch;gap:0;border-right:1px solid var(--line-2);min-width:0;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{font:inherit;font-weight:700;font-size:12px;letter-spacing:.02em;text-transform:uppercase;padding:0 13px;border:none;border-left:1px solid var(--line-2);background:transparent;color:var(--ink-2);cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0}.tab:first-child{border-left:none}.tab:hover{background:var(--surface-2)}.tab.on{background:var(--ink);color:var(--surface)}.user-section{display:flex;align-items:center;gap:12px;padding:0 14px;border-left:1px solid var(--line-2)}.user-name{font-size:13px;color:var(--ink-2);font-weight:500}.btn-logout{background:none;border:none;color:var(--ink-3);cursor:pointer;font-size:16px;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color .2s}.btn-logout:hover{color:var(--crit)}.content{flex:1;padding:0 18px 60px;max-width:1220px;margin:0 auto;width:100%}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--paper)}.login-card{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;padding:40px;width:100%;max-width:380px;box-shadow:0 2px 8px #00000014}.login-header{text-align:center;margin-bottom:32px}.logo-circle{width:60px;height:60px;margin:0 auto 16px;background:var(--accent);color:var(--accent-ink);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:28px}.login-header h1{margin:0;font-size:24px;color:var(--ink)}.login-header p{margin:4px 0 0;font-size:12px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em}form{display:flex;flex-direction:column;gap:16px}.field input{font-size:14px;padding:10px 12px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface-2);color:var(--ink);font-family:inherit}.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field input:disabled{opacity:.6;cursor:not-allowed}.error{color:var(--crit);font-size:13px;padding:8px 12px;background:color-mix(in srgb,var(--crit) 10%,transparent);border:1px solid color-mix(in srgb,var(--crit) 30%,transparent);border-radius:4px}.btn-login{background:var(--accent);color:var(--accent-ink);border:none;padding:11px;font-size:14px;font-weight:700;border-radius:4px;cursor:pointer;text-transform:uppercase;letter-spacing:.02em;transition:background .2s}.btn-login:hover:not(:disabled){background:var(--accent-2)}.btn-login:disabled{opacity:.6;cursor:not-allowed}.demo-hint{text-align:center;margin-top:16px;color:var(--ink-3)}.demo-hint small{font-size:11px}.link-btn{display:block;width:100%;margin-top:12px;background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;text-align:center}.link-btn:hover{text-decoration:underline}.reset-hint{font-size:13px;color:var(--ink-2, #666);margin:0 0 12px;text-align:center}.login-card .info{background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good);padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:10px}.cell-editor-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:1000}.cell-editor{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;padding:24px;max-width:400px;width:90%;box-shadow:0 10px 40px #00000026}.cell-editor h3{margin:0 0 16px;font-size:16px;font-weight:700;color:var(--ink)}.shift-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-bottom:20px}.shift-options .option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px;border:2px solid var(--line-2);border-radius:4px;background:var(--surface-2);color:var(--ink);cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;transition:all .2s}.shift-options .option:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-2))}.shift-options .option.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,var(--surface));color:var(--accent)}.shift-options .option .code{font-weight:800;font-size:14px;font-family:ui-monospace,monospace}.shift-options .option .label{font-size:10px;color:var(--ink-2);text-align:center;line-height:1.2}.shift-options .option.on .label{color:var(--accent)}.actions{display:flex;gap:8px}.btn{flex:1;padding:10px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface-2);color:var(--ink);cursor:pointer;font-weight:600;font-size:13px;transition:all .2s}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.primary:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2)}.btn.secondary{background:var(--surface)}.btn.secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.wish-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2)}.wish-label{font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:6px}.wish-options{display:flex;flex-wrap:wrap;gap:6px}.wish-opt{font:inherit;font-size:12px;padding:5px 10px;border:1px solid var(--line-2);border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;transition:all .15s}.wish-opt:hover{border-color:var(--accent)}.wish-opt.on{background:var(--accent);color:#fff;border-color:var(--accent)}.rm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.rm-modal{background:var(--bg, var(--surface));color:var(--ink);border:1px solid var(--line-2);border-radius:10px;width:100%;max-width:620px;max-height:85vh;overflow-y:auto;padding:20px;box-shadow:0 12px 40px #00000040}.rm-head{display:flex;align-items:center;justify-content:space-between}.rm-head h3{margin:0;font-size:17px;font-weight:700}.rm-x{border:none;background:none;cursor:pointer;font-size:16px;color:var(--ink-2)}.rm-hint{font-size:13px;color:var(--ink-2);margin:4px 0 16px}.rm-controls{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}.rm-controls label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-2)}.rm-controls select{padding:8px 10px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface-2, var(--surface));color:var(--ink);font-size:13px;min-width:160px}.btn{padding:8px 14px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface-2, var(--surface));color:var(--ink);cursor:pointer;font-weight:600;font-size:13px}.btn.sm{padding:5px 10px;font-size:12px}.rm-results{display:flex;flex-direction:column;gap:8px}.rm-empty{padding:24px;text-align:center;color:var(--ink-2);background:var(--surface);border:1px dashed var(--line-2);border-radius:6px}.rm-candidate{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface)}.rm-candidate.best{border-color:color-mix(in srgb,var(--good) 50%,transparent);background:color-mix(in srgb,var(--good) 6%,transparent)}.rm-rank{width:24px;height:24px;flex-shrink:0;border-radius:50%;background:color-mix(in srgb,var(--ink) 10%,transparent);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.rm-info{flex:1;min-width:0}.rm-name{font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px}.best-badge{font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;padding:2px 6px;border-radius:3px;background:var(--good);color:#fff}.rm-reasons{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.rm-reasons .reason{font-size:11px;color:var(--ink-2);background:color-mix(in srgb,var(--ink) 5%,transparent);padding:2px 6px;border-radius:3px}.rm-reasons .warning{font-size:11px;color:var(--warn, #b26a00);background:color-mix(in srgb,var(--warn, #ff9800) 12%,transparent);padding:2px 6px;border-radius:3px}.rm-score{font-size:18px;font-weight:800;color:var(--ink);min-width:36px;text-align:center}.plan-page{display:flex;flex-direction:column;gap:18px}.ctrl-group select:disabled{opacity:.5;cursor:not-allowed}.kw-nav{display:flex;align-items:center;gap:8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);padding:4px 8px}.kw-nav button{background:none;border:none;color:var(--ink-2);cursor:pointer;font-size:14px;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.kw-nav button:hover{color:var(--ink)}.kw-nav span{font-weight:700;min-width:20px;text-align:center;font-family:ui-monospace,monospace}.stats{display:flex;gap:16px}.stat{display:flex;flex-direction:column;align-items:center;gap:4px}.stat .val{font-weight:800;font-size:18px;font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums}.stat .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);text-align:center;max-width:100px;line-height:1.2}.stat.crit .val{color:var(--crit)}.stat.warn .val{color:var(--warn)}.stat.ok .val{color:var(--good)}.plan-table{width:100%;border-collapse:collapse;min-width:900px}.plan-table thead th{background:var(--sunk);border:1px solid var(--line);padding:8px;text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2);position:sticky;top:0;z-index:5}.plan-table thead th.weekend{background:color-mix(in srgb,var(--ink) 6%,var(--surface))}.plan-table thead th .wd{font-weight:800;color:var(--ink);font-size:12px}.plan-table thead th .dd{font-size:10px;margin-top:2px}.emp-header{text-align:left;padding-left:12px!important;min-width:200px;max-width:200px}.plan-table tbody td{border:1px solid var(--line);padding:4px;text-align:center;height:50px}.plan-table tbody td.weekend{background:color-mix(in srgb,var(--ink) 4%,var(--surface))}.emp-cell{position:sticky;left:0;z-index:4;background:var(--surface);text-align:left;padding:8px 12px!important;min-width:200px;max-width:200px;border-right:1px solid var(--line-2)}.emp-name{font-weight:700;font-size:13px;color:var(--ink)}.emp-pers{font-family:ui-monospace,monospace;font-size:11px;color:var(--ink-2);margin-top:2px}.cell{display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.cell:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.chip{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;padding:4px 6px;font-size:12px;font-weight:700;font-family:ui-monospace,monospace;border-radius:2px;line-height:1.1;background:color-mix(in srgb,#4a7c9e 20%,var(--surface));color:color-mix(in srgb,#4a7c9e 70%,var(--ink));border:1px solid color-mix(in srgb,#4a7c9e 40%,transparent);min-width:45px}.chip small{font-size:9px;margin-top:1px}.chip.absence{background:color-mix(in srgb,var(--warn) 20%,var(--surface));color:color-mix(in srgb,var(--warn) 70%,var(--ink));border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.none{color:var(--ink-3);font-size:12px}.violations{border:1px solid var(--line-2);border-radius:4px;background:var(--surface);padding:16px}.violations h3{margin:0 0 12px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}.violation-list{display:flex;flex-direction:column;gap:8px}.violation{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:3px;font-size:13px}.violation.crit{background:color-mix(in srgb,var(--crit) 10%,transparent);border:1px solid color-mix(in srgb,var(--crit) 30%,transparent)}.violation.warn{background:color-mix(in srgb,var(--warn) 10%,transparent);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.violation .badge{flex-shrink:0;font-weight:700;color:var(--crit)}.violation.warn .badge{color:var(--warn)}.violation .text{flex:1}.violation .text strong{font-weight:700}.cell{position:relative}.wish-marker{position:absolute;top:1px;right:2px;font-size:9px;line-height:1;opacity:.85;pointer-events:none}.report-page{display:flex;flex-direction:column;gap:18px}.toolbar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:14px;background:var(--surface);border:1px solid var(--line-2);border-radius:4px}.ctrl-group select{font-size:13px;padding:6px 8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);font-family:inherit;cursor:pointer}.export-actions{display:flex;gap:6px}.btn:hover{background:color-mix(in srgb,var(--ink) 10%,transparent)}.filter-pills{display:flex;gap:8px;flex-wrap:wrap}.pill{font-size:12px;font-weight:600;padding:6px 12px;border:1px solid var(--line-2);border-radius:16px;background:var(--surface-2);color:var(--ink-2);cursor:pointer;transition:all .2s}.pill:hover{background:var(--surface);border-color:var(--accent);color:var(--accent)}.pill.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.loading{text-align:center;padding:40px;color:var(--ink-2)}.table-wrap{overflow-x:auto;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}.report-table{width:100%;border-collapse:collapse;min-width:900px;font-variant-numeric:tabular-nums}.report-table thead th{background:var(--sunk);border:1px solid var(--line);padding:8px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-2);position:sticky;top:0;z-index:5}.report-table thead th.num-col{text-align:right;padding-right:12px}.sort-btn{background:none;border:none;font:inherit;color:inherit;cursor:pointer;padding:0;text-align:left}.sort-btn:hover{color:var(--accent)}.report-table tbody td{border:1px solid var(--line);padding:10px 8px}.report-table tbody td.name-col{font-weight:600;color:var(--ink)}.report-table tbody td.pers-col{font-size:12px;color:var(--ink-2)}.report-table tbody td.num-col{text-align:right;padding-right:12px;font-family:ui-monospace,monospace;font-size:13px}.report-table tbody td.mono{font-family:ui-monospace,monospace}.report-table tbody td.crit{color:var(--crit);font-weight:700}.report-table tbody tr.has-violation{background:color-mix(in srgb,var(--crit) 6%,transparent)}.empty{text-align:center;padding:40px;color:var(--ink-3);font-size:13px}.summary{border:1px solid var(--line-2);border-radius:4px;background:var(--surface);padding:18px}.summary h3{margin:0 0 14px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.summary-stat{display:flex;flex-direction:column;gap:4px;padding:10px;background:var(--surface-2);border-radius:3px;border:1px solid var(--line-2)}.summary-stat .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.summary-stat .value{font-size:18px;font-weight:800;font-family:ui-monospace,monospace;color:var(--ink)}.summary-stat .value.crit{color:var(--crit)}.config-locations{display:flex;flex-direction:column;gap:16px}.config-locations h2{margin:0;font-size:16px;font-weight:700;color:var(--ink)}.locations-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.loc-card{border:1px solid var(--line-2);border-radius:4px;background:var(--surface);padding:14px;display:flex;flex-direction:column;gap:10px}.loc-header{display:flex;align-items:baseline;gap:10px}.loc-header h3{margin:0;font-size:14px;font-weight:700;color:var(--ink)}.loc-header .region{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:2px 6px;background:var(--surface-2);border-radius:2px}.loc-details{font-size:12px;color:var(--ink-2)}.loc-details div{margin:2px 0}.loc-details strong{font-weight:600}.loc-rule{display:flex;flex-direction:column;gap:4px}.loc-rule label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.loc-rule select{font-size:12px;padding:6px 8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);font-family:inherit}.loc-actions{display:flex;gap:8px;margin-top:6px}.btn.accent:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn.ghost{background:none;border:none;color:var(--ink-2);padding:4px 0;font-weight:500}.btn.ghost:hover{color:var(--accent);background:none;border:none}.config-employees{display:flex;flex-direction:column;gap:16px}.config-employees h2{margin:0;font-size:16px;font-weight:700;color:var(--ink)}.emp-list{display:flex;flex-direction:column;gap:8px}.emp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}.emp-info{flex:1;min-width:0}.emp-info .name{font-weight:600;font-size:14px;color:var(--ink)}.emp-info .meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px;font-size:11px;color:var(--ink-2)}.emp-info .meta span{display:inline-block;padding:2px 6px;background:var(--surface-2);border-radius:2px}.emp-actions{display:flex;gap:6px;flex-shrink:0}.edit-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:1000}.edit-modal{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;padding:24px;max-width:500px;width:90%;box-shadow:0 10px 40px #00000026}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field input,.field select{font-size:13px;padding:8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);font-family:inherit}.config-models{display:flex;flex-direction:column;gap:16px}.config-models h2{margin:0;font-size:16px;font-weight:700;color:var(--ink)}.controls{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}.ctrl-group select{font-size:13px;padding:6px 8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);font-family:inherit}.grow{flex:1 1 auto}.btn{font-size:12px;padding:6px 10px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);cursor:pointer;font-weight:600;transition:all .2s}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.accent{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);text-transform:uppercase;letter-spacing:.02em}.btn.accent:hover{background:var(--accent-2)}.btn.ghost{background:none;border:none;padding:4px 0;font-weight:500}.btn.ghost:hover{background:none}.models-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.empty{grid-column:1 / -1;text-align:center;padding:40px 20px;background:var(--surface);border:1px dashed var(--line-2);border-radius:4px;color:var(--ink-2);font-size:13px}.model-card{border:1px solid var(--line-2);border-radius:4px;background:var(--surface);padding:12px;display:flex;flex-direction:column;gap:10px}.model-header h3{margin:0;font-size:14px;font-weight:700;color:var(--ink)}.model-details{font-size:12px;color:var(--ink-2)}.model-details div{margin:4px 0;line-height:1.4}.model-details strong{font-weight:600}.model-actions{display:flex;gap:6px}.edit-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:1000;overflow-y:auto}.edit-modal{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;padding:24px;max-width:600px;width:90%;margin:20px auto;box-shadow:0 10px 40px #00000026}.edit-modal h3{margin:0 0 20px;font-size:16px;font-weight:700;color:var(--ink)}.edit-modal h4{margin:0 0 10px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}.form{display:flex;flex-direction:column;gap:16px}.section{padding:12px;background:var(--surface-2);border-radius:4px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.field input,.field select{font-size:13px;padding:8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface);color:var(--ink);font-family:inherit}.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field small{font-size:11px;color:var(--ink-3);margin-top:2px}.shifts-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.shift-row{display:grid;grid-template-columns:60px 1fr 80px 80px 40px;gap:6px}.shift-row input{font-size:12px;padding:6px;border:1px solid var(--line);border-radius:2px}.pattern-editor{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:4px}.pattern-editor input{font-size:12px;padding:6px;text-align:center;border:1px solid var(--line);border-radius:2px}.actions{display:flex;gap:8px;margin-top:12px}.btn.primary{flex:1;background:var(--accent);color:var(--accent-ink);border-color:var(--accent);padding:10px}.btn.primary:hover:not(:disabled){background:var(--accent-2)}.btn.primary:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{flex:1;background:var(--surface-2);padding:10px}.btn.secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--surface)}.config-rulesets{display:flex;flex-direction:column;gap:16px}.config-rulesets h2{margin:0;font-size:16px;font-weight:700;color:var(--ink)}.rulesets-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.ruleset-card{border:1px solid var(--line-2);border-radius:4px;background:var(--surface);padding:12px 14px;display:flex;flex-direction:column;gap:12px}.ruleset-header{display:flex;align-items:center;gap:8px}.ruleset-header h3{margin:0;font-size:14px;font-weight:700;color:var(--ink)}.ruleset-header .country{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:3px;background:var(--surface-2);color:var(--ink-2)}.ruleset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px}.ruleset-grid .metric{display:flex;flex-direction:column;gap:2px;padding:6px 8px;background:var(--surface-2);border-radius:3px}.ruleset-grid .metric .v{font-size:15px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.ruleset-grid .metric .l{font-size:10px;line-height:1.2;color:var(--ink-2)}.ruleset-actions{display:flex;gap:6px}.checkbox-field{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);cursor:pointer}.checkbox-field input{width:16px;height:16px;cursor:pointer}.hard-soft-section{padding-top:12px;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:10px}.hard-soft-section h4{margin:0;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2)}.hard-soft-section .section-hint{margin:0;font-size:12px;color:var(--ink-2);line-height:1.4}.config-absences{display:flex;flex-direction:column;gap:16px}.config-absences h2{margin:0;font-size:16px;font-weight:700;color:var(--ink)}.config-absences h3{margin:0;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}.absences-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.absence-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border-radius:3px;border:1px solid var(--line-2)}.absence-row.pending{background:color-mix(in srgb,var(--warn) 8%,transparent)}.absence-row.approved{background:color-mix(in srgb,var(--good) 8%,transparent)}.absence-row.rejected{background:color-mix(in srgb,var(--crit) 8%,transparent)}.absence-info{flex:1;min-width:0}.absence-info .type{font-weight:600;font-size:13px;color:var(--ink)}.absence-info .period{font-size:12px;color:var(--ink-2);margin-top:2px}.absence-actions{display:flex;gap:6px;flex-shrink:0}.btn{font-size:11px;padding:6px 10px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);cursor:pointer;font-weight:600;transition:all .2s}.btn.delete{border-color:var(--crit);color:var(--crit)}.btn.delete:hover{background:color-mix(in srgb,var(--crit) 10%,transparent)}.btn.cancel{border-color:var(--ink-2);color:var(--ink-2)}.btn.cancel:hover{background:color-mix(in srgb,var(--ink-2) 10%,transparent)}.absence-row.editing{flex-direction:column}.edit-form{width:100%;display:flex;flex-direction:column;gap:10px}.form-row{display:flex;flex-direction:column;gap:4px}.form-row label{font-size:11px;font-weight:600;color:var(--ink);text-transform:uppercase;letter-spacing:.03em}.form-row input,.form-row select{padding:6px 8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);font-size:13px;font-family:inherit}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--ink)}.form-actions{display:flex;gap:6px;margin-top:6px}.actions-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.config-rights{display:flex;flex-direction:column;gap:16px}.config-rights h2{margin:0;font-size:16px;font-weight:700}.users-list{display:flex;flex-direction:column;gap:8px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}.user-info{flex:1;min-width:0}.user-info .name{font-weight:600;font-size:13px;color:var(--ink)}.user-info .email{font-size:12px;color:var(--ink-2);margin-top:2px}.user-info .meta{font-size:11px;color:var(--ink-3);margin-top:4px}.user-role{flex-shrink:0}.role-display{display:flex;align-items:center;gap:8px}.badge{font-size:11px;font-weight:700;padding:4px 8px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em}.badge.role-admin{background:color-mix(in srgb,var(--crit) 20%,transparent);color:var(--crit)}.badge.role-planner{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.badge.role-viewer{background:color-mix(in srgb,var(--ink-2) 20%,transparent);color:var(--ink-2)}.you-badge{margin-left:8px;font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;background:color-mix(in srgb,var(--accent, var(--ink-2)) 18%,transparent);color:var(--accent, var(--ink-2));vertical-align:middle}.role-editor{display:flex;align-items:center;gap:6px}.role-editor select{padding:4px 6px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);font-size:12px;font-family:inherit}.btn{font-size:11px;padding:4px 8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);cursor:pointer;font-weight:600;transition:all .2s}.btn.edit{border-color:var(--ink-2);color:var(--ink-2)}.btn.edit:hover{background:color-mix(in srgb,var(--ink-2) 10%,transparent)}.btn.save{border-color:var(--good);color:var(--good)}.btn.save:hover{background:color-mix(in srgb,var(--good) 10%,transparent)}.btn.cancel{border-color:var(--crit);color:var(--crit)}.btn.cancel:hover{background:color-mix(in srgb,var(--crit) 10%,transparent)}.section-hint{padding:16px;background:color-mix(in srgb,var(--ink) 3%,transparent);border-radius:4px;border-left:3px solid var(--line-2)}.section-hint h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}.role-descriptions{display:flex;flex-direction:column;gap:8px}.role-desc{font-size:12px;line-height:1.5;color:var(--ink-2)}.role-desc strong{color:var(--ink);font-weight:600}.shift-exchange{display:flex;flex-direction:column;gap:16px}.shift-exchange h2{margin:0;font-size:16px;font-weight:700}.hint{font-size:13px;color:var(--ink-2);font-style:italic;margin:-8px 0 0}.btn.accent{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.accent:hover{background:color-mix(in srgb,var(--ink) 90%,black)}.form-card{padding:16px;background:var(--surface);border:1px solid var(--line-2);border-radius:4px;margin-bottom:12px}.form-group input,.form-group select,.form-group textarea{padding:8px 10px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);font-size:13px;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--ink)}.form-actions{display:flex;gap:8px;margin-top:12px}.section{padding:16px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}.section h3{margin:0 0 12px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.exchanges-list{display:flex;flex-direction:column;gap:8px}.exchange-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--line-2);border-radius:3px}.exchange-row.pending{background:color-mix(in srgb,var(--warn) 8%,transparent)}.exchange-row.approved{background:color-mix(in srgb,var(--good) 8%,transparent)}.exchange-row.rejected{background:color-mix(in srgb,var(--crit) 8%,transparent)}.exchange-row.finalized{background:color-mix(in srgb,var(--good) 15%,transparent)}.exchange-info{flex:1}.from-to{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px;margin-bottom:4px}.from-to .emp{padding:2px 6px;background:color-mix(in srgb,var(--ink) 10%,transparent);border-radius:2px}.exchange-info .date{font-size:12px;color:var(--ink-2)}.exchange-info .reason{font-size:12px;color:var(--ink-2);font-style:italic;margin-top:4px}.actions{display:flex;gap:6px;flex-shrink:0}.btn.sm{padding:4px 8px;font-size:11px}.btn.approve{border-color:var(--good);color:var(--good)}.btn.approve:hover{background:color-mix(in srgb,var(--good) 10%,transparent)}.btn.reject{border-color:var(--crit);color:var(--crit)}.btn.reject:hover{background:color-mix(in srgb,var(--crit) 10%,transparent)}.status-badge{font-size:11px;font-weight:700;padding:4px 8px;border-radius:2px;text-transform:uppercase;letter-spacing:.03em}.approved .status-badge{background:color-mix(in srgb,var(--good) 20%,transparent);color:var(--good)}.rejected .status-badge{background:color-mix(in srgb,var(--crit) 20%,transparent);color:var(--crit)}.finalized .status-badge{background:color-mix(in srgb,var(--good) 30%,transparent);color:var(--good);font-weight:800}.empty{text-align:center;padding:40px 20px;background:var(--surface);border:1px dashed var(--line-2);border-radius:4px;color:var(--ink-2);font-size:13px}.config-skills{display:flex;flex-direction:column;gap:16px}.config-skills h2{margin:0;font-size:16px;font-weight:700}.config-skills .hint{font-size:13px;color:var(--ink-2);font-style:italic;margin:-8px 0 0}.sub-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line-2)}.sub-tab{padding:8px 14px;border:none;background:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px}.sub-tab.on{color:var(--ink);border-bottom-color:var(--accent, var(--ink))}.tab-body{display:flex;flex-direction:column;gap:14px}.add-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.add-form input[type=text],.add-form input:not([type]),.add-form input[type=date],.add-form select{padding:8px 10px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface-2, var(--surface));color:var(--ink);font-size:13px}.add-form input[placeholder]{min-width:140px}.chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer}.btn{padding:8px 12px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface-2, var(--surface));color:var(--ink);cursor:pointer;font-weight:600;font-size:13px}.btn.sm{padding:4px 8px;font-size:12px}.cat-group h4{margin:8px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.skill-chips,.req-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.skill-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 8px 6px 12px;background:var(--surface);border:1px solid var(--line-2);border-radius:20px;font-size:13px}.skill-chip .exp-badge{font-size:12px}.skill-chip .x,.emp-skill-row .x,.req-chip .x{border:none;background:none;cursor:pointer;color:var(--ink-2);font-size:12px;padding:2px 4px}.skill-chip .x:hover,.req-chip .x:hover{color:var(--crit)}.selectors{display:flex;gap:8px;flex-wrap:wrap}.selectors select{padding:8px 10px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface-2, var(--surface));color:var(--ink);font-size:13px;min-width:180px}.expiring-banner{padding:12px 14px;border-radius:6px;font-size:13px;font-weight:600;background:color-mix(in srgb,var(--warn, #ff9800) 12%,transparent);color:var(--warn, #b26a00);border:1px solid color-mix(in srgb,var(--warn, #ff9800) 30%,transparent)}.expiring-list{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;font-weight:500}.exp-item{padding:2px 8px;background:var(--surface);border-radius:3px;font-size:12px}.exp-item.expired{color:var(--crit);text-decoration:line-through}.emp-skill-list{display:flex;flex-direction:column;gap:6px}.emp-skill-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface);border:1px solid var(--line-2);border-radius:4px;font-size:13px}.emp-skill-row .cat-tag{padding:2px 8px;background:color-mix(in srgb,var(--ink) 8%,transparent);border-radius:3px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2)}.emp-skill-row .nm{font-weight:600;flex:1}.emp-skill-row .lvl{color:var(--accent, #d4a017);letter-spacing:1px}.emp-skill-row .exp{font-size:12px;color:var(--ink-2)}.emp-skill-row .exp.expired,.exp-item.expired{color:var(--crit);font-weight:700}.shift-req-group{padding:12px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface)}.shift-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.shift-head .code{padding:3px 10px;background:var(--ink);color:#fff;border-radius:4px;font-weight:700;font-size:13px}.shift-head .label{color:var(--ink-2);font-size:13px}.req-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 8px 5px 12px;border-radius:20px;font-size:13px;border:1px solid var(--line-2)}.req-chip small{font-size:10px;text-transform:uppercase;opacity:.7}.req-chip.mand{background:color-mix(in srgb,var(--crit) 10%,transparent);border-color:color-mix(in srgb,var(--crit) 30%,transparent)}.req-chip.opt{background:color-mix(in srgb,var(--ink) 5%,transparent)}.req-add{display:inline-flex;align-items:center;gap:6px}.req-add select{padding:6px 8px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface-2, var(--surface));color:var(--ink);font-size:13px}.add-req-btn{border:1px dashed var(--line-2);background:none;border-radius:20px;padding:5px 12px;cursor:pointer;color:var(--ink-2);font-size:13px}.add-req-btn:hover{color:var(--ink);border-color:var(--ink)}.config-skills .empty{padding:24px;text-align:center;color:var(--ink-2);font-size:13px;background:var(--surface);border:1px dashed var(--line-2);border-radius:6px}.audit-log{display:flex;flex-direction:column;gap:16px}.audit-log h2{margin:0;font-size:16px;font-weight:700;color:var(--ink)}.audit-log .hint{font-size:13px;color:var(--ink-2);margin:0}.audit-log .error{padding:12px;background:color-mix(in srgb,var(--crit) 12%,transparent);color:var(--crit);border-radius:4px;font-size:13px}.audit-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;padding:12px;background:var(--surface-2);border-radius:4px}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{font-size:12px;font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}.filter-group select{padding:8px;border:1px solid var(--line-2);border-radius:3px;background:var(--bg);color:var(--ink);font-size:13px;cursor:pointer}.audit-table{overflow-x:auto;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}.audit-table table{width:100%;border-collapse:collapse;font-size:13px}.audit-table th{padding:10px 12px;background:var(--surface-2);color:var(--ink);font-weight:600;text-align:left;border-bottom:1px solid var(--line-2)}.audit-table td{padding:10px 12px;border-bottom:1px solid var(--line-2);color:var(--ink)}.audit-table .timestamp{font-family:monospace;font-size:12px;color:var(--ink-2);white-space:nowrap}.audit-table .user{font-weight:500}.audit-table .resource{display:flex;align-items:center;gap:6px}.audit-table .type{background:var(--surface-2);padding:2px 6px;border-radius:2px;font-size:11px;font-weight:600;text-transform:uppercase}.audit-table .id{font-size:11px;color:var(--ink-2);font-family:monospace}.audit-table .action{text-align:center}.audit-table .badge{display:inline-block;padding:3px 8px;border-radius:3px;font-size:11px;font-weight:600;text-transform:uppercase}.audit-table .action-create{background:color-mix(in srgb,var(--good) 20%,transparent);color:var(--good)}.audit-table .action-update{background:#3498db33;color:#1652a0}.audit-table .action-delete{background:color-mix(in srgb,var(--crit) 20%,transparent);color:var(--crit)}.audit-table .action-login{background:#9b59b633;color:#7d3c6e}.audit-table .action-export{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.audit-table .details{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-table code{background:var(--surface-2);padding:2px 4px;border-radius:2px;font-family:monospace;font-size:11px;color:var(--ink-2)}.audit-log .loading{padding:24px;text-align:center;color:var(--ink-2);font-size:13px}.audit-log .empty{padding:24px;text-align:center;color:var(--ink-2);background:var(--surface-2);border-radius:4px;font-size:13px}.config-calendar{display:flex;flex-direction:column;gap:16px}.config-calendar h2{margin:0;font-size:16px;font-weight:700;color:var(--ink)}.config-calendar .hint{font-size:13px;color:var(--ink-2)}.cal-controls{display:flex;align-items:center;gap:12px}.cal-controls .grow{flex:1}.cal-generate{display:flex;gap:6px;align-items:center}.cal-generate input{width:90px;padding:7px 8px;border:1px solid var(--line-2);border-radius:3px;background:var(--bg);color:var(--ink)}.cal-table{overflow-x:auto;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}.cal-table table{width:100%;border-collapse:collapse;font-size:13px}.cal-table th{padding:10px 12px;background:var(--surface-2);color:var(--ink);font-weight:600;text-align:left;border-bottom:1px solid var(--line-2)}.cal-table td{padding:10px 12px;border-bottom:1px solid var(--line-2);color:var(--ink)}.cal-date{font-family:monospace;white-space:nowrap}.kind-badge{display:inline-block;padding:3px 8px;border-radius:3px;font-size:11px;font-weight:600}.kind-feiertag{background:#3498db33;color:#1652a0}.kind-brueckentag{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.kind-betriebsferien{background:#9b59b633;color:#7d3c6e}.cal-models .all-models{font-style:italic;color:var(--ink-2)}.cal-actions{display:flex;gap:6px;justify-content:flex-end}.field-hint{margin:0 0 6px;font-size:11px;color:var(--ink-2)}.model-checks{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto;padding:4px 0}.model-check{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.model-check input{width:16px;height:16px;cursor:pointer}.all-models-note{margin:8px 0 0;font-size:12px;color:var(--good);font-weight:500}.config-calendar .muted{color:var(--ink-2);font-size:12px}.config-calendar .empty{padding:24px;text-align:center;color:var(--ink-2);background:var(--surface-2);border-radius:4px;font-size:13px}.cal-templates{margin-top:24px;padding-top:20px;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:8px}.cal-templates-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.cal-templates-head h3{margin:0;font-size:14px;font-weight:700;color:var(--ink)}.tpl-list{display:flex;flex-direction:column;gap:8px;margin-top:4px}.tpl-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}.tpl-info{display:flex;flex-direction:column;gap:2px;min-width:0}.tpl-info .muted{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}.tpl-actions{display:flex;gap:6px;flex-shrink:0}.tpl-entry-row{display:grid;grid-template-columns:1fr 64px 64px auto;gap:6px;margin-bottom:6px}.tpl-entry-row input{padding:6px 8px;border:1px solid var(--line-2);border-radius:3px;background:var(--bg);color:var(--ink);font-size:13px}.config-page{display:flex;flex-direction:column;gap:0}.config-header{padding:0 0 14px;border-bottom:1px solid var(--line-2);margin-bottom:14px}.config-header h1{margin:0;font-size:20px;font-weight:800;color:var(--ink)}.config-header small{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.config-tabs{display:flex;gap:0;border-bottom:1px solid var(--line-2);margin-bottom:18px;overflow-x:auto}.config-tabs .tab{display:flex;align-items:center;gap:8px;font:inherit;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:12px 16px;border:none;border-bottom:2px solid transparent;background:none;color:var(--ink-2);cursor:pointer;transition:all .2s;white-space:nowrap}.config-tabs .tab:hover{color:var(--ink);border-bottom-color:var(--line-2)}.config-tabs .tab.on{color:var(--accent);border-bottom-color:var(--accent)}.config-tabs .tab .ix{font-size:10px;color:var(--ink-3);font-weight:800}.config-panel{flex:1;min-height:400px}.settings-page{display:flex;justify-content:center;padding:20px}.settings-container{max-width:600px;width:100%}.settings-page h1{margin:0 0 20px;font-size:24px;font-weight:700}.settings-section{padding:20px;margin-bottom:16px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface)}.settings-section h2{margin:0 0 12px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.form-group{margin-bottom:12px;display:flex;flex-direction:column;gap:4px}.form-group label{font-size:12px;font-weight:600;color:var(--ink)}.form-group input,.form-group select{padding:8px 10px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);font-size:13px;font-family:inherit}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--ink)}.form-group small{font-size:11px;color:var(--ink-2);font-style:italic}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.form-row .form-group{margin-bottom:0}.danger-zone{padding:12px;margin-bottom:12px;border:1px dashed var(--crit);border-radius:3px;background:color-mix(in srgb,var(--crit) 5%,transparent)}.danger-zone h3{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--crit)}.danger-zone p{margin:0 0 8px;font-size:12px;color:var(--ink-2)}.form-actions{display:flex;gap:8px;margin-top:20px;justify-content:flex-start}.btn.primary:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 80%,white)}.btn.primary:disabled{opacity:.6;cursor:not-allowed}.btn.danger{border-color:var(--crit);color:var(--crit)}.btn.danger:hover{background:color-mix(in srgb,var(--crit) 10%,transparent)}.timeclock-page{max-width:600px;margin:0 auto;padding:20px}.timeclock-header{text-align:center;margin-bottom:30px}.timeclock-header h1{margin:0 0 4px;font-size:28px;font-weight:700}.timeclock-header .date{margin:0;font-size:14px;color:var(--ink-2)}.timeclock-employee{display:flex;align-items:center;gap:12px;margin-bottom:20px}.timeclock-employee label{font-size:13px;font-weight:600;color:var(--ink-2)}.timeclock-employee select{flex:1;max-width:340px;padding:8px 10px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface);color:var(--ink);font-size:14px}.timeclock-card{background:var(--surface);border:1px solid var(--line-2);border-radius:8px;margin-bottom:24px;overflow:hidden}.card-content{padding:24px}.time-display{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:24px}.time-field{display:flex;flex-direction:column;align-items:center;padding:16px;background:color-mix(in srgb,var(--ink) 3%,transparent);border-radius:4px}.time-field .label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:8px}.time-field .time{font-size:28px;font-weight:700;font-family:monospace;color:var(--ink)}.time-field.duration .time{font-size:20px;color:var(--good)}.empty-state{text-align:center;padding:40px 20px}.empty-state .icon{font-size:64px;margin-bottom:16px}.empty-state h2{margin:0 0 16px;font-size:18px;color:var(--ink-2)}.actions{display:flex;gap:8px;justify-content:center}.btn{padding:10px 20px;border:1px solid var(--line-2);border-radius:4px;background:var(--surface-2);color:var(--ink);cursor:pointer;font-weight:600;font-size:14px;transition:all .2s}.btn.checkin,.btn.checkout{padding:12px 24px;font-size:15px;border-color:var(--good);color:var(--good)}.btn.checkin:hover,.btn.checkout:hover{background:color-mix(in srgb,var(--good) 10%,transparent)}.btn.checkin-large{padding:16px 32px;font-size:18px;background:var(--good);color:#fff;border-color:var(--good)}.btn.checkin-large:hover{background:color-mix(in srgb,var(--good) 90%,black)}.history-section{margin-top:30px}.history-section h2{margin:0 0 12px;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.entries-list{display:flex;flex-direction:column;gap:8px}.entry{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--surface);border:1px solid var(--line-2);border-radius:4px}.entry-times{display:flex;align-items:center;gap:8px;font-family:monospace;font-weight:600;font-size:14px}.entry-duration{font-size:13px;font-weight:700;color:var(--good)}.empty{padding:20px;text-align:center;background:var(--surface);border:1px dashed var(--line-2);border-radius:4px;color:var(--ink-2);font-size:13px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.section-header h2{margin:0;flex:1}.btn.export{padding:8px 14px;font-size:13px;background:var(--accent, var(--ink-2));color:#fff;border:none;white-space:nowrap}.btn.export:hover{opacity:.85}@media (max-width: 600px){.timeclock-page{padding:12px}.timeclock-header h1{font-size:24px}.time-display{grid-template-columns:1fr}.time-field .time{font-size:32px}.btn.checkin-large{width:100%}.section-header{flex-direction:column;align-items:stretch}.btn.export{width:100%}}.analytics-page{max-width:1200px;margin:0 auto;padding:20px}.analytics-page h1{margin:0 0 4px;font-size:24px;font-weight:700}.subtitle{margin:0 0 24px;font-size:14px;color:var(--ink-2)}.kpis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.kpi-card{padding:16px;background:var(--surface);border:1px solid var(--line-2);border-radius:6px;text-align:center}.kpi-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:8px}.kpi-value{font-size:28px;font-weight:700;color:var(--ink);margin-bottom:8px}.kpi-trend{font-size:12px;font-weight:700}.kpi-trend.positive{color:var(--good)}.kpi-trend.negative{color:var(--crit)}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:24px}.chart-card{padding:16px;background:var(--surface);border:1px solid var(--line-2);border-radius:6px}.chart-card h3{margin:0 0 12px;font-size:14px;font-weight:700}.chart-placeholder{padding:40px 20px;text-align:center;background:color-mix(in srgb,var(--ink) 3%,transparent);border:1px dashed var(--line-2);border-radius:4px;color:var(--ink-2)}.compliance-score{display:flex;gap:20px;align-items:center}.score-ring{position:relative;width:100px;height:100px;border-radius:50%;background:conic-gradient(var(--good) 95%,var(--ink-3) 95%);display:flex;align-items:center;justify-content:center}.score-ring:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;background:var(--surface)}.score-percent{position:relative;z-index:1;font-size:24px;font-weight:700;color:var(--good)}.score-details{flex:1;display:flex;flex-direction:column;gap:6px}.score-details .detail{font-size:12px;color:var(--ink-2)}.trends-section{margin-bottom:24px}.trends-section h2{margin:0 0 12px;font-size:16px;font-weight:700}.trend-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.trend-card{padding:12px;background:var(--surface);border:1px solid var(--line-2);border-radius:4px}.trend-card h4{margin:0 0 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.trend-value{margin:0 0 4px;font-size:20px;font-weight:700;color:var(--good)}.trend-note{margin:0;font-size:11px;color:var(--ink-2)}.insights-section{margin-bottom:24px}.insights-section h2{margin:0 0 12px;font-size:16px;font-weight:700}.insight-cards{display:flex;flex-direction:column;gap:8px}.insight-card{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:4px;border-left:3px solid}.insight-card.info{background:color-mix(in srgb,#2196F3 5%,transparent);border-left-color:#2196f3}.insight-card.warning{background:color-mix(in srgb,var(--warn) 10%,transparent);border-left-color:var(--warn)}.insight-card.success{background:color-mix(in srgb,var(--good) 10%,transparent);border-left-color:var(--good)}.insight-card .icon{font-size:18px;font-weight:700;flex-shrink:0}.insight-card .content strong{display:block;font-size:13px;font-weight:700;margin-bottom:2px}.insight-card .content p{margin:0;font-size:12px;color:var(--ink-2)}.roi-banner{background:linear-gradient(135deg,color-mix(in srgb,var(--good) 12%,transparent),color-mix(in srgb,var(--accent) 8%,transparent));border:1px solid color-mix(in srgb,var(--good) 25%,transparent);border-radius:12px;padding:24px;margin-bottom:24px}.roi-headline{display:flex;align-items:center;gap:14px;margin-bottom:20px}.roi-icon{font-size:36px;line-height:1}.roi-headline h2{margin:0;font-size:18px;color:var(--ink)}.roi-note{margin:2px 0 0;font-size:12px;color:var(--ink-2)}.roi-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:16px}.roi-card{background:var(--surface);border:1px solid var(--line-2);border-radius:8px;padding:20px;text-align:center}.roi-card.primary{border-color:var(--good);background:color-mix(in srgb,var(--good) 6%,transparent)}.roi-value{font-size:30px;font-weight:700;color:var(--good);font-variant-numeric:tabular-nums}.roi-card:not(.primary) .roi-value{color:var(--ink)}.roi-label{font-size:12px;color:var(--ink-2);margin-top:4px}.roi-assumptions{margin:0;font-size:11px;color:var(--ink-2);font-style:italic;line-height:1.5}@media (max-width: 768px){.kpis-grid,.trend-cards{grid-template-columns:repeat(2,1fr)}.charts-section{grid-template-columns:1fr}.compliance-score{flex-direction:column;align-items:center}.roi-cards{grid-template-columns:1fr}}.payroll-page{max-width:1200px;margin:0 auto;padding:20px}.payroll-page h1{margin:0 0 20px;font-size:24px;font-weight:700}.controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:20px;padding:16px;background:var(--surface);border:1px solid var(--line-2);border-radius:4px}.ctrl-group{display:flex;flex-direction:column;gap:4px}.ctrl-group label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.ctrl-group input,.ctrl-group select{padding:6px 8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);font-size:13px}.btn{padding:8px 12px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);cursor:pointer;font-weight:600;font-size:13px;transition:all .2s}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:color-mix(in srgb,var(--ink) 90%,black)}.btn.secondary{border-color:var(--line-2);color:var(--ink-2)}.btn.secondary:hover{background:color-mix(in srgb,var(--ink-2) 10%,transparent)}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.summary-stat{display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--surface);border:1px solid var(--line-2);border-radius:4px}.summary-stat .label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.summary-stat .value{font-size:20px;font-weight:700;color:var(--ink)}.payroll-list{border:1px solid var(--line-2);border-radius:4px;overflow:hidden}.payroll-table{width:100%;border-collapse:collapse;font-size:13px}.payroll-table th{background:color-mix(in srgb,var(--ink) 5%,transparent);padding:10px;text-align:left;font-weight:700;border-bottom:1px solid var(--line-2)}.payroll-table td{padding:10px;border-bottom:1px solid var(--line-2)}.payroll-table .mono{font-family:monospace;text-align:right}.payroll-table .gross{font-weight:700}.payroll-table .name{font-weight:600}.payroll-table .actions{display:flex;gap:6px}.btn-sm{padding:4px 8px;font-size:11px;border:1px solid var(--line-2);border-radius:2px;background:var(--surface-2);color:var(--ink);cursor:pointer}.btn-sm:hover{background:color-mix(in srgb,var(--ink) 10%,transparent)}.badge{font-size:10px;font-weight:700;padding:3px 6px;border-radius:2px;text-transform:uppercase;letter-spacing:.02em}.badge.status-draft{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.badge.status-finalized{background:color-mix(in srgb,var(--good) 20%,transparent);color:var(--good)}.badge.status-paid{background:color-mix(in srgb,var(--good) 30%,transparent);color:var(--good)}.status-draft{opacity:.8}.empty{padding:40px;text-align:center;color:var(--ink-2);background:var(--surface)}.payroll-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line-2);margin-bottom:20px}.ptab{font:inherit;font-size:13px;font-weight:600;padding:8px 16px;border:none;background:none;color:var(--ink-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s}.ptab:hover{color:var(--ink)}.ptab.on{color:var(--accent);border-bottom-color:var(--accent)}.rate-section{margin-bottom:28px}.rate-section h3{margin:0 0 4px;font-size:14px;font-weight:700;color:var(--ink)}.rate-section .hint,.vacation-tab .hint{font-size:12px;color:var(--ink-2);font-style:italic;margin:0 0 12px}.rate-input{width:110px;font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink)}.rate-input:focus{outline:none;border-color:var(--accent)}.payroll-table .add-row td{background:var(--surface-2)}.payroll-table .add-row select{font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface);color:var(--ink)}@media (max-width: 768px){.payroll-table{font-size:11px}.payroll-table th,.payroll-table td{padding:6px 4px}.controls{flex-direction:column;align-items:stretch}.ctrl-group,.btn{width:100%}}.integrations-page{max-width:1000px;margin:0 auto;padding:20px}.page-header{margin-bottom:30px}.page-header h1{margin:0 0 8px;font-size:24px;font-weight:700}.page-header p{margin:0;font-size:14px;color:var(--ink-2)}.integrations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:30px}.integration-card{display:flex;flex-direction:column;padding:16px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);transition:all .2s}.integration-card:hover{border-color:var(--ink-2);box-shadow:0 2px 8px #0000001a}.integration-card.status-error{border-color:var(--crit);background:color-mix(in srgb,var(--crit) 5%,transparent)}.card-header{display:flex;gap:12px;margin-bottom:12px}.card-header .icon{font-size:36px;display:flex;align-items:center;justify-content:center;min-width:50px}.card-header .title{flex:1}.card-header h3{margin:0;font-size:16px;font-weight:700}.status-badge{font-size:11px;font-weight:700;margin-top:4px;display:inline-block;padding:3px 6px;border-radius:2px}.status-badge.status-connected{background:color-mix(in srgb,var(--good) 20%,transparent);color:var(--good)}.status-badge.status-disconnected{background:color-mix(in srgb,var(--ink-2) 20%,transparent);color:var(--ink-2)}.status-badge.status-error{background:color-mix(in srgb,var(--crit) 20%,transparent);color:var(--crit)}.card-body{flex:1;margin-bottom:12px}.card-body p{margin:0;font-size:13px;color:var(--ink-2)}.last-sync{font-size:11px;color:var(--ink-3);margin-top:8px;padding-top:8px;border-top:1px solid var(--line-2)}.card-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{flex:1;min-width:100px;padding:8px 12px;border:1px solid var(--line-2);border-radius:3px;background:var(--surface-2);color:var(--ink);cursor:pointer;font-weight:600;font-size:12px;transition:all .2s}.btn.connect{background:var(--good);color:#fff;border-color:var(--good)}.btn.connect:hover{background:color-mix(in srgb,var(--good) 90%,black)}.btn.disconnect{background:color-mix(in srgb,var(--crit) 10%,transparent);border-color:var(--crit);color:var(--crit)}.btn.disconnect:hover{background:color-mix(in srgb,var(--crit) 20%,transparent)}.btn.settings{border-color:var(--line-2);color:var(--ink-2)}.btn.settings:hover{background:color-mix(in srgb,var(--ink-2) 10%,transparent)}.oauth-info{padding:20px;background:color-mix(in srgb,var(--good) 5%,transparent);border:1px solid var(--good);border-radius:8px}.oauth-info h2{margin:0 0 12px;font-size:16px;font-weight:700;color:var(--good)}.oauth-info p{margin:0 0 12px;font-size:13px;color:var(--ink-2)}.oauth-info ul{margin:0;padding-left:20px}.oauth-info li{font-size:13px;margin-bottom:6px;color:var(--ink-2)}@media (max-width: 768px){.integrations-grid{grid-template-columns:1fr}.card-actions{flex-direction:column}.btn{width:100%}}.audit-log{padding:24px;max-width:1200px;margin:0 auto}.audit-log h1{margin:0 0 8px;font-size:28px;font-weight:700}.audit-log .hint{color:var(--ink-2);font-size:13px;margin-bottom:8px}.audit-log .hint.retention{font-size:12px;font-style:italic;color:var(--warn, #ff9800);margin-bottom:24px}.filter-section{margin-bottom:24px;padding:16px;background:var(--surface);border:1px solid var(--line-2);border-radius:6px}.filter-row{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.filter-group{flex:1;min-width:150px;display:flex;flex-direction:column}.filter-group label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:6px}.filter-group input{padding:8px 12px;border:1px solid var(--line-2);border-radius:4px;font-size:13px;background:var(--bg);color:var(--ink)}.filter-group input:focus{outline:none;border-color:var(--accent, var(--ink-2));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, var(--ink-2)) 20%,transparent)}.filter-actions{display:flex;gap:8px}.filter-actions .btn{padding:8px 16px;font-size:13px}.audit-table-wrapper{overflow-x:auto;border:1px solid var(--line-2);border-radius:6px;background:var(--surface)}.audit-table{width:100%;border-collapse:collapse;font-size:13px}.audit-table thead{background:color-mix(in srgb,var(--ink) 3%,transparent);border-bottom:1px solid var(--line-2)}.audit-table th{padding:12px;text-align:left;font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:var(--ink-2)}.audit-table tbody tr{border-bottom:1px solid var(--line-2);transition:background .15s}.audit-table tbody tr:hover{background:color-mix(in srgb,var(--accent, var(--ink)) 5%,transparent)}.audit-table td{padding:12px;vertical-align:middle}.audit-table .action{font-weight:600;color:var(--ink);min-width:80px}.audit-table .resource{display:flex;align-items:center;gap:8px;min-width:150px}.audit-table .resource .type{padding:2px 8px;background:color-mix(in srgb,var(--ink) 8%,transparent);border-radius:3px;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.audit-table .resource .id{font-family:monospace;color:var(--ink-2);font-size:12px}.audit-table .user{font-family:monospace;color:var(--ink-2);font-size:12px;min-width:100px}.audit-table .time{color:var(--ink-2);font-size:12px;min-width:180px;white-space:nowrap}.audit-log .empty{padding:32px;text-align:center;color:var(--ink-2)}@media (max-width: 600px){.audit-log{padding:16px}.filter-row{flex-direction:column}.filter-group,.filter-actions{width:100%}.filter-actions .btn{flex:1}.audit-table{font-size:12px}.audit-table th,.audit-table td{padding:8px}.audit-table .resource{flex-direction:column;align-items:flex-start;gap:2px}}.demo-page{padding:40px 24px;max-width:1200px;margin:0 auto;background:linear-gradient(135deg,var(--bg) 0%,var(--surface-2) 100%);min-height:100vh}.demo-page.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:24px;text-align:center}.demo-page.loading .spinner{width:60px;height:60px;border:4px solid rgba(128,128,128,.25);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.demo-page.loading h2{font-size:24px;margin:0}.demo-page.loading p{color:var(--ink-2);margin:0;font-size:14px}.demo-page.error{padding:40px;background:color-mix(in srgb,var(--crit) 12%,transparent);border-radius:8px;color:var(--crit)}.demo-page.error h2{margin:0 0 12px}.demo-hero{text-align:center;margin-bottom:60px;padding:40px 0}.demo-hero h1{font-size:48px;margin:0 0 12px;color:var(--ink)}.demo-hero .tagline{font-size:18px;color:var(--ink-2);margin:0}.demo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-bottom:60px}.demo-card{background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:24px;text-align:center;transition:transform .2s,box-shadow .2s}.demo-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000026}.demo-card .icon{font-size:40px;margin-bottom:12px}.demo-card h3{margin:0 0 8px;font-size:16px;color:var(--ink)}.demo-card .value{font-size:32px;font-weight:700;color:var(--accent);margin:8px 0;font-variant-numeric:tabular-nums}.demo-card .note{font-size:12px;color:var(--ink-2);margin:0;line-height:1.4}.demo-card.savings{background:linear-gradient(135deg,color-mix(in srgb,var(--good) 10%,transparent),color-mix(in srgb,var(--good) 5%,transparent));border-color:color-mix(in srgb,var(--good) 30%,transparent)}.demo-card.savings .value{color:var(--good)}.demo-rules{background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:32px;margin-bottom:60px}.demo-rules h3{margin:0 0 24px;font-size:20px;color:var(--ink)}.rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.rule-badge{background:var(--surface-2);border:2px solid var(--line-2);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:8px;text-align:center}.rule-badge.hard{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,transparent)}.rule-badge.soft{border-color:var(--warn);background:#f39c120d}.rule-badge .label{font-weight:600;font-size:13px;color:var(--ink)}.rule-badge .status{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2)}.rule-badge.hard .status{color:var(--accent)}.rule-badge.soft .status{color:var(--warn)}.rule-badge .value{font-size:15px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.demo-cta{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);color:#fff;border-radius:12px;padding:48px 32px;text-align:center;margin-bottom:60px}.demo-cta h3{margin:0 0 12px;font-size:28px}.demo-cta p{font-size:16px;margin:0 0 24px;opacity:.95}.demo-cta .btn{background:#fff;color:var(--accent);border:none;padding:14px 32px;font-weight:600;border-radius:6px;cursor:pointer;font-size:15px;transition:transform .2s,box-shadow .2s}.demo-cta .btn:hover{transform:scale(1.05);box-shadow:0 4px 12px #0003}.demo-features{background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:32px}.demo-features h3{margin:0 0 20px;font-size:20px;color:var(--ink)}.demo-features ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.demo-features li{font-size:14px;color:var(--ink);padding:12px;background:var(--surface-2);border-radius:6px;line-height:1.5}.demo-features strong{color:var(--accent)}@media (max-width: 768px){.demo-page{padding:24px 16px}.demo-hero h1{font-size:32px}.demo-hero .tagline{font-size:14px}.demo-grid,.rules-grid{grid-template-columns:1fr}.demo-cta{padding:32px 24px}.demo-cta h3{font-size:20px}}.emp-view{max-width:640px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:16px}.emp-header{display:flex;align-items:center;justify-content:space-between;padding:8px 4px}.emp-hello{font-size:20px;font-weight:700;color:var(--ink)}.emp-sub{font-size:13px;color:var(--ink-2)}.emp-logout{background:none;border:1px solid var(--line-2);border-radius:6px;width:36px;height:36px;cursor:pointer;color:var(--ink-2);font-size:16px}.emp-card{background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:16px}.emp-card h3{margin:0 0 12px;font-size:15px;color:var(--ink)}.emp-week-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:14px;font-weight:600;color:var(--ink)}.emp-week-nav button{background:var(--surface-2);border:1px solid var(--line-2);border-radius:6px;width:32px;height:32px;cursor:pointer;font-size:18px;color:var(--ink)}.emp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.emp-day{position:relative;background:var(--surface-2);border:1px solid var(--line-2);border-radius:8px;padding:8px 2px;cursor:pointer;text-align:center;transition:border-color .15s}.emp-day:hover{border-color:var(--accent)}.emp-day-name{font-size:11px;font-weight:700;color:var(--ink-2)}.emp-day-date{font-size:10px;color:var(--ink-2)}.emp-day-shift{margin-top:6px;font-size:15px;font-weight:700;color:var(--ink)}.emp-day-shift.absence{color:var(--crit)}.emp-day-shift.none{color:var(--ink-2);font-weight:400}.emp-day-wish{position:absolute;top:2px;right:3px;font-size:10px}.emp-hint,.emp-empty{font-size:12px;color:var(--ink-2);text-align:center;margin:10px 0 0}.emp-abs-form{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.emp-abs-form select,.emp-abs-form input{padding:8px;border:1px solid var(--line-2);border-radius:6px;background:var(--bg);color:var(--ink);flex:1;min-width:110px}.emp-abs-list{display:flex;flex-direction:column;gap:6px}.emp-abs-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface-2);border-radius:6px;font-size:13px}.emp-abs-type{font-weight:600}.emp-abs-dates{color:var(--ink-2);flex:1}.emp-abs-status{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;text-transform:uppercase}.emp-abs-status.ok{background:color-mix(in srgb,var(--good) 20%,transparent);color:var(--good)}.emp-abs-status.no{background:color-mix(in srgb,var(--crit) 20%,transparent);color:var(--crit)}.emp-abs-status.pending{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.emp-clock{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.emp-clock-status{font-size:14px;font-weight:600;color:var(--ink)}.emp-clock-status .clock-out{color:var(--ink-2)}.emp-clock-btn{border:none;border-radius:10px;padding:14px 28px;font-size:16px;font-weight:700;color:#fff;cursor:pointer;transition:transform .1s,opacity .2s}.emp-clock-btn:disabled{opacity:.6;cursor:default}.emp-clock-btn.in{background:var(--good)}.emp-clock-btn.out{background:var(--crit)}.emp-clock-btn:active:not(:disabled){transform:scale(.97)}.onboarding-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);display:flex;align-items:center;justify-content:center;z-index:2000}.onboarding-wizard{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:500px;overflow:hidden}.wizard-header{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);color:#fff;padding:32px 24px 24px;text-align:center}.wizard-header h1{margin:0 0 20px;font-size:24px;font-weight:700}.progress-bar{height:6px;background:#ffffff4d;border-radius:3px;overflow:hidden;margin-bottom:12px}.progress{height:100%;background:#fff;transition:width .3s ease}.step-counter{margin:0;font-size:12px;opacity:.9}.wizard-body{padding:32px 24px;min-height:300px}.wizard-step{animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.wizard-step h2{margin:0 0 8px;font-size:20px;font-weight:700;color:#1a1a1a}.wizard-step p{margin:0 0 20px;font-size:14px;color:#666}.wizard-step input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:6px;font-size:16px;font-family:inherit;transition:all .2s}.wizard-step input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}.options{display:grid;grid-template-columns:1fr;gap:12px}.option{padding:16px;border:2px solid #e0e0e0;border-radius:6px;background:#f9f9f9;color:#1a1a1a;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;text-align:left}.option:hover{border-color:var(--accent);background:var(--accent-soft)}.option.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}.option-wide{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.option-wide strong{font-size:15px}.option-sub{font-size:12px;font-weight:400;color:#555;line-height:1.4}.option.selected .option-sub{color:var(--accent)}.wizard-footer{display:flex;gap:12px;padding:24px;background:#f9f9f9;border-top:1px solid #e0e0e0}.btn{flex:1;padding:12px 16px;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s;font-size:14px}.btn.primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);color:#fff}.btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px color-mix(in srgb,var(--accent) 30%,transparent)}.btn.secondary{background:#f0f0f0;color:#1a1a1a;border:1px solid #e0e0e0}.btn.secondary:hover:not(:disabled){background:#e8e8e8}.btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 600px){.onboarding-wizard{max-width:90vw;max-height:90vh}.wizard-header{padding:24px 16px 16px}.wizard-header h1{font-size:20px;margin-bottom:12px}.wizard-body{padding:24px 16px;min-height:auto}.wizard-footer{flex-direction:column-reverse}}.toast-container{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:2000;max-width:300px}.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:4px;box-shadow:0 4px 12px #00000026;animation:slideIn .3s ease-out;font-size:13px;font-weight:500}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{background:color-mix(in srgb,var(--good) 20%,var(--surface));border:1px solid color-mix(in srgb,var(--good) 50%,transparent);color:var(--good)}.toast-error{background:color-mix(in srgb,var(--crit) 20%,var(--surface));border:1px solid color-mix(in srgb,var(--crit) 50%,transparent);color:var(--crit)}.toast-info{background:color-mix(in srgb,var(--accent) 20%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);color:var(--accent)}.toast .icon{font-weight:700;flex-shrink:0}.toast .message{flex:1}.splash{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:18px;color:var(--ink-2)}.api-health-banner{position:fixed;top:0;left:0;right:0;z-index:10000;background:var(--crit);color:#fff;text-align:center;padding:8px 16px;font-size:14px;font-weight:600;box-shadow:0 2px 8px #0003}:root{color-scheme:light;--paper: #f5f7fa;--surface: #fafbfc;--surface-2: #f0f3f7;--sunk: #e9ecf0;--line: #d8dfe8;--line-2: #c4ccd7;--ink: #1f2937;--ink-2: #5a6574;--ink-3: #8b95a5;--accent: #2a9dd9;--accent-2: #1b8bc7;--accent-ink: #ffffff;--accent-soft: #e3f2fd;--good: #3f7d3a;--warn: #b07d16;--crit: #b23a26}:root[data-theme=dark]{color-scheme:dark;--paper: #14171b;--surface: #1c2026;--surface-2: #232830;--sunk: #161a1f;--line: #333a44;--line-2: #454e5a;--ink: #e7eaef;--ink-2: #a3abb7;--ink-3: #6f7885;--accent: #3bb3ad;--accent-2: #2f958f;--accent-ink: #12171a;--accent-soft: #1d2f2e;--good: #7fb277;--warn: #d1a13e;--crit: #d8654c}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:14px;line-height:1.45}#root{min-height:100vh}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root[data-theme=dark]{--bg: #0f0f0f;--surface: #1a1a1a;--surface-2: #252525;--line: #333333;--line-2: #2a2a2a;--ink: #e8e8e8;--ink-2: #b0b0b0;--ink-3: #808080;--good: #4ade80;--warn: #facc15;--crit: #ef4444}:root[data-theme=light]{--bg: #ffffff;--surface: #f5f5f5;--surface-2: #ebebeb;--line: #e0e0e0;--line-2: #d0d0d0;--ink: #1a1a1a;--ink-2: #666666;--ink-3: #999999;--good: #22c55e;--warn: #eab308;--crit: #dc2626}:root[data-theme=dark] body{color-scheme:dark}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{color-scheme:dark}:root[data-theme=dark] a{color:#60a5fa}:root[data-theme=dark] a:visited{color:#a78bfa}:root[data-theme=dark] a:hover{color:#93c5fd}:root[data-theme=dark] code,:root[data-theme=dark] pre{background:var(--surface-2);color:#d1d5db}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.theme-toggle{position:fixed;top:16px;right:16px;width:40px;height:40px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line-2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .2s}.theme-toggle:hover{background:var(--line)}.theme-toggle:focus{outline:2px solid var(--good);outline-offset:2px}@media (max-width: 768px){.app-layout{flex-direction:column}.masthead{flex-wrap:wrap;padding:10px;gap:8px}.plate{width:32px;height:32px;font-size:16px}.id{font-size:12px}.id .co{font-size:14px}.id .loc{font-size:10px}.tabs{display:flex!important;flex-wrap:nowrap;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-right:none;border-bottom:1px solid var(--line-2);margin-bottom:8px}.tab{flex:0 0 auto;font-size:12px;padding:10px 12px;white-space:nowrap}.user-section{width:100%;justify-content:space-between;order:10}.user-name{font-size:12px}.content{padding:12px}.plan-page{gap:12px}.toolbar{flex-wrap:wrap;gap:8px;padding:10px}.ctrl-group{flex:1;min-width:120px}.ctrl-group select,.ctrl-group input{font-size:12px;padding:6px}.roster-grid{font-size:11px}.roster-grid th,.roster-grid td{padding:4px;min-width:40px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.plan-table{font-size:12px;width:max-content;min-width:100%}.plan-table .emp-header,.plan-table .emp-cell{position:sticky;left:0;z-index:2;background:var(--surface);width:120px;box-shadow:1px 0 0 var(--line-2)}.plan-table thead .emp-header{z-index:3}.emp-name{max-width:118px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.plan-table tbody td{min-width:44px}.notif-dropdown{position:fixed;top:56px;right:8px;left:8px;width:auto;max-height:70vh}.report-table{font-size:10px}.report-table th,.report-table td{padding:6px 3px}.export-actions{flex-wrap:wrap}.filter-pills{width:100%;order:11}.pill{font-size:10px;padding:4px 8px;white-space:nowrap}.config-employees,.config-models,.config-locations,.config-absences,.config-rights{gap:12px}.emp-row,.model-card,.loc-card,.absence-row,.user-row{flex-wrap:wrap;gap:8px}.emp-actions,.model-actions,.loc-actions,.absence-actions{width:100%}.field-row{grid-template-columns:1fr;gap:8px}.edit-modal{max-width:90vw;max-height:90vh;margin:10px}.form{max-height:calc(90vh - 150px);overflow-y:auto}.btn{font-size:12px;padding:6px 10px}.btn.sm{font-size:10px;padding:4px 6px}.edit-modal-overlay{padding:10px;align-items:flex-end}.edit-modal{border-radius:8px 8px 0 0}.time-display{grid-template-columns:1fr;gap:12px}.time-field .time{font-size:24px}.btn.checkin-large{width:100%;font-size:16px;padding:12px}button{min-height:44px;min-width:44px}input,select,textarea{font-size:16px}}@media (max-width: 480px){.masthead{flex-direction:column;align-items:flex-start}.grow{display:none}.tabs{width:100%;gap:0;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab{flex:0 0 auto;text-align:center;border-bottom:2px solid transparent;padding:8px 12px;min-width:max-content}.tab.on{border-bottom-color:var(--ink)}.ctrl-group{min-width:100%}.roster-grid{font-size:9px;margin:0 -12px;border-radius:0}.content{padding:8px}.filter-pills{flex-direction:column}.pill{width:100%;text-align:left}.emp-row,.model-card,.absence-row{flex-direction:column}.emp-info,.model-details,.absence-info{width:100%}.emp-actions,.model-actions,.absence-actions{width:100%;flex-direction:row}.form-row{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,1fr)}.table-wrap{overflow-x:auto}.report-table{min-width:600px}.settings-container{max-width:100%}.login-form{max-width:90vw;margin:20px 10px}}@media (min-width: 769px) and (max-width: 1024px){.ctrl-group{min-width:140px}.roster-grid{font-size:12px}.report-table{font-size:11px}}@media print{.masthead,.sidebar,.toolbar,.controls,.export-actions,.btn,.filter-pills{display:none!important}.content{padding:0}.roster-grid,.report-table{page-break-inside:avoid;border:1px solid black}.roster-grid tr,.report-table tr{page-break-inside:avoid}}@media print{.layout-header,.sidebar,.toast-container,.modal-overlay,button,.absence-actions{display:none!important}@page{size:A4 landscape;margin:.5in}body{margin:0;padding:0;background:#fff;color:#000}.plan-page{width:100%;page-break-after:always}.week-selector{display:none}.roster-grid{width:100%;border-collapse:collapse;font-size:10px;margin-bottom:20px}.roster-grid th,.roster-grid td{border:1px solid #000;padding:4px;text-align:center}.roster-grid th{background:#f0f0f0;font-weight:700}.roster-grid .cell-shift{background:#fff;font-weight:600}.roster-grid .cell-off{background:#f9f9f9}.roster-grid .cell-absence{background:#e8e8e8;text-decoration:line-through}.violations-list{margin-top:20px;width:100%}.violations-list h3{font-size:12px;font-weight:700;margin:10px 0 5px;page-break-after:avoid}.violation-item{font-size:9px;margin:3px 0;padding:3px;border-bottom:1px solid #ddd;page-break-inside:avoid}.report-page{width:100%}.report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;page-break-after:avoid}.report-header h1{font-size:18px;margin:0}.report-header .meta{font-size:10px;color:#666}.report-filters{display:none}.metrics-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px;page-break-after:avoid}.metric-card{border:1px solid #999;padding:8px;text-align:center;font-size:10px}.metric-card .value{font-size:16px;font-weight:700;margin:4px 0}.report-table{width:100%;border-collapse:collapse;font-size:9px;margin-top:15px}.report-table thead{background:#f0f0f0;page-break-after:avoid}.report-table th{border:1px solid #999;padding:6px;text-align:left;font-weight:700}.report-table td{border:1px solid #ddd;padding:4px 6px}.report-table tbody tr:nth-child(2n){background:#f9f9f9}.report-table tbody tr{page-break-inside:avoid}.print-footer{display:block;position:fixed;bottom:.3in;left:.5in;right:.5in;font-size:8px;color:#999;text-align:right;border-top:1px solid #ddd;padding-top:5px}.print-footer:after{content:" | Seite " counter(page)}}
