@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-sans:"Inter Variable", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-bg:#f6f7f3;--color-bg-grad2:#eef3f1;--color-surface:#fff;--color-surface-subtle:#f7faf8;--color-surface-hover:#f3f7f5;--color-surface-row-hover:#fbfcfb;--color-surface-muted:#eef2ef;--color-border:#d7ded8;--color-border-input:#c7d1cc;--color-border-table:#e4ebe7;--color-border-hover:#8fa29a;--color-text:#18221f;--color-text-nav:#263733;--color-text-body:#33433f;--color-text-secondary:#53635f;--color-text-muted:#66746f;--color-text-faint:#98a29d;--color-primary:#126a5b;--color-primary-hover:#0e584c;--color-accent:#3157d4;--color-accent-strong:#2343a8;--color-accent-border:#c9d6ff;--color-accent-surface:#edf2ff;--color-danger:#b42318;--color-danger-hover:#912018;--color-danger-text:#991b1b;--color-danger-border:#fecaca;--color-danger-surface:#fef2f2;--color-danger-surface-soft:#fff7f7;--color-success-text:#166534;--color-success-border:#bbf7d0;--color-success-surface:#f0fdf4;--color-success-pill:#dcfce7;--color-warning-text:#92400e;--color-warning-surface:#fef3c7;--ring-accent:#3157d429;--accent-glow:#3157d41f;--primary-glow:#126a5b24;--shadow-sm:0 10px 28px #1e293b0d;--shadow-md:0 10px 28px #1e293b0f;--shadow-panel-soft:0 18px 50px #1e293b14;--shadow-panel:0 18px 50px #1e293b1f;--shadow-primary:0 6px 14px #126a5b2e;--shadow-danger:0 6px 14px #b423182e;--radius:6px;--radius-lg:8px;--radius-pill:999px;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0}#root{min-height:100vh}.center-page{background:radial-gradient(circle at top left, var(--accent-glow), transparent 32%), linear-gradient(135deg, var(--color-bg) 0%, var(--color-bg-grad2) 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-page{align-items:center}.login-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);width:min(440px,100%);box-shadow:var(--shadow-panel);gap:16px;padding:26px;display:grid}.brand-logo{align-items:center;gap:12px;min-width:0;display:flex}.brand-logo picture,.brand-logo img{display:block}.brand-logo picture{line-height:0}.brand-logo img{object-fit:contain;max-width:100%;height:auto}.brand-logo--full{justify-content:center}.brand-logo--full img{width:220px}.brand-logo--icon img{width:96px}.brand-logo strong,.brand-logo span{display:block}.brand-logo strong{color:var(--color-text);font-size:15px;line-height:1.2}.brand-logo span{color:var(--color-text-muted);margin-top:3px;font-size:12px;font-weight:700}.brand-logo-auth{text-align:center;justify-self:center;width:100%;padding-bottom:4px;display:block}.brand-logo-auth picture{width:min(170px,72%);margin:0 auto}.brand-logo-auth img{width:100%;margin:0 auto}.client-logo-auth{object-fit:contain;width:min(140px,55%);height:auto;margin:0 auto 4px;display:block}.powered-by{text-align:center;color:var(--color-text-faint);letter-spacing:.02em;margin:4px 0 0;font-size:11px;font-weight:600}.brand-logo-sidebar{align-items:flex-start}.brand-logo-sidebar img{width:56px}.login-panel h1,.kiosk-top h1,.sidebar h1{color:var(--color-text);margin:0;font-size:28px}.eyebrow{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:700}label{color:var(--color-text-body);gap:6px;font-size:14px;font-weight:650;display:grid}input,select{border:1px solid var(--color-border-input);border-radius:var(--radius);background:var(--color-surface);min-height:44px;color:var(--color-text);font:inherit;padding:8px 11px}input:focus,select:focus{border-color:var(--color-accent);outline:3px solid var(--ring-accent)}.password-field{align-items:center;width:100%;display:flex;position:relative}.password-field input{width:100%;padding-right:44px}.password-field .password-toggle{width:40px;min-width:40px;min-height:40px;color:var(--color-text-secondary);box-shadow:none;background:0 0;border-color:#0000;padding:0;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-field .password-toggle:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text);box-shadow:none;border-color:#0000}.password-field .password-toggle:focus{outline:3px solid var(--ring-accent)}button,.small-button{border:1px solid var(--color-primary);border-radius:var(--radius);background:var(--color-primary);min-height:44px;color:var(--color-surface);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-weight:750;transition:background .12s,border-color .12s,box-shadow .12s,opacity .12s;display:inline-flex}button:hover:not(:disabled),.small-button:hover:not(:disabled){border-color:var(--color-primary-hover);background:var(--color-primary-hover);box-shadow:var(--shadow-primary)}button:disabled,.small-button:disabled{cursor:not-allowed;opacity:.62}.ghost-button{border-color:var(--color-border-input);background:var(--color-surface);color:var(--color-text)}.ghost-button:hover:not(:disabled){border-color:var(--color-border-hover);background:var(--color-surface-subtle);box-shadow:none}.danger-button{border-color:var(--color-danger);background:var(--color-danger)}.danger-button:hover:not(:disabled){border-color:var(--color-danger-hover);background:var(--color-danger-hover);box-shadow:var(--shadow-danger)}.small-button{min-height:36px;padding:6px 10px;font-size:13px}.spin-icon{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.async-button{place-items:center;display:inline-grid}.async-button>.async-button__content,.async-button>.async-button__loading{grid-area:1/1;justify-content:center;align-items:center;gap:8px;min-width:0;display:inline-flex}.async-button>.async-button__loading,.async-button[data-loading]>.async-button__content{visibility:hidden}.async-button[data-loading]>.async-button__loading{visibility:visible}.status-message{border-radius:var(--radius-lg);border:1px solid #0000;align-items:flex-start;gap:10px;margin:0;padding:11px 12px;font-weight:650;display:flex}.status-message.error,.error{border-color:var(--color-danger-border);color:var(--color-danger-text);background:var(--color-danger-surface)}.status-message.success,.success{border-color:var(--color-success-border);color:var(--color-success-text);background:var(--color-success-surface)}.app-shell{background:var(--color-bg);grid-template-columns:270px 1fr;height:100vh;display:grid;overflow:hidden}.sidebar{border-right:1px solid var(--color-border);background:var(--color-surface);flex-direction:column;gap:28px;height:100vh;min-height:0;padding:24px;display:flex;overflow-y:auto}.sidebar nav{gap:8px;display:grid}.sidebar a{border-radius:var(--radius);color:var(--color-text-nav);border:1px solid #0000;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.sidebar a:hover{background:var(--color-surface-hover)}.sidebar a.active{border-color:var(--color-accent-border);background:var(--color-accent-surface);color:var(--color-accent-strong);font-weight:750}.sidebar-footer{color:var(--color-text-secondary);gap:10px;margin-top:auto;display:grid}.content{min-width:0;height:100vh;min-height:0;padding:24px;overflow-y:auto}.page-grid{gap:18px;display:grid}.page-header{justify-content:space-between;align-items:end;gap:16px;display:flex}.page-header h2{color:var(--color-text);margin:0;font-size:26px}.page-header p,.section-heading p{color:var(--color-text-muted);margin:0}.employee-page-header{align-items:flex-end}.employee-page-description{max-width:620px;font-size:14px;margin-top:6px!important}.employee-page-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:10px;display:flex}.employee-count-badge{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-subtle);color:var(--color-text-secondary);white-space:nowrap;align-self:center;padding:6px 10px;font-size:13px;font-weight:750}.employee-status-control{gap:4px;min-width:176px}.employee-status-control>span{color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:750}.employee-status-control select{min-height:42px;padding-block:7px}.employee-add-button{white-space:nowrap;min-height:42px}.toolbar-form,.report-controls{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);flex-wrap:wrap;gap:10px;padding:14px;display:flex}.toolbar-form.elevated,.report-controls.elevated,.edit-form,.section-block{box-shadow:var(--shadow-md)}.compact-toolbar{box-shadow:none;border:0;padding:10px 0 0}.toolbar-form input,.toolbar-form select{flex:150px}.toolbar-form .form-field,.report-controls .form-field{flex:180px}.report-controls input{flex:0 160px}.report-range-controls{border-top:4px solid var(--color-accent);background:linear-gradient(110deg, var(--color-accent-surface) 0, transparent 42%), var(--color-surface);padding:18px;position:relative}.report-monthly-controls{border-top:3px solid var(--color-primary)}.report-control-intro{flex:1 0 100%;align-items:center;gap:11px;padding-bottom:4px;display:flex}.report-control-icon{border:1px solid var(--color-accent-border);border-radius:var(--radius);background:var(--color-surface);width:42px;height:42px;color:var(--color-accent-strong);flex:none;place-items:center;display:grid}.report-control-intro>div{gap:3px;display:grid}.report-control-intro strong{color:var(--color-text);font-size:17px}.report-control-intro span{color:var(--color-text-muted);font-size:13px}.report-range-separator{min-height:44px;color:var(--color-accent-strong);align-self:end;place-items:center;font-size:20px;font-weight:800;display:grid}.form-section-title{color:var(--color-text);flex:1 0 100%;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:800;display:flex}.form-field{min-width:150px}.form-field input,.form-field select{width:100%}.form-actions{align-self:end}.employee-create-form,.employee-management-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;animation:.16s ease-out employee-panel-in;display:grid}.employee-password-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;animation:.16s ease-out employee-panel-in;display:grid}.employee-create-form .form-field,.employee-management-form .form-field,.employee-password-form .form-field{min-width:0}.employee-form-intro{border-bottom:1px solid var(--color-border-table);grid-column:1/-1;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:12px;display:flex}.employee-form-intro h3{color:var(--color-text);margin:2px 0 4px;font-size:19px}.employee-form-intro p:not(.eyebrow){color:var(--color-text-muted);margin:0;font-size:13px}.employee-create-form .form-section-title,.employee-management-form .form-section-title,.employee-password-form .form-section-title,.employee-create-form .weekday-group,.employee-management-form .weekday-group,.employee-active-toggle,.employee-form-actions{grid-column:1/-1}.employee-form-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-top:2px;display:flex}@keyframes employee-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.inline-check{white-space:nowrap;align-items:center;gap:8px;min-height:44px;display:inline-flex}.inline-check input{min-height:0}.toolbar-form .weekday-group,.weekday-group{flex-direction:column;flex:1 0 100%;gap:6px;min-width:0;display:flex}.weekday-group>span{color:var(--color-text-secondary);font-size:13px;font-weight:600}.weekday-list{flex-wrap:wrap;gap:6px 18px;display:flex}.weekday-list .inline-check{min-height:36px}.schedule-status{color:var(--color-text-secondary);flex-wrap:wrap;flex:1 0 100%;gap:10px 16px;font-size:13px;display:flex}.error-text{color:var(--color-danger-text);font-weight:700}.section-block{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:14px;padding:16px;display:grid}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading h3{color:var(--color-text);margin:0;font-size:18px}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--color-border-table);text-align:left;white-space:nowrap;padding:11px 12px}th{color:var(--color-text-secondary);background:var(--color-surface-subtle);font-size:13px}tbody tr:hover{background:var(--color-surface-row-hover)}tbody tr:last-child td{border-bottom:0}.row-actions{flex-wrap:wrap;gap:8px;display:flex}.employee-table-wrap{scroll-behavior:smooth;scrollbar-gutter:stable;container-type:inline-size}.employee-table{table-layout:fixed;border-collapse:separate;border-spacing:0;min-width:1180px}.employee-col-name{width:160px}.employee-col-email{width:190px}.employee-col-number{width:105px}.employee-col-department{width:120px}.employee-col-days{width:175px}.employee-col-start,.employee-col-duration{width:85px}.employee-col-status{width:75px}.employee-col-actions{width:185px}.employee-table th,.employee-table td{vertical-align:middle}.employee-table .employee-cell-name,.employee-table .employee-cell-email,.employee-table .employee-cell-days{white-space:normal;overflow-wrap:anywhere;line-height:1.35}.employee-table .employee-cell-name{z-index:1;background:var(--color-surface);box-shadow:1px 0 0 var(--color-border-table);font-weight:750;position:sticky;left:0}.employee-table thead .employee-cell-name{z-index:3;background:var(--color-surface-subtle)}.employee-table tbody tr:hover .employee-cell-name{background:var(--color-surface-row-hover)}.employee-table .employee-cell-actions{z-index:2;background:var(--color-surface);box-shadow:-1px 0 0 var(--color-border-table);position:sticky;right:0}.employee-table thead .employee-cell-actions{z-index:3;background:var(--color-surface-subtle)}.employee-table tbody tr:hover .employee-cell-actions{background:var(--color-surface-row-hover)}.employee-cell-time{font-variant-numeric:tabular-nums}.employee-row-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.employee-row-actions .small-button{width:100%;min-width:0;padding-inline:8px}.employee-row-actions .danger-button{grid-column:1/-1}@container (width<=1100px){.employee-table{min-width:1100px}.employee-col-name{width:150px}.employee-col-email{width:180px}.employee-col-number,.employee-col-department{width:115px}.employee-col-days{width:160px}.employee-col-start,.employee-col-duration{width:80px}.employee-col-status{width:75px}.employee-col-actions{width:145px}.employee-row-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.employee-row-actions .small-button{padding-inline:6px}.employee-row-actions .danger-button{grid-column:auto}.employee-action-label{display:none}}@media (width<=1200px){.employee-page-header{flex-direction:column;align-items:flex-start}.employee-page-actions{justify-content:flex-start;width:100%}.employee-create-form,.employee-management-form{grid-template-columns:repeat(2,minmax(0,1fr))}}.pagination-bar{border:1px solid var(--color-border);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--color-surface);color:var(--color-text-secondary);border-top:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.pagination-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pagination-actions label{align-items:center;gap:8px;display:inline-flex}.pagination-actions select{min-height:36px;padding:5px 8px}.pill{border-radius:var(--radius-pill);align-items:center;min-height:24px;padding:3px 9px;font-size:12px;font-weight:750;display:inline-flex}.pill.active{color:var(--color-success-text);background:var(--color-success-pill)}.pill.warning{color:var(--color-warning-text);background:var(--color-warning-surface)}.pill.muted{color:var(--color-text-muted);background:var(--color-surface-muted)}.table-note{max-width:280px;color:var(--color-warning-text);white-space:normal;margin-top:4px;font-size:12px;font-weight:700;display:block}.state-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);min-height:78px;color:var(--color-text-body);align-items:center;gap:12px;padding:18px;display:flex}.state-panel.compact,.loading-state.compact{min-height:0;padding:12px}.state-panel strong{color:var(--color-text);display:block}.state-panel p{color:var(--color-text-muted);margin:4px 0 0}.error-state{border-color:var(--color-danger-border);background:var(--color-danger-surface-soft)}.error-state>svg{color:var(--color-danger);flex:none}.empty-state{text-align:center;justify-content:center}.empty-state>svg{color:var(--color-accent);flex:none}.loading-state{color:var(--color-text-secondary);justify-content:center}.result-box{border:1px solid var(--color-accent-border);border-radius:var(--radius-lg);background:var(--color-accent-surface);gap:8px;padding:14px;display:grid}.result-movement{color:var(--color-accent-strong);font-size:16px;font-weight:800}.result-session-list{border-top:1px solid var(--color-accent-border);color:var(--color-text-body);font-variant-numeric:tabular-nums;gap:5px;margin-top:4px;padding-top:10px;display:grid}.attendance-table{min-width:1280px}.today-attendance-overview{gap:16px}.today-overview-heading{align-items:flex-start}.today-overview-heading>div{gap:4px;display:grid}.today-overview-heading p:not(.eyebrow){color:var(--color-text-muted);margin:0;font-size:13px}.today-summary-row>div{grid-template-columns:auto 1fr;align-items:center}.today-summary-row>div>svg{color:var(--color-text-muted);grid-row:1/span 2}.today-summary-row strong{line-height:1}.today-summary-row small{color:var(--color-warning-text);grid-column:1/-1;font-size:12px;font-weight:700}.today-summary-row .today-summary-card--arrived{border-color:var(--color-success-border);background:var(--color-success-surface)}.today-summary-row .today-summary-card--inside{border-color:var(--color-success-border)}.today-summary-row .today-summary-card--outside{border-color:var(--color-border-input);background:var(--color-surface-subtle)}.today-summary-row .today-summary-card--missing{background:var(--color-warning-surface)}.today-personnel-lists{gap:18px;display:grid}.today-personnel-list{gap:10px;display:grid}.today-personnel-list+.today-personnel-list{border-top:1px solid var(--color-border-table);padding-top:18px}.today-personnel-list-heading,.today-personnel-list-heading>div{align-items:center;gap:8px;display:flex}.today-personnel-list-heading{border:1px solid var(--color-border);border-left:4px solid var(--today-list-accent);border-radius:var(--radius);background:var(--today-list-surface);justify-content:space-between;min-height:48px;padding:11px 14px}.today-personnel-list-heading--inside{--today-list-accent:var(--color-primary);--today-list-surface:var(--color-success-surface)}.today-personnel-list-heading--outside{--today-list-accent:var(--color-warning-text);--today-list-surface:var(--color-warning-surface)}.today-personnel-list-heading>div>svg{color:var(--today-list-accent)}.today-personnel-list-heading h4{color:var(--color-text);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:850}.today-personnel-list-heading>span{border:1px solid color-mix(in srgb, var(--today-list-accent) 24%, transparent);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-secondary);white-space:nowrap;padding:4px 9px;font-size:13px;font-weight:800}.today-personnel-list-description{color:var(--color-text-muted);margin:-4px 0 2px;font-size:13px}.today-outside-groups,.today-outside-group{gap:10px;display:grid}.today-outside-groups{gap:16px}.today-outside-group h5{color:var(--color-text-secondary);margin:0;font-size:13px}.today-personnel-table{min-width:720px}.today-personnel-name{font-weight:750}.attendance-row.expanded td{background:var(--color-surface-subtle);border-bottom-color:#0000}.attendance-expand-button{border:1px solid var(--color-border-input);background:var(--color-surface);min-height:34px;color:var(--color-text-body);box-shadow:none;white-space:nowrap;padding:6px 9px}.attendance-personnel-cell{align-items:center;gap:10px;display:flex}.attendance-personnel-name{font-weight:700}.attendance-detail-row:hover{background:0 0}.attendance-detail-row>td{background:var(--color-surface-subtle);white-space:normal;padding:0 18px 16px}.attendance-timeline{border:1px solid var(--color-border-table);border-radius:var(--radius-lg);background:var(--color-surface);flex-wrap:wrap;gap:10px;padding:12px;display:flex}.attendance-timeline-item{border-left:3px solid var(--color-primary);background:var(--color-surface-subtle);align-items:center;gap:10px;min-width:220px;padding:9px 12px;display:flex}.attendance-timeline-item>div{gap:3px;display:grid}.attendance-timeline-item strong{font-variant-numeric:tabular-nums}.attendance-timeline-item span:not(.attendance-timeline-index){color:var(--color-text-muted);font-size:12px}.attendance-timeline-index{background:var(--color-primary);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:grid}.summary-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.summary-row>div{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);gap:6px;padding:16px;display:grid}.summary-row span{color:var(--color-text-muted);font-size:13px}.summary-row strong{color:var(--color-text);font-size:20px}.kiosk-page{background:radial-gradient(circle at top right, var(--primary-glow), transparent 36%), var(--color-bg);grid-template-rows:auto 1fr;gap:24px;min-height:100vh;padding:24px;display:grid}.kiosk-top{justify-content:space-between;align-items:center;gap:16px;display:flex}.kiosk-top .ghost-button{margin-left:auto}.brand-logo-kiosk img{width:76px}.qr-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-panel-soft);align-content:center;place-items:center;gap:18px;padding:24px;display:grid}.kiosk-exit-indicator{border:2px solid var(--color-warning-surface);border-radius:var(--radius-lg);background:var(--color-warning-surface);width:min(720px,100%);color:var(--color-warning-text);align-items:center;gap:16px;padding:17px 20px;display:flex}.kiosk-exit-indicator.active{border-color:var(--color-success-border);background:var(--color-success-surface);color:var(--color-success-text)}.kiosk-exit-indicator>svg{flex:none}.kiosk-exit-indicator strong{font-size:clamp(21px,3vw,32px);line-height:1.15;display:block}.kiosk-exit-indicator p{color:inherit;margin:5px 0 0;font-size:clamp(13px,1.6vw,17px);font-weight:650}.early-exit-confirmation{border:1px solid var(--color-warning-surface);border-radius:var(--radius-lg);background:var(--color-warning-surface);color:var(--color-warning-text);grid-template-columns:auto 1fr;gap:12px;padding:16px;display:grid}.early-exit-confirmation>svg{flex:none}.early-exit-confirmation strong{font-size:17px;display:block}.early-exit-confirmation p{margin:6px 0 0;line-height:1.45}.early-exit-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.early-exit-cancelled{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-subtle);color:var(--color-text-body);margin:0;padding:11px 12px;font-weight:650}.manual-qr-page{--manual-check-in:var(--color-primary);--manual-check-in-soft:var(--color-success-surface);--manual-check-out:var(--color-accent-strong);--manual-check-out-soft:var(--color-accent-surface);max-width:1180px;margin:0 auto}.manual-qr-header>p{text-align:right;max-width:470px}.manual-qr-operations{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.manual-qr-operation{border:1px solid var(--color-border);border-top:5px solid var(--operation-color);border-radius:var(--radius-lg);background:var(--color-surface);min-width:0;box-shadow:var(--shadow-md);grid-template-rows:1fr auto;grid-template-columns:auto minmax(0,1fr);gap:16px;padding:20px;display:grid;position:relative;overflow:hidden}.manual-qr-operation:after{content:"";border:22px solid var(--operation-soft);pointer-events:none;border-radius:50%;width:150px;height:150px;position:absolute;bottom:-65px;right:-45px}.manual-qr-operation.check-in{--operation-color:var(--manual-check-in);--operation-soft:var(--manual-check-in-soft)}.manual-qr-operation.check-out{--operation-color:var(--manual-check-out);--operation-soft:var(--manual-check-out-soft)}.manual-qr-operation__icon{z-index:1;border:1px solid color-mix(in srgb, var(--operation-color) 35%, var(--color-border));border-radius:var(--radius);background:var(--operation-soft);width:50px;height:50px;color:var(--operation-color);place-items:center;display:grid;position:relative}.manual-qr-operation__copy{z-index:1;min-width:0;position:relative}.manual-qr-operation__copy h3,.manual-qr-idle h3,.manual-qr-expired h3{color:var(--color-text);margin:2px 0 6px;font-size:20px}.manual-qr-operation__copy p,.manual-qr-idle p,.manual-qr-expired p{color:var(--color-text-muted);margin:0;line-height:1.55}.manual-qr-operation__index{color:var(--operation-color);letter-spacing:.14em;font-size:11px;font-weight:850}.manual-qr-operation__button{z-index:1;border-color:var(--operation-color);background:var(--operation-color);grid-column:1/-1;width:100%;position:relative}.manual-qr-operation__button:hover:not(:disabled){border-color:color-mix(in srgb, var(--operation-color) 84%, black);background:color-mix(in srgb, var(--operation-color) 84%, black)}.manual-qr-console{--operation-color:var(--color-text-secondary);--operation-soft:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-panel-soft);overflow:hidden}.manual-qr-console.check-in{--operation-color:var(--manual-check-in);--operation-soft:var(--manual-check-in-soft)}.manual-qr-console.check-out{--operation-color:var(--manual-check-out);--operation-soft:var(--manual-check-out-soft)}.manual-qr-console__rail{border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);min-height:38px;color:var(--color-text-muted);letter-spacing:.12em;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:10px;font-weight:850;display:flex}.manual-qr-idle,.manual-qr-expired{text-align:center;align-content:center;place-items:center;gap:14px;min-height:390px;padding:34px;display:grid}.manual-qr-idle>div:last-child,.manual-qr-expired>p{max-width:540px}.manual-qr-idle__icon,.manual-qr-expired__mark{border:1px dashed var(--color-border-hover);background:var(--color-surface-subtle);width:88px;height:88px;color:var(--color-text-secondary);border-radius:50%;place-items:center;display:grid}.manual-qr-expired__mark{border-style:solid;border-color:var(--color-warning-surface);background:var(--color-warning-surface);color:var(--color-warning-text)}.manual-qr-active{grid-template-columns:minmax(300px,.9fr) minmax(300px,1.1fr);min-height:490px;display:grid}.manual-qr-code-wrap{border-right:1px solid var(--color-border);background:linear-gradient(var(--color-border-table) 1px, transparent 1px), linear-gradient(90deg, var(--color-border-table) 1px, transparent 1px), var(--color-surface-subtle);background-size:24px 24px;align-content:center;place-items:center;gap:14px;padding:28px;display:grid}.manual-qr-code{border:2px solid var(--operation-color);width:min(100%,352px);box-shadow:10px 10px 0 var(--operation-soft);background:#fff;place-items:center;padding:16px;display:grid}.manual-qr-code svg{width:min(100%,320px);height:auto;display:block}.manual-qr-code-wrap>p{max-width:360px;color:var(--color-text-muted);text-align:center;justify-content:center;align-items:center;gap:7px;margin:0;font-size:12px;font-weight:650;display:flex}.manual-qr-status{border-left:7px solid var(--operation-color);align-content:center;gap:24px;padding:clamp(28px,5vw,58px);display:grid}.manual-qr-status__label{color:var(--operation-color);align-items:center;gap:10px;font-size:18px;font-weight:850;display:flex}.manual-qr-status__label strong{border:1px solid var(--operation-color);border-radius:var(--radius-pill);letter-spacing:.1em;margin-left:auto;padding:4px 8px;font-size:10px}.manual-qr-countdown{border-block:1px solid var(--color-border);color:var(--operation-color);grid-template-columns:auto 1fr;align-items:end;column-gap:12px;padding:18px 0;display:grid}.manual-qr-countdown>span{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;grid-column:1/-1;font-size:12px;font-weight:800}.manual-qr-countdown strong{font-variant-numeric:tabular-nums;letter-spacing:-.07em;font-size:clamp(78px,10vw,132px);line-height:.9}.manual-qr-countdown small{color:var(--color-text-secondary);padding-bottom:8px;font-size:16px;font-weight:750}.manual-qr-countdown.urgent{color:var(--color-danger)}.manual-qr-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;display:grid}.manual-qr-meta>div{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-subtle);gap:4px;padding:12px;display:grid}.manual-qr-meta dt{color:var(--color-text-muted);font-size:11px;font-weight:700}.manual-qr-meta dd{color:var(--color-text);font-variant-numeric:tabular-nums;margin:0;font-size:15px;font-weight:800}.manual-qr-countdown-copy{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.manual-qr-feedback:empty{display:none}@media (width<=820px){.app-shell{grid-template-columns:1fr;height:auto;min-height:100vh;overflow:visible}.sidebar{border-right:0;border-bottom:1px solid var(--color-border);height:auto;overflow:visible}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.content{height:auto;padding:18px;overflow:visible}.page-header,.section-heading,.kiosk-top{flex-direction:column;align-items:flex-start}.manual-qr-header>p{text-align:left}.manual-qr-operations,.manual-qr-active{grid-template-columns:1fr}.manual-qr-code-wrap{border-right:0;border-bottom:1px solid var(--color-border)}.manual-qr-status{border-left-width:5px}.kiosk-top .ghost-button{margin-left:0}.summary-row{grid-template-columns:1fr}.pagination-bar{flex-direction:column;align-items:flex-start}.report-controls input,.toolbar-form input,.toolbar-form select,.toolbar-form .form-field,.report-controls .form-field{flex-basis:100%}.report-range-separator{display:none}}@media (width<=640px){.employee-page-actions,.employee-form-intro{flex-direction:column;align-items:stretch}.employee-status-control,.employee-add-button,.employee-count-badge{width:100%}.employee-count-badge{text-align:center;align-self:stretch}.employee-create-form,.employee-management-form,.employee-password-form{grid-template-columns:1fr}.employee-form-actions>button{flex:100%}}@media (width<=480px){.manual-qr-operation{grid-template-columns:1fr}.manual-qr-operation__button{grid-column:auto}.manual-qr-active{min-height:0}.manual-qr-code-wrap,.manual-qr-status,.manual-qr-idle,.manual-qr-expired{padding:20px}.manual-qr-code{box-shadow:6px 6px 0 var(--operation-soft);padding:10px}.manual-qr-meta{grid-template-columns:1fr}.manual-qr-console__rail span:last-child{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
