:root{--bg: #1d1d1b;--surface: #2a2a28;--accent: #00a984;--accent-hover: #00c599;--text: #f5f5f3;--text-muted: #a8a8a3;--error: #ff6b6b;--warning: #ffcc4d;--border: #3a3a37;--radius: 8px}*{box-sizing:border-box}body,html,#root{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Roboto,system-ui,-apple-system,sans-serif}button{background:var(--accent);color:var(--bg);border:none;padding:.6rem 1.2rem;border-radius:var(--radius);font-weight:600;cursor:pointer;font-size:.95rem}button:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}input,select{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:.5rem;border-radius:var(--radius);width:100%;font-size:.95rem}input:focus,select:focus{outline:2px solid var(--accent);border-color:var(--accent)}label{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.8rem;color:var(--text-muted);font-size:.85rem}.center{min-height:100vh;display:grid;place-items:center}.card{background:var(--surface);border-radius:var(--radius);padding:2rem;width:360px;border:1px solid var(--border)}.card h1{margin-top:0}.app{max-width:1100px;margin:0 auto;padding:2rem 1.5rem}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}header h1{margin:0;color:var(--accent)}.header-actions{display:flex;gap:.75rem;align-items:center}.summaries{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:2rem}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.summary-card h3{margin:0 0 .5rem;color:var(--text-muted);font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.summary-hours{font-size:2rem;font-weight:700;color:var(--accent)}.summary-meta{color:var(--text-muted);font-size:.85rem;margin-top:.5rem;line-height:1.4}.timer{background:var(--surface);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.timer button.start,.timer button.stop{font-size:1.1rem;padding:.8rem 2rem}.timer button.stop{background:var(--error);color:var(--text)}.issues{margin-bottom:1.5rem}.issue{padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:.5rem;border-left:4px solid}.issue.error{background:#ff6b6b1a;border-color:var(--error)}.issue.warning{background:#ffcc4d1a;border-color:var(--warning)}.manual{background:var(--surface);border:1px solid var(--border);padding:1.5rem;border-radius:var(--radius);margin-bottom:2rem}.manual-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin-bottom:1rem}.manual-grid .full{grid-column:1 / -1}table{width:100%;border-collapse:collapse}th,td{padding:.6rem .5rem;text-align:left;border-bottom:1px solid var(--border)}th{color:var(--text-muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}td button{background:transparent;color:var(--text-muted);padding:.3rem .6rem}td button:hover{color:var(--error);background:transparent}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:100}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;width:420px;max-width:90vw}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.modal-actions button:first-child{background:transparent;border:1px solid var(--border);color:var(--text)}.error{color:var(--error);font-size:.9rem;margin:.5rem 0}.nav{display:flex;gap:1rem;flex:1;justify-content:center}.nav a{color:var(--text-muted);text-decoration:none;padding:.4rem .8rem;border-radius:var(--radius);font-size:.9rem}.nav a:hover{color:var(--text)}.nav a.active{background:var(--accent);color:var(--bg)}.placeholder{padding:3rem;color:var(--text-muted);text-align:center}.spacer{flex:1}.muted{color:var(--text-muted)}.row-actions{display:flex;gap:.5rem;margin-top:1rem}.danger{background:var(--error);color:var(--text)}.week-toolbar,.month-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;min-height:160px;display:flex;flex-direction:column}.day-head{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem}.day .badge{align-self:flex-start;background:var(--border);padding:2px 6px;border-radius:4px;font-size:.7rem;color:var(--text)}.day.holiday{border-color:var(--warning)}.day.abs-vacation{border-color:var(--accent)}.day.abs-sick{border-color:var(--error)}.day.abs-unpaid{border-color:var(--text-muted)}.entry-row{display:flex;gap:.5rem;padding:.25rem .4rem;border-radius:4px;cursor:pointer;font-size:.85rem}.entry-row:hover{background:var(--bg)}.day-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:.5rem;border-top:1px solid var(--border)}.day-foot button{background:transparent;color:var(--accent);padding:.2rem .6rem}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.month-head{font-weight:600;color:var(--text-muted);padding:.4rem;text-align:center;font-size:.8rem}.month-cell{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:.4rem;min-height:80px;display:flex;flex-direction:column;gap:.2rem}.month-cell.empty{background:transparent;border-color:transparent}.month-cell.holiday{border-color:var(--warning)}.month-cell.abs-vacation{border-color:var(--accent)}.month-cell.abs-sick{border-color:var(--error)}.month-cell-day{font-weight:600;font-size:.9rem}.month-sum{font-size:.8rem;color:var(--accent);margin-top:auto}.badge.small{font-size:.65rem;padding:1px 4px}.workdays{display:flex;gap:.4rem;margin-top:.4rem}.workday{display:flex;align-items:center;justify-content:center;flex-direction:row;gap:.3rem;padding:.4rem .7rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;margin:0;font-size:.85rem}.workday input{width:auto;margin:0}.workday.active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.hint{display:block;color:var(--text-muted);font-size:.8rem;margin-top:.2rem}.hint-error{color:var(--error)}.current-terms{background:#00a9841a}.current-terms td{font-weight:600}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.8rem}.field-label{color:var(--text-muted);font-size:.85rem}.manual-grid .field.full{grid-column:1 / -1}.entries-log table{margin-top:1rem}.entries-log td button{margin-right:.4rem}.entries-log button:disabled{opacity:.4;cursor:not-allowed}.abs-vacation-row td:first-child{border-left:3px solid var(--accent)}.abs-sick-row td:first-child{border-left:3px solid var(--error)}.abs-unpaid-row td:first-child{border-left:3px solid var(--text-muted)}.profile{display:flex;flex-direction:column;gap:1.5rem}.card-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem}.profile-field{display:flex;flex-direction:column;gap:.2rem}.small{font-size:.8rem}.settings-list{list-style:none;padding:0;margin:0}.settings-list li{padding:.4rem 0}.toggle{display:flex;align-items:center;gap:.6rem;flex-direction:row;margin:0}.toggle input{width:auto}.status{padding:2px 8px;border-radius:4px;font-size:.8rem}.status-pending{background:#ffcc4d33;color:var(--warning)}.status-approved{background:#00a98433;color:var(--accent)}.status-rejected{background:#ff6b6b33;color:var(--error)}.dashboard-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.negative{color:var(--error)}
