@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:Inter, Aptos, "Segoe UI", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-blue-300:oklch(80.9% .105 251.813);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--container-xl:36rem;--container-6xl:72rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wider:.05em;--radius-md:.375rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-0{top:0}.right-0{right:0}.mx-auto{margin-inline:auto}.-mt-px{margin-top:-1px}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-ml-px{margin-left:-1px}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-12{margin-left:calc(var(--spacing) * 12)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-16{height:calc(var(--spacing) * 16)}.min-h-screen{min-height:100vh}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-auto{width:auto}.max-w-6xl{max-width:var(--container-6xl)}.max-w-xl{max-width:var(--container-xl)}.border-collapse{border-collapse:collapse}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-items-center{justify-items:center}.gap-2{gap:calc(var(--spacing) * 2)}.overflow-hidden{overflow:hidden}.rounded-md{border-radius:var(--radius-md)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-white{background-color:var(--color-white)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-4{padding-block:calc(var(--spacing) * 4)}.pt-8{padding-top:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow,.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-gray-300{--tw-ring-color:var(--color-gray-300)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media(hover:hover){.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:text-gray-400:hover{color:var(--color-gray-400)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}}.focus\:border-blue-300:focus{border-color:var(--color-blue-300)}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:bg-gray-100:active{background-color:var(--color-gray-100)}.active\:text-gray-500:active{color:var(--color-gray-500)}.active\:text-gray-700:active{color:var(--color-gray-700)}.active\:text-gray-800:active{color:var(--color-gray-800)}@media(min-width:40rem){.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:flex-1{flex:1}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-start{justify-content:flex-start}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:pt-0{padding-top:0}}@media(min-width:64rem){.lg\:px-8{padding-inline:calc(var(--spacing) * 8)}}.rtl\:flex-row-reverse:where(:dir(rtl),[dir=rtl],[dir=rtl] *){flex-direction:row-reverse}@media(prefers-color-scheme:dark){.dark\:border-gray-600{border-color:var(--color-gray-600)}.dark\:bg-gray-700{background-color:var(--color-gray-700)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:text-gray-200{color:var(--color-gray-200)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-600{color:var(--color-gray-600)}@media(hover:hover){.dark\:hover\:bg-gray-900:hover{background-color:var(--color-gray-900)}.dark\:hover\:text-gray-200:hover{color:var(--color-gray-200)}.dark\:hover\:text-gray-300:hover{color:var(--color-gray-300)}}.dark\:focus\:border-blue-700:focus{border-color:var(--color-blue-700)}.dark\:focus\:border-blue-800:focus{border-color:var(--color-blue-800)}.dark\:active\:bg-gray-700:active{background-color:var(--color-gray-700)}.dark\:active\:text-gray-300:active{color:var(--color-gray-300)}}}:root{--ocean-950:#062f43;--ocean-900:#0a4058;--ocean-800:#0b506c;--ocean-700:#0f6b8a;--ocean-600:#1684a3;--ocean-500:#21a3bd;--ocean-100:#dff3f7;--ocean-50:#eff9fb;--teal:#16a085;--teal-soft:#dcf7f0;--ink:#163342;--muted:#657b86;--line:#dce7eb;--surface:#fff;--canvas:#f3f8fa;--danger:#d84b5b;--danger-soft:#fff0f2;--warning:#d98a22;--warning-soft:#fff6df;--shadow:0 18px 45px #07394e17;--shadow-soft:0 8px 24px #07394e12}*{box-sizing:border-box}html{background:var(--canvas);min-height:100%}body{color:var(--ink);font-family:var(--font-sans);margin:0;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.app-body{background:var(--canvas);min-height:100vh}.app-shell{min-height:100vh}.navigation-progress{z-index:200;opacity:0;pointer-events:none;background:#21a3bd1f;height:3px;transition:opacity .14s;position:fixed;inset:0 0 auto;overflow:hidden}.navigation-progress span{background:linear-gradient(90deg,var(--ocean-600),#4fd1c5);border-radius:0 99px 99px 0;width:38%;height:100%;display:block;transform:translate(-110%);box-shadow:0 0 14px #21a3bd66}.app-body.is-navigating .navigation-progress{opacity:1}.app-body.is-navigating .navigation-progress span{animation:1s ease-in-out infinite navigation-progress}.content-wrap.page-entering{animation:.2s ease-out both page-content-enter}.sidebar{z-index:50;background:linear-gradient(180deg,var(--ocean-950),#07394d 68%,#062f43);color:#fff;flex-direction:column;width:276px;transition:transform .25s;display:flex;position:fixed;inset:0 auto 0 0;box-shadow:16px 0 40px #0425331f}.sidebar-brand{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;min-height:96px;padding:20px 22px;display:flex}.brand-mark-wrap{align-items:center;gap:12px;min-width:0;display:inline-flex}.brand-mark{color:#fff;background:linear-gradient(145deg,var(--ocean-500),#4fd1c5);border-radius:15px;flex:none;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 10px 25px #16a3bd47}.brand-mark svg{width:37px;height:37px}.brand-mark-uploaded{background:#fff;padding:3px;overflow:hidden}.brand-mark-uploaded img{border-radius:inherit;object-fit:contain;width:100%;height:100%}.brand-copy{flex-direction:column;min-width:0;display:flex}.brand-copy strong{letter-spacing:.08em;font-size:1.15rem}.brand-copy small{color:#ffffffab;text-overflow:ellipsis;white-space:nowrap;max-width:155px;font-size:.75rem;overflow:hidden}.sidebar-nav{flex:1;padding:18px 14px;overflow-y:auto}.nav-caption{color:#fff6;letter-spacing:.12em;padding:16px 13px 8px;font-size:.7rem;font-weight:800;display:block}.nav-link{color:#ffffffc2;border-radius:12px;align-items:center;gap:12px;margin:4px 0;padding:11px 13px;font-size:.91rem;font-weight:600;transition:all .18s;display:flex}.nav-link:hover{color:#fff;background:#ffffff14}.nav-link.active{color:#fff;box-shadow:inset 3px 0 var(--ocean-500);background:linear-gradient(95deg,#21a3bd59,#4fd1c521)}.nav-link .ui-icon{opacity:.9}.sidebar-footer{border-top:1px solid #ffffff1a;align-items:center;gap:10px;padding:16px;display:flex}.admin-chip{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.admin-chip>span:last-child{flex-direction:column;min-width:0;display:flex}.admin-chip strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.admin-chip small{color:#ffffff80;font-size:.72rem}.admin-avatar{background:#ffffff17;border:1px solid #fff3;border-radius:11px;flex:none;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.sidebar-actions{gap:3px;display:flex}.sidebar-actions .icon-button{color:#ffffffad}.sidebar-actions .icon-button:hover{color:#fff;background:#ffffff1a}.sidebar-close{color:#fff;display:none}.sidebar-backdrop{z-index:40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#041b268c;display:none;position:fixed;inset:0}.main-panel{min-height:100vh;margin-left:276px}.topbar{z-index:30;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe0;border-bottom:1px solid #cddee5cc;align-items:center;gap:16px;min-height:74px;padding:12px 30px;display:flex;position:sticky;top:0}.topbar-context{flex-direction:column;flex:1;min-width:0;display:flex}.topbar-context strong{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.topbar-context span{color:var(--muted);font-size:.78rem}.topbar-actions{align-items:center;gap:10px;display:flex}.menu-button{display:none}.connection-pill,.status-pill{color:#0b795f;background:#effbf8;border:1px solid #c9ece4;border-radius:99px;align-items:center;gap:7px;min-height:32px;padding:5px 11px;font-size:.78rem;font-weight:750;display:inline-flex}.connection-pill>span{background:#1bb68f;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #1bb68f1f}.connection-pill.offline{color:#a75e0b;background:#fff8ed;border-color:#f0d9b7}.connection-pill.offline>span{background:#e59a34;box-shadow:0 0 0 4px #e59a341f}.content-wrap{width:min(1500px,100%);margin:0 auto;padding:28px 30px 48px}.page-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.page-heading h1{letter-spacing:-.035em;margin:0;font-size:clamp(1.55rem,2.1vw,2.05rem);line-height:1.2}.page-heading p{color:var(--muted);margin:7px 0 0;font-size:.92rem}.page-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.eyebrow{color:var(--ocean-600);letter-spacing:.12em;margin-bottom:9px;font-size:.72rem;font-weight:850;display:inline-flex}.button{cursor:pointer;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:9px 15px;font-size:.86rem;font-weight:750;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button-primary{color:#fff;background:linear-gradient(135deg,var(--ocean-700),var(--ocean-500));box-shadow:0 8px 20px #0f6b8a33}.button-primary:hover{box-shadow:0 12px 25px #0f6b8a45}.button-secondary{color:var(--ocean-800);background:var(--ocean-50);border-color:#b8dce6}.button-ghost{color:var(--ink);border-color:var(--line);background:#fff}.button-danger{color:var(--danger);background:var(--danger-soft);border-color:#f1c9cf}.button-small{border-radius:9px;min-height:34px;padding:6px 10px;font-size:.78rem}.icon-button{width:38px;height:38px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;padding:0;display:inline-grid}.icon-button:hover{color:var(--ocean-700);background:var(--ocean-50)}.card{background:var(--surface);box-shadow:var(--shadow-soft);border:1px solid #d2e2e8eb;border-radius:18px}.card-header{border-bottom:1px solid #e8f0f3;justify-content:space-between;align-items:center;gap:15px;padding:20px 22px;display:flex}.card-header h2,.card-header h3{margin:0;font-size:1rem}.card-header p{color:var(--muted);margin:3px 0 0;font-size:.78rem}.card-body{padding:22px}.card-footer{border-top:1px solid #e8f0f3;padding:16px 22px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.stat-card{min-height:138px;padding:20px;position:relative;overflow:hidden}.stat-card:after{content:"";background:var(--ocean-100);opacity:.48;border-radius:50%;width:110px;height:110px;position:absolute;bottom:-40px;right:-25px}.stat-top{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:.79rem;font-weight:700;display:flex}.stat-icon{width:38px;height:38px;color:var(--ocean-700);background:var(--ocean-50);border-radius:12px;place-items:center;display:grid}.stat-value{z-index:1;letter-spacing:-.045em;margin-top:18px;font-size:2rem;font-weight:850;line-height:1;position:relative}.stat-note{z-index:1;color:var(--muted);margin-top:8px;font-size:.75rem;position:relative}.dashboard-grid{grid-template-columns:minmax(0,1.6fr) minmax(310px,.8fr);gap:20px;margin-bottom:20px;display:grid}.chart-wrap{align-items:flex-end;gap:12px;min-height:270px;padding-top:20px;display:flex}.chart-column{flex-direction:column;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.chart-value{color:var(--muted);font-size:.72rem;font-weight:750}.chart-track{background:linear-gradient(#f0f8fa,#e5f1f4);border-radius:12px 12px 7px 7px;align-items:flex-end;width:min(54px,78%);height:165px;display:flex;overflow:hidden}.chart-bar{background:linear-gradient(180deg,#39c0c9,var(--ocean-700));border-radius:12px 12px 5px 5px;width:100%;min-height:5px;transition:height .45s;box-shadow:0 8px 18px #0f6b8a2e}.chart-label{text-align:center}.chart-label strong{font-size:.75rem;display:block}.chart-label small{color:var(--muted);font-size:.65rem}.schedule-panel{color:#fff;background:linear-gradient(150deg,var(--ocean-950),var(--ocean-700));border:0;overflow:hidden}.schedule-panel .card-body{min-height:100%;position:relative}.schedule-panel .card-body:after{content:"";border:28px solid #ffffff12;border-radius:50%;width:190px;height:190px;position:absolute;bottom:-92px;right:-72px}.schedule-label{color:#ffffffa3;letter-spacing:.08em;font-size:.75rem;font-weight:750}.schedule-panel h3{margin:12px 0 5px;font-size:1.45rem}.schedule-panel p{color:#ffffffb3;margin:0;font-size:.86rem}.schedule-time{background:#ffffff14;border:1px solid #ffffff2e;border-radius:12px;align-items:center;gap:9px;margin-top:30px;padding:10px 13px;font-weight:750;display:inline-flex}.rank-list{gap:3px;display:grid}.rank-item{border-bottom:1px solid #edf3f5;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;display:grid}.rank-item:last-child{border-bottom:0}.rank-number{width:30px;height:30px;color:var(--ocean-700);background:var(--ocean-50);border-radius:9px;place-items:center;font-size:.78rem;font-weight:850;display:grid}.rank-item:first-child .rank-number{color:#92620d;background:#fff3cf}.rank-copy{min-width:0}.rank-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;display:block;overflow:hidden}.rank-copy small{color:var(--muted);font-size:.72rem}.rank-count{text-align:right;font-size:.8rem;font-weight:800}.rank-count small{color:var(--muted);font-size:.65rem;font-weight:600;display:block}.table-card{overflow:hidden}.table-responsive{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.84rem}.data-table th{color:#56707d;border-bottom:1px solid var(--line);text-align:left;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap;background:#f7fafb;padding:12px 16px;font-size:.7rem;font-weight:850}.data-table td{vertical-align:middle;border-bottom:1px solid #edf2f4;padding:14px 16px}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fbfdfe}.cell-primary strong{font-size:.86rem;display:block}.cell-primary small{color:var(--muted);font-size:.73rem}.table-actions{white-space:nowrap;align-items:center;gap:5px;display:flex}.badge{white-space:nowrap;border-radius:99px;align-items:center;gap:6px;min-height:27px;padding:4px 9px;font-size:.69rem;font-weight:800;display:inline-flex}.badge-success{color:#0a755d;background:var(--teal-soft)}.badge-info{color:var(--ocean-700);background:var(--ocean-100)}.badge-warning{color:#985d0a;background:var(--warning-soft)}.badge-danger{color:#b63d4c;background:var(--danger-soft)}.badge-neutral{color:#5e717a;background:#eef3f5}.empty-state{text-align:center;padding:50px 24px}.empty-icon{width:58px;height:58px;color:var(--ocean-700);background:var(--ocean-50);border-radius:18px;place-items:center;margin:0 auto 14px;display:grid}.empty-state h3{margin:0 0 6px;font-size:1rem}.empty-state p{max-width:450px;color:var(--muted);margin:0 auto 18px;font-size:.84rem}.pagination-wrap{border-top:1px solid var(--line);padding:16px 20px}.filter-bar{flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:16px;padding:16px;display:flex}.daily-delete-bar{background:#fffafb;border-color:#f1c9cf;align-items:end;gap:16px;margin-bottom:16px;padding:16px;display:flex}.daily-delete-bar>div:first-child{flex:1;min-width:240px}.daily-delete-bar>div:first-child strong,.daily-delete-bar>div:first-child small{display:block}.daily-delete-bar>div:first-child strong{color:#a53142;font-size:.86rem}.daily-delete-bar>div:first-child small{color:var(--muted);margin-top:4px;font-size:.72rem}.daily-delete-bar .field{min-width:190px}.filter-grow{flex:1;min-width:230px}.field{gap:7px;display:grid}.field label,.field-label{color:#345563;font-size:.79rem;font-weight:750}.field-hint{color:var(--muted);font-size:.72rem}.input,.select,.textarea{width:100%;min-height:43px;color:var(--ink);background:#fff;border:1px solid #cfdde3;border-radius:10px;outline:none;padding:9px 12px;transition:border .16s,box-shadow .16s}.textarea{resize:vertical;min-height:100px}.input:focus,.select:focus,.textarea:focus{border-color:var(--ocean-500);box-shadow:0 0 0 4px #21a3bd1c}.input-icon-wrap{position:relative}.input-icon-wrap .ui-icon{color:#8ba0aa;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-icon-wrap .input{padding-left:40px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.form-grid .full{grid-column:1/-1}.form-actions{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:10px;margin-top:22px;padding-top:20px;display:flex}.switch-line{justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:10px 0;display:flex}.switch-copy strong{font-size:.84rem;display:block}.switch-copy small{color:var(--muted);font-size:.72rem}.toggle{flex:none;width:46px;height:26px;position:relative}.toggle input{opacity:0;position:absolute}.toggle span{cursor:pointer;background:#cad8dd;border-radius:99px;transition:all .2s;position:absolute;inset:0}.toggle span:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;top:4px;left:4px;box-shadow:0 2px 6px #0003}.toggle input:checked+span{background:var(--ocean-600)}.toggle input:checked+span:after{transform:translate(20px)}.radio-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.radio-card{display:block;position:relative}.radio-card input{opacity:0;position:absolute}.radio-card-content{cursor:pointer;border:1px solid #d3e1e6;border-radius:13px;flex-direction:column;justify-content:center;min-height:95px;padding:15px;transition:all .17s;display:flex}.radio-card-content strong{font-size:.85rem}.radio-card-content small{color:var(--muted);margin-top:4px;font-size:.72rem}.radio-card input:checked+.radio-card-content{border-color:var(--ocean-500);background:var(--ocean-50);box-shadow:0 0 0 3px #21a3bd17}.voice-setting{border:1px solid var(--line);background:#f9fcfd;border-radius:14px;margin-top:20px;padding:18px}.voice-setting .form-section-title{margin-bottom:12px}.radio-cards-compact .radio-card-content{min-height:78px}.voice-setting>.field-hint{margin-top:10px;display:block}.hours-grid{gap:8px;display:grid}.hours-row{border:1px solid var(--line);background:#fbfdfe;border-radius:12px;grid-template-columns:120px 90px 1fr 24px 1fr;align-items:center;gap:10px;padding:10px 12px;display:grid}.hours-row strong{font-size:.8rem}.hours-row .input{min-height:38px}.hours-row>span{color:var(--muted);text-align:center}.form-section+.form-section{border-top:1px solid var(--line);margin-top:28px;padding-top:26px}.form-section-title{margin:0 0 16px}.form-section-title h3{margin:0;font-size:1rem}.form-section-title p{color:var(--muted);margin:4px 0 0;font-size:.78rem}.import-card{max-width:900px}.import-error-card{margin-top:18px}.import-form{margin-top:20px}.import-runtime-warning{gap:4px;margin:16px 0 0;display:grid}.import-runtime-warning code{background:#8b560917;border-radius:5px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.76rem}.upload-zone{background:linear-gradient(145deg,#f5fcfd,var(--ocean-50));text-align:center;border:1.5px dashed #9fc9d5;border-radius:16px;place-items:center;min-height:245px;padding:30px;transition:border-color .18s,box-shadow .18s,transform .18s,background .18s;display:grid;position:relative;overflow:hidden}.upload-zone:hover,.upload-zone:focus-within{border-color:var(--ocean-500);background:#f3fcfd;transform:translateY(-1px);box-shadow:0 0 0 4px #21a3bd17}.upload-zone.has-file{background:#f1fbf8;border-style:solid;border-color:#73bfb7}.upload-zone.has-error{background:#fff8f9;border-color:#df8490}.upload-input{z-index:2;opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.upload-content{pointer-events:none;flex-direction:column;align-items:center;width:min(560px,100%);display:flex}.upload-zone .empty-icon{background:#fff;margin-bottom:12px;box-shadow:0 8px 24px #07394e14}.upload-zone.has-file .empty-icon{color:#0b795f;background:#e2f7f1}.upload-title{font-size:1rem}.upload-zone .field-hint{margin:5px 0 18px}.upload-picker-control{background:#fff;border:1px solid #cfdee4;border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;width:min(520px,100%);min-height:48px;padding:5px;display:grid;box-shadow:0 5px 16px #07394e0d}.upload-picker-button{min-height:36px;padding:7px 12px}.upload-file-name{min-width:0;color:var(--muted);text-align:left;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.upload-zone.has-file .upload-file-name{color:#0b6e59;font-weight:750}.alert{border:1px solid;border-radius:12px;margin-bottom:18px;padding:13px 16px;font-size:.82rem}.alert ul{margin:7px 0 0;padding-left:20px}.alert-success{color:#08755c;background:#ecfbf7;border-color:#bde8dc}.alert-warning{color:#8b5609;background:#fff8e9;border-color:#ecd6ab}.alert-danger{color:#a63243;background:#fff1f3;border-color:#efc5cc}.notice{color:var(--ocean-800);background:var(--ocean-50);border-radius:12px;gap:12px;padding:14px;font-size:.8rem;display:flex}.danger-zone{background:#fffafb;border-color:#f0cbd0}.login-transition-body{background:#dff3f7;min-height:100vh;overflow:hidden}.login-transition{isolation:isolate;background:radial-gradient(circle at 50% 12%,#fffffff0,#dff3f7cc 36%,#bfe8ee 76%);place-items:center;min-height:100vh;padding:28px;display:grid;position:relative;overflow:hidden}.login-transition:before{content:"";z-index:0;opacity:.42;background-image:radial-gradient(circle,#0f6b8a38 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 68%);mask-image:linear-gradient(#000,#0000 68%)}.login-transition-glow{z-index:1;aspect-ratio:1;border:1px solid #1684a321;border-radius:50%;width:min(620px,90vw);animation:1.8s ease-in-out both login-ocean-glow;position:absolute;top:10%;left:50%;transform:translate(-50%);box-shadow:0 0 0 42px #ffffff1f,0 0 0 94px #1684a30d}.login-ocean-wave{z-index:2;transform-origin:bottom;border-radius:48% 52% 0 0/15% 18% 0 0;height:78%;animation:1.15s cubic-bezier(.2,.82,.2,1) both login-ocean-rise;position:absolute;bottom:-16%;left:-12%;right:-12%}.login-ocean-wave:before,.login-ocean-wave:after{content:"";background:inherit;border-radius:50%;position:absolute}.login-ocean-wave:before{width:48%;height:19%;top:-5%;left:7%;transform:rotate(3deg)}.login-ocean-wave:after{width:55%;height:17%;top:-2%;right:4%;transform:rotate(-4deg)}.login-ocean-wave-back{z-index:1;opacity:.86;background:linear-gradient(135deg,#9fe2e8,#6bcbd5);height:82%;animation-delay:30ms;bottom:-19%}.login-ocean-wave-middle{z-index:2;opacity:.94;background:linear-gradient(145deg,#3ab7c4,#1789a5);height:76%;animation-delay:.13s;bottom:-22%}.login-ocean-wave-front{z-index:3;background:linear-gradient(145deg,var(--ocean-700),var(--ocean-950));height:72%;animation-delay:.23s;bottom:-25%;box-shadow:0 -24px 70px #062f4321}.login-transition-content{z-index:5;color:#fff;text-align:center;flex-direction:column;align-items:center;width:min(580px,100%);animation:.5s cubic-bezier(.2,.8,.2,1) .62s both login-ocean-content;display:flex;position:relative}.login-transition-logo{background:#fffffff5;border:1px solid #ffffff8f;border-radius:27px;place-items:center;width:86px;height:86px;margin-bottom:20px;display:grid;box-shadow:0 22px 55px #03243238}.login-transition-logo .brand-mark{border-radius:20px;width:64px;height:64px;box-shadow:0 12px 30px #16a3bd4d}.login-transition-logo .brand-mark svg{width:47px;height:47px}.login-transition-kicker{color:#c9ffef;letter-spacing:.12em;text-transform:uppercase;background:#ffffff12;border:1px solid #ffffff2e;border-radius:99px;align-items:center;gap:8px;padding:6px 11px;font-size:.7rem;font-weight:850;display:inline-flex}.login-transition-kicker i{background:#70e5bd;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 5px #70e5bd1f}.login-transition-content h1{letter-spacing:-.055em;margin:13px 0 4px;font-size:clamp(2.1rem,6vw,3.65rem);line-height:1.05}.login-transition-content p{color:#ffffffad;margin:0;font-size:clamp(.82rem,2vw,.98rem)}.login-transition-loader{align-items:center;gap:6px;height:20px;margin-top:22px;display:flex}.login-transition-loader span{background:#8ce5d1;border-radius:50%;width:7px;height:7px;animation:.8s ease-in-out infinite alternate login-ocean-dot}.login-transition-loader span:nth-child(2){animation-delay:.16s}.login-transition-loader span:nth-child(3){animation-delay:.32s}.login-transition-skip{color:#ffffff85;border-radius:8px;margin-top:14px;padding:5px 10px;font-size:.7rem;transition:color .16s,background .16s}.login-transition-skip:hover,.login-transition-skip:focus-visible{color:#fff;background:#ffffff14}.auth-body{background:radial-gradient(circle at 15% 10%,#dff5f6,#0000 36%),#edf6f8;place-items:center;min-height:100vh;padding:26px;display:grid}.auth-shell{background:#fff;border:1px solid #ffffffb8;border-radius:28px;grid-template-columns:1.08fr .92fr;width:min(1040px,100%);min-height:620px;animation:.7s cubic-bezier(.2,.8,.2,1) both auth-shell-enter;display:grid;overflow:hidden;box-shadow:0 30px 80px #062f4329}.auth-brand-panel{color:#fff;background:linear-gradient(145deg,var(--ocean-950),var(--ocean-700));flex-direction:column;justify-content:space-between;padding:42px;display:flex;position:relative;overflow:hidden}.auth-brand-panel:after{content:"";z-index:1;opacity:0;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff1c,#0000);width:230px;height:165%;animation:1.25s ease-out .2s both auth-light-sweep;position:absolute;top:-30%;left:-65%;transform:rotate(17deg)}.auth-brand-header{z-index:2;justify-content:space-between;align-items:center;gap:22px;animation:.65s cubic-bezier(.2,.8,.2,1) .16s both auth-header-enter;display:flex;position:relative}.auth-school-identity{text-align:right;flex-direction:column;align-items:flex-end;min-width:0;max-width:220px;display:flex}.auth-school-identity span{color:#ffffff8f;letter-spacing:.12em;text-transform:uppercase;font-size:.65rem;font-weight:800}.auth-school-identity strong{color:#fff;font-size:.86rem;line-height:1.25}.auth-brand-panel .brand-copy small{color:#ffffffb3}.auth-brand-copy{z-index:2;max-width:480px;padding-bottom:45px;animation:.7s cubic-bezier(.2,.8,.2,1) .25s both auth-copy-enter;position:relative}.auth-brand-copy .eyebrow{color:#8de1df}.auth-brand-copy h1{letter-spacing:-.055em;margin:0;font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.06}.auth-brand-copy p{color:#ffffffb3;margin:20px 0 0}.auth-pattern span{border:1px solid #ffffff1a;border-radius:50%;animation:6s ease-in-out infinite auth-ring-breathe;position:absolute}.auth-pattern span:first-child{width:390px;height:390px;bottom:-160px;right:-190px}.auth-pattern span:nth-child(2){width:280px;height:280px;animation-delay:-.8s;bottom:-105px;right:-135px}.auth-pattern span:nth-child(3){background:#4bd0ca1f;width:150px;height:150px;animation-delay:-1.6s;bottom:-40px;right:-68px}.auth-form-panel{place-items:center;padding:44px;animation:.72s cubic-bezier(.2,.8,.2,1) .24s both auth-form-enter;display:grid}.auth-form{width:min(360px,100%)}.auth-form h2{letter-spacing:-.035em;margin:0;font-size:1.8rem}.auth-form>p{color:var(--muted);margin:8px 0 26px;font-size:.85rem}.auth-form .field{margin-bottom:16px}.auth-form .button{width:100%;margin-top:8px}.auth-footnote{color:var(--muted);text-align:center;margin-top:24px;font-size:.72rem}.report-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.summary-chip{border:1px solid var(--line);background:#fff;border-radius:13px;padding:16px}.summary-chip small{color:var(--muted);font-size:.72rem}.summary-chip strong{margin-top:5px;font-size:1.3rem;display:block}.confirm-box{background:#fff9e9;border:1px solid #efd6a9;border-radius:12px;align-items:flex-start;gap:10px;margin-top:20px;padding:15px;font-size:.8rem;display:flex}.confirm-box input{margin-top:3px}.kiosk-body{color:#fff;background:#052e40;min-height:100vh;overflow-x:hidden}.kiosk-shell{background:radial-gradient(circle at 34% 42%,#1da4b829,#0000 35%),linear-gradient(145deg,#052c3d,#073c51 62%,#06465c);flex-direction:column;min-height:100vh;display:flex}.rfid-capture{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;top:-100px;left:-100px}.kiosk-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#03233066;border-bottom:1px solid #ffffff1a;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;min-height:88px;padding:16px 26px;display:grid}.kiosk-brand{align-items:center;gap:11px;display:flex}.kiosk-brand .brand-mark{width:46px;height:46px}.kiosk-brand>span{flex-direction:column;display:flex}.kiosk-brand strong{letter-spacing:.08em}.kiosk-brand small{color:#ffffff94;font-size:.72rem}.kiosk-header-center{text-align:center;flex-direction:column;display:flex}.kiosk-header-center strong{font-variant-numeric:tabular-nums;letter-spacing:.045em;font-size:1.35rem}.kiosk-header-center span{color:#ffffff8f;font-size:.72rem}.kiosk-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.kiosk-status{color:#bcf5e5;cursor:pointer;background:#0f846821;border:1px solid #65dfbc33;border-radius:11px;align-items:center;gap:8px;min-height:42px;padding:6px 11px;font-size:.76rem;font-weight:750;display:flex}.kiosk-status small{color:#ffffff80;border-left:1px solid #ffffff26;padding-left:7px}.kiosk-status.offline{color:#ffd99c;background:#be74101f;border-color:#f0b34f38}.kiosk-status.is-syncing{opacity:.65}.network-dot{background:#58e0b8;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #58e0b81f}.offline .network-dot{background:#f0b34f;box-shadow:0 0 0 4px #f0b34f1f}.kiosk-icon-button,.kiosk-exit{color:#ffffffc7;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff24;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:42px;display:inline-flex}.kiosk-icon-button{width:42px}.kiosk-exit{padding:8px 12px;font-size:.78rem;font-weight:750}.kiosk-main{flex:1;grid-template-columns:minmax(0,1fr) 330px;gap:22px;width:min(1440px,100%);margin:0 auto;padding:24px 26px;display:grid}.scanner-stage{flex-direction:column;min-height:590px;display:flex}.stage-heading{justify-content:space-between;align-items:center;display:flex}.mode-chip,.service-chip{color:#ffffffa3;background:#ffffff0d;border:1px solid #ffffff21;border-radius:99px;padding:7px 11px;font-size:.72rem;font-weight:750;display:inline-flex}.service-chip.open{color:#aff0db;border-color:#62e0bb38}.service-chip.closed{color:#ffd198;border-color:#f0b34f3b}.scan-result{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:460px;padding:42px;display:flex;position:relative}.scan-orbit{aspect-ratio:1;pointer-events:none;width:min(470px,62vw);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scan-orbit span{border:1px solid #6cdde01c;border-radius:50%;position:absolute;inset:0}.scan-orbit span:nth-child(2){border-color:#6cdde02e;inset:15%}.scan-orbit span:nth-child(3){background:radial-gradient(circle,#28b9c421,#0000 70%);border-color:#6cdde047;inset:31%}.is-idle .scan-orbit span:nth-child(2){animation:2.3s ease-in-out infinite kiosk-pulse}.result-icon{z-index:2;color:#8ce5e4;background:linear-gradient(145deg,#1994a940,#2cccbe14);border:1px solid #62ddde54;border-radius:30px;place-items:center;width:92px;height:92px;margin-bottom:25px;font-size:2.8rem;font-weight:300;transition:all .25s;display:grid;position:relative;box-shadow:0 18px 60px #00000029}.result-kicker{z-index:2;color:#84dfe1;letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:850;position:relative}.scan-result h1{z-index:2;letter-spacing:-.055em;max-width:720px;margin:10px 0 5px;font-size:clamp(2rem,4.3vw,4.2rem);line-height:1.05;position:relative}.scan-result p{z-index:2;color:#ffffff94;margin:0;font-size:1rem;position:relative}.scan-result time{z-index:2;color:#ffffff6b;font-variant-numeric:tabular-nums;margin-top:20px;font-size:.82rem;position:relative}.scan-result.is-success .result-icon{color:#d8fff3;background:#19a77f4d;border-color:#58e0b866}.scan-result.is-success .result-kicker{color:#74e1bc}.scan-result.is-error .result-icon{color:#ffd8dd;background:#c7394c4d;border-color:#ee697a6b}.scan-result.is-error .result-kicker{color:#ff9eaa}.scan-result.is-waiting .result-icon{color:#fff0bd;background:#cf97243b;border-color:#ffd66b66}.scan-result.is-waiting .result-kicker{color:#ffe091}.kiosk-help{color:#ffffff70;justify-content:center;align-items:center;gap:10px;font-size:.72rem;display:flex}.kiosk-help span{color:#ffffffa8;border:1px solid #ffffff24;border-radius:50%;place-items:center;width:23px;height:23px;display:grid}.kiosk-help i{background:#ffffff21;width:28px;height:1px}.kiosk-side{flex-direction:column;gap:15px;display:flex}.kiosk-count-card,.kiosk-recent,.offline-note{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff1;border:1px solid #ffffff1a;border-radius:18px;box-shadow:0 18px 50px #0000001a}.kiosk-count-card{padding:21px}.kiosk-count-card span{color:#ffffff8c;font-size:.75rem}.kiosk-count-card strong{letter-spacing:-.04em;margin:5px 0 2px;font-size:2.5rem;line-height:1;display:block}.kiosk-count-card small{color:#71d3d5;font-size:.72rem}.kiosk-recent{flex:1;overflow:hidden}.kiosk-section-title{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:16px 17px;display:flex}.kiosk-section-title span{font-size:.82rem;font-weight:800}.kiosk-section-title small{color:#ffffff6b;font-size:.66rem}.kiosk-recent-list{padding:7px 15px}.kiosk-recent-item{border-bottom:1px solid #ffffff12;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 0;display:grid}.kiosk-recent-item:last-child{border:0}.recent-avatar{color:#a9eff0;background:#37c0c71f;border-radius:10px;place-items:center;width:34px;height:34px;font-size:.78rem;font-weight:850;display:grid}.kiosk-recent-item>span:nth-child(2){flex-direction:column;min-width:0;display:flex}.kiosk-recent-item strong{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.kiosk-recent-item small,.kiosk-recent-item time{color:#ffffff6e;font-size:.65rem}.kiosk-empty{color:#ffffff6b;text-align:center;padding:40px 15px;font-size:.76rem}.offline-note{color:#ffffff85;align-items:flex-start;gap:10px;padding:14px;font-size:.68rem;display:flex}.offline-note .ui-icon{color:#69d1d3;flex:none}.kiosk-footer{color:#ffffff45;text-align:center;letter-spacing:.03em;padding:10px 20px 14px;font-size:.65rem}.purpose-picker[hidden]{display:none}.purpose-picker{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#021b26c2;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.purpose-picker-card{color:#fff;background:linear-gradient(145deg,#083d51,#075469);border:1px solid #8fe6e13d;border-radius:24px;width:min(760px,100%);max-height:calc(100vh - 48px);padding:30px;overflow-y:auto;box-shadow:0 28px 90px #00000057}.purpose-picker-kicker{color:#83e1d8;letter-spacing:.13em;font-size:.69rem;font-weight:850}.purpose-picker h2{letter-spacing:-.035em;margin:6px 0 8px;font-size:clamp(1.5rem,3vw,2.25rem)}.purpose-picker-card>p{color:#ffffff9e;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;margin:0 0 22px;font-size:.82rem;display:flex}.purpose-picker-card>p strong{color:#fff}.purpose-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.purpose-button{color:#fff;cursor:pointer;text-align:left;background:#ffffff12;border:1px solid #ffffff24;border-radius:14px;align-items:center;gap:13px;min-height:64px;padding:10px 14px;transition:transform .15s,border-color .15s,background .15s;display:flex}.purpose-button:hover,.purpose-button:focus-visible{background:#46c4bc29;border-color:#7fe7dc9e;outline:none;transform:translateY(-1px)}.purpose-button kbd,.purpose-cancel kbd{color:#b7f4ec;background:#00000024;border:1px solid #ffffff3d;border-radius:8px;place-items:center;font-family:inherit;font-weight:850;display:inline-grid}.purpose-button kbd{flex:none;width:36px;height:36px;font-size:1rem}.purpose-button span{font-size:.88rem;font-weight:760}.purpose-cancel{color:#ffffff94;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;margin:18px auto 0;padding:7px 10px;font-size:.74rem;display:flex}.purpose-cancel:hover,.purpose-cancel:focus-visible{color:#fff}.purpose-cancel kbd{min-width:31px;min-height:24px;padding:2px 6px;font-size:.66rem}.purpose-picker-open{overflow:hidden}.kiosk-body.is-fullscreen-fallback{z-index:2147483000;width:100%;height:100dvh;position:fixed;inset:0;overflow:auto}.kiosk-body.is-fullscreen-fallback .kiosk-shell{min-height:100dvh}:fullscreen .kiosk-shell{min-height:100dvh}@keyframes kiosk-pulse{0%,to{opacity:.5;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}@keyframes navigation-progress{0%{transform:translate(-110%)}55%{transform:translate(105%)}to{transform:translate(270%)}}@keyframes page-content-enter{0%{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-shell-enter{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes auth-header-enter{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-copy-enter{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes auth-form-enter{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes auth-light-sweep{0%{opacity:0;left:-65%}25%{opacity:1}to{opacity:0;left:125%}}@keyframes auth-ring-breathe{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.045)}}@keyframes login-ocean-rise{0%{transform:translateY(115%)scaleX(.9)}to{transform:translateY(0)scaleX(1)}}@keyframes login-ocean-content{0%{opacity:0;transform:translateY(20px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes login-ocean-glow{0%{opacity:0;transform:translate(-50%)scale(.72)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes login-ocean-dot{0%{opacity:.35;transform:translateY(2px)scale(.8)}to{opacity:1;transform:translateY(-2px)scale(1)}}@media(max-width:1120px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:860px){.sidebar{transform:translate(-102%)}.app-shell.sidebar-open .sidebar{transform:translate(0)}.app-shell.sidebar-open .sidebar-backdrop{display:block}.sidebar-close,.menu-button{display:inline-grid}.main-panel{margin-left:0}.topbar{padding:10px 16px}.content-wrap{padding:22px 16px 40px}.auth-shell{grid-template-columns:1fr;min-height:auto}.auth-brand-panel{min-height:255px;padding:26px}.auth-school-identity{max-width:190px}.auth-brand-copy{padding:35px 0 0}.auth-brand-copy h1{font-size:2rem}.auth-form-panel{padding:34px 26px}.kiosk-header{grid-template-columns:1fr auto;padding:13px 16px}.kiosk-header-center{display:none}.kiosk-main{grid-template-columns:1fr;padding:18px 16px}.kiosk-side{grid-template-columns:180px 1fr;display:grid}.offline-note{grid-column:1/-1}.scanner-stage{min-height:510px}.scan-result{min-height:390px}}@media(max-width:640px){.page-heading{flex-direction:column;align-items:stretch}.page-actions{justify-content:flex-start}.stats-grid,.report-summary,.form-grid,.radio-cards{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.topbar-context span{display:none}.connection-pill{padding-inline:9px}.install-button{display:none!important}.card-header,.card-body{padding:17px}.hours-row{grid-template-columns:1fr auto}.hours-row .input{grid-column:span 1}.hours-row>span{display:none}.filter-bar,.daily-delete-bar{flex-direction:column;align-items:stretch}.filter-grow{min-width:0}.auth-body{background:#fff;padding:0}.auth-shell{border:0;border-radius:0;min-height:100vh}.auth-brand-panel{min-height:220px}.auth-brand-header{gap:12px}.auth-brand-header .brand-mark-wrap{gap:9px}.auth-brand-header .brand-mark{border-radius:13px;width:42px;height:42px}.auth-brand-header .brand-copy strong{font-size:1rem}.auth-brand-header .brand-copy small{max-width:108px;font-size:.66rem}.auth-school-identity{max-width:145px}.auth-school-identity strong{font-size:.73rem}.login-transition{padding:20px}.login-ocean-wave{left:-28%;right:-28%}.login-transition-logo{border-radius:24px;width:76px;height:76px}.login-transition-logo .brand-mark{width:57px;height:57px}.upload-zone{min-height:225px;padding:24px 17px}.upload-picker-control{grid-template-columns:1fr;gap:4px;padding:6px}.upload-file-name{text-align:center;padding:4px 8px 6px}.kiosk-brand small,.kiosk-exit .ui-icon,.kiosk-status small,.kiosk-icon-button{display:none}.kiosk-exit{padding:8px 10px}.kiosk-main{padding:14px 12px}.scanner-stage{min-height:460px}.scan-result{min-height:350px;padding:25px 10px}.scan-result h1{font-size:2.25rem}.scan-orbit{width:86vw}.kiosk-help{flex-wrap:wrap}.kiosk-side{grid-template-columns:1fr}.offline-note{grid-column:auto}.purpose-picker{padding:12px}.purpose-picker-card{border-radius:18px;max-height:calc(100vh - 24px);padding:20px 16px}.purpose-grid{grid-template-columns:1fr}.purpose-button{min-height:54px}}@media(prefers-reduced-motion:reduce){.auth-shell,.auth-brand-panel:after,.auth-brand-header,.auth-brand-copy,.auth-form-panel,.auth-pattern span,.navigation-progress span,.content-wrap.page-entering,.login-transition-glow,.login-ocean-wave,.login-transition-content,.login-transition-loader span{animation:none}.app-body.is-navigating .navigation-progress span{width:100%;transform:none}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
