:root{--ink:#142938;--muted:#71808c;--navy:#173b57;--teal:#1aa7a1;--teal-dark:#10817c;--bg:#f4f7fa;--card:#fff;--line:#dfe7ec;--danger:#c24949;--shadow:0 18px 50px rgba(24,57,79,.11);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 100% 0,#dff3f1 0,transparent 30rem),var(--bg)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.hidden{display:none!important}.topbar{height:72px;padding:0 max(20px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.88);border-bottom:1px solid rgba(222,231,236,.9);position:sticky;top:0;z-index:5;backdrop-filter:blur(16px)}.brand-lockup{display:flex;align-items:center;gap:11px;font-size:18px;letter-spacing:-.02em}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--navy);color:#fff;font-weight:800;box-shadow:0 8px 20px rgba(23,59,87,.2)}.avatar{width:38px;height:38px;border:0;border-radius:50%;background:#dcece9;color:var(--navy);font-size:12px;font-weight:800}.app main{width:min(760px,100%);margin:0 auto;padding:28px 20px 112px}.screen{display:none}.screen.active{display:block}.date-row,.month-nav,.section-heading,.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow,.timer-label{margin:0 0 7px;color:var(--teal-dark);font-size:11px;font-weight:800;letter-spacing:.14em}.date-row h1,.screen-title h1,.month-nav h1{margin:0;font-size:clamp(25px,7vw,34px);letter-spacing:-.045em}.status-chip{padding:7px 11px;border-radius:99px;background:#e8eef2;color:var(--navy);font-size:12px;font-weight:700}.status-chip.running{background:#d8f3ee;color:#08786e}.status-chip.break{background:#fff0ce;color:#936c14}.timer-card{margin-top:24px;padding:34px 24px 25px;text-align:center;border-radius:28px;background:linear-gradient(145deg,#173b57,#1b4a68);color:#fff;box-shadow:0 24px 50px rgba(23,59,87,.22);position:relative;overflow:hidden}.timer-card:after{content:"";position:absolute;width:180px;height:180px;border:32px solid rgba(255,255,255,.04);border-radius:50%;right:-90px;top:-90px}.timer-card .timer-label{color:#a9dcd7}.timer{font-variant-numeric:tabular-nums;font-size:clamp(45px,13vw,66px);font-weight:750;line-height:1.1;letter-spacing:-.055em}.timer-target{margin:8px 0 27px;color:#bdd0dc;font-size:13px}.main-action,.secondary-action,.primary,.outline{border:0;border-radius:14px;padding:15px 20px;font-weight:800}.main-action{width:min(320px,100%);background:var(--teal);color:#fff;font-size:16px;box-shadow:0 12px 25px rgba(0,0,0,.18)}.main-action.stop{background:#fff;color:var(--navy)}.secondary-action{margin-top:10px;width:min(320px,100%);border:1px solid rgba(255,255,255,.26);background:transparent;color:#fff}.location-hint{margin:17px 0 0;color:#a9becb;font-size:11px}.section-heading{margin:28px 2px 13px}.section-heading h2,.settings-card h2{margin:0;font-size:17px}.text-button{padding:5px;border:0;background:transparent;color:var(--teal-dark);font-weight:750;font-size:13px}.entries,.audit-list{display:grid;gap:10px}.empty{padding:24px;text-align:center;color:var(--muted);border:1px dashed #cbd8df;border-radius:18px;background:rgba(255,255,255,.55)}.entry,.audit-item{display:flex;align-items:center;gap:13px;padding:15px;border:1px solid var(--line);border-radius:17px;background:var(--card)}.entry-icon{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:13px;background:#e2f4f1;color:var(--teal-dark);font-weight:900}.entry-body{min-width:0;flex:1}.entry-title{font-weight:800;font-variant-numeric:tabular-nums}.entry-meta{margin-top:3px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-duration{font-weight:800;white-space:nowrap}.entry-edit{border:0;background:transparent;color:var(--muted);font-size:18px}.month-nav{margin-bottom:19px}.month-nav button{width:42px;height:42px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--navy);font-size:27px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:15px}.summary-cell{padding:15px 11px;border-radius:16px;background:#fff;border:1px solid var(--line)}.summary-cell small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.summary-cell strong{display:block;margin-top:6px;font-size:18px}.summary-cell.balance.positive strong{color:var(--teal-dark)}.summary-cell.balance.negative strong{color:var(--danger)}.calendar-card{padding:14px;border-radius:22px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays span{text-align:center;padding:8px 0;color:var(--muted);font-size:11px;font-weight:800}.calendar-day{min-width:0;aspect-ratio:1;border:0;border-radius:12px;background:transparent;color:var(--ink);position:relative;font-weight:700}.calendar-day:hover{background:#f0f5f7}.calendar-day.outside{opacity:.28}.calendar-day.weekend,.calendar-day.holiday{color:#9a6470}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--navy)}.calendar-day .day-hours{display:block;margin-top:2px;color:var(--teal-dark);font-size:8px}.calendar-day .marker{position:absolute;width:5px;height:5px;border-radius:50%;bottom:6px;left:50%;transform:translateX(-50%);background:var(--teal)}.calendar-day .marker.absence{background:#d59a32}.legend{display:flex;gap:15px;flex-wrap:wrap;margin:15px 4px;color:var(--muted);font-size:11px}.dot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%}.dot.worked{background:var(--teal)}.dot.absence{background:#d59a32}.dot.holiday{background:#9a6470}.screen-title{margin-bottom:22px}.audit-item{align-items:flex-start}.audit-item time{display:block;color:var(--muted);font-size:11px}.audit-item p{margin:5px 0 0;font-size:13px;line-height:1.45}.settings-card{display:grid;gap:16px;margin-bottom:14px;padding:20px;border:1px solid var(--line);border-radius:20px;background:#fff}.settings-card label,.dialog-card label,.auth-card label{display:grid;gap:7px;color:#445765;font-size:12px;font-weight:700}.settings-card input,.dialog-card input,.dialog-card select,.auth-card input{width:100%;padding:13px 14px;border:1px solid #cbd8df;border-radius:12px;background:#fbfcfd;color:var(--ink);outline:none}.settings-card input:focus,.dialog-card input:focus,.auth-card input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(26,167,161,.12)}.switch-row{grid-template-columns:1fr auto!important;align-items:center}.switch-row span{display:grid;gap:3px}.switch-row small{color:var(--muted);font-weight:400}.switch-row input{width:22px;height:22px}.primary{background:var(--navy);color:#fff}.outline{border:1px solid var(--line);background:#fff;color:var(--navy)}.full{width:100%}.danger-text{padding:12px;border:0;background:transparent;color:var(--danger);font-weight:800}.version{text-align:center;color:#97a4ad;font-size:11px}.bottom-nav{position:fixed;z-index:10;left:50%;bottom:0;transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,1fr);width:min(760px,100%);padding:8px 10px calc(8px + env(safe-area-inset-bottom));border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);box-shadow:0 -15px 45px rgba(24,57,79,.08)}.bottom-nav button{display:grid;place-items:center;gap:3px;padding:7px 2px;border:0;background:transparent;color:#7b8993;font-size:10px;font-weight:700}.bottom-nav button span{font-size:20px}.bottom-nav button.active{color:var(--teal-dark)}dialog{width:min(520px,calc(100% - 28px));max-height:88vh;padding:0;border:0;border-radius:23px;background:transparent;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(13,30,42,.48);backdrop-filter:blur(3px)}.dialog-card{display:grid;gap:15px;margin:0;padding:23px;background:#fff;overflow:auto}.dialog-card h2{margin:0}.close{width:34px;height:34px;border:0;border-radius:10px;background:#edf2f5;color:var(--ink);font-size:22px}.day-total{padding:15px;border-radius:15px;background:#edf6f5;font-weight:800}.absence-card{padding:14px;border-radius:14px;background:#fff4dc;color:#795c20}.toast{position:fixed;z-index:100;left:50%;top:18px;transform:translate(-50%,-130%);width:min(440px,calc(100% - 32px));padding:13px 16px;border-radius:13px;background:#102c40;color:#fff;text-align:center;font-size:13px;box-shadow:var(--shadow);transition:transform .22s}.toast.show{transform:translate(-50%,0)}.auth-shell{min-height:100vh;display:grid;place-content:center;gap:25px;padding:28px}.auth-shell>.brand-lockup{justify-content:center}.auth-card{width:min(420px,calc(100vw - 36px));padding:30px;border:1px solid rgba(255,255,255,.7);border-radius:27px;background:rgba(255,255,255,.86);backdrop-filter:blur(18px);box-shadow:var(--shadow)}.auth-card h1{margin:0 0 10px;font-size:34px;line-height:1.05;letter-spacing:-.05em}.muted{color:var(--muted);line-height:1.55}.auth-card form{display:grid;gap:14px;margin-top:24px}.auth-card>.text-button{display:block;margin:18px auto 0}.auth-card #registerForm{padding-top:20px;border-top:1px solid var(--line)}
@media(min-width:680px){.app main{padding-top:38px}.timer-card{padding:42px}.calendar-day{aspect-ratio:1.15}.bottom-nav{bottom:18px;border:1px solid var(--line);border-radius:22px;padding-bottom:8px}.app main{padding-bottom:125px}}
@media(max-width:370px){.app main{padding-left:13px;padding-right:13px}.summary-cell strong{font-size:15px}.timer-card{padding-left:15px;padding-right:15px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.dialog-card details{padding:12px;border:1px solid var(--line);border-radius:13px}.dialog-card summary{cursor:pointer;color:var(--navy);font-size:12px;font-weight:800}.geo-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}@media(max-width:420px){.geo-fields{grid-template-columns:1fr}}

/* WorkTimeAL 1.1: themes and clickable home brand */
:root{
  --theme-body-accent:#dff3f1;
  --theme-surface:#fff;
  --theme-surface-soft:#f0f5f7;
  --theme-surface-muted:#edf2f5;
  --theme-surface-translucent:rgba(255,255,255,.55);
  --theme-topbar:rgba(255,255,255,.88);
  --theme-nav:rgba(255,255,255,.94);
  --theme-auth:rgba(255,255,255,.86);
  --theme-field:#fbfcfd;
  --theme-border-strong:#cbd8df;
  --theme-label:#445765;
}
html[data-theme="blue"]{
  color-scheme:dark;
  --ink:#f2f8ff;
  --muted:#b9d2e8;
  --navy:#063d82;
  --teal:#0aa4d8;
  --teal-dark:#7be9ff;
  --bg:#0752a4;
  --card:#0d63b8;
  --line:#3a83c7;
  --danger:#ffaaaa;
  --shadow:0 18px 50px rgba(1,31,69,.3);
  --theme-body-accent:#178ee5;
  --theme-surface:#0d63b8;
  --theme-surface-soft:#1b74c5;
  --theme-surface-muted:#2779bd;
  --theme-surface-translucent:rgba(10,83,163,.78);
  --theme-topbar:rgba(4,48,99,.92);
  --theme-nav:rgba(4,48,99,.96);
  --theme-auth:rgba(9,85,164,.94);
  --theme-field:#0a56a4;
  --theme-border-strong:#58a0da;
  --theme-label:#e2f1ff;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --ink:#edf5f7;
  --muted:#9eb0ba;
  --navy:#2d7da5;
  --teal:#27b8ae;
  --teal-dark:#55d3ca;
  --bg:#0e1821;
  --card:#172630;
  --line:#2b404c;
  --danger:#f07d7d;
  --shadow:0 18px 50px rgba(0,0,0,.32);
  --theme-body-accent:#183542;
  --theme-surface:#172630;
  --theme-surface-soft:#20343f;
  --theme-surface-muted:#243a46;
  --theme-surface-translucent:rgba(23,38,48,.7);
  --theme-topbar:rgba(14,24,33,.9);
  --theme-nav:rgba(18,31,41,.96);
  --theme-auth:rgba(23,38,48,.9);
  --theme-field:#111e27;
  --theme-border-strong:#38515e;
  --theme-label:#c1d0d6;
}
body{background:radial-gradient(circle at 100% 0,var(--theme-body-accent) 0,transparent 30rem),var(--bg);transition:background-color .2s,color .2s}
.topbar{background:var(--theme-topbar)}
.brand-home{padding:0;border:0;background:transparent;color:inherit;text-align:left}
.brand-home:hover strong{color:var(--teal-dark)}
.brand-home:focus-visible,.theme-option:focus-visible{outline:3px solid color-mix(in srgb,var(--teal) 35%,transparent);outline-offset:3px}
.entry,.audit-item,.summary-cell,.calendar-card,.settings-card,.month-nav button,.outline{background:var(--theme-surface)}
.empty{border-color:var(--theme-border-strong);background:var(--theme-surface-translucent)}
.calendar-day:hover{background:var(--theme-surface-soft)}
.settings-card label,.dialog-card label,.auth-card label{color:var(--theme-label)}
.settings-card input,.dialog-card input,.dialog-card select,.auth-card input{border-color:var(--theme-border-strong);background:var(--theme-field);color:var(--ink)}
.bottom-nav{grid-template-columns:repeat(6,1fr);background:var(--theme-nav)}
.dialog-card{background:var(--theme-surface)}
.close{background:var(--theme-surface-muted)}
.auth-card{background:var(--theme-auth)}
.theme-settings{gap:14px}
.theme-settings .eyebrow{margin-bottom:5px}
.theme-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.theme-option{display:grid;gap:8px;justify-items:center;padding:11px 8px;border:1px solid var(--line);border-radius:15px;background:var(--theme-field);color:var(--ink);font-size:12px}
.theme-option.active{border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 16%,transparent)}
.theme-preview{display:block;width:100%;height:38px;border:1px solid rgba(20,41,56,.14);border-radius:9px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.theme-preview:before{content:"";position:absolute;inset:0 0 auto;height:10px;background:rgba(255,255,255,.72)}
.theme-preview i{position:absolute;left:8px;right:8px;bottom:7px;height:8px;border-radius:5px;background:#1aa7a1}
.theme-preview.light{background:#f4f7fa}.theme-preview.light:before{background:#fff}
.theme-preview.blue{background:#0752a4;border-color:#3a83c7}.theme-preview.blue:before{background:#043d7e}.theme-preview.blue i{background:#20c2e8}
.theme-preview.dark{background:#0e1821;border-color:#354955}.theme-preview.dark:before{background:#172630}.theme-preview.dark i{background:#27b8ae}
html[data-theme="blue"] .timer-card{background:linear-gradient(145deg,#032f68,#0752a4);box-shadow:0 24px 50px rgba(1,27,60,.34)}
html[data-theme="blue"] .status-chip{background:#155f9f;color:#eaf6ff}
html[data-theme="blue"] .status-chip.running{background:#075f80;color:#9af3ff}
html[data-theme="blue"] .status-chip.break{background:#725d28;color:#ffe29b}
html[data-theme="blue"] .avatar{background:#1769ad;color:#fff}
html[data-theme="blue"] .entry-icon{background:#07538d;color:#91efff}
html[data-theme="blue"] .outline,html[data-theme="blue"] .month-nav button,html[data-theme="blue"] .year-nav button{color:#fff}
html[data-theme="blue"] .day-total{background:#07558f}
html[data-theme="blue"] .absence-card{background:#685628;color:#ffe3a1}
html[data-theme="dark"] .timer-card{background:linear-gradient(145deg,#14364b,#1d5268);box-shadow:0 24px 50px rgba(0,0,0,.3)}
html[data-theme="dark"] .status-chip{background:#243944;color:#c8d8de}
html[data-theme="dark"] .status-chip.running{background:#173d3a;color:#6ce0d6}
html[data-theme="dark"] .status-chip.break{background:#473a20;color:#f0c86d}
html[data-theme="dark"] .avatar{background:#203d48;color:#7edbd4}
html[data-theme="dark"] .entry-icon{background:#193d3b;color:#63d7ce}
html[data-theme="dark"] .day-total{background:#1a3a3a}
html[data-theme="dark"] .absence-card{background:#493b20;color:#f2d184}
html[data-theme="dark"] dialog::backdrop{background:rgba(2,8,12,.7)}

/* WorkTimeAL 1.2: annual statistics and PWA controls */
.year-nav{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:14px;margin-bottom:20px;text-align:center}
.year-nav h1{margin:0;font-size:clamp(28px,8vw,38px);letter-spacing:-.04em}
.year-nav .eyebrow{margin-bottom:3px}
.year-nav button{width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:var(--theme-surface);color:var(--navy);font-size:27px}
.stats-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.stat-kpi{min-width:0;padding:17px 14px;border:1px solid var(--line);border-radius:18px;background:var(--theme-surface)}
.stat-kpi small,.stat-highlight small{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.stat-kpi strong{display:block;margin:7px 0 4px;font-size:clamp(20px,4vw,27px);letter-spacing:-.04em}
.stat-kpi span{display:block;color:var(--muted);font-size:10px;line-height:1.35}
.stat-kpi.primary-stat{border-color:transparent;background:linear-gradient(145deg,var(--navy),#1b668d);color:#fff}
.stat-kpi.primary-stat small,.stat-kpi.primary-stat span{color:#c7dfeb}
html[data-theme="blue"] .stat-kpi.primary-stat{background:linear-gradient(145deg,#032e67,#084b93)}
.stats-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.stat-highlight{position:relative;min-width:0;padding:17px;border:1px solid var(--line);border-radius:18px;background:var(--theme-surface);overflow:hidden}
.stat-highlight .stat-icon{display:grid;place-items:center;width:31px;height:31px;margin-bottom:13px;border-radius:10px;background:var(--theme-surface-muted);color:var(--teal-dark);font-weight:900}
.stat-highlight.most .stat-icon{background:#dff4ef;color:#08786e}.stat-highlight.least .stat-icon{background:#fff0d7;color:#9a6c17}
html[data-theme="blue"] .stat-highlight.most .stat-icon,html[data-theme="dark"] .stat-highlight.most .stat-icon{background:#154f50;color:#77e6dc}
html[data-theme="blue"] .stat-highlight.least .stat-icon,html[data-theme="dark"] .stat-highlight.least .stat-icon{background:#564622;color:#f2cf77}
.stat-highlight strong{display:block;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}
.stat-highlight p{margin:4px 0 0;color:var(--muted);font-size:12px}
.stats-chart-card{padding:20px 16px 16px;border:1px solid var(--line);border-radius:21px;background:var(--theme-surface);box-shadow:var(--shadow)}
.stats-card-head h2{margin:0;font-size:18px}.chart-scroll{margin:18px -4px 0;padding:0 4px 5px;overflow-x:auto}
.monthly-chart{display:grid;grid-template-columns:repeat(12,minmax(37px,1fr));gap:8px;align-items:stretch;min-width:610px;height:255px}
.month-bar{display:grid;grid-template-rows:30px 1fr 20px;gap:6px;min-width:0;text-align:center}
.month-bar>span{align-self:end;color:var(--muted);font-size:9px;font-variant-numeric:tabular-nums;white-space:nowrap}
.bar-track{display:flex;align-items:flex-end;justify-content:center;border-radius:9px;background:var(--theme-surface-soft);overflow:hidden}
.bar-track i{display:block;width:100%;height:var(--bar-height);min-height:0;border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--teal),var(--navy));transition:height .3s ease}
.month-bar small{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}
.stats-note{margin:10px 2px 0;color:var(--muted);font-size:10px;line-height:1.45}
.pwa-status{margin:0;font-size:13px}.pwa-settings .primary{margin-top:-2px}
@media(max-width:620px){.stats-overview{grid-template-columns:repeat(2,1fr)}.bottom-nav{padding-left:5px;padding-right:5px}.bottom-nav button{font-size:9px}.bottom-nav button span{font-size:18px}}
@media(max-width:520px){.stats-highlights{grid-template-columns:1fr}.stat-highlight{display:grid;grid-template-columns:38px 1fr auto;grid-template-rows:auto auto;column-gap:11px;align-items:center}.stat-highlight .stat-icon{grid-row:1/3;margin:0}.stat-highlight small{align-self:end}.stat-highlight strong{grid-column:2;align-self:start}.stat-highlight p{grid-column:3;grid-row:1/3;margin:0;white-space:nowrap}}

/* WorkTimeAL 1.3: absence planning and active break counter */
.break-counter{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:10px;margin:-10px auto 18px;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:12px;background:rgba(0,0,0,.17);position:relative;z-index:1}
.break-counter span{color:#bfe9e5;font-size:9px;font-weight:850;letter-spacing:.12em}.break-counter strong{font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:.03em}
.absence-picker{min-width:0;margin:0;padding:0;border:0}.absence-picker legend{margin-bottom:9px;color:var(--theme-label);font-size:12px;font-weight:800}
.absence-options{display:grid;gap:8px}.absence-option{display:grid!important;grid-template-columns:42px 1fr 24px!important;align-items:center;gap:11px!important;padding:11px!important;border:1px solid var(--line);border-radius:15px;background:var(--theme-field);color:var(--ink)!important;cursor:pointer;transition:border-color .16s,background .16s,transform .16s}
.absence-option:hover{border-color:var(--teal);transform:translateY(-1px)}.absence-option:has(input:checked){border-color:var(--teal);background:color-mix(in srgb,var(--teal) 11%,var(--theme-field));box-shadow:0 0 0 2px color-mix(in srgb,var(--teal) 15%,transparent)}
.absence-option:has(input:focus-visible){outline:3px solid color-mix(in srgb,var(--teal) 30%,transparent);outline-offset:2px}.absence-option input{position:absolute;width:1px!important;height:1px!important;opacity:0;pointer-events:none}
.absence-option>span:nth-of-type(2){display:grid;gap:3px;min-width:0}.absence-option strong{font-size:13px}.absence-option small{color:var(--muted);font-size:10px;font-weight:500;line-height:1.35}.absence-option>i{display:grid;place-items:center;width:21px;height:21px;border:1px solid var(--line);border-radius:50%;color:transparent;font-size:11px;font-style:normal}.absence-option:has(input:checked)>i{border-color:var(--teal);background:var(--teal);color:#fff}
.absence-symbol{display:grid!important;place-items:center;width:42px;height:42px;border-radius:13px;font-size:19px;font-weight:900}.absence-symbol.vacation{background:#fff0cf;color:#a56a05}.absence-symbol.sick{background:#fde3e6;color:#c64e5c}.absence-symbol.unpaid{background:#e8edf1;color:#5d7180}.absence-symbol.other{background:#e0effa;color:#2575a8}
html[data-theme="blue"] .absence-symbol.vacation,html[data-theme="dark"] .absence-symbol.vacation{background:#574923;color:#ffdc80}html[data-theme="blue"] .absence-symbol.sick,html[data-theme="dark"] .absence-symbol.sick{background:#572f3a;color:#ff9eaa}html[data-theme="blue"] .absence-symbol.unpaid,html[data-theme="dark"] .absence-symbol.unpaid{background:#2b404c;color:#c5d5dc}html[data-theme="blue"] .absence-symbol.other,html[data-theme="dark"] .absence-symbol.other{background:#164568;color:#8bd0ff}
.confirm-card{justify-items:center;text-align:center;padding:28px}.confirm-card h2{margin:3px 0 0;font-size:25px}.confirm-card .muted{margin:0}.confirm-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:#fee4e4;color:var(--danger);font-size:18px;box-shadow:0 10px 26px rgba(194,73,73,.15)}
html[data-theme="blue"] .confirm-icon,html[data-theme="dark"] .confirm-icon{background:#57313a}.dialog-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;width:100%}.dialog-actions button{min-height:48px}.danger-solid{border:0;border-radius:14px;padding:13px 17px;background:var(--danger);color:#fff;font-weight:850}
.plan-card{margin-bottom:12px;padding:20px;border:1px solid var(--line);border-radius:21px;background:var(--theme-surface);box-shadow:var(--shadow)}.plan-card form{display:grid;gap:17px}.compact-picker .absence-options{grid-template-columns:1fr 1fr}.compact-picker .absence-option{grid-template-columns:38px 1fr 21px!important}.compact-picker .absence-symbol{width:38px;height:38px;border-radius:12px;font-size:17px}
.plan-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.plan-card label:not(.absence-option):not(.switch-row){display:grid;gap:7px;color:var(--theme-label);font-size:12px;font-weight:700}.plan-card input[type="date"],.plan-card input[type="text"]{width:100%;padding:13px 14px;border:1px solid var(--theme-border-strong);border-radius:12px;background:var(--theme-field);color:var(--ink);outline:none}.plan-card input:focus{border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 15%,transparent)}
.plan-skip{padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--theme-label)!important}.plan-preview{padding:13px 14px;border-radius:14px;background:var(--theme-surface-soft);color:var(--muted);font-size:12px;line-height:1.45}.plan-preview strong{color:var(--ink)}
.planned-list{display:grid;gap:10px}.planned-item{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:17px;background:var(--theme-surface)}.planned-date{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:var(--theme-surface-soft);color:var(--teal-dark);font-size:19px;font-weight:900}.planned-body{min-width:0}.planned-body strong{display:block}.planned-body small{display:block;margin-top:3px;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planned-delete{padding:8px;border:0;background:transparent;color:var(--danger);font-size:12px;font-weight:800}
@media(max-width:620px){.bottom-nav button{font-size:8px}.bottom-nav button span{font-size:17px}.compact-picker .absence-options{grid-template-columns:1fr}}
@media(max-width:390px){.bottom-nav{padding-left:2px;padding-right:2px}.bottom-nav button{font-size:7.5px}.plan-date-grid{grid-template-columns:1fr}.absence-option{grid-template-columns:38px 1fr 21px!important}.absence-symbol{width:38px;height:38px}}

/* WorkTimeAL 1.4: distinct absence types on the calendar */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.calendar-day.has-absence{font-weight:850}.calendar-day.absence-vacation{background:color-mix(in srgb,#d59a32 13%,transparent)}.calendar-day.absence-sick{background:color-mix(in srgb,#d85d6a 13%,transparent)}.calendar-day.absence-unpaid{background:color-mix(in srgb,#7a8790 13%,transparent)}.calendar-day.absence-other{background:color-mix(in srgb,#4b8fc4 13%,transparent)}
.calendar-day.has-absence:hover{filter:brightness(.97)}.calendar-day .absence-marker{display:grid;place-items:center;position:absolute;top:5px;right:5px;width:16px;height:16px;border-radius:6px;color:#fff;font-size:9px;font-style:normal;font-weight:900;line-height:1;box-shadow:0 3px 8px rgba(15,35,48,.18)}
.calendar-day .absence-marker.vacation{background:#d59a32}.calendar-day .absence-marker.sick{background:#d85d6a}.calendar-day .absence-marker.unpaid{background:#7a8790}.calendar-day .absence-marker.other{background:#4b8fc4}
.calendar-legend{gap:9px 13px}.dot.vacation{background:#d59a32}.dot.sick{background:#d85d6a}.dot.unpaid{background:#7a8790}.dot.other{background:#4b8fc4}
.absence-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:11px;color:var(--ink)}.absence-card>div{min-width:0}.absence-card strong,.absence-card small{display:block}.absence-card small{margin-top:4px;color:var(--muted)}.absence-card-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:#fff;font-size:19px;font-weight:900}.absence-card .danger-text{padding:8px}
.absence-card.vacation{background:color-mix(in srgb,#d59a32 13%,var(--theme-surface))}.absence-card.vacation .absence-card-icon{background:#d59a32}.absence-card.sick{background:color-mix(in srgb,#d85d6a 13%,var(--theme-surface))}.absence-card.sick .absence-card-icon{background:#d85d6a}.absence-card.unpaid{background:color-mix(in srgb,#7a8790 13%,var(--theme-surface))}.absence-card.unpaid .absence-card-icon{background:#7a8790}.absence-card.other{background:color-mix(in srgb,#4b8fc4 13%,var(--theme-surface))}.absence-card.other .absence-card-icon{background:#4b8fc4}
.plan-preview.conflict{border:1px solid color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 12%,var(--theme-surface));color:var(--danger)}.plan-preview.conflict strong{color:inherit}

/* WorkTimeAL 1.5: expandable work entries */
.entry-expandable{display:block;padding:0;overflow:hidden}.entry-toggle{display:grid;grid-template-columns:40px minmax(0,1fr) auto 24px;align-items:center;gap:13px;width:100%;padding:15px;border:0;background:transparent;color:var(--ink);text-align:left}.entry-toggle:hover{background:var(--theme-surface-soft)}.entry-toggle .entry-body{display:block}.entry-toggle .entry-title,.entry-toggle .entry-meta{display:block}.entry-toggle .entry-duration{text-align:right}.entry-chevron{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;color:var(--muted);font-size:20px;transition:transform .18s,background .18s}.entry-toggle[aria-expanded="true"] .entry-chevron{transform:rotate(180deg);background:var(--theme-surface-muted);color:var(--teal-dark)}
.entry-details{padding:16px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--theme-surface-soft) 55%,var(--theme-surface))}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.detail-grid>div,.entry-locations>div{min-width:0;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--theme-surface)}.detail-grid small,.entry-locations small{display:block;margin-bottom:4px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.detail-grid strong,.entry-locations strong{display:block;font-size:11px;line-height:1.4;word-break:break-word}.detail-section{margin-top:15px}.detail-section h4{margin:0 0 8px;color:var(--muted);font-size:10px;letter-spacing:.09em;text-transform:uppercase}.break-detail{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:11px}.break-detail:last-child{border-bottom:0}.break-detail span{display:flex;align-items:center;gap:8px}.break-detail i{display:grid;place-items:center;width:20px;height:20px;border-radius:7px;background:var(--theme-surface-muted);color:var(--teal-dark);font-size:9px;font-style:normal;font-weight:900}.break-detail strong{white-space:nowrap}.detail-empty{margin:0;padding:10px 0;color:var(--muted);font-size:11px}.entry-locations{display:grid;grid-template-columns:1fr 1fr;gap:9px}.entry-locations h4{grid-column:1/-1;margin-bottom:0}.entry-details .entry-edit{width:100%;margin-top:15px;padding:11px;border-radius:12px;font-size:12px;font-weight:800}
@media(max-width:390px){.entry-toggle{grid-template-columns:38px minmax(0,1fr) auto 20px;gap:9px;padding:13px}.entry-toggle .entry-duration{font-size:12px}.detail-grid,.entry-locations{grid-template-columns:1fr}.entry-locations h4{grid-column:auto}}

/* WorkTimeAL 1.7: roles and license administration */
.form-hint{margin:-4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.bottom-nav.admin-mode{grid-template-columns:repeat(7,1fr)}
.account-access-card{grid-template-columns:1fr auto;align-items:center}.access-role{display:flex;align-items:center;gap:11px}.access-role-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;background:var(--theme-surface-muted);color:var(--teal-dark);font-weight:900}.access-role strong,.access-role small{display:block}.access-role small{margin-top:3px;color:var(--muted);font-size:11px}.role-badge,.license-status{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border-radius:99px;font-size:9px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.role-badge.admin{background:#e5e9ff;color:#4a54ad}.role-badge.user{background:#dff4ef;color:#08786e}
.license-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:14px}.license-kpi{padding:15px 12px;border:1px solid var(--line);border-radius:17px;background:var(--theme-surface)}.license-kpi small{display:block;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.license-kpi strong{display:block;margin-top:6px;font-size:25px}.license-kpi.active strong{color:var(--teal-dark)}.license-kpi.expired strong,.license-kpi.revoked strong{color:var(--danger)}
.admin-license-card,.generated-licenses{display:grid;gap:17px;margin-bottom:14px;padding:20px;border:1px solid var(--line);border-radius:21px;background:var(--theme-surface);box-shadow:var(--shadow)}.admin-license-card h2,.generated-licenses h2{margin:0;font-size:18px}.admin-license-card .muted{margin:6px 0 0;font-size:12px}.admin-license-card form{display:grid;gap:13px}.license-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-license-card label{display:grid;gap:7px;color:var(--theme-label);font-size:12px;font-weight:700}.admin-license-card input{width:100%;padding:13px 14px;border:1px solid var(--theme-border-strong);border-radius:12px;background:var(--theme-field);color:var(--ink);outline:none}.admin-license-card input:focus{border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 15%,transparent)}
.generated-licenses{border-color:color-mix(in srgb,var(--teal) 42%,var(--line));box-shadow:none}.generated-licenses .section-heading{margin:0}.license-warning{margin:0;padding:11px 12px;border-radius:12px;background:#fff3d8;color:#805f18;font-size:11px;line-height:1.45}.generated-license-list{display:grid;gap:8px}.generated-license{display:grid;grid-template-columns:1fr auto;align-items:center;gap:9px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:var(--theme-field)}.generated-license code{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--ink);font-size:12px;font-weight:800;letter-spacing:.03em}.copy-license{padding:7px 9px;border:0;border-radius:9px;background:var(--theme-surface-muted);color:var(--teal-dark);font-size:10px;font-weight:800}
.license-list{display:grid;gap:10px}.license-item{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:17px;background:var(--theme-surface)}.license-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--theme-surface-muted);color:var(--teal-dark);font-weight:900}.license-main{min-width:0}.license-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.license-main small{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.4}.license-actions{display:flex;align-items:center;gap:6px}.license-action{padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:var(--theme-field);color:var(--ink);font-size:10px;font-weight:800}.license-action.revoke{border-color:color-mix(in srgb,var(--danger) 30%,var(--line));color:var(--danger)}.license-status.available{background:#e7eef5;color:#526c80}.license-status.active{background:#dff4ef;color:#08786e}.license-status.expired,.license-status.revoked{background:#fee5e5;color:#aa3c3c}
html[data-theme="blue"] .role-badge.admin,html[data-theme="dark"] .role-badge.admin{background:#303c76;color:#cbd1ff}html[data-theme="blue"] .role-badge.user,html[data-theme="dark"] .role-badge.user{background:#154f50;color:#77e6dc}html[data-theme="blue"] .license-warning,html[data-theme="dark"] .license-warning{background:#51451f;color:#f5d885}
@media(max-width:620px){.bottom-nav.admin-mode button{font-size:7.5px}.license-overview{grid-template-columns:repeat(2,1fr)}.license-item{grid-template-columns:42px minmax(0,1fr)}.license-icon{width:42px;height:42px}.license-actions{grid-column:1/-1;justify-content:flex-end;border-top:1px solid var(--line);padding-top:10px}.license-form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.license-form-grid{grid-template-columns:1fr}.generated-license{grid-template-columns:1fr}.copy-license{justify-self:start}.account-access-card{grid-template-columns:1fr}.account-access-card .role-badge{justify-self:start}}

/* WorkTimeAL 1.8: license delivery by e-mail */
.mail-send-row{margin-top:2px;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.admin-license-card .mail-send-row input{width:22px;height:22px;padding:0}.mail-send-row small{color:var(--muted);font-weight:500}.mail-send-row.smtp-ready small{color:var(--teal-dark)}.mail-send-row.smtp-disabled small{color:var(--danger)}
.mail-delivery-notice{margin:0;padding:11px 12px;border-radius:12px;background:#e8f6f3;color:#08786e;font-size:11px;font-weight:700;line-height:1.45}.mail-delivery-notice.error{background:#fee9e9;color:#aa3c3c}
.form-message{margin:0;padding:11px 13px;border-radius:12px;font-size:12px;font-weight:700;line-height:1.45}.form-message.error{border:1px solid color-mix(in srgb,var(--danger) 25%,transparent);background:color-mix(in srgb,var(--danger) 10%,var(--theme-surface));color:var(--danger)}.auth-card .form-message{margin-top:-3px}.mail-send-row:has(input:checked){border-color:color-mix(in srgb,var(--teal) 45%,var(--line));background:color-mix(in srgb,var(--teal) 6%,transparent)}
