@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}.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}.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}.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}.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}.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}@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}.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%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
