:root{--lumo-font-family:"Segoe UI", Arial, sans-serif;--lumo-primary-color:#256f8f;--lumo-primary-color-50pct:#256f8f80;--lumo-primary-color-10pct:#256f8f1a;--lumo-primary-text-color:#1f5d78;--lumo-border-radius-s:6px;--lumo-border-radius-m:8px;--lumo-border-radius-l:8px;--pze-page-bg:#f4f7fa;--pze-surface:#fff;--pze-border:#d8e2ea;--pze-muted:#5c6f7b;--pze-ink:#1f2d36;--pze-success:#2f7d5c;--pze-warning:#b8652f;--pze-danger:#b54747}html,body{background:var(--pze-page-bg);color:var(--pze-ink)}*{box-sizing:border-box;letter-spacing:0}vaadin-app-layout::part(navbar){background:var(--pze-surface);border-bottom:1px solid var(--pze-border);box-shadow:0 1px 8px #1f2d360f}vaadin-app-layout::part(drawer){border-right:1px solid var(--pze-border);background:#fbfcfd}.app-header{min-height:64px;padding:0 18px}.app-header-left,.app-header-right{gap:12px}.brand-mark,.mobile-brand{background:var(--lumo-primary-color);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:44px;height:34px;padding:0 10px;font-size:.82rem;font-weight:700;display:inline-flex}.app-title{color:var(--pze-ink);font-size:1.12rem;font-weight:700}.app-user{color:var(--pze-muted);font-size:.94rem}.nav-scroller{height:100%}.main-nav{padding:12px 10px}vaadin-side-nav-item::part(content){border-radius:8px;min-height:42px;margin:2px 6px}vaadin-side-nav-item[current]::part(content){background:var(--lumo-primary-color-10pct);color:var(--lumo-primary-text-color);font-weight:700}vaadin-button{border-radius:8px}vaadin-button[theme~=primary]{box-shadow:0 8px 18px #256f8f2e}vaadin-grid{border:1px solid var(--pze-border);border-radius:8px;overflow:hidden}vaadin-grid::part(header-cell){color:var(--pze-muted);background:#eef3f7;font-size:.82rem;font-weight:700}vaadin-grid::part(row){min-height:44px}.page-shell{background:var(--pze-page-bg);gap:18px;width:100%;min-height:100%;padding:24px}.page-header{flex-direction:column;gap:4px;display:flex}.page-title,.terminal-title,.mobile-title{color:var(--pze-ink);margin:0;font-size:1.9rem;font-weight:750;line-height:1.15}.page-subtitle,.metric-note,.terminal-id,.terminal-detail,.mobile-detail,.mobile-date{color:var(--pze-muted)}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;width:100%;display:grid}.metric-card,.section-panel,.terminal-panel,.mobile-panel{background:var(--pze-surface);border:1px solid var(--pze-border);border-radius:8px;box-shadow:0 12px 28px #1f2d3614}.metric-card{flex-direction:column;gap:6px;min-height:156px;padding:18px;display:flex}.metric-icon{color:var(--lumo-primary-text-color);background:#e6f1f5;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.metric-title{color:var(--pze-muted);margin-top:8px;font-size:.9rem;font-weight:650}.metric-value{color:var(--pze-ink);font-size:2rem;font-weight:760;line-height:1.1}.section-panel{flex-direction:column;gap:14px;width:100%;padding:18px;display:flex}.section-title,.mobile-section-title{color:var(--pze-ink);margin:0;font-size:1.05rem;font-weight:720}.quick-actions{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.quick-action{border:1px solid var(--pze-border);justify-content:flex-start;width:100%;min-height:46px}.terminal-page,.mobile-clock-view{background:var(--pze-page-bg);min-height:100vh}.terminal-page{justify-content:center;gap:20px;padding:32px 16px}.terminal-header{flex-direction:column;gap:6px;width:100%;max-width:680px;display:flex}.terminal-panel{text-align:center;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:680px;padding:30px;display:flex}.terminal-icon{color:var(--lumo-primary-text-color);background:#e6f1f5;border-radius:8px;justify-content:center;align-items:center;width:72px;height:72px;display:inline-flex}.terminal-icon vaadin-icon{width:38px;height:38px}.terminal-status{color:var(--pze-ink);margin:0;font-size:2rem;font-weight:760;line-height:1.15}.terminal-status.state-success{color:var(--pze-success)}.terminal-status.state-error{color:var(--pze-danger)}.terminal-input{max-width:420px}.terminal-action{min-width:220px;min-height:54px}.mobile-clock-view{gap:14px;padding:18px 14px 24px}.mobile-header{width:100%;max-width:680px}.mobile-title-group{align-items:center;gap:12px;display:flex}.mobile-title{font-size:1.45rem}.mobile-panel{flex-direction:column;gap:14px;width:100%;max-width:680px;padding:18px;display:flex}.mobile-date{font-size:.92rem;font-weight:650}.mobile-status{color:var(--pze-ink);margin:0;font-size:1.75rem;font-weight:760;line-height:1.15}.mobile-detail{min-height:24px}.mobile-booking-button{min-height:76px;font-size:1.18rem;font-weight:760}.mobile-booking-button.is-go{--lumo-primary-color:var(--pze-warning);--lumo-primary-text-color:var(--pze-warning);--lumo-primary-color-50pct:#b8652f80;--lumo-primary-color-10pct:#b8652f1a}.mobile-grid{max-height:340px}@media (width<=760px){.page-shell{padding:16px}.app-user{display:none}.page-title,.terminal-title{font-size:1.55rem}.terminal-panel{padding:22px 16px}}.form-actions,.token-section{gap:10px}.token-section h2{color:var(--pze-ink);margin:0;font-size:1.05rem;font-weight:720}.token-form{width:100%}.form-panel{background:var(--pze-surface);border:1px solid var(--pze-border);border-radius:8px;width:100%;padding:18px;box-shadow:0 12px 28px #1f2d3614}.report-filters{background:var(--pze-surface);border:1px solid var(--pze-border);border-radius:8px;flex-wrap:wrap;align-items:end;gap:12px;padding:18px;box-shadow:0 12px 28px #1f2d3614}.status-badge{border-radius:999px;align-items:center;min-height:26px;padding:2px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.status-requested{color:#8a5a00;background:#fff3d6}.status-approved{color:#25684d;background:#dff3e8}.status-rejected{color:#913838;background:#f8dddd}.status-cancelled{color:#4f5f6b;background:#e8edf2}.vacation-form{width:100%}.vacation-calendar-section{padding:28px;overflow-x:auto}.vacation-calendar-section .section-title{font-size:1.35rem}.calendar-toolbar{align-items:center;gap:12px;margin-bottom:10px;display:flex}.calendar-title{color:var(--pze-ink);text-transform:capitalize;justify-content:center;min-width:260px;font-size:1.45rem;font-weight:780;display:inline-flex}.vacation-calendar{background:var(--pze-border);border:1px solid var(--pze-border);border-radius:8px;grid-template-columns:repeat(7,minmax(190px,1fr));gap:2px;width:100%;min-width:1330px;display:grid;overflow:hidden}.calendar-weekday{color:var(--pze-muted);text-align:center;background:#eef3f7;padding:8px;font-size:.82rem;font-weight:750}.calendar-day{background:var(--pze-surface);flex-direction:column;gap:5px;min-height:118px;padding:8px;display:flex}.calendar-day.is-empty{background:#f7fafc}.calendar-day.is-weekend{background:#fbfcfd}.calendar-day.is-today{box-shadow:inset 0 0 0 2px var(--lumo-primary-color)}.calendar-date{color:var(--pze-ink);font-size:.85rem;font-weight:760;line-height:1}vaadin-button.calendar-entry{--lumo-button-size:auto;box-shadow:none;color:var(--pze-ink);border-radius:6px;justify-content:flex-start;width:100%;min-height:24px;padding:0 7px;font-size:.76rem;font-weight:700}vaadin-button.calendar-entry::part(label){text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}vaadin-button.calendar-entry.status-requested{color:#8a5a00;background:#fff3d6}vaadin-button.calendar-entry.status-approved{color:#25684d;background:#dff3e8}vaadin-button.calendar-entry.status-rejected{color:#913838;background:#f8dddd}vaadin-button.calendar-entry.status-cancelled{color:#4f5f6b;background:#e8edf2}.calendar-more{color:var(--pze-muted);padding-left:2px;font-size:.78rem;font-weight:700}.calendar-legend{flex-wrap:wrap;gap:10px 16px;display:flex}.calendar-legend-item{color:var(--pze-muted);align-items:center;gap:6px;font-size:.86rem;display:inline-flex}.legend-dot{border-radius:999px;width:10px;height:10px;display:inline-flex}.legend-dot.status-requested{background:#fff3d6;border:1px solid #d6a93d}.legend-dot.status-approved{background:#dff3e8;border:1px solid #69a983}.legend-dot.status-rejected{background:#f8dddd;border:1px solid #c06a6a}.legend-dot.status-cancelled{background:#e8edf2;border:1px solid #aeb8c2}@media (width<=760px){.vacation-calendar{grid-template-columns:repeat(7,128px);min-width:896px}.calendar-day{min-height:108px}}.vacation-planning-view{gap:22px}.vacation-planning-view .vacation-calendar-section{min-height:82vh;padding:32px}.vacation-planning-view .vacation-calendar{min-height:760px}.vacation-planning-view .calendar-toolbar{min-height:56px}.vacation-planning-view .vacation-list-section vaadin-grid{max-height:280px}.vacation-planning-view .vacation-form-section{padding-top:16px}@media (width<=760px){.vacation-planning-view .vacation-calendar-section{min-height:76vh;padding:20px}.vacation-planning-view .vacation-calendar{min-height:640px}}
