:root{color-scheme:light dark;--bg:light-dark(#f4f5f1,#181c19);--panel:light-dark(#fff,#232925);--ink:light-dark(#24382f,#e6eee7);--muted:light-dark(#65736a,#b0bcb3);--line:light-dark(#dce3da,#3b473f);--accent:light-dark(#315d47,#b5d6b9);--on:light-dark(#fff,#183021);--soft:light-dark(#e8efe5,#303e32);--warm:light-dark(#f5ead1,#423b2b);--error:light-dark(#963e2c,#ffb6a2)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}a{color:var(--accent)}.app{max-width:1180px;margin:auto;min-height:100vh;display:flex;flex-direction:column}.chrome{display:flex;align-items:center;gap:20px;padding:22px 30px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:600;letter-spacing:-1px;text-decoration:none;color:var(--ink)}.logo{background:var(--accent);color:var(--on);width:37px;height:37px;display:grid;place-items:center;border-radius:11px;font-size:26px}.local-badge{font-size:12px;color:var(--muted)}.sync{margin-left:auto;background:var(--soft);color:var(--ink);border:0;border-radius:20px;padding:9px 14px;font-size:12px}.sync.pending{background:var(--warm)}.tabs{display:flex;gap:5px;padding:0 24px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}.tabs button{border:0;border-bottom:2px solid transparent;padding:16px 17px;background:none;color:var(--muted)}.tabs button.selected{border-color:var(--accent);color:var(--accent)}main{padding:30px;flex:1}.datebar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:26px}.date-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.date-controls button{min-width:42px}.date-tag,.badge{color:var(--accent);background:var(--soft);border-radius:7px;padding:7px 10px;font-size:12px}.heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:23px}h1{font-size:29px;font-weight:500;letter-spacing:-1px;line-height:1.2;margin:4px 0 7px}h2{font-size:18px;font-weight:500;margin:0}h3{font-size:15px;font-weight:500}.eyebrow{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.sub{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:24px;align-items:start}.panel{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:24px;min-width:0}.panel+.panel{margin-top:22px}.layout>.panel+.panel{margin-top:0}.state{font-size:13px;color:var(--accent)}.clock{font-size:54px;letter-spacing:-3px;line-height:1.2;margin:17px 0 6px;font-variant-numeric:tabular-nums}.clock small{font-size:16px;letter-spacing:0;margin-left:9px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:25px 0 20px}.action{min-height:87px;padding:14px 10px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:center;gap:7px;flex-direction:column}.action span{font-size:21px}.primary,.action.active{background:var(--accent);color:var(--on);border:1px solid var(--accent)}.quiet,.primary{border-radius:9px;padding:9px 13px;min-height:41px}.quiet{background:var(--panel);color:var(--ink);border:1px solid var(--line)}.link{background:none;border:0;padding:9px 0;color:var(--accent);text-align:left}.danger{color:var(--error)}.field{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px;flex-wrap:wrap}label{font-size:13px;color:var(--muted)}input,select,textarea{color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 11px;min-height:42px;max-width:100%}textarea{resize:vertical;min-height:90px;width:100%}.wide{width:100%}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.event{display:grid;grid-template-columns:60px 10px minmax(0,1fr) 35px;gap:11px;padding:15px 0;border-top:1px solid var(--line);align-items:start}.event time{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.node{width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:7px}.event small{display:block;margin-top:3px;font-size:11px;color:var(--muted)}.edit{background:none;border:0;color:var(--muted);padding:5px;min-height:35px;min-width:35px}.break{padding:6px 0 6px 81px;font-size:11px;color:var(--muted)}.empty{padding:30px 10px;text-align:center;color:var(--muted)}.bottom{display:flex;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:13px;margin-top:16px}.weekline{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-radius:12px;padding:18px 22px;background:var(--soft);margin-top:24px}.weekline strong{font-size:24px;font-weight:500;font-variant-numeric:tabular-nums}.warning{padding:12px 15px;background:var(--warm);border-radius:9px;font-size:13px;margin:12px 0}.success{padding:12px 15px;background:var(--soft);border-radius:9px;font-size:13px;margin-bottom:18px}.error{color:var(--error)}.notes{margin-top:20px}.notes summary{color:var(--muted);font-size:13px;cursor:pointer}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:22px}.metric{padding:17px 0;border-top:1px solid var(--line)}.metric strong{font-size:30px;letter-spacing:-1px;font-weight:400;display:block;margin-top:7px;font-variant-numeric:tabular-nums}.metric small{font-size:12px;color:var(--muted)}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th{text-align:left;color:var(--muted);font-size:12px;font-weight:400}td,th{padding:14px 9px;border-bottom:1px solid var(--line)}td:last-child,th:last-child{text-align:right}.table-scroll{overflow-x:auto}.selected-row{background:var(--soft)}.table-link{background:none;border:0;color:var(--accent);text-align:left;padding:3px;min-height:35px;white-space:nowrap}.right{text-align:right}.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.toolbar label{display:flex;flex-direction:column;gap:5px}.span-all{grid-column:1/-1}.note-list{padding-left:20px;color:var(--muted);font-size:13px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-grid>.panel{margin:0}footer{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:11px;padding:23px 30px}dialog{width:460px;max-width:calc(100% - 30px);max-height:85vh;border:1px solid var(--line);border-radius:18px;padding:25px;background:var(--panel);color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#17281e77}.dialog-heading{display:flex;justify-content:space-between;gap:18px;margin-bottom:15px}.dialog-heading p{font-size:12px;color:var(--muted);margin:6px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:23px}#modal-fields>label,.form-row>label{display:flex;flex-direction:column;gap:5px;margin:13px 0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.check{display:flex!important;align-items:center;flex-direction:row!important;gap:9px!important}.check input{min-height:auto;width:17px;height:17px}.history{padding:12px 0;border-bottom:1px solid var(--line)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hidden{display:none!important}#notice:empty{display:none}
@media(max-width:700px){main{padding:22px 15px}.chrome{padding:18px 16px;gap:10px}.local-badge{display:none}.tabs{padding:0 7px;gap:0}.tabs button{padding:14px 12px;font-size:13px}.layout,.settings-grid{grid-template-columns:1fr}.panel{padding:20px}.metrics{grid-template-columns:1fr;gap:0}.metric{display:flex;align-items:center;justify-content:space-between;gap:12px}.metric strong{font-size:26px}.form-row{grid-template-columns:1fr;gap:0}input,select,textarea{font-size:16px}h1{font-size:26px}.event{grid-template-columns:54px 8px minmax(0,1fr) 35px;gap:9px}.sync{font-size:11px}.date-controls input{max-width:170px}td,th{padding:12px 7px}button{touch-action:manipulation}.action{min-height:82px}.quiet,.primary,.edit,.table-link,.link{min-height:44px}}

.auth-page { max-width: 640px; padding-top: 8vh; }
.auth-page > .brand { display: inline-block; margin-bottom: 28px; }
.auth-page details { margin: 28px 0; }
.auth-page input { max-width: 100%; min-width: 0; }

/* Absence status remains readable without relying on color alone. */
.absence-button { font-weight: 600; }
.absence-vacation { background: light-dark(#e3f1f9, #223e4c); color: light-dark(#175674, #b6e4fa); border-color: light-dark(#9bc8df, #4d849e); }
.absence-sick { background: light-dark(#fbe8e5, #4a2d2b); color: light-dark(#873e37, #ffc7bd); border-color: light-dark(#e7b5ac, #a3675f); }
.absence-mixed { background: light-dark(#eee8f9, #3c304c); color: light-dark(#654586, #dcc8f5); border-color: light-dark(#c8b5df, #8d73aa); }

.day-heading { flex-direction: column; align-items: flex-start; gap: 14px; }
.day-heading > .absence-button { max-width: 100%; text-align: left; white-space: normal; }
