/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--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-outline-style:solid;--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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-800:oklch(47.3% .137 46.201);--color-green-100:oklch(96.2% .044 156.743);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--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-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-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--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,ui-sans-serif, system-ui, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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{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{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.right-0{right:calc(var(--spacing) * 0)}.z-50{z-index:50}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mt-1{margin-top:calc(var(--spacing) * 1)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.w-36{width:calc(var(--spacing) * 36)}.w-full{width:100%}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-blue-100{border-color:var(--color-blue-100)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-red-400{border-color:var(--color-red-400)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-600{background-color:var(--color-green-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-600{background-color:var(--color-red-600)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-white{background-color:var(--color-white)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from:var(--color-blue-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-blue-600{--tw-gradient-from:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-100{--tw-gradient-to:var(--color-blue-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-700{--tw-gradient-to:var(--color-blue-700);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.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-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-amber-800{color:var(--color-amber-800)}.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-900{color:var(--color-gray-900)}.text-green-800{color:var(--color-green-800)}.text-red-600{color:var(--color-red-600)}.text-red-900{color:var(--color-red-900)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-700{color:var(--color-slate-700)}.text-white{color:var(--color-white)}.underline{text-decoration-line:underline}.shadow{--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)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{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))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;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}.duration-200{--tw-duration:.2s;transition-duration:.2s}.select-none{-webkit-user-select:none;user-select:none}.file\:mr-4::file-selector-button{margin-right:calc(var(--spacing) * 4)}.file\:rounded-full::file-selector-button{border-radius:3.40282e38px}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-blue-50::file-selector-button{background-color:var(--color-blue-50)}.file\:px-4::file-selector-button{padding-inline:calc(var(--spacing) * 4)}.file\:py-2::file-selector-button{padding-block:calc(var(--spacing) * 2)}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-semibold::file-selector-button{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.file\:text-blue-700::file-selector-button{color:var(--color-blue-700)}@media (hover:hover){.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-200:hover{background-color:var(--color-slate-200)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:text-slate-900:hover{color:var(--color-slate-900)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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)}.hover\:file\:bg-blue-100:hover::file-selector-button{background-color:var(--color-blue-100)}}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:bg-white:focus{background-color:var(--color-white)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + 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\:ring-blue-500\/15:focus{--tw-ring-color:#3080ff26}@supports (color:color-mix(in lab, red, red)){.focus\:ring-blue-500\/15:focus{--tw-ring-color:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.focus\:ring-red-500\/15:focus{--tw-ring-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.focus\:ring-red-500\/15:focus{--tw-ring-color:color-mix(in oklab, var(--color-red-500) 15%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:bg-blue-800:active{background-color:var(--color-blue-800)}.active\:bg-gray-300:active{background-color:var(--color-gray-300)}.active\:bg-green-800:active{background-color:var(--color-green-800)}.active\:bg-red-800:active{background-color:var(--color-red-800)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-300:disabled{background-color:var(--color-gray-300)}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:shadow-none:disabled{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=48rem){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}input[type=text],input[type=number],input[type=password],input[type=date],input[type=month],input[type=email],input[type=search],input[type=tel],select,textarea{color:#1e293b;box-sizing:border-box;appearance:none;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;outline:none;height:38px;padding:9px 12px;font-family:inherit;font-size:.875rem;line-height:1.25;transition:border-color .15s,background .15s}select{text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2394A3B8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}textarea{height:auto}input[type=text]:focus,input[type=number]:focus,input[type=password]:focus,input[type=date]:focus,input[type=month]:focus,input[type=email]:focus,input[type=search]:focus,input[type=tel]:focus,select:focus,textarea:focus{background:#fff;border-color:#94a3b8}input[type=date],input[type=month]{cursor:pointer;width:100%;min-width:0;position:relative}input[type=date]::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}input[type=month]::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}@media (width<=480px){input[type=text],input[type=number],input[type=password],input[type=date],input[type=month],input[type=email],input[type=search],input[type=tel],select,textarea{border-radius:10px;height:46px;padding:11px 14px;font-size:1rem}select{background-position:right 14px center;padding-right:36px}}:root{--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}#root{text-align:center;box-sizing:border-box;flex-direction:column;width:100%;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}.back-btn{color:#374151;cursor:pointer;background:#e5e7eb;border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 18px;font-family:inherit;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.back-btn:hover{color:#111827;background:#d1d5db}h1,h2{font-family:var(--heading);color:#0f172a;font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:#0f172a;border-radius:4px;display:inline-flex}code{background:#f1f5f9;padding:4px 8px;font-size:15px;line-height:135%}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}.login-wrapper{box-sizing:border-box;background:#f8fafc;flex:1;justify-content:center;align-items:center;padding:32px 16px;display:flex}.login-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;width:100%;max-width:360px;padding:36px 32px;box-shadow:0 4px 24px #00000014,0 1px 4px #0000000a}.login-title{color:#1e293b;text-align:center;letter-spacing:-.3px;margin:0 0 28px;font-size:1.5rem;font-weight:800}.login-form{flex-direction:column;gap:18px;display:flex}.login-field{flex-direction:column;gap:6px;display:flex}.login-field label{color:#475569;font-size:.88rem;font-weight:600}.login-field input:focus{box-shadow:0 0 0 3px #94a3b826}.login-field input:disabled{opacity:.6;cursor:not-allowed}.login-hint{color:#475569;margin:0;font-size:.82rem;line-height:1.4}.login-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:0;padding:10px 14px;font-size:.88rem}.login-notice{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;align-items:flex-start;gap:10px;margin:0 0 14px;padding:10px 12px 10px 14px;font-size:.88rem;line-height:1.5;display:flex}.login-notice>span{flex:1}.login-notice-close{color:#1e40af;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:1.25rem;line-height:1;display:flex}.login-notice-close:hover{background:#dbeafe}.login-btn{color:#fff;cursor:pointer;background:#334155;border:none;border-radius:10px;margin-top:4px;padding:12px;font-family:inherit;font-size:1rem;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .2s;box-shadow:0 2px 8px #3341554d}.login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #33415566}.login-btn:active:not(:disabled){transform:translateY(0)}.login-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.login-card--wide{max-width:520px}.login-subtitle{color:#6b7280;text-align:center;margin:-12px 0 20px;font-size:.88rem;line-height:1.55}.login-text-link{color:#64748b;cursor:pointer;text-align:center;background:0 0;border:none;width:100%;margin-top:14px;padding:8px;font-family:inherit;font-size:.88rem;transition:color .15s;display:block}.login-text-link:hover{color:#1e293b;text-decoration:underline}.login-contact-link{color:#15803d;text-align:center;background:#f0fff4;border:1px solid #86efac;border-radius:10px;margin-top:8px;padding:10px 14px;font-family:inherit;font-size:.85rem;text-decoration:none;transition:background .15s,border-color .15s;display:block}.login-contact-link:hover{background:#dcfce7;border-color:#4ade80}.init-log{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:4px;max-height:220px;margin-top:16px;padding:12px 14px;display:flex;overflow-y:auto}.init-log p{margin:0;font-family:Menlo,Consolas,monospace;font-size:.82rem;line-height:1.5}.init-log__ok{color:#16a34a}.init-log__err{color:#dc2626}.init-log__info{color:#374151}.login-info{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin:0 0 16px;padding:10px 14px;font-size:.9rem;line-height:1.55}.login-spinner{vertical-align:middle;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=480px){.login-card{padding:28px 20px}}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;top:64px;right:20px}.toast-item{pointer-events:auto;cursor:pointer;transform-origin:100%;border-radius:10px;align-items:center;gap:10px;min-width:240px;max-width:380px;padding:12px 18px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:.875rem;font-weight:600;line-height:1.45;animation:.3s cubic-bezier(.22,1,.36,1) forwards toast-in;display:flex;box-shadow:0 4px 16px #0000001a,0 1px 4px #0000000f}.toast-item.toast-leave{animation:.28s cubic-bezier(.55,0,1,.45) forwards toast-out}.toast-success{color:#166534;background:#f0fdf4;border:1px solid #86efac}.toast-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.toast-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.toast-info{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.toast-msg{flex:1}@keyframes toast-in{0%{opacity:0;transform:translate(40px)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(40px)scale(.92)}}@media (width<=640px){.toast-container{inset:auto 12px 20px}.toast-item{min-width:0;max-width:100%}}.uf-draft-banner{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;align-items:flex-start;gap:12px;margin-bottom:18px;padding:14px 16px;display:flex}.uf-draft-banner svg{color:#d97706;flex-shrink:0;margin-top:2px}.uf-draft-banner strong{margin-bottom:2px;font-size:.95rem;display:block}.uf-draft-banner p{color:#78350f;margin:0;font-size:.82rem;line-height:1.5}.uf-draft-info{text-align:left;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:16px;padding:14px 18px}.uf-draft-info-row{border-bottom:1px dashed #e2e8f0;align-items:baseline;gap:14px;padding:10px 0;font-size:.92rem;display:flex}.uf-draft-info-row:last-child{border-bottom:none}.uf-draft-info-label{color:#64748b;text-align:right;flex-shrink:0;width:72px;font-weight:500}.uf-draft-info-value{color:#1e293b;word-break:break-word;text-align:left;flex:1;font-weight:600}.uf-draft-preview-wrap{margin-bottom:20px}.uf-draft-preview-label{color:#475569;margin-bottom:8px;font-size:.85rem;font-weight:600}.uf-draft-preview-frame{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:10px;width:100%;height:480px}.uf-draft-preview-open{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:6px;margin-top:8px;padding:6px 10px;font-size:.85rem;text-decoration:none;display:inline-flex}.uf-draft-preview-open:hover{background:#e2e8f0}.uf-draft-actions{gap:12px;display:flex}.uf-draft-btn{cursor:pointer;border:none;border-radius:10px;flex:1;min-height:48px;padding:14px 20px;font-size:1rem;font-weight:600;transition:background .15s}.uf-draft-btn.primary{color:#fff;background:#334155}.uf-draft-btn.primary:hover:not(:disabled){background:#1e293b}.uf-draft-btn.primary:disabled{cursor:not-allowed;background:#94a3b8}.uf-draft-btn.danger{color:#b91c1c;background:#fff;border:1px solid #fca5a5}.uf-draft-btn.danger:hover:not(:disabled){background:#fef2f2}.uf-draft-btn.secondary{color:#475569;background:#fff;border:1px solid #cbd5e1}.uf-draft-btn.secondary:hover{background:#f1f5f9}.uf-draft-confirm-actions{gap:10px;margin-top:18px;display:flex}.uf-draft-confirm-actions .uf-draft-btn{min-height:44px;padding:12px 16px;font-size:.95rem}.uf-submit-hint{color:#64748b;text-align:center;margin:10px 0 0;font-size:.8rem}@media (width<=640px){.uf-draft-preview-frame{height:360px}.uf-draft-actions{flex-direction:column-reverse}}.upload-wrapper{-webkit-overflow-scrolling:touch;background:#f8fafc;flex:1;justify-content:center;align-items:flex-start;padding:32px 16px;display:flex;overflow-y:auto}.upload-card{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:16px;width:100%;max-width:520px;padding:32px 36px;box-shadow:0 4px 24px #00000014,0 1px 4px #0000000a}.upload-card h2{color:#1e293b;text-align:center;letter-spacing:-.3px;margin:0;font-size:1.4rem;font-weight:800}.uf-header{align-items:center;gap:16px;min-height:40px;margin-bottom:16px;display:flex;position:relative}.uf-header h2{white-space:nowrap;pointer-events:none;margin:0;position:absolute;left:50%;transform:translate(-50%)}.uf-identity-compact{color:#64748b;border-bottom:1px solid #f1f5f9;justify-content:center;align-items:center;gap:6px;margin-bottom:24px;padding:8px 0;font-size:.85rem;font-weight:600;display:flex}.uf-compact-sep{color:#cbd5e1;-webkit-user-select:none;user-select:none;font-weight:400}.uf-section{margin-bottom:24px}.uf-section-label{color:#64748b;letter-spacing:.3px;text-transform:uppercase;margin-bottom:10px;font-size:.82rem;font-weight:700}.uf-field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.uf-field:last-child{margin-bottom:0}.uf-field label{color:#475569;text-align:left;font-size:.85rem;font-weight:600}.uf-field input[type=text]:focus,.uf-field input[type=number]:focus,.uf-field select:focus{box-shadow:0 0 0 3px #3b82f626}.uf-field-row{gap:12px;display:flex}.uf-field-row .uf-field{flex:1;min-width:0}.uf-category-group{flex-wrap:wrap;gap:6px;display:flex}.uf-category-btn{color:#64748b;cursor:pointer;text-align:center;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;flex:1;min-width:60px;padding:9px 4px;font-family:inherit;font-size:.88rem;font-weight:600;transition:all .15s}.uf-category-btn:hover:not(:disabled){color:#334155;background:#f1f5f9;border-color:#cbd5e1}.uf-category-btn.active{box-shadow:0 1px 4px #33415540;color:#fff!important;background:#334155!important;border-color:#334155!important}.uf-category-btn:disabled{opacity:.5;cursor:not-allowed}.uf-error-banner{color:#b91c1c;background:#fef2f2;border:1.5px solid #fecaca;border-radius:12px;align-items:center;gap:10px;margin:0 0 14px;padding:14px 16px;font-size:.92rem;font-weight:600;animation:.4s uf-shake;display:flex}.uf-error-banner svg{stroke:#dc2626;flex-shrink:0}@keyframes uf-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(2px)}}.deadline-locked-box{text-align:center;color:#92400e;background:#fff7ed;border:1.5px solid #fed7aa;border-radius:12px;flex-direction:column;align-items:center;margin-bottom:18px;padding:16px 20px 14px;display:flex;box-shadow:0 2px 8px #b453090f}.deadline-locked-box .deadline-locked-icon{color:#c2410c;background:#ffedd5;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:8px;display:flex}.deadline-locked-box h3{color:#9a3412;margin:0 0 4px;font-size:.98rem;font-weight:700}.deadline-locked-box p{color:#b45309;margin:0 0 2px;font-size:.85rem;line-height:1.5}.deadline-locked-box p strong{color:#c2410c;font-size:.95rem;font-weight:700}.deadline-locked-sub{color:#a16207;opacity:.8;margin-top:2px;font-size:.75rem}.file-size-warn-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.file-size-warn-box{text-align:center;background:#fff;border-radius:16px;width:90%;max-width:360px;padding:32px 36px;box-shadow:0 20px 60px #00000026}.file-size-warn-icon{color:var(--accent);justify-content:center;margin-bottom:12px;display:flex}.file-size-warn-box h3{color:#b45309;margin:0 0 8px;font-size:1.1rem;font-weight:700}.file-size-warn-box p{color:#64748b;margin:0 0 20px;font-size:.88rem;line-height:1.6}.file-size-warn-btn{color:#fff;cursor:pointer;background:#334155;border:none;border-radius:8px;padding:10px 36px;font-family:inherit;font-size:.9rem;font-weight:600;transition:opacity .15s}.file-size-warn-btn:hover{opacity:.85}.submit-btn{color:#fff;cursor:pointer;letter-spacing:.5px;background:#334155;border:none;border-radius:12px;width:100%;margin-top:4px;padding:14px;font-family:inherit;font-size:1.05rem;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .2s;box-shadow:0 4px 14px #3341554d}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #33415566}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.drop-zone{text-align:center;cursor:pointer;background:#fafbfc;border:2px dashed #cbd5e1;border-radius:12px;padding:24px 20px;transition:border-color .2s,background .2s}.drop-zone:hover{background:#f1f5f9;border-color:#94a3b8}.drop-zone--active{background:#eff6ff;border-style:solid;border-color:#3b82f6}.drop-zone--has-file{background:#fff;border-style:solid;border-color:#e2e8f0;padding:14px 16px}.drop-zone--has-file:hover{background:#f8fafc;border-color:#cbd5e1}.drop-zone-placeholder{flex-direction:column;align-items:center;gap:6px;display:flex}.drop-zone-upload-icon{color:#94a3b8;margin-bottom:2px}.drop-zone-text{color:#64748b;margin:0;font-size:.9rem}.drop-zone-link{color:#3b82f6;text-underline-offset:2px;font-weight:600;text-decoration:underline}.drop-zone-hint{color:#6b7280;margin:0;font-size:.82rem}.drop-zone-file{text-align:left;align-items:center;gap:12px;display:flex}.drop-zone-file-icon{color:#dc2626;flex-shrink:0}.drop-zone-file-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.drop-zone-file-name{color:#1e293b;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:600;overflow:hidden}.drop-zone-file-size{color:#6b7280;font-size:.82rem}.drop-zone-remove{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s,color .15s;display:flex}.drop-zone-remove:hover{color:#dc2626;background:#fee2e2}.upload-spinner{vertical-align:middle;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.7s linear infinite upload-spin;display:inline-block}@keyframes upload-spin{to{transform:rotate(360deg)}}.uf-success-card{text-align:center;padding:48px 36px}.uf-success-icon{color:#059669;margin-bottom:16px;animation:.4s cubic-bezier(.34,1.56,.64,1) uf-success-pop}@keyframes uf-success-pop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.uf-success-title{color:#1e293b;margin:0 0 6px;font-size:1.4rem;font-weight:800}.uf-success-desc{color:#64748b;margin:0 0 28px;font-size:.92rem}.uf-success-actions{flex-direction:column;gap:16px;margin-top:8px;display:flex}.uf-success-btn{cursor:pointer;border:none;border-radius:12px;width:100%;padding:14px;font-family:inherit;font-size:1rem;font-weight:700;transition:transform .15s,opacity .15s}.uf-success-btn.primary{color:#fff;background:#334155;box-shadow:0 4px 14px #3341554d}.uf-success-btn.primary:hover{transform:translateY(-1px)}.uf-success-btn.secondary{color:#475569;background:#f1f5f9;border:1.5px solid #e2e8f0}.uf-success-btn.secondary:hover{background:#e2e8f0}@media (width<=480px){.upload-wrapper{align-items:flex-start;padding:12px 10px 32px}.upload-card{border-radius:14px;padding:20px 18px 28px}.uf-header{margin-bottom:12px}.uf-header h2{font-size:1.3rem}.uf-identity-compact{margin-bottom:20px;font-size:.9rem}.uf-section-label{font-size:.82rem}.uf-field-row{flex-direction:column;gap:0}.uf-field-row .uf-field{margin-bottom:14px}.uf-field label{font-size:.92rem}.uf-field select,.uf-field input[type=text],.uf-field input[type=number]{min-height:48px;padding:12px 14px!important;font-size:1rem!important}.uf-category-btn{padding:11px 4px;font-size:.92rem}.drop-zone{padding:22px 16px}.drop-zone-text{font-size:.95rem}.drop-zone-hint{font-size:.82rem}.drop-zone-file-name{font-size:.92rem}.drop-zone-file-size{font-size:.82rem}.submit-btn{margin-top:8px;padding:16px;font-size:1.1rem}.error-msg{font-size:.92rem}.uf-success-card{padding:40px 20px}.uf-success-title{font-size:1.3rem}.uf-success-btn{padding:15px;font-size:1.05rem}}:root{--react-pdf-annotation-layer:1;--annotation-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color:Highlight;--input-focus-outline:1px solid Canvas;--input-unfocused-border-color:transparent;--input-disabled-border-color:transparent;--input-hover-border-color:black;--link-outline:none}@media screen and (forced-colors:active){:root{--input-focus-border-color:CanvasText;--input-unfocused-border-color:ActiveText;--input-disabled-border-color:GrayText;--input-hover-border-color:Highlight;--link-outline:1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selecteditem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert();backdrop-filter:invert()}}.annotationLayer{pointer-events:none;transform-origin:0 0;z-index:3;position:absolute;top:0;left:0}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg)translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg)translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg)translateY(-100%)}.annotationLayer canvas{width:100%;height:100%;position:absolute}.annotationLayer section{text-align:initial;pointer-events:auto;box-sizing:border-box;transform-origin:0 0;margin:0;position:absolute}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{width:100%;height:100%;font-size:1em;position:absolute;top:0;left:0}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;vertical-align:top;width:100%;height:100%;margin:0}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{border:2px solid var(--input-disabled-border-color);cursor:not-allowed;background:0 0}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline);background:0 0;border-radius:2px}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-color:#0000;background-image:none}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline);border-radius:2px}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{content:"";background-color:canvastext;display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{width:1px;height:80%;left:45%}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;width:50%;height:50%;top:20%;left:30%}.annotationLayer .textWidgetAnnotation input.comb{padding-left:2px;padding-right:0;font-family:monospace}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{appearance:none}.annotationLayer .popupTriggerArea{width:100%;height:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none;position:absolute}.annotationLayer .popup{max-width:calc(180px * var(--total-scale-factor));box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto;background-color:#ff9;position:absolute}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{margin-left:calc(5px * var(--total-scale-factor));display:inline-block}.annotationLayer .popupContent{margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor));border-top:1px solid #333}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{width:100%;height:100%;position:absolute;top:0;left:0}.annotationLayer .annotationTextContent{opacity:0;color:#0000;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;position:absolute}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer:1;--highlight-bg-color:#b400aa;--highlight-selected-bg-color:#006400}@media screen and (forced-colors:active){:root{--highlight-bg-color:Highlight;--highlight-selected-bg-color:ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg)translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg)translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg)translate(-100%)}.textLayer{text-align:initial;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2;line-height:1;position:absolute;inset:0;overflow:hidden}.textLayer :is(span,br){color:#0000;white-space:pre;cursor:text;transform-origin:0 0;margin:0;position:absolute}.textLayer span.markedContent{height:0;top:0}.textLayer .highlight{background-color:var(--highlight-bg-color);border-radius:4px;margin:-1px;padding:1px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:0 0}.textLayer .endOfContent{z-index:-1;cursor:default;-webkit-user-select:none;user-select:none;display:block;position:absolute;inset:100% 0 0}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{width:0;height:0;display:none;position:absolute;top:0;left:0}.modal-wrapper{z-index:1000;background:#000;position:fixed;inset:0}.modal-body{flex-direction:column;height:100%;display:flex;overflow:hidden}.grading-toolbar{z-index:100;background:#1c1c1e;border-bottom:1px solid #ffffff14;flex-direction:column;flex-shrink:0;transition:min-height .2s;display:flex;position:sticky;top:0}.primary-bar{z-index:3;border-bottom:1px solid #ffffff0f;justify-content:flex-start;align-items:flex-start;gap:6px;min-height:46px;padding:6px 10px 6px 12px;display:flex;position:relative}.primary-left{flex:1;min-width:0;overflow:hidden}.primary-right{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:4px;display:flex}.tool-bar{z-index:2;border-bottom:1px solid #ffffff0f;flex-wrap:nowrap;align-items:center;gap:6px;padding:6px 10px;display:flex;position:relative;overflow:visible}.mode-btns{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:3px;display:flex}.toolbar-actions{flex-shrink:0;align-items:center;gap:3px;margin-left:auto;display:flex}.tool-colors{flex-shrink:0;align-items:center;gap:6px;display:flex}.prop-bar{z-index:1;border-top:1px solid #ffffff0d;align-items:center;gap:10px;padding:5px 12px 7px;display:flex;position:relative}.grading-title-wrap{flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-width:0;display:flex}.grading-title-line1{color:#e5e5ea;white-space:nowrap;align-items:center;gap:6px;font-size:.8rem;font-weight:600;display:flex}.grading-title-tag{color:#a5b4fc;background:#a5b4fc1f;border-radius:4px;padding:1px 7px;font-size:.65rem;font-weight:500}.grading-title-id{color:#8e8e93;font-size:.68rem;font-weight:400}.grading-title-line2{color:#8e8e93;text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.78rem;font-weight:400;line-height:1.3;overflow:hidden}.collapse-btn{color:#636366;cursor:pointer;background:#ffffff12;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:.75rem;transition:background .12s,color .12s;display:flex}.collapse-btn:hover{color:#aeaeb2;background:#ffffff24}.gtool{color:#aeaeb2;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:4px;min-height:34px;padding:7px 11px;font-family:inherit;font-size:.82rem;transition:background .12s,color .12s,transform 80ms;display:inline-flex}.gtool:hover{color:#f2f2f7;background:#ffffff14}.gtool:active{transform:scale(.94)}.gtool:disabled{opacity:.35;cursor:not-allowed;transform:none}.act-btn{padding:7px 9px;font-size:1rem}.mode-btn{letter-spacing:-.01em;padding:7px 12px;font-weight:500}.mode-btn.mode-select{color:#fff;background:#007aff;box-shadow:0 2px 8px #007aff66}.mode-btn.mode-scroll{color:#fff;background:#5e5ce6;box-shadow:0 2px 8px #5e5ce666}.mode-btn.mode-draw{color:#fff;background:#ff453a;box-shadow:0 2px 8px #ff453a66}.mode-btn.mode-text{color:#fff;background:#ff9f0a;box-shadow:0 2px 8px #ff9f0a66}.mode-btn.mode-eraser{color:#fff;background:#48484a;box-shadow:0 2px 8px #0006}.mode-btn.mode-shape{color:#fff;background:#30d158;box-shadow:0 2px 8px #30d15866}.font-selector,.sheet-fonts{align-items:center;gap:6px;display:flex}.font-btn{color:#334155;cursor:pointer;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;padding:5px 14px;font-size:.85rem;transition:all .15s}.font-btn.active{color:#fff;background:#ff9f0a;border-color:#ff9f0a;box-shadow:0 2px 6px #ff9f0a59}.font-btn:hover:not(.active){background:#e2e8f0}.tool-group{flex-shrink:0;position:relative}.menu-arrow{opacity:.6;margin-left:3px;font-size:.58rem}.tool-submenu{z-index:9999;background:#2c2c2e;border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;gap:2px;min-width:148px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 16px 48px #000000b8,0 0 0 .5px #ffffff0f}.tool-submenu button{color:#f2f2f7;cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:8px;min-height:42px;padding:10px 14px;font-family:inherit;font-size:.88rem;transition:background .1s}.tool-submenu button:hover{background:#ffffff1a}.tool-submenu button:active{background:#ffffff29}.menu-backdrop{z-index:50;position:fixed;inset:0}.color-swatch{cursor:pointer;border:2.5px solid #0000;border-radius:50%;flex-shrink:0;width:26px;height:26px;padding:0;transition:transform .15s,box-shadow .15s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.active{border-color:#fff;transform:scale(1.22);box-shadow:0 0 0 3px #ffffff38}.prop-label{color:#636366;white-space:nowrap;flex-shrink:0;font-size:.72rem;font-weight:500}.stroke-stepper{background:#ffffff12;border-radius:8px;flex-shrink:0;align-items:center;display:flex;overflow:visible}.stepper-btn{color:#aeaeb2;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:1.2rem;line-height:1;transition:background .1s,color .1s;display:flex}.stepper-btn:hover:not(:disabled){color:#f2f2f7;background:#ffffff1f}.stepper-btn:active:not(:disabled){background:#ffffff2e}.stepper-btn:disabled{opacity:.28;cursor:not-allowed}.stepper-val{text-align:center;color:#f2f2f7;font-variant-numeric:tabular-nums;letter-spacing:.01em;white-space:nowrap;min-width:52px;font-size:.9rem;font-weight:600}.stepper-input{color:#f2f2f7;text-align:center;font-variant-numeric:tabular-nums;appearance:none;box-sizing:border-box;background:0 0;border:none;outline:none;width:56px;min-width:56px;padding:0 4px;font-family:inherit;font-size:.95rem;font-weight:600}.stepper-input:focus{background:#ffffff14;border-radius:4px}.stepper-unit{color:#8e8e93;white-space:nowrap;flex-shrink:0;padding:0 8px 0 4px;font-size:.75rem;font-weight:500}.pen-preview{border-radius:50%;flex-shrink:0;align-self:center;min-width:4px;min-height:4px;transition:width .12s,height .12s,background-color .15s;box-shadow:0 0 0 1.5px #ffffff26}.eraser-size-hint{color:#48484a;white-space:nowrap;flex-shrink:0;align-self:center;font-size:.72rem}.toolbar-divider{background:#ffffff1a;flex-shrink:0;width:1px;height:20px;margin:0 4px}.zoom-ctrl{background:#ffffff12;border-radius:8px;flex-shrink:0;align-items:center;gap:1px;padding:2px 4px;display:flex}.zoom-btn{min-height:28px;padding:5px 8px;font-size:1rem;line-height:1}.zoom-label{color:#636366;font-variant-numeric:tabular-nums;text-align:center;min-width:38px;font-size:.78rem}.page-nav{color:#f2f2f7;white-space:nowrap;background:#ffffff26;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;padding:5px 12px;font-size:1rem;font-weight:600;display:flex}.page-nav button{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:6px;min-height:34px;padding:4px 12px;font-size:1.5rem;font-weight:700;line-height:1.3;transition:background .12s}.page-nav button:hover:not(:disabled){background:#ffffff1a}.page-nav button:disabled{opacity:.3;cursor:not-allowed}.gsave{color:#fff;cursor:pointer;white-space:nowrap;background:#007aff;border:none;border-radius:8px;flex-shrink:0;align-items:center;gap:4px;min-height:34px;padding:7px 14px;font-family:inherit;font-size:.82rem;font-weight:600;transition:opacity .12s,transform 80ms;display:inline-flex}.gsave:hover:not(:disabled){opacity:.85;transform:scale(1.02)}.gsave:disabled{opacity:.35;cursor:not-allowed;transform:none}.gclose{color:#aeaeb2;cursor:pointer;background:#ffffff12;border:none;border-radius:8px;flex-shrink:0;min-height:34px;padding:6px 10px;font-size:1rem;transition:background .12s,color .12s}.gclose:hover{color:#fff;background:#ff453a}.mobile-fab{bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:200;color:#fff;cursor:pointer;background:#007aff;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.4rem;transition:transform .15s,box-shadow .15s;display:none;position:fixed;left:20px;box-shadow:0 4px 20px #007aff8c}.mobile-fab:hover{transform:scale(1.08);box-shadow:0 6px 28px #007affa6}.sheet-backdrop{z-index:190;background:#00000080;position:fixed;inset:0}.bottom-sheet{z-index:195;background:#1c1c1e;border-top:1px solid #ffffff1a;border-radius:16px 16px 0 0;flex-direction:column;max-height:75vh;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -8px 40px #0009}.sheet-handle{background:#fff3;border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:10px auto 4px}.sheet-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:6px 16px 10px;display:flex}.sheet-title{color:#f2f2f7;font-size:1rem;font-weight:600}.sheet-close-btn{color:#aeaeb2;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.9rem;transition:background .12s;display:flex}.sheet-close-btn:hover{color:#fff;background:#ff453a}.sheet-body{padding:0 16px calc(16px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:14px;display:flex;overflow-y:auto}.sheet-mode-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.sheet-mode-btn{color:#aeaeb2;cursor:pointer;text-align:center;background:#ffffff0f;border:none;border-radius:10px;min-height:44px;padding:12px 8px;font-family:inherit;font-size:.85rem;transition:background .12s,color .12s}.sheet-mode-btn.mode-select{color:#fff;background:#007aff}.sheet-mode-btn.mode-scroll{color:#fff;background:#5e5ce6}.sheet-mode-btn.mode-draw{color:#fff;background:#ff453a}.sheet-mode-btn.mode-text{color:#fff;background:#ff9f0a}.sheet-mode-btn.mode-eraser{color:#fff;background:#48484a}.sheet-mode-btn.mode-shape{color:#fff;background:#30d158}.sheet-sub-row{flex-wrap:wrap;gap:8px;display:flex}.sheet-sub-btn{color:#aeaeb2;cursor:pointer;background:0 0;border:1px solid #ffffff1f;border-radius:8px;min-height:38px;padding:9px 14px;font-family:inherit;font-size:.84rem;transition:background .12s,color .12s}.sheet-sub-btn.active{color:#f2f2f7;background:#ffffff1f;border-color:#ffffff4d}.sheet-props{flex-direction:column;gap:10px;display:flex}.sheet-colors{align-items:center;gap:10px;display:flex}.sheet-strokes{align-items:center;gap:8px;display:flex}.sheet-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sheet-save{border-radius:10px;width:100%;padding:14px;font-size:.95rem}.pdf-scroll-container{-webkit-overflow-scrolling:touch;text-align:center;z-index:0;isolation:isolate;background:#0f172a;flex:1;padding:24px 0 40px;display:block;position:relative;overflow:auto!important}.pdf-wrapper{text-align:left;vertical-align:top;padding:0 24px;display:inline-block}.pdf-scroll-container .react-pdf__Page{border-radius:4px;overflow:hidden;box-shadow:0 8px 48px #0009;position:relative!important}.pdf-scroll-container .react-pdf__Page__canvas{display:block}.fabric-container{pointer-events:auto;touch-action:none;cursor:crosshair}.disable-events{cursor:default;pointer-events:none!important;touch-action:auto!important}.fabric-container .canvas-container{position:absolute!important;top:0!important;left:0!important}.fabric-container canvas{display:block}.pdf-error{color:#ff453a;background:#ff453a1f;border-radius:8px;margin-bottom:12px;padding:10px 16px;font-size:.9rem;display:inline-block}@media (width<=1024px){.mode-btn{padding:6px 9px;font-size:.78rem}.gsave{padding:6px 10px;font-size:.78rem}.primary-bar,.tool-bar{gap:4px;padding:5px 8px}.prop-bar{gap:8px;padding:4px 8px 6px}}.text-input-overlay{z-index:10000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.text-input-modal{background:#fff;border-radius:16px;width:90%;max-width:500px;max-height:90vh;padding:28px 32px;overflow-y:auto;box-shadow:0 20px 60px #0003}.text-input-area-wrap{overflow:visible}.text-input-modal h3{color:#1e293b;text-align:center;margin:0 0 12px;font-size:1.05rem;font-weight:700}.text-input-options-row{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.text-input-font-row{gap:8px;display:flex}.text-input-dir-row{gap:4px;display:flex}.dir-btn{color:#64748b;cursor:pointer;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;padding:5px 12px;font-family:inherit;font-size:.82rem;font-weight:600;transition:all .15s}.dir-btn.active{color:#fff;background:#334155;border-color:#334155}.dir-btn:hover:not(.active){background:#e2e8f0}.text-input-area{box-sizing:border-box;resize:none;background:#f8fafc;border:1.5px solid #e2e8f0;border-bottom:none;border-radius:10px 10px 0 0;outline:none;width:100%;min-height:100px;padding:16px;font-size:1.2rem;line-height:1.7;transition:border-color .15s}.text-input-resize-handle{cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;background:#f1f5f9;border:1.5px solid #e2e8f0;border-radius:0 0 10px 10px;justify-content:center;align-items:center;height:24px;display:flex}.resize-bar{background:#cbd5e1;border-radius:2px;width:40px;height:4px;display:block}.text-input-area:focus{background:#fff;border-color:#94a3b8}.text-input-actions{align-items:center;gap:8px;margin-top:16px;display:flex}.text-input-spacer{flex:1}.text-input-count{color:#94a3b8;white-space:nowrap;font-size:.75rem}.text-input-del{color:#dc2626;cursor:pointer;background:#fef2f2;border:1.5px solid #fecaca;border-radius:10px;padding:8px 14px;font-family:inherit;font-size:1rem;font-weight:600;transition:background .15s,color .15s}.text-input-del:hover:not(:disabled){background:#fee2e2;border-color:#f87171}.text-input-del:disabled{opacity:.35;cursor:not-allowed}.text-input-cancel{color:#475569;cursor:pointer;background:#f1f5f9;border:1.5px solid #e2e8f0;border-radius:10px;flex:1;padding:10px;font-family:inherit;font-size:.9rem;font-weight:600}.text-input-cancel:hover{background:#e2e8f0}.text-input-confirm{color:#fff;cursor:pointer;background:#334155;border:none;border-radius:10px;flex:1;padding:10px;font-family:inherit;font-size:.9rem;font-weight:600}.text-input-confirm:hover{opacity:.85}@media (width<=767px){.tool-bar,.prop-bar{display:none!important}.collapse-btn,.act-btn,.zoom-ctrl,.page-nav,.primary-bar>.primary-right>.gsave{display:none}.primary-bar{justify-content:space-between;min-height:48px;padding:6px 12px}.primary-left{display:none}.primary-right{justify-content:flex-end;width:100%}.mobile-fab{display:flex}}.gm-confirm-overlay{z-index:10001;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.gm-confirm-modal{text-align:center;background:#2c2c2e;border:1px solid #ffffff1a;border-radius:14px;width:100%;max-width:340px;padding:28px 24px 24px;animation:.2s gm-modal-in;box-shadow:0 8px 40px #0006}@keyframes gm-modal-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.gm-confirm-icon{color:#f59e0b;margin-bottom:12px}.gm-confirm-icon--warn{color:#ef4444}.gm-confirm-title{color:#f5f5f7;margin:0 0 8px;font-size:1.05rem;font-weight:700}.gm-confirm-msg{color:#a1a1a6;margin:0 0 22px;font-size:.875rem;line-height:1.6}.gm-confirm-actions{gap:10px;display:flex}.gm-confirm-cancel{color:#f5f5f7;cursor:pointer;background:#3a3a3c;border:none;border-radius:8px;flex:1;padding:10px 0;font-family:inherit;font-size:.88rem;font-weight:600;transition:background .15s}.gm-confirm-cancel:hover{background:#48484a}.gm-confirm-danger{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:8px;flex:1;padding:10px 0;font-family:inherit;font-size:.88rem;font-weight:700;transition:opacity .15s}.gm-confirm-danger:hover{opacity:.88}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:56px 24px;animation:.4s empty-fade-in;display:flex}.empty-icon-circle{background:#f1f5f9;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;margin-bottom:20px;display:flex}.empty-svg{color:#94a3b8}.empty-title{color:#334155;letter-spacing:-.2px;margin:0 0 6px;font-size:1.05rem;font-weight:700}.empty-desc{color:#94a3b8;max-width:300px;margin:0 0 20px;font-size:.875rem;line-height:1.6}.empty-action{color:#475569;cursor:pointer;background:#f1f5f9;border:1.5px solid #e2e8f0;border-radius:8px;align-items:center;gap:6px;padding:9px 20px;font-family:inherit;font-size:.85rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.empty-action:hover{background:#e2e8f0;border-color:#cbd5e1}@keyframes empty-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.archive-query-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin:14px 0 18px;padding:20px 24px}.archive-query-header h3{color:#1e293b;margin:0 0 4px;font-size:1.05rem}.archive-query-hint{color:#64748b;margin:0 0 16px;font-size:.85rem}.archive-query-fields{grid-template-columns:repeat(3,1fr);gap:14px 18px;margin-bottom:16px;display:grid}.archive-query-fields label{color:#475569;flex-direction:column;gap:6px;font-size:.82rem;font-weight:500;display:flex}.archive-query-fields select,.archive-query-fields input[type=month]{color:#1e293b;background:#fff;border:1px solid #cbd5e1;border-radius:8px;min-height:40px;padding:9px 12px;font-size:.9rem}.archive-query-fields select:focus,.archive-query-fields input[type=month]:focus{border-color:#64748b;outline:none;box-shadow:0 0 0 3px #64748b26}.archive-query-actions{align-items:center;gap:10px;display:flex}.archive-query-btn{color:#fff;cursor:pointer;background:#334155;border:none;border-radius:8px;min-height:40px;padding:10px 24px;font-size:.92rem;font-weight:600}.archive-query-btn:hover:not(:disabled){background:#1e293b}.archive-query-btn:disabled{cursor:not-allowed;background:#94a3b8}.archive-reset-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;min-height:40px;padding:10px 18px;font-size:.88rem}.archive-reset-btn:hover{background:#f1f5f9}.archive-query-result-count{color:#475569;margin:14px 0 0;font-size:.9rem}.archive-query-result-count strong{color:#1e293b;font-size:1.05rem}@media (width<=640px){.archive-query-panel{padding:16px 14px}.archive-query-fields{grid-template-columns:1fr;gap:12px}.archive-query-actions{flex-direction:column-reverse;align-items:stretch}.archive-query-btn,.archive-reset-btn{width:100%}}.upload-overlay{z-index:9500;-webkit-backdrop-filter:blur(2px);background:#0f172a8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.upload-modal{text-align:center;background:#fff;border-radius:16px;flex-direction:column;align-items:center;width:min(380px,88vw);padding:32px 36px;display:flex;box-shadow:0 20px 60px #00000040}.upload-spinner{border:4px solid #e2e8f0;border-top-color:#334155;border-radius:50%;width:44px;height:44px;margin-bottom:18px;animation:.9s linear infinite upload-spin}.upload-title{color:#1e293b;margin:0 0 14px;font-size:1.05rem;font-weight:600}.upload-progress-bar{background:#e2e8f0;border-radius:999px;width:100%;height:10px;margin-bottom:8px;overflow:hidden}.upload-progress-fill{background:linear-gradient(90deg,#475569,#64748b);border-radius:999px;height:100%;transition:width .2s ease-out}.upload-progress-text{color:#334155;font-variant-numeric:tabular-nums;margin:0 0 10px;font-size:.95rem;font-weight:600}.upload-hint{color:#64748b;margin:6px 0 0;font-size:.8rem}.dashboard{box-sizing:border-box;background:#f8fafc;flex-direction:column;flex:1;width:100%;max-width:1100px;margin:0 auto;padding:28px 24px;display:flex}.toolbar{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;padding:16px 20px;display:flex;box-shadow:0 1px 3px #00000014}.toolbar-left{align-items:center;gap:16px;display:flex}.toolbar-left h2{color:#1e293b;letter-spacing:-.3px;margin:0;font-size:1.3rem;font-weight:800}.back-btn{color:#64748b;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:4px;padding:4px 0;font-family:inherit;font-size:.9rem;font-weight:500;transition:color .15s;display:inline-flex}.back-btn:hover{color:#0f172a;text-decoration:underline}.inbox-tabs{flex-shrink:0;gap:6px;display:flex}.inbox-tab{color:#64748b;cursor:pointer;white-space:nowrap;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;align-items:center;gap:6px;padding:7px 16px;font-family:inherit;font-size:.88rem;font-weight:600;transition:all .18s;display:inline-flex}.inbox-tab:hover{color:#1e293b;background:#f1f5f9;border-color:#cbd5e1}.inbox-tab.active{color:#fff;background:#334155;border-color:#0000;box-shadow:0 2px 8px #33415540}.tab-count{background:#0000001a;border-radius:20px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.76rem;font-weight:700;line-height:1;display:inline-flex}.inbox-tab.active .tab-count{background:#ffffff40}.toolbar-filters{flex-wrap:wrap;gap:10px;display:flex}.toolbar-filters select{color:#1e293b;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 12px;font-family:inherit;font-size:.9rem}.toolbar-filters select:focus{border-color:#94a3b8;outline:none}.filter-search{color:#1e293b;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;outline:none;width:200px;height:34px;padding:6px 12px;font-family:inherit;font-size:.82rem;transition:border-color .15s,background .15s,box-shadow .15s}.filter-search:focus{background:#fff;border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b81f}.filter-search::placeholder{color:#94a3b8}.filter-result-bar{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 4px;display:flex}.filter-result-count{color:#64748b;font-size:.82rem;font-weight:600}.filter-clear-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-family:inherit;font-size:.78rem;font-weight:600;transition:background .15s,color .15s}.filter-clear-btn:hover{color:#334155;background:#f1f5f9}.td-desktop-view tbody tr,.td-mobile-view .td-card{animation:.25s row-fade-in}@keyframes row-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.table-wrapper{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow-x:auto;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.loading-msg{text-align:center;color:#94a3b8;margin:0;padding:40px 20px}.dashboard table{border-collapse:collapse;width:100%;min-width:780px;font-size:.875rem}.dashboard thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.dashboard thead th{text-align:center;color:#64748b;white-space:nowrap;letter-spacing:.2px;padding:12px 16px;font-size:.875rem;font-weight:500}.dashboard thead th:first-child{border-radius:12px 0 0}.dashboard thead th:last-child{border-radius:0 12px 0 0}.dashboard tbody tr{border-bottom:1px solid #e2e8f0;transition:background .12s}.dashboard tbody tr:hover{background:#f8fafc!important}.dashboard tbody tr:last-child{border-bottom:none}.dashboard tbody td{color:#334155;vertical-align:middle;text-align:center;padding:10px 16px}.row-starred{background:#fffbeb!important}.row-starred:hover{background:#fef9c3!important}.th-star{width:36px;padding:12px 8px 12px 14px!important}.td-star{vertical-align:middle!important;padding:12px 4px 12px 12px!important}.star-btn{cursor:pointer;color:#cbd5e1;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-family:inherit;font-size:1.25rem;line-height:1;transition:color .15s,transform .15s,background .15s;display:inline-flex}.star-btn:hover:not(:disabled){color:#f59e0b;background:#f59e0b14;transform:scale(1.15)}.star-btn.starred{color:#f59e0b;filter:drop-shadow(0 0 3px #f59e0b80)}.star-btn.starred:hover:not(:disabled){color:#d97706}.star-btn:disabled{cursor:not-allowed;opacity:.5}.td-date{white-space:nowrap}.wait-badge{white-space:nowrap;color:#64748b;letter-spacing:.2px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;align-items:center;margin-top:4px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.wait-badge.warn{color:#92400e;background:#fef3c7;border-color:#f59e0b}.wait-badge.urgent{color:#991b1b;background:#fef2f2;border-color:#fca5a5;animation:2s ease-in-out infinite pulse-urgent}@keyframes pulse-urgent{0%,to{opacity:1}50%{opacity:.65}}.td-date-wrap{white-space:nowrap;flex-direction:column;align-items:center;gap:3px;display:flex}.td-graded-at{color:#64748b;font-size:.72rem}.td-tags{min-width:160px}.dashboard .badge{white-space:nowrap;border:1px solid #0000;border-radius:4px;align-items:center;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.dashboard .badge.pending{color:#92400e;background:#fef3c7;border-color:#f59e0b}.dashboard .badge.done{color:#065f46;background:#d1fae5;border-color:#34d399}.dashboard .badge.rejected{color:#991b1b;background:#fef2f2;border-color:#fca5a5}.reject-reason-tip{color:#dc2626;text-overflow:ellipsis;white-space:nowrap;max-width:160px;margin-top:4px;font-size:.75rem;display:block;overflow:hidden}.tags-row{flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px;display:flex}.tag-badge{color:#475569;white-space:nowrap;text-overflow:ellipsis;background:#f1f5f9;border-radius:20px;align-items:center;gap:3px;max-width:100px;padding:2px 8px 2px 9px;font-size:.76rem;font-weight:600;display:inline-flex;overflow:hidden}.tag-remove-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;padding:0;font-family:inherit;font-size:.85rem;line-height:1;transition:background .12s,color .12s;display:inline-flex}.tag-remove-btn:hover:not(:disabled){color:#1e293b;background:#4755691f}.tag-remove-btn:disabled{opacity:.4;cursor:not-allowed}.tag-add-btn{cursor:pointer;color:#9ca3af;background:#f3f4f6;border:1.5px dashed #d1d5db;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-family:inherit;font-size:.85rem;line-height:1;transition:all .15s;display:inline-flex}.tag-add-btn:hover,.tag-add-btn.open{color:#475569;background:#e2e8f0;border-color:#94a3b8}.tag-input-row{align-items:center;gap:5px;margin-top:6px;display:flex}.tag-input{color:#1e293b;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;outline:none;flex:1;min-width:0;max-width:120px;padding:4px 9px;font-family:inherit;font-size:.82rem;transition:border-color .15s,box-shadow .15s}.tag-input:focus{border-color:#94a3b8;box-shadow:0 0 0 2px #94a3b833}.tag-confirm-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#334155;border:none;border-radius:7px;padding:4px 10px;font-family:inherit;font-size:.8rem;font-weight:700;transition:opacity .15s}.tag-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.file-link{color:#475569;word-break:break-all;font-size:.85rem;text-decoration:none}.file-link:hover{color:#0f172a;text-decoration:underline}.file-link.graded{color:#059669;font-weight:600}.td-file-col{text-align:center;width:110px;max-width:110px}.td-subject-col{min-width:180px}.file-dl-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:5px;padding:6px 12px;font-family:inherit;font-size:.82rem;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.file-dl-btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.file-dl-btn:disabled{opacity:.55;cursor:not-allowed}.file-deleted-text{color:#94a3b8;font-size:.82rem}.file-sky-link{color:#0284c7;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:5px;padding:0;font-family:inherit;font-size:.82rem;font-weight:500;text-decoration:underline;transition:color .15s,opacity .15s;display:inline-flex}.file-sky-link:hover:not(:disabled){color:#0369a1}.file-sky-link:disabled{opacity:.55;cursor:not-allowed}.file-sky-text{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:140px;display:inline-block;overflow:hidden}.td-cell{color:#334155;padding:12px 16px;vertical-align:middle!important}.td-mono{color:#64748b;letter-spacing:.3px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.83rem}.td-file{max-width:200px}.td-truncate{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:150px;display:inline-block;overflow:hidden}.td-actions{white-space:nowrap;vertical-align:middle!important}.act-row{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.act-pill{cursor:pointer;white-space:nowrap;border:1.5px solid #0000;border-radius:6px;align-items:center;gap:4px;padding:5px 10px;font-family:inherit;font-size:.78rem;font-weight:700;line-height:1.2;text-decoration:none;transition:opacity .12s,transform .1s;display:inline-flex}.act-pill:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.act-pill:disabled{opacity:.4;cursor:not-allowed;transform:none}.act-pill.act-primary{color:#fff;background:#334155;box-shadow:0 1px 4px #33415540}.act-pill.act-primary.redo{background:#475569}.act-pill.act-secondary{color:#475569;background:#f8fafc;border-color:#cbd5e1}.act-pill.act-danger{color:#dc2626;background:#fef2f2;border-color:#fecaca}.act-pill.act-link{color:#0284c7;background:0 0;border-color:#bae6fd;font-weight:600}.td-actions-wrap{align-items:center;gap:6px;display:flex}.td-actions-wrap .grade-open-btn{width:auto}.more-wrap{outline:none;display:inline-flex;position:relative}.more-btn{color:#64748b;cursor:pointer;letter-spacing:1px;background:0 0;border:1.5px solid #0000;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-family:inherit;font-size:1.15rem;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.more-btn:hover{color:#334155;background:#f1f5f9;border-color:#e2e8f0}.more-menu{z-index:50;background:#fff;border:1px solid #e2e8f0;border-radius:8px;width:max-content;min-width:10rem;padding:4px 0;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 12px 28px #0000001f,0 4px 12px #00000014}.more-item{text-align:left;color:#334155;cursor:pointer;white-space:nowrap;box-sizing:border-box;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:9px 14px;font-family:inherit;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.more-item:hover:not(:disabled){color:#0f172a;background:#f1f5f9}.more-item:disabled{opacity:.5;cursor:not-allowed}.more-item.danger{color:#dc2626}.more-item.danger:hover:not(:disabled){color:#b91c1c;background:#fef2f2}.action-cell{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.grade-open-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;width:100%;padding:6px 14px;font-family:inherit;font-size:.82rem;font-weight:700;transition:transform .15s,box-shadow .15s}.grade-open-btn.new{color:#fff;background:#334155;box-shadow:0 2px 6px #3341554d}.grade-open-btn.new:hover{transform:translateY(-1px);box-shadow:0 4px 12px #33415566}.grade-open-btn.redo{color:#fff;background:#475569;box-shadow:0 2px 6px #4755694d}.grade-open-btn.redo:hover{transform:translateY(-1px);box-shadow:0 4px 12px #47556966}.upload-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;width:100%;padding:6px 14px;font-family:inherit;font-size:.82rem;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .15s}.upload-btn.upload-new{color:#fff;background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px #05966959}.upload-btn.upload-new:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #05966973}.upload-btn.upload-redo{color:#fff;background:linear-gradient(135deg,#64748b,#475569);box-shadow:0 2px 8px #4755694d}.upload-btn.upload-redo:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #47556966}.upload-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.archive-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;width:100%;padding:6px 14px;font-family:inherit;font-size:.82rem;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .15s}.archive-btn.archive{color:#fff;background:linear-gradient(135deg,#9ca3af,#6b7280);box-shadow:0 2px 6px #6b728040}.archive-btn.archive:hover:not(:disabled){background:linear-gradient(135deg,#6b7280,#4b5563);transform:translateY(-1px);box-shadow:0 4px 12px #6b728059}.archive-btn.unarchive{color:#475569;background:#f1f5f9;box-shadow:0 1px 3px #00000014}.archive-btn.unarchive:hover:not(:disabled){background:#e2e8f0;transform:translateY(-1px);box-shadow:0 3px 8px #0000001f}.archive-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.no-action{color:#9ca3af}.td-desktop-view{display:block}.td-mobile-view{display:none}@media (width<=1099px){.td-desktop-view{display:none}.td-mobile-view{padding:14px;display:block}.table-wrapper{box-shadow:none;background:0 0;border:none;border-radius:0;overflow-x:visible}}.td-name{color:#1e293b;font-size:.9rem;font-weight:700;display:block}.td-id{color:#64748b;letter-spacing:.3px;margin-top:2px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.76rem;display:block}.td-ops{min-width:175px;vertical-align:middle!important}.ops-btns{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:7px;display:flex}.ops-links{gap:12px;display:flex}.op-link{color:#475569;font-size:.8rem;font-weight:600;text-decoration:none;transition:color .15s}.op-link:hover{color:#0f172a;text-decoration:underline}.op-link.graded{color:#059669}.op-btn{cursor:pointer;white-space:nowrap;border-radius:7px;padding:5px 11px;font-family:inherit;font-size:.78rem;font-weight:700;transition:opacity .15s,transform .12s}.op-btn:hover:not(:disabled){opacity:.85;transform:translateY(-1px)}.op-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.op-btn.op-upload{color:#475569;background:#f1f5f9;border:1.5px solid #cbd5e1}.op-btn.op-reject{color:#dc2626;background:#fee2e2;border:1.5px solid #fecaca}.op-btn.op-archive{color:#475569;background:#f1f5f9;border:1.5px solid #cbd5e1}.td-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:10px;padding:12px 14px;transition:box-shadow .2s;box-shadow:0 1px 3px #0000000f}.td-card:last-child{margin-bottom:0}.td-card-subj-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.td-card-subject{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;font-weight:700;overflow:hidden}.td-card-starred{background:#fffbeb;border-color:#fde68a;box-shadow:0 2px 10px #f59e0b1f}.td-card-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.td-card-identity{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.td-card-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:700;overflow:hidden}.td-card-id{color:#64748b;letter-spacing:.3px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.76rem}.td-card-meta{color:#64748b;border-bottom:1px solid #f1f5f9;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;padding-bottom:10px;font-size:.82rem;display:flex}.td-sep{color:#cbd5e1}.td-card-date{white-space:nowrap}.td-card-reject{color:#dc2626;background:#fee2e2;border-radius:8px;margin-bottom:10px;padding:7px 11px;font-size:.78rem}.td-card-tags{flex-wrap:wrap;align-items:center;gap:5px;min-height:28px;margin-bottom:12px;display:flex}.td-card-actions{flex-direction:column;gap:8px;margin-top:6px;display:flex}.act-pill-m.act-primary-m{cursor:pointer;white-space:nowrap;color:#fff;box-sizing:border-box;background:#334155;border:none;border-radius:8px;justify-content:center;align-items:center;gap:4px;width:100%;padding:10px 14px;font-family:inherit;font-size:.88rem;font-weight:700;transition:opacity .12s;display:flex;box-shadow:0 2px 6px #33415540}.act-pill-m.act-primary-m.redo{background:#475569}.act-pill-m.act-primary-m:hover{opacity:.9}.act-row-m{flex-wrap:wrap;gap:6px;display:flex}.act-pill-m{cursor:pointer;white-space:nowrap;box-sizing:border-box;border:1.5px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:4px;padding:7px 12px;font-family:inherit;font-size:.8rem;font-weight:700;line-height:1.2;text-decoration:none;transition:opacity .12s;display:inline-flex}.act-pill-m:hover:not(:disabled){opacity:.85}.act-pill-m:disabled{opacity:.4;cursor:not-allowed}.act-pill-m.act-sec-m{color:#475569;background:#f8fafc;border-color:#cbd5e1}.act-pill-m.act-danger-m{color:#dc2626;background:#fef2f2;border-color:#fecaca}.act-pill-m.act-link-m{color:#0284c7;background:0 0;border-color:#bae6fd;font-weight:600}.td-card-secondary{gap:8px;display:flex}.td-card-sec-btn{color:#475569;cursor:pointer;white-space:nowrap;background:#f1f5f9;border:1.5px solid #e2e8f0;border-radius:10px;flex:1;min-height:44px;padding:10px 8px;font-family:inherit;font-size:.82rem;font-weight:700;transition:background .15s,color .15s}.td-card-sec-btn:hover:not(:disabled){color:#1e293b;background:#e2e8f0}.td-card-sec-btn:disabled{opacity:.5;cursor:not-allowed}.td-card-sec-btn.danger{color:#dc2626;background:#fee2e2;border-color:#fecaca}.td-card-sec-btn.danger:hover:not(:disabled){background:#fecaca}.td-card-links{gap:16px;padding-top:2px;display:flex}.td-card-link{color:#475569;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .15s}.td-card-link:hover{color:#0f172a;text-decoration:underline}.td-card-link.graded{color:#059669}@media (width<=1099px){.toolbar{flex-direction:column;align-items:flex-start}.inbox-tabs{width:100%}.inbox-tab{flex:1;justify-content:center;padding:9px 6px;font-size:.82rem}.toolbar-filters{width:100%}.toolbar-filters select{flex:1}}@media (width<=600px){.dashboard{padding:14px 12px}.td-card-secondary{flex-wrap:wrap}.td-card-sec-btn{min-width:calc(50% - 4px)}}.reject-btn{color:#dc2626;cursor:pointer;background:#fee2e2;border:1.5px solid #fecaca;border-radius:6px;padding:5px 12px;font-family:inherit;font-size:.82rem;font-weight:700;transition:all .15s}.reject-btn:hover{color:#7f1d1d;background:#fca5a5}.reject-overlay{z-index:9000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.reject-modal{background:#fff;border-radius:14px;width:min(420px,92vw);padding:28px 32px;box-shadow:0 12px 40px #0003}.reject-modal h3{color:#1f2937;margin:0 0 8px;font-size:1.15rem}.reject-info{color:#6b7280;margin:0 0 18px;font-size:.88rem}.reject-options{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.reject-option{color:#374151;cursor:pointer;align-items:center;gap:8px;font-size:.92rem;display:flex}.reject-option input[type=radio]{accent-color:#dc2626;width:16px;height:16px}.reject-custom-input{resize:vertical;border:1.5px solid #d1d5db;border-radius:8px;width:100%;margin-top:4px;padding:8px 12px;font-family:inherit;font-size:.88rem}.reject-custom-input:focus{border-color:#dc2626;outline:none}.reject-actions{justify-content:flex-end;gap:10px;display:flex}.reject-cancel-btn{color:#374151;cursor:pointer;background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;padding:8px 18px;font-family:inherit;font-size:.88rem;font-weight:600}.reject-cancel-btn:hover{background:#e5e7eb}.reject-confirm-btn{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:8px;padding:8px 18px;font-family:inherit;font-size:.88rem;font-weight:700;transition:opacity .15s}.reject-confirm-btn:hover:not(:disabled){opacity:.85}.reject-confirm-btn:disabled{opacity:.4;cursor:not-allowed}@media (width<=768px){.filter-search{order:-1;width:100%}}.act-expired-label{color:#9ca3af;letter-spacing:.02em;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;align-items:center;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.vm-overlay{z-index:9000;background:#000000c7;justify-content:center;align-items:center;padding:20px;animation:.18s ease-out vm-fade-in;display:flex;position:fixed;inset:0}@keyframes vm-fade-in{0%{opacity:0}to{opacity:1}}.vm-modal{background:#1a1a1a;border-radius:12px;flex-direction:column;width:100%;max-width:960px;max-height:92vh;animation:.22s ease-out vm-slide-in;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000080}@keyframes vm-slide-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.vm-header{background:#262626;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.vm-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:15px;font-weight:600;overflow:hidden}.vm-close{color:#ccc;cursor:pointer;background:0 0;border:none;padding:0 6px;font-size:26px;line-height:1;transition:color .15s}.vm-close:hover{color:#fff}.vm-video-wrap{background:#000;flex:1;justify-content:center;align-items:center;min-height:300px;display:flex}.vm-video{outline:none;width:100%;max-height:70vh;display:block}.vm-controls{background:#262626;border-top:1px solid #333;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;display:flex}.vm-speed-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vm-speed-label{color:#aaa;margin-right:4px;font-size:13px}.vm-speed-btn{color:#ddd;cursor:pointer;background:#333;border:1px solid #444;border-radius:6px;min-width:42px;padding:5px 11px;font-size:13px;font-weight:500;transition:all .15s}.vm-speed-btn:hover{color:#fff;background:#3d3d3d}.vm-speed-btn.active{color:#fff;background:#4a90e2;border-color:#4a90e2}.vm-actions{gap:8px;display:flex}.vm-btn{color:#ddd;cursor:pointer;background:#333;border:1px solid #444;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.vm-btn:hover:not(:disabled){color:#fff;background:#3d3d3d}.vm-btn:disabled{opacity:.5;cursor:not-allowed}.vm-btn-dl{color:#fff;background:#2d7a3d;border-color:#2d7a3d}.vm-btn-dl:hover:not(:disabled){background:#358a47;border-color:#358a47}@media (width<=640px){.vm-overlay{padding:0}.vm-modal{border-radius:0;max-width:100%;height:100vh;max-height:100vh}.vm-title{font-size:14px}.vm-controls{gap:10px;padding:10px 12px}.vm-speed-btn{min-width:38px;padding:5px 9px;font-size:12px}.vm-btn{padding:6px 10px;font-size:12px}.vm-video{max-height:55vh}}.sq-archive-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin:14px 0 18px;padding:20px 22px}.sq-archive-header h3{color:#1e293b;margin:0 0 4px;font-size:1.05rem}.sq-archive-hint{color:#64748b;margin:0 0 16px;font-size:.85rem;line-height:1.5}.sq-archive-fields{grid-template-columns:1fr 1fr;gap:14px 18px;margin-bottom:16px;display:grid}.sq-archive-fields label{color:#475569;flex-direction:column;gap:6px;font-size:.82rem;font-weight:500;display:flex}.sq-archive-fields select,.sq-archive-fields input[type=month]{color:#1e293b;background:#fff;border:1px solid #cbd5e1;border-radius:8px;min-height:42px;padding:10px 12px;font-size:.95rem}.sq-archive-fields select:focus,.sq-archive-fields input[type=month]:focus{border-color:#64748b;outline:none;box-shadow:0 0 0 3px #64748b26}.sq-archive-actions{align-items:center;gap:10px;display:flex}.sq-archive-btn{color:#fff;cursor:pointer;background:#334155;border:none;border-radius:8px;min-height:44px;padding:11px 26px;font-size:.95rem;font-weight:600}.sq-archive-btn:hover:not(:disabled){background:#1e293b}.sq-archive-btn:disabled{cursor:not-allowed;background:#94a3b8}.sq-archive-reset{color:#475569;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;min-height:44px;padding:11px 20px;font-size:.9rem}.sq-archive-reset:hover{background:#f1f5f9}.sq-archive-result-count{color:#475569;margin:14px 0 0;font-size:.9rem}.sq-archive-result-count strong{color:#1e293b;font-size:1.05rem}@media (width<=640px){.sq-archive-panel{padding:16px 14px}.sq-archive-fields{grid-template-columns:1fr;gap:12px}.sq-archive-actions{flex-direction:column-reverse;align-items:stretch}.sq-archive-btn,.sq-archive-reset{width:100%}}.query-page{box-sizing:border-box;background:#f8fafc;flex:1;width:100%;max-width:1100px;margin:0 auto;padding:24px}.query-page h2{color:#1e293b;letter-spacing:-.3px;margin:0;font-size:1.125rem;font-weight:700}.back-btn{color:#6b7280;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:4px 0;font-family:inherit;font-size:.8125rem;font-weight:500;transition:color .15s;display:inline-flex}.back-btn:hover{color:#111827}.empty-msg{color:#6b7280;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;max-width:400px;margin-top:48px;padding:24px;font-size:.875rem;box-shadow:0 1px 3px #0000000f}.empty-filter-msg{color:#6b7280;text-align:center;padding:24px 0;font-size:.875rem}.result-wrapper{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000000f}.result-count{color:#6b7280;margin:0 0 10px;font-size:.8125rem;font-weight:500}.filter-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.tab-group{background:#f3f4f6;border-radius:6px;flex-wrap:wrap;gap:2px;padding:3px;display:flex}.tab-btn{cursor:pointer;color:#6b7280;white-space:nowrap;background:0 0;border:none;border-radius:4px;align-items:center;gap:5px;padding:5px 12px;font-family:inherit;font-size:.8125rem;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.tab-btn:hover:not(.active){color:#374151;background:#e5e7eb}.tab-btn.active{color:#111827;background:#fff;font-weight:700;box-shadow:0 1px 3px #0000001a}.tab-count{color:#6b7280;background:#e5e7eb;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.75rem;font-weight:700;line-height:1;display:inline-flex}.tab-btn.active .tab-count{color:#374151;background:#f3f4f6}.tab-btn.active.tab-pending{color:#92400e}.tab-btn.active.tab-pending .tab-count{color:#92400e;background:#fef3c7}.tab-btn.active.tab-graded{color:#065f46}.tab-btn.active.tab-graded .tab-count{color:#065f46;background:#d1fae5}.tab-btn.active.tab-archived{color:#334155}.tab-btn.active.tab-archived .tab-count{color:#475569;background:#e2e8f0}.sq-filter-field{align-items:center;gap:6px;display:flex}.sq-filter-label{color:#64748b;letter-spacing:.3px;white-space:nowrap;font-size:.8rem;font-weight:600}.subject-select{cursor:pointer;font-weight:500}.date-range{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.date-input{cursor:pointer;font-weight:500}.date-clear-btn{color:#9ca3af;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #e5e7eb;border-radius:6px;padding:5px 10px;font-family:inherit;font-size:.75rem;font-weight:500;transition:background .15s,color .15s}.date-clear-btn:hover{color:#374151;background:#f3f4f6}.table-scroll{overflow-x:auto}.table-scroll table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:660px;font-size:.8125rem}.table-scroll table thead th:first-child{width:16%}.table-scroll table thead th:nth-child(2){width:8%}.table-scroll table thead th:nth-child(3){width:14%}.table-scroll table thead th:nth-child(4),.table-scroll table thead th:nth-child(5){width:10%}.table-scroll table thead th:nth-child(6){width:14%}.table-scroll table thead th:nth-child(7){width:16%}thead tr{background:#f9fafb;border-bottom:1px solid #e5e7eb}thead th{text-align:center;color:#374151;white-space:nowrap;vertical-align:middle;padding:10px 12px;font-size:.8125rem;font-weight:600}.query-page thead th:first-child{text-align:center}tbody tr{border-bottom:1px solid #e2e8f0;transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:#f9fafb!important}tbody td{color:#1f2937;text-align:center;vertical-align:middle;padding:9px 12px;font-size:.875rem}.table-scroll table thead th:first-child,.table-scroll table tbody td:first-child{text-align:center}.table-scroll table tbody td:nth-child(3){white-space:normal;word-break:break-word}.badge.pending{color:#92400e;background:#fef3c7;border-color:#f59e0b;font-weight:700}.badge.graded{color:#065f46;background:#d1fae5;border-color:#34d399;font-weight:700}.badge.rejected{color:#991b1b;background:#fef2f2;border-color:#fca5a5;font-weight:700}.badge.archived{color:#475569;background:#f1f5f9;border-color:#cbd5e1;font-weight:700}.badge.done{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.dl-link{color:#374151;white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #e5e7eb;border-radius:5px;align-items:center;padding:3px 8px;font-family:inherit;font-size:.8125rem;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s;display:inline-flex}.dl-link:hover{background:#f3f4f6;border-color:#d1d5db;text-decoration:none}.dl-link.graded{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.dl-link.graded:hover{background:#d1fae5;border-color:#6ee7b7}.no-result{color:#6b7280;font-size:.8125rem;font-style:italic}.archive-btn{color:#475569;cursor:pointer;white-space:nowrap;background:#f1f5f9;border:1.5px solid #cbd5e1;border-radius:5px;padding:4px 10px;font-family:inherit;font-size:.75rem;font-weight:700;transition:background .12s,border-color .12s}.archive-btn:hover:not(:disabled){color:#1e293b;background:#e2e8f0;border-color:#94a3b8}.archive-btn:disabled{opacity:.4;cursor:not-allowed}.archive-all-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#334155;border:none;border-radius:8px;padding:8px 18px;font-family:inherit;font-size:.85rem;font-weight:700;transition:opacity .15s;box-shadow:0 2px 6px #33415540}.archive-all-btn:hover:not(:disabled){opacity:.88}.archive-all-btn:disabled{opacity:.45;cursor:not-allowed}.unarchive-btn{color:#6b7280;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #e5e7eb;border-radius:5px;padding:4px 10px;font-family:inherit;font-size:.75rem;font-weight:500;transition:background .12s}.unarchive-btn:hover:not(:disabled){background:#f3f4f6}.unarchive-btn:disabled{opacity:.4;cursor:not-allowed}.sq-pending-hint{color:#64748b;white-space:nowrap;padding:4px 10px;font-size:.75rem;font-style:italic;display:inline-block}.card-list{flex-direction:column;gap:8px;display:flex}.table-scroll{display:none}@media (width>=768px){.card-list{display:none}.table-scroll{display:block;overflow-x:auto}}.assignment-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:6px;padding:12px 14px;display:flex;box-shadow:0 1px 3px #0000000f}.card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-subject{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.card-meta{color:#6b7280;flex-wrap:wrap;align-items:center;gap:4px;font-size:.8125rem;display:flex}.card-sep{color:#e5e7eb;font-size:.6875rem}.card-acts-row{align-items:center;gap:8px;margin-top:4px;display:flex}.card-primary-btn{box-sizing:border-box;cursor:pointer;white-space:nowrap;border-radius:8px;flex:1;justify-content:center;align-items:center;min-width:0;min-height:44px;padding:10px 14px;font-family:inherit;font-size:.875rem;font-weight:700;text-decoration:none;transition:opacity .15s;display:inline-flex}.card-primary-btn.btn-view{color:#fff;background:#334155;border:none;box-shadow:0 1px 4px #33415540}.card-primary-btn.btn-view:hover{opacity:.88}.card-primary-btn.btn-graded{color:#fff;background:#059669;border:none;box-shadow:0 1px 4px #0596694d}.card-primary-btn.btn-graded:hover{opacity:.88}.card-primary-btn.btn-unarchive{color:#475569;background:#f1f5f9;border:1.5px solid #cbd5e1}.card-primary-btn.btn-unarchive:hover{background:#e2e8f0}.sq-more-wrap{outline:none;display:inline-flex;position:relative}.sq-more-btn{color:#64748b;cursor:pointer;letter-spacing:1px;background:0 0;border:1.5px solid #e2e8f0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-family:inherit;font-size:1.15rem;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.sq-more-btn:hover{color:#334155;background:#f1f5f9;border-color:#cbd5e1}.sq-more-menu{z-index:50;background:#fff;border:1px solid #e2e8f0;border-radius:8px;width:max-content;min-width:10rem;padding:4px 0;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 12px 28px #0000001f,0 4px 12px #00000014}.sq-more-item{text-align:left;color:#334155;cursor:pointer;white-space:nowrap;box-sizing:border-box;background:0 0;border:none;align-items:center;gap:6px;width:100%;padding:9px 14px;font-family:inherit;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.sq-more-item:hover:not(:disabled){color:#0f172a;background:#f1f5f9}.sq-more-item:disabled{opacity:.5;cursor:not-allowed}.sq-more-item.danger{color:#dc2626}.sq-more-item.danger:hover:not(:disabled){color:#b91c1c;background:#fef2f2}.card-actions{flex-wrap:wrap;gap:6px;display:flex}.card-action-btn{text-align:center;box-sizing:border-box;cursor:pointer;border-radius:5px;justify-content:center;align-items:center;min-height:32px;padding:5px 12px;font-family:inherit;font-size:.8125rem;font-weight:500;text-decoration:none;display:inline-flex}@media (width<=767px){.query-page{padding:16px 14px 80px}.result-wrapper{padding:12px}.filter-bar{flex-direction:column;align-items:stretch}.tab-group{width:100%}.tab-btn{flex:1;justify-content:center;padding:9px 12px;font-size:.875rem}.subject-select,.date-range{width:100%}.date-input{flex:1;min-width:0}.date-clear-btn{width:100%}}.file-retention-hint{color:#6b7280;padding:2px 0;font-size:.75rem;font-weight:500;display:block}.file-retention-hint.urgent{color:#dc2626;font-weight:600}.file-retention-hint.compact{margin-top:2px;font-size:.75rem;display:block}.file-cell{flex-direction:column;align-items:center;gap:1px;display:flex}.file-expired-text{color:#9ca3af;font-size:.75rem;font-style:italic}.card-primary-btn.btn-expired{color:#94a3b8;cursor:default;background:#f1f5f9;border:1.5px dashed #cbd5e1;font-weight:500}.sq-more-item.disabled{color:#9ca3af;cursor:default;pointer-events:none}.reject-reason-text{color:#dc2626;margin-top:4px;font-size:.75rem}.card-reject-reason{color:#991b1b;background:#fef2f2;border-radius:6px;margin:4px 0 0;padding:6px 10px;font-size:.8rem}.regrade-badge{color:#4b5563;white-space:nowrap;vertical-align:middle;background:#e5e7eb;border-radius:10px;margin-left:6px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.regrade-badge.unread{color:#15803d;background:linear-gradient(135deg,#dcfce7 0%,#bbf7d0 100%);border:1px solid #86efac;animation:2s ease-in-out infinite regrade-pulse}@keyframes regrade-pulse{0%,to{box-shadow:0 0 #16a34a59}50%{box-shadow:0 0 0 4px #16a34a00}}.sq-unread-chip{color:#14532d;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#dcfce7 0%,#bbf7d0 100%);border:1.5px solid #16a34a;border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.sq-unread-chip:hover{background:linear-gradient(135deg,#bbf7d0 0%,#86efac 100%)}.ss-wrap{flex-direction:column;gap:16px;padding:4px 0 24px;display:flex}.ss-loading{text-align:center;color:#94a3b8;padding:40px 0}.ss-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:20px 22px;box-shadow:0 1px 3px #0000000d}.ss-card-maint{background:#fff9f9;border-color:#fecaca}.ss-card-quota{background:#f0f9ff;border-color:#bfdbfe}.ss-quota-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.ss-refresh-btn{color:#475569;cursor:pointer;white-space:nowrap;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;align-items:center;gap:5px;padding:5px 12px;font-family:inherit;font-size:.78rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.ss-refresh-btn:hover:not(:disabled){color:#1e293b;background:#f1f5f9}.ss-refresh-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes ss-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ss-quota-loading{text-align:center;color:#94a3b8;padding:8px 0;font-size:.85rem}.ss-quota-body{flex-direction:column;gap:8px;display:flex}.ss-quota-nums{flex-wrap:wrap;align-items:baseline;gap:5px;display:flex}.ss-quota-used{color:#1e293b;letter-spacing:-.5px;font-size:1.5rem;font-weight:800}.ss-quota-sep{color:#94a3b8;font-size:1rem;font-weight:400}.ss-quota-total{color:#64748b;font-size:1rem;font-weight:700}.ss-quota-pct{color:#94a3b8;font-size:.82rem}.ss-quota-files{color:#94a3b8;white-space:nowrap;margin-left:auto;font-size:.78rem;font-weight:500}.ss-bar-track{background:#e2e8f0;border-radius:999px;width:100%;height:10px;overflow:hidden}.ss-bar-fill{border-radius:999px;height:100%;transition:width .6s}.ss-bar-green{background:linear-gradient(90deg,#34d399,#10b981)}.ss-bar-amber{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.ss-bar-red{background:linear-gradient(90deg,#f87171,#ef4444)}.ss-quota-free{color:#64748b;font-size:.76rem}.ss-card-title{color:#64748b;letter-spacing:.4px;text-transform:uppercase;margin:0 0 16px;font-size:.85rem;font-weight:700}.ss-pipeline{align-items:center;gap:12px;display:flex}.ss-pipe-step{text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:5px;padding:16px 14px;display:flex}.ss-pipe-num{font-size:2rem;font-weight:800;line-height:1}.ss-pipe-gray{color:#475569}.ss-pipe-amber{color:#d97706}.ss-pipe-blue{color:#2563eb}.ss-pipe-name{color:#334155;font-size:.82rem;font-weight:700}.ss-pipe-rule{color:#94a3b8;font-size:.74rem;line-height:1.4}.ss-pipe-rule strong{color:#64748b}.ss-pipe-arrow{color:#cbd5e1;flex-shrink:0;font-size:1.2rem}.ss-settings-group{flex-direction:column;gap:6px;margin-top:4px;display:flex}.ss-setting-row{background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;grid-template-columns:1fr 220px;align-items:center;gap:16px;padding:14px 18px;display:grid}.ss-setting-left{flex-direction:column;gap:2px;display:flex}.ss-setting-label{color:#1e293b;font-size:.85rem;font-weight:700}.ss-setting-desc{color:#94a3b8;font-size:.74rem;line-height:1.3}.ss-setting-right{justify-content:flex-end;align-items:center;gap:8px;display:flex}.ss-divider{border:none;border-top:1px solid #f1f5f9;margin:4px 0}.ss-num-input{text-align:center;width:68px}.ss-unit{color:#64748b;font-size:.88rem;font-weight:600}.ss-badge{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:.74rem;font-weight:700;display:inline-block}.ss-badge-unset{color:#64748b;background:#f1f5f9}.ss-badge-active{color:#065f46;background:#d1fae5}.ss-badge-ended{color:#991b1b;background:#fee2e2}.ss-card-footer{border-top:1px solid #f1f5f9;justify-content:flex-end;margin-top:16px;padding-top:14px;display:flex}.ss-msg{border-radius:9px;margin-top:12px;padding:9px 14px;font-size:.84rem;font-weight:600}.ss-success{color:#065f46;background:#d1fae5}.ss-error{color:#991b1b;background:#fee2e2}.ss-save-btn{color:#fff;cursor:pointer;background:#334155;border:none;border-radius:10px;padding:9px 26px;font-family:inherit;font-size:.88rem;font-weight:700;transition:opacity .15s,transform .15s;box-shadow:0 2px 6px #33415538}.ss-save-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.ss-save-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.ss-toggle{flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.ss-toggle input{opacity:0;width:0;height:0}.ss-toggle-slider{cursor:pointer;background:#cbd5e1;border-radius:24px;transition:background .2s;position:absolute;inset:0}.ss-toggle-slider:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;bottom:3px;left:3px;box-shadow:0 1px 3px #00000026}.ss-toggle input:checked+.ss-toggle-slider{background:#10b981}.ss-toggle input:checked+.ss-toggle-slider:before{transform:translate(20px)}.ss-toggle-label{color:#64748b;white-space:nowrap;font-size:.78rem;font-weight:600}.ss-maint-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.ss-maint-btns{flex-direction:column;flex-shrink:0;gap:8px;display:flex}.ss-preview-btn{color:#2563eb;cursor:pointer;white-space:nowrap;background:#f0f9ff;border:1.5px solid #bfdbfe;border-radius:10px;padding:9px 20px;font-family:inherit;font-size:.88rem;font-weight:700;transition:background .15s,color .15s,border-color .15s}.ss-preview-btn:hover:not(:disabled){background:#dbeafe;border-color:#93c5fd}.ss-preview-btn:disabled{opacity:.5;cursor:not-allowed}.ss-msg.ss-preview{color:#1e40af;background:#eff6ff}.ss-last-run{color:#94a3b8;font-style:italic}.ss-cleanup-btn{color:#dc2626;cursor:pointer;white-space:nowrap;background:#fef2f2;border:1.5px solid #fecaca;border-radius:10px;flex-shrink:0;padding:9px 20px;font-family:inherit;font-size:.88rem;font-weight:700;transition:background .15s,color .15s,border-color .15s}.ss-cleanup-btn:hover:not(:disabled){color:#fff;background:#dc2626;border-color:#dc2626}.ss-cleanup-btn:disabled{opacity:.5;cursor:not-allowed}@media (width<=640px){.ss-pipeline{flex-direction:column;gap:8px}.ss-pipe-step{width:100%}.ss-pipe-arrow{transform:rotate(90deg)}.ss-setting-row{flex-direction:column;align-items:flex-start;gap:10px}.ss-setting-right-date{justify-content:flex-start}.ss-maint-row{flex-direction:column;align-items:flex-start}.ss-maint-btns{flex-direction:row;width:100%}.ss-preview-btn,.ss-cleanup-btn{flex:1}}.admin-dashboard{box-sizing:border-box;background:#f8fafc;flex-direction:column;flex:1;width:100%;max-width:1100px;min-height:100%;margin:0 auto;padding:28px 24px;display:flex}.admin-toolbar{background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px 20px;display:flex;box-shadow:0 1px 3px #00000014}.admin-toolbar-left{align-items:center;gap:16px;display:flex}.admin-toolbar-left h2,.admin-page-title{color:#1e293b;letter-spacing:-.3px;margin:0;font-size:1.3rem;font-weight:800}.admin-dashboard .back-btn{color:#64748b;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:4px;padding:4px 0;font-family:inherit;font-size:.9rem;font-weight:500;transition:color .15s;display:inline-flex}.admin-dashboard .back-btn:hover{color:#0f172a;text-decoration:underline}.admin-tabs{gap:8px;margin-bottom:20px;display:flex}.admin-tab-btn{cursor:pointer;color:#94a3b8;background:#fff;border:2px solid #e2e8f0;border-radius:12px;align-items:center;gap:7px;padding:10px 20px;font-family:inherit;font-size:.9rem;font-weight:700;transition:all .18s;display:inline-flex;box-shadow:0 1px 3px #0000000f}.admin-tab-btn svg{opacity:.7;flex-shrink:0}.admin-tab-btn:hover svg,.admin-tab-btn.active svg{opacity:1}.admin-tab-btn:hover{color:#475569;background:#f1f5f9;border-color:#cbd5e1}.admin-tab-btn.active{color:#fff;background:#334155;border-color:#0000;box-shadow:0 3px 10px #3341554d}.admin-tab-content{flex-direction:column;gap:20px;display:flex}.admin-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px 24px 20px;box-shadow:0 1px 3px #0000000f}.card-title{color:#1e293b;letter-spacing:-.2px;align-items:center;gap:6px;margin:0 0 18px;font-size:1.05rem;font-weight:800;display:flex}.card-header-row{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.card-header-row .card-title{margin-bottom:0}.ann-form{flex-direction:column;gap:14px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:#64748b;font-size:.88rem;font-weight:600}.form-group textarea{resize:vertical}.ann-content-wrapper{flex-direction:column;display:flex}.ann-content-wrapper textarea{resize:vertical}@media (width<=768px){.ann-content-wrapper textarea{resize:none;border-bottom:none;border-radius:10px 10px 0 0}}.ann-content-resize-handle{cursor:row-resize;touch-action:none;-webkit-user-select:none;user-select:none;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:0 0 10px 10px;justify-content:center;align-items:center;height:22px;display:none}@media (width<=768px){.ann-content-wrapper textarea{resize:none}.ann-content-resize-handle{display:flex}}.form-group input:focus,.form-group textarea:focus{box-shadow:0 0 0 3px #94a3b826}.form-group input:disabled,.form-group textarea:disabled{opacity:.6;cursor:not-allowed}.form-actions{align-items:center;gap:10px;padding-top:4px;display:flex}.form-hint{color:#94a3b8;font-size:.78rem;font-weight:400}.field-required{color:#ef4444;margin-left:4px;font-size:.75rem;font-weight:500}.ann-links-editor{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.ann-link-row{background:#fff;border-radius:6px;align-items:center;gap:8px;display:flex}.ann-link-drag{color:#94a3b8;cursor:ns-resize;touch-action:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:32px;padding:0;transition:color .15s,background .15s;display:flex}.ann-link-drag:hover{color:#334155;background:#f1f5f9}.ann-link-drag:disabled{opacity:.3;cursor:not-allowed}.ann-link-label{color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:6px;outline:none;flex:0 0 140px;padding:7px 10px;font-family:inherit;font-size:13px}.ann-link-url{color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:6px;outline:none;flex:1;padding:7px 10px;font-family:inherit;font-size:13px}.ann-link-label:focus,.ann-link-url:focus{border-color:#334155;box-shadow:0 0 0 3px #94a3b826}.ann-link-label:disabled,.ann-link-url:disabled{opacity:.6;cursor:not-allowed}.ann-link-remove{color:#cbd5e1;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:5px;transition:color .15s,background .15s;display:flex}.ann-link-remove:hover{color:#ef4444;background:#fee2e2}.ann-link-remove:disabled{opacity:.4;cursor:not-allowed}.ann-link-add{color:#94a3b8;cursor:pointer;background:0 0;border:1px dashed #cbd5e1;border-radius:6px;justify-content:center;align-items:center;gap:6px;width:100%;padding:7px 12px;font-family:inherit;font-size:13px;transition:border-color .15s,color .15s,background .15s;display:flex}.ann-link-add:hover{color:#334155;background:#f1f5f9;border-color:#334155}.ann-link-add:disabled{opacity:.4;cursor:not-allowed}.btn-primary{color:#fff;cursor:pointer;background:#334155;border:none;border-radius:10px;padding:9px 22px;font-family:inherit;font-size:.9rem;font-weight:700;transition:transform .15s,box-shadow .15s;box-shadow:0 2px 6px #33415540}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #33415559}.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-cancel,.btn-secondary{color:#475569;cursor:pointer;background:#f1f5f9;border:1.5px solid #e2e8f0;border-radius:10px;padding:9px 18px;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .15s,color .15s}.btn-secondary:hover{color:#334155;background:#e2e8f0}.btn-cancel:hover:not(:disabled){color:#1e293b;background:#e2e8f0}.btn-cancel:disabled{opacity:.55;cursor:not-allowed}.btn-refresh{color:#475569;cursor:pointer;white-space:nowrap;background:#f1f5f9;border:1.5px solid #e2e8f0;border-radius:9px;padding:7px 16px;font-family:inherit;font-size:.85rem;font-weight:600;transition:background .15s}.btn-refresh:hover:not(:disabled){color:#1e293b;background:#e2e8f0}.btn-refresh:disabled{opacity:.55;cursor:not-allowed}.btn-icon{vertical-align:-2px;margin-right:4px}.admin-table-wrapper{border:1px solid #e2e8f0;border-radius:12px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:600px;font-size:.875rem}.admin-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.admin-table thead th{text-align:center;white-space:nowrap;letter-spacing:.2px;color:#64748b;padding:12px 16px;font-weight:500}.admin-table thead th:first-child{border-radius:11px 0 0}.admin-table thead th:last-child{border-radius:0 11px 0 0}.stu-table-scroll{max-height:600px;overflow-y:auto}.stu-sticky-table thead th{z-index:2;background:#f8fafc;position:sticky;top:0;box-shadow:0 1px #e2e8f0}.stu-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s}.stu-th-sortable:hover{background:#e2e8f0!important}.stu-sort-icon{opacity:.6;margin-left:4px;font-size:.7em}.admin-table tbody tr{border-bottom:1px solid #f1f5f9;transition:background .12s}.admin-table tbody tr:hover{background:#f8fafc!important}.admin-table tbody tr:last-child{border-bottom:none}.admin-table tbody td{color:#334155;vertical-align:middle;text-align:center;padding:12px 16px}.row-alt{background:0 0}.ann-title-cell{max-width:200px;font-weight:600}.ann-content-cell{color:#94a3b8;max-width:260px;font-size:.87rem}.date-cell{white-space:nowrap;color:#94a3b8;font-size:.85rem}.hidden-tag{color:#92400e;vertical-align:middle;background:#fef3c7;border-radius:20px;margin-right:6px;padding:1px 7px;font-size:.72rem;font-weight:700;display:inline-block}.badge{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:.8rem;font-weight:600;display:inline-block}.badge.visible{color:#065f46;background:#d1fae5}.badge.hidden{color:#64748b;background:#f1f5f9}.action-cell{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.btn-edit{color:#fff;cursor:pointer;white-space:nowrap;background:#475569;border:none;border-radius:7px;padding:5px 13px;font-family:inherit;font-size:.8rem;font-weight:700;transition:transform .15s,box-shadow .15s;box-shadow:0 1px 3px #47556940}.btn-edit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 8px #47556959}.btn-toggle{cursor:pointer;white-space:nowrap;border:none;border-radius:7px;padding:5px 13px;font-family:inherit;font-size:.8rem;font-weight:700;transition:transform .15s,box-shadow .15s}.btn-show{color:#fff;background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 1px 6px #0596694d}.btn-show:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 10px #05966966}.btn-hide{color:#fff;background:#64748b;box-shadow:0 1px 3px #64748b40}.btn-hide:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 8px #64748b59}.btn-delete{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:7px;padding:5px 13px;font-family:inherit;font-size:.8rem;font-weight:700;transition:transform .15s,box-shadow .15s;box-shadow:0 1px 6px #dc26264d}.btn-delete:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 10px #dc262666}.btn-edit:disabled,.btn-toggle:disabled,.btn-delete:disabled{opacity:.5;cursor:not-allowed;transform:none}.role-badge{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:.8rem;font-weight:700;display:inline-block}.role-badge.role-admin{color:#5b21b6;background:#ede9fe}.role-badge.role-sub_admin{color:#9d174d;background:#fce7f3}.role-badge.role-staff{color:#92400e;background:#fef3c7}.role-badge.role-payroll{color:#1d4ed8;background:#dbeafe}.role-badge.role-teacher{color:#065f46;background:#d1fae5}.role-badge:not([class*=role-admin]):not([class*=role-sub_admin]):not([class*=role-staff]):not([class*=role-teacher]):not([class*=role-payroll]){color:#94a3b8;background:#f1f5f9}.role-select{color:#1e293b;cursor:pointer;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;padding:7px 12px;font-family:inherit;font-size:.88rem;transition:border-color .15s}.role-select:focus{border-color:#94a3b8;outline:none;box-shadow:0 0 0 3px #94a3b826}.role-select:disabled{opacity:.6;cursor:not-allowed}.updating-hint{color:#94a3b8;margin-left:8px;font-size:.8rem;display:inline-block}.perm-table-wrap{border:1px solid #e2e8f0;border-radius:12px;max-height:70vh;overflow:auto}.perm-table{min-width:700px}.perm-table thead th{z-index:3;background:#f8fafc;position:sticky;top:0}.perm-table th:first-child,.perm-table td:first-child{z-index:2;width:52px;min-width:52px;position:sticky;left:0}.perm-table th:nth-child(2),.perm-table td:nth-child(2){z-index:2;min-width:100px;position:sticky;left:52px}.perm-table th:nth-child(3),.perm-table td:nth-child(3){z-index:2;min-width:120px;position:sticky;left:152px}.perm-table thead th:first-child,.perm-table thead th:nth-child(2),.perm-table thead th:nth-child(3){z-index:4}.perm-table th:nth-child(3):after,.perm-table td:nth-child(3):after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000000a,#0000);width:6px;position:absolute;top:0;bottom:0;right:-6px}.perm-table tbody tr{background:#fff}.perm-table tbody tr.row-alt{background:#f8fafc}.perm-table td:first-child,.perm-table td:nth-child(2),.perm-table td:nth-child(3){background:inherit}.perm-col-sort{width:52px;min-width:52px;text-align:center!important}.perm-sort-cell{text-align:center;white-space:nowrap;padding:4px!important}.perm-sort-btn{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;margin:0 1px;padding:0;font-family:inherit;font-size:.65rem;transition:background .15s,color .15s;display:inline-flex}.perm-sort-btn:hover:not(:disabled){color:#fff;background:#334155;border-color:#334155}.perm-sort-btn:disabled{opacity:.25;cursor:not-allowed}.perm-col-header{white-space:nowrap;text-align:center!important}.perm-checkbox-cell{text-align:center}.perm-checkbox-cell input[type=checkbox]{accent-color:#334155;cursor:pointer;width:18px;height:18px}.perm-checkbox-cell input[type=checkbox]:disabled{cursor:default;accent-color:#94a3b8}.perm-saving{opacity:.5;pointer-events:none}.staff-name-cell{color:#1e293b;white-space:nowrap;font-weight:700}.staff-name-display{align-items:center;gap:6px;display:inline-flex}.staff-name-edit-btn{cursor:pointer;color:#94a3b8;background:0 0;border:1px solid #0000;border-radius:4px;padding:2px 6px;font-size:.9rem;line-height:1;transition:color .15s,background .15s,border-color .15s}.staff-name-edit-btn:hover{color:#334155;background:#f1f5f9;border-color:#cbd5e1}.staff-name-edit{align-items:center;gap:6px;display:flex}.staff-name-input{color:#1e293b;border:1.5px solid #cbd5e1;border-radius:6px;width:110px;padding:5px 8px;font-family:inherit;font-size:.875rem}.staff-name-input:focus{border-color:#64748b;outline:none}.staff-name-save{color:#fff;cursor:pointer;background:#334155;border:none;border-radius:6px;padding:5px 10px;font-family:inherit;font-size:.8rem;font-weight:600}.staff-name-save:disabled{opacity:.4;cursor:not-allowed}.staff-name-cancel{color:#64748b;cursor:pointer;background:#fff;border:1.5px solid #cbd5e1;border-radius:6px;padding:5px 10px;font-family:inherit;font-size:.8rem;font-weight:600}.staff-name-cancel:disabled{opacity:.4;cursor:not-allowed}.staff-account-cell{color:#94a3b8;white-space:nowrap;font-size:.85rem}.perm-subjects-cell{min-width:120px}.perm-subject-tags{grid-template-columns:1fr 1fr;gap:4px 12px;display:grid}.perm-subject-tag{color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:4px;font-size:.82rem;display:inline-flex}.perm-subject-tag input[type=checkbox]{accent-color:#334155;cursor:pointer;width:14px;height:14px}.perm-branches-cell{min-width:130px}.perm-branch-tags{grid-template-columns:1fr 1fr;gap:4px 12px;display:grid}.perm-branch-tag{color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:4px;font-size:.82rem;display:inline-flex}.perm-branch-tag input[type=checkbox]{accent-color:#334155;cursor:pointer;width:14px;height:14px}.perm-na{color:#cbd5e1;font-size:.85rem}.perm-pw-cell{min-width:160px}.perm-pw-row{align-items:center;gap:6px;display:flex}.perm-pw-input{color:#1e293b;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:6px;width:100px;padding:5px 8px;font-family:inherit;font-size:.82rem}.perm-pw-input:focus{background:#fff;border-color:#94a3b8;outline:none}.perm-pw-input:disabled{opacity:.5}.pw-input-wrap{flex:1;align-items:center;display:inline-flex;position:relative}.pw-input-wrap input{width:100%;padding-right:32px}.pw-eye-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;transition:color .15s,background .15s;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pw-eye-btn:hover{color:#1e293b;background:#f1f5f9}.pw-eye-btn:focus{color:#1e293b;outline:none}.perm-pw-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#334155;border:none;border-radius:6px;padding:5px 10px;font-family:inherit;font-size:.78rem;font-weight:700;transition:opacity .15s}.perm-pw-btn:hover:not(:disabled){opacity:.85}.perm-pw-btn:disabled{opacity:.4;cursor:not-allowed}.email-cell{word-break:break-all;max-width:220px;font-size:.88rem}.admin-loading{text-align:center;color:#94a3b8;margin:0;padding:32px 20px}@media (width<=480px){.admin-dashboard{padding:16px 12px}.admin-tabs{gap:6px}.admin-tab-btn{text-align:center;flex:1;padding:10px 8px;font-size:.88rem}.admin-card{padding:18px 14px 16px}.form-actions{flex-wrap:wrap}.btn-primary,.btn-cancel{text-align:center;flex:1}.action-cell{flex-wrap:wrap}}.staff-form-grid{grid-template-columns:1fr 1fr;gap:14px 20px;margin-bottom:14px;display:grid}.staff-form-grid .form-group label{text-align:left}.form-group-full{grid-column:1/-1}.form-group-full .stu-subject-checks{background:#fff;border:1px solid #e2e8f0;border-radius:10px;gap:6px 12px;min-height:38px;padding:8px 12px}@media (width<=560px){.staff-form-grid{grid-template-columns:1fr}}.staff-msg-ok{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-bottom:4px;padding:8px 14px;font-size:.88rem;font-weight:600}.staff-msg-err{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:4px;padding:8px 14px;font-size:.88rem;font-weight:600}.import-hint{color:#94a3b8;background:#f1f5f9;border-radius:6px;padding:6px 10px;font-family:Menlo,Consolas,monospace;font-size:.82rem;display:block}.import-error{color:#dc2626;margin:4px 0 12px;font-size:.875rem}.date-input-wrap{background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:10px;align-items:center;gap:0;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.date-input-wrap:focus-within{background:#fff;border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b826}.date-input-wrap input[type=date]{color:#1e293b;min-width:0;box-shadow:none;background:0 0;border:none;border-radius:0;outline:none;flex:1;padding:10px 14px;font-family:inherit;font-size:.92rem}.date-input-wrap input[type=date]:focus{box-shadow:none;background:0 0;border:none}.date-cal-btn{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-left:1.5px solid #e2e8f0;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:100%;min-height:42px;padding:0;transition:background .15s,color .15s;display:flex}.date-cal-btn:hover:not(:disabled){color:#1e293b;background:#e2e8f0}.date-cal-btn:disabled{opacity:.4;cursor:not-allowed}.init-log{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:4px;max-height:220px;padding:12px 14px;display:flex;overflow-y:auto}.stu-mgmt-filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.stu-mgmt-search{flex:1;min-width:200px}.stu-mgmt-filters select{cursor:pointer}.badge-active{color:#065f46;background:#d1fae5;border:1px solid #34d399;border-radius:4px;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.badge-expired{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:4px;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.stu-id-cell{color:#64748b;letter-spacing:.3px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.83rem}.stu-actions{align-items:center;gap:6px;display:flex}.btn-sm-edit{color:#1d4ed8;cursor:pointer;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:7px;padding:4px 12px;font-family:inherit;font-size:.8rem;font-weight:700;transition:background .15s,border-color .15s}.btn-sm-edit:hover{background:#dbeafe;border-color:#93c5fd}.btn-sm-danger{color:#dc2626;cursor:pointer;background:#fef2f2;border:1.5px solid #fecaca;border-radius:7px;padding:4px 12px;font-family:inherit;font-size:.8rem;font-weight:700;transition:background .15s,border-color .15s}.btn-sm-danger:hover{background:#fee2e2;border-color:#fca5a5}.stu-count{text-align:right;color:#94a3b8;margin:8px 0 0;font-size:.8rem}.stu-batch-bar{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 16px;font-size:.88rem;display:flex}.row-selected{background:#eff6ff!important}.alias-grid{flex-direction:column;gap:8px;display:flex}.alias-row{grid-template-columns:80px 1fr;align-items:center;gap:12px;display:grid}.alias-subject{color:#1e293b;text-align:right;font-size:.88rem;font-weight:700}.alias-input{color:#334155;border:1px solid #e2e8f0;border-radius:8px;padding:8px 12px;font-family:inherit;font-size:.84rem;transition:border-color .15s}.alias-input:focus{border-color:#94a3b8;outline:none}.alias-input::placeholder{color:#cbd5e1}.import-overlay{z-index:1100;background:#0009}.import-modal{text-align:center;max-width:480px}.import-spinner{border:4px solid #e2e8f0;border-top-color:#334155;border-radius:50%;width:40px;height:40px;margin:0 auto 16px;animation:.8s linear infinite spin-import}@keyframes spin-import{to{transform:rotate(360deg)}}.import-progress-text{color:#334155;margin:8px 0 12px;font-size:1rem}.import-progress-bar{background:#e2e8f0;border-radius:99px;width:100%;height:8px;margin-bottom:16px;overflow:hidden}.import-progress-fill{background:linear-gradient(90deg,#334155,#475569);border-radius:99px;height:100%;transition:width .3s}.import-live-log{text-align:left;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;max-height:180px;margin-bottom:12px;padding:10px 14px;overflow-y:auto}.import-warn-text{color:#dc2626;margin:0;font-size:.78rem;font-weight:600}.modal-batch-list{flex-wrap:wrap;gap:6px;max-height:150px;margin:12px 0;display:flex;overflow-y:auto}.modal-batch-tag{color:#475569;background:#f1f5f9;border-radius:6px;padding:3px 10px;font-size:.78rem;display:inline-block}.modal-overlay{z-index:999;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:14px;flex-direction:column;gap:14px;width:100%;max-width:440px;padding:28px 32px;display:flex;box-shadow:0 20px 60px #0003}.modal-title{color:#0f172a;margin:0;font-size:1.1rem;font-weight:800}.modal-subtitle{color:#64748b;margin:-8px 0 0;font-size:.875rem}.modal-desc{color:#475569;margin:0;font-size:.875rem;line-height:1.6}.modal-warn{color:#dc2626;text-align:center;background:#fef2f2;border-radius:8px;margin:8px 0 0;padding:10px 14px;font-size:.82rem;font-weight:600}.modal-danger-icon{color:#dc2626;background:#fef2f2;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:-4px;display:flex}.modal-fields{flex-direction:column;gap:12px;display:flex}.modal-field{flex-direction:column;gap:5px;display:flex}.modal-field label{color:#64748b;font-size:.78rem;font-weight:700}.modal-field input,.modal-field select{width:100%}.stu-subject-checks{flex-wrap:wrap;gap:8px;display:flex}.stu-subject-check{color:#475569;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:5px;padding:5px 10px;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.stu-subject-check:hover{background:#f1f5f9;border-color:#cbd5e1}.stu-subject-check input[type=checkbox]{accent-color:#334155;width:auto}.modal-checkbox-row{color:#475569;cursor:pointer;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font-size:.875rem;display:flex}.modal-checkbox-row input[type=checkbox]{cursor:pointer;flex-shrink:0;width:16px;height:16px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.btn-danger{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:.9rem;font-weight:700;transition:opacity .15s}.btn-danger:hover:not(:disabled){opacity:.88}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.admin-empty{text-align:center;color:#94a3b8;padding:40px 0;font-size:.9rem}.pr-page{box-sizing:border-box;background:#f8fafc;flex-direction:column;flex:1;gap:16px;width:100%;max-width:1100px;min-height:100%;margin:0 auto;padding:24px 28px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}.pr-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000f}.pr-header{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;min-height:56px;padding:14px 20px;display:flex;position:relative;box-shadow:0 1px 3px #0000000f}.pr-title{color:#1e293b;letter-spacing:-.4px;white-space:nowrap;pointer-events:none;margin:0;font-size:1.25rem;font-weight:800;position:absolute;left:50%;transform:translate(-50%)}.pr-filters{padding:20px 24px}.pr-filter-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.pr-filter-item{flex-direction:column;flex:140px;gap:6px;min-width:0;display:flex}.pr-filter-item label{color:#64748b;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;font-size:.72rem;font-weight:700}.pr-filter-item select,.pr-filter-item input{width:100%}.pr-filter-item select:focus,.pr-filter-item input:focus{box-shadow:0 0 0 3px #94a3b826}.pr-price-input{text-align:center;font-weight:800;color:#1e293b!important;font-size:1rem!important}.pr-filter-export{flex-direction:column;flex:none;justify-content:flex-end;display:flex}.pr-export-btn{color:#fff;cursor:pointer;white-space:nowrap;letter-spacing:.2px;background:#334155;border:none;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:.82rem;font-weight:700;transition:opacity .15s,transform .1s;box-shadow:0 2px 6px #33415540}.pr-export-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.pr-export-btn:disabled{opacity:.45;cursor:not-allowed}.pr-metrics{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.pr-metric-card{align-items:center;gap:14px;padding:18px 20px;display:flex}.pr-metric-card-green{background:#f0fdf9;border-color:#a7f3d0}.pr-metric-card-amber{background:#fff;border-color:#e2e8f0}.pr-metric-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.pr-metric-icon-blue{color:#3b82f6;background:#eff6ff}.pr-metric-icon-green{color:#059669;background:#d1fae5}.pr-metric-icon-amber{color:#64748b;background:#f1f5f9}.pr-metric-body{flex-direction:column;gap:2px;display:flex}.pr-metric-label{color:#94a3b8;letter-spacing:.2px;font-size:.72rem;font-weight:600}.pr-metric-value{color:#1e293b;letter-spacing:-.5px;font-size:1.6rem;font-weight:900;line-height:1.15}.pr-metric-unit{color:#94a3b8;margin-left:3px;font-size:.85rem;font-weight:600}.pr-text-green{color:#059669!important}.pr-text-amber{color:#64748b!important}.fw600{font-weight:700}.pr-table-section{overflow:hidden}.pr-table-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.pr-section-title{color:#1e293b;letter-spacing:-.2px;margin:0;font-size:.92rem;font-weight:800}.pr-table-count{color:#94a3b8;font-size:.78rem;font-weight:600}.pr-empty{text-align:center;color:#94a3b8;margin:0;padding:48px 0;font-size:.88rem}.pr-table-wrap{overflow-x:auto}.pr-table{border-collapse:collapse;width:100%;font-size:.875rem}.pr-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.pr-table th{text-align:center;color:#64748b;letter-spacing:.2px;white-space:nowrap;padding:12px 16px;font-size:.875rem;font-weight:500}.pr-table th.num,.pr-table td.num{text-align:right}.pr-table th.center,.pr-table td.center{text-align:center}.pr-table td{color:#334155;white-space:nowrap;vertical-align:middle;border-bottom:1px solid #e2e8f0;padding:10px 16px}.pr-table tr.alt td{background:0 0}.pr-table tr:hover td{background:#f8fafc}.pr-teacher-name{color:#1e293b;font-weight:700}.pr-subject-tags{flex-wrap:wrap;gap:4px;display:flex}.pr-subject-tag{color:#475569;background:#f1f5f9;border-radius:4px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.pr-badge{letter-spacing:.2px;border-radius:9999px;align-items:center;gap:4px;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.pr-badge-unpaid{color:#64748b;background:#f1f5f9}.pr-badge-paid{color:#065f46;background:#d1fae5}.pr-action-btn{color:#475569;cursor:pointer;white-space:nowrap;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:6px;padding:5px 12px;font-family:inherit;font-size:.75rem;font-weight:700;transition:all .15s}.pr-action-btn:hover{color:#1e293b;background:#f1f5f9;border-color:#cbd5e1}.pr-action-btn.pr-action-undo{color:#94a3b8;border-color:#e2e8f0}.pr-action-btn.pr-action-undo:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.pr-status-cell{flex-direction:column;align-items:center;gap:6px;display:flex}.pr-month-tag{cursor:pointer;white-space:nowrap;border:1.5px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:5px;min-width:120px;min-height:32px;padding:5px 12px;font-family:inherit;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex}.pr-month-tag.pr-month-set{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.pr-month-tag.pr-month-set:hover{background:#dbeafe;border-color:#60a5fa;box-shadow:0 1px 4px #3b82f626}.pr-month-tag.pr-month-unset{color:#94a3b8;background:#f8fafc;border-style:dashed;border-color:#cbd5e1}.pr-month-tag.pr-month-unset:hover{color:#475569;background:#f1f5f9;border-style:solid;border-color:#94a3b8}.pr-month-input{color:#1d4ed8;cursor:pointer;background:#eff6ff;border:1.5px solid #60a5fa;border-radius:8px;outline:none;min-width:130px;padding:5px 10px;font-family:inherit;font-size:.8rem;box-shadow:0 0 0 3px #60a5fa33}.pr-tabs{align-items:center;gap:4px;padding:6px 8px;display:flex}.pr-tab-btn{color:#64748b;cursor:pointer;letter-spacing:.2px;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;padding:8px 22px;font-family:inherit;font-size:.85rem;font-weight:700;transition:all .15s}.pr-tab-btn:hover{color:#334155;background:#f1f5f9;border-color:#cbd5e1}.pr-tab-btn.active{color:#fff;background:#1e293b;border-color:#1e293b}.pr-warning{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;align-items:center;padding:12px 18px;font-size:.83rem;font-weight:600;display:flex}.pr-warning-icon{flex-shrink:0;margin-right:6px}.pr-settle-msg{border-radius:10px;padding:11px 18px;font-size:.85rem;font-weight:600}.pr-settle-msg.success{color:#065f46;background:#d1fae5;border:1px solid #a7f3d0}.pr-settle-msg.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.pr-result-overlay{z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:20px;animation:.15s pr-result-fade-in;display:flex;position:fixed;inset:0}@keyframes pr-result-fade-in{0%{opacity:0}to{opacity:1}}.pr-result-modal{text-align:center;background:#fff;border-radius:14px;width:min(360px,92vw);padding:28px 28px 22px;animation:.18s pr-result-modal-in;box-shadow:0 20px 60px #00000040}@keyframes pr-result-modal-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.pr-result-icon{justify-content:center;margin-bottom:12px;display:flex}.pr-result-modal.success .pr-result-icon{color:#10b981}.pr-result-modal.error .pr-result-icon{color:#ef4444}.pr-result-title{color:#0f172a;margin:0 0 8px;font-size:1.1rem;font-weight:700}.pr-result-msg{color:#475569;margin:0 0 22px;font-size:.9rem;line-height:1.55}.pr-result-actions{justify-content:center;display:flex}.pr-result-btn{color:#fff;cursor:pointer;background:#334155;border:none;border-radius:8px;min-width:96px;padding:9px 24px;font-family:inherit;font-size:.9rem;font-weight:600;transition:opacity .15s}.pr-result-btn:hover:not(:disabled){opacity:.88}.pr-result-btn:disabled{opacity:.5;cursor:not-allowed}.pr-confirm-info{text-align:left;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin:16px 0 22px;padding:14px 16px}.pr-confirm-row{justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:.9rem;display:flex}.pr-confirm-row+.pr-confirm-row{border-top:1px solid #e2e8f0}.pr-confirm-label{color:#64748b;flex-shrink:0;font-weight:500}.pr-confirm-value{color:#1e293b;text-align:right;font-weight:600}.pr-confirm-stray{color:#b45309;margin-top:2px;font-size:.78rem;font-weight:500;display:block}.pr-confirm-amount{color:#0f172a;font-size:1rem}.pr-confirm-actions{justify-content:center;gap:10px;display:flex}.pr-result-btn-cancel{border:1px solid #e2e8f0;color:#475569!important;background:#f1f5f9!important}.pr-result-btn-cancel:hover:not(:disabled){opacity:1!important;background:#e2e8f0!important}.pr-region-card{overflow:hidden}.pr-region-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;align-items:center;gap:10px;padding:14px 20px;display:flex}.pr-region-header-left{align-items:center;gap:10px;min-width:0;display:flex}.pr-region-name{color:#1e293b;letter-spacing:-.3px;font-size:1rem;font-weight:800}.pr-region-meta{color:#94a3b8;font-size:.78rem;font-weight:500}.pr-region-header-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.pr-settle-btn{color:#fff;cursor:pointer;white-space:nowrap;letter-spacing:.2px;background:#1e293b;border:none;border-radius:8px;padding:7px 18px;font-family:inherit;font-size:.82rem;font-weight:700;transition:opacity .15s,transform .1s;box-shadow:0 2px 6px #1e293b33}.pr-settle-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.pr-settle-btn:disabled{opacity:.5;cursor:not-allowed}.pr-settle-btn.pr-settle-go{background:#059669;box-shadow:0 2px 6px #05966940}.pr-settle-btn.pr-settle-danger{background:#dc2626;box-shadow:0 2px 6px #dc262640}.pr-settle-confirm{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pr-settle-confirm-label{color:#64748b;white-space:nowrap;font-size:.78rem;font-weight:600}.pr-stray-only-empty{text-align:center;color:#94a3b8;background:#f8fafc;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;margin:0;padding:24px 16px;font-size:.85rem}.pr-stray-hint{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:6px;width:100%;margin-bottom:8px;padding:8px 12px;font-size:.78rem;line-height:1.5}.pr-teacher-cell{vertical-align:middle}.pr-teacher-total{color:#94a3b8;margin-top:4px;font-size:.72rem;font-weight:600;display:block}.pr-unit-label{color:#94a3b8;margin-left:2px;font-size:.72rem;font-weight:500}.pr-unit-hint{color:#94a3b8;font-size:.7rem;font-weight:500}.pr-no-price{color:#fca5a5;font-size:.78rem;font-weight:600}.pr-region-total-label{text-align:right;color:#64748b;background:#f8fafc;border-top:1px solid #e2e8f0;padding:10px 16px;font-size:.8rem;font-weight:700}.pr-region-total-value{color:#059669;background:#f8fafc;border-top:1px solid #e2e8f0;font-size:.92rem;font-weight:800}.pr-cancelled-row td{opacity:.45;text-decoration:line-through}.pr-badge-cancelled{color:#991b1b;background:#fee2e2}.pr-cancel-row td{background:#fff7f7;border-top:none;padding:0;opacity:1!important;text-decoration:none!important}.pr-cancel-form{flex-wrap:wrap;align-items:center;gap:10px;padding:12px 20px;display:flex}.pr-cancel-form-label{color:#dc2626;white-space:nowrap;font-size:.8rem;font-weight:600}.pr-cancel-input{color:#1e293b;background:#fff;border:1.5px solid #fca5a5;border-radius:8px;outline:none;flex:1;min-width:200px;padding:7px 12px;font-family:inherit;font-size:.84rem;transition:border-color .15s}.pr-cancel-input:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441f}.pr-cancel-note{color:#94a3b8;cursor:help;font-size:.72rem;font-style:italic}.pr-add-item-row{background:#f8fafc;border-top:1px solid #e2e8f0;align-items:center;gap:10px;padding:14px 20px;display:flex}.pr-add-input{color:#1e293b;background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:.84rem;transition:border-color .15s}.pr-add-input:focus{border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b826}.pr-add-input.pr-add-unit{flex:0 0 120px}.pr-price-cell{cursor:pointer;transition:background .12s}.pr-price-cell:hover{background:#eff6ff!important}.pr-price-set{color:#1e293b;font-weight:700}.pr-price-unset{color:#cbd5e1;font-size:1rem}.pr-price-edit-input{color:#1d4ed8;text-align:right;background:#eff6ff;border:1.5px solid #60a5fa;border-radius:6px;outline:none;width:80px;padding:4px 8px;font-family:inherit;font-size:.84rem;box-shadow:0 0 0 3px #60a5fa33}.pr-pricing-msg{color:#059669;font-size:.78rem;font-weight:600}.pr-summary{flex-direction:column;gap:14px;padding:18px 24px;display:flex}.pr-summary-stats{align-items:center;gap:24px;display:flex}.pr-summary-item{flex-direction:column;gap:2px;display:flex}.pr-summary-label{color:#94a3b8;letter-spacing:.3px;font-size:.72rem;font-weight:600}.pr-summary-value{color:#1e293b;letter-spacing:-.5px;font-size:1.35rem;font-weight:800}.pr-summary-divider{background:#e2e8f0;flex-shrink:0;width:1px;height:36px}.pr-summary-regions{flex-wrap:wrap;gap:8px;display:flex}.pr-region-status{border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.pr-region-status.settled{color:#065f46;background:#d1fae5}.pr-region-status.pending{color:#92400e;background:#fef3c7}.pr-region-status.none{color:#94a3b8;background:#f1f5f9}.pr-status-dot{background:#f59e0b;border-radius:50%;width:7px;height:7px}.pr-filter-date-group{flex:2 280px}.pr-date-range{align-items:center;gap:8px;display:flex}.pr-date-range input{flex:1;min-width:0}.pr-date-sep{color:#94a3b8;flex-shrink:0;font-size:.85rem}.pr-date-clear{color:#64748b;cursor:pointer;white-space:nowrap;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;flex-shrink:0;padding:4px 10px;font-size:.8rem}.pr-date-clear:hover{background:#e2e8f0}.pr-region-footer{background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:flex-end;align-items:center;gap:12px;padding:14px 20px;display:flex}.pr-export-region{color:#475569;box-shadow:none;background:#f1f5f9;border:1.5px solid #e2e8f0;align-items:center;gap:6px;display:inline-flex}.pr-export-region:hover:not(:disabled){opacity:1;background:#e2e8f0;border-color:#cbd5e1;transform:none}.pr-settle-main{padding:9px 24px;font-size:.88rem}.pr-teacher-sum{color:#059669;margin-left:auto;font-size:.92rem;font-weight:800}.pr-text-muted{color:#94a3b8!important}.pr-cancelled-section{opacity:.7}@media (width<=768px){.pr-page{gap:12px;padding:16px 14px}.pr-metrics{grid-template-columns:1fr}.pr-filter-item{flex:120px}.pr-filter-date-group,.pr-filter-export{flex:100%}.pr-export-btn{width:100%}.pr-metric-value{font-size:1.3rem}.pr-metric-icon{width:36px;height:36px}.pr-region-header{flex-direction:column;align-items:flex-start}.pr-region-footer{flex-direction:column;align-items:stretch;gap:10px}.pr-summary-stats{flex-wrap:wrap;gap:16px}.pr-summary-value{font-size:1.1rem}.pr-settle-confirm,.pr-tabs{flex-wrap:wrap}.pr-cancel-form{flex-direction:column;align-items:flex-start}.pr-add-item-row{flex-direction:column;align-items:stretch}.pr-add-input.pr-add-unit{flex:unset}}.ps-page{box-sizing:border-box;background:#f8fafc;flex-direction:column;flex:1;gap:16px;min-height:100%;padding:24px 28px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}.ps-header{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;min-height:56px;padding:14px 20px;display:flex;position:relative;box-shadow:0 1px 3px #0000000f}.ps-title{color:#1e293b;letter-spacing:-.4px;white-space:nowrap;pointer-events:none;margin:0;font-size:1.25rem;font-weight:800;position:absolute;left:50%;transform:translate(-50%)}.ps-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000000f}.ps-section{overflow:hidden}.ps-section-header{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:baseline;gap:12px;padding:18px 22px 14px;display:flex}.ps-section-title{color:#1e293b;letter-spacing:-.2px;margin:0;font-size:.95rem;font-weight:800}.ps-section-desc{color:#94a3b8;flex:1;margin:0;font-size:.78rem;font-weight:500}.ps-msg{color:#059669;margin-left:auto;font-size:.78rem;font-weight:700}.ps-table-wrap{overflow-x:auto}.ps-table{border-collapse:collapse;width:100%;font-size:.875rem}.ps-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.ps-table th{color:#64748b;white-space:nowrap;padding:11px 16px;font-size:.82rem;font-weight:600;text-align:center!important}.ps-table th.center{text-align:center!important}.ps-table td{color:#334155;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #f1f5f9;padding:10px 16px;text-align:center!important}.ps-table td.center{text-align:center}.ps-table tr.alt td{background:#fafafa}.ps-table tr:hover td{background:#f8fafc}.ps-item-name{color:#1e293b;text-align:center;font-weight:700}.ps-unit{color:#64748b;font-size:.82rem}.ps-empty-cell{text-align:center;color:#94a3b8;font-size:.88rem;padding:32px 0!important}.ps-badge{border-radius:9999px;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.ps-badge-on{color:#065f46;background:#d1fae5}.ps-badge-off{color:#94a3b8;background:#f1f5f9}.ps-toggle-btn{cursor:pointer;border:1.5px solid;border-radius:6px;padding:4px 12px;font-family:inherit;font-size:.75rem;font-weight:700;transition:all .15s}.ps-toggle-disable{color:#94a3b8;background:#f8fafc;border-color:#e2e8f0}.ps-toggle-disable:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.ps-toggle-enable{color:#059669;background:#f0fdf9;border-color:#a7f3d0}.ps-toggle-enable:hover{color:#047857;background:#d1fae5;border-color:#6ee7b7}.ps-toggle-delete{color:#e53e3e;background:#fff5f5;border-color:#fed7d7}.ps-toggle-delete:hover{color:#c53030;background:#fed7d7;border-color:#fc8181}.ps-add-row{background:#f8fafc;border-top:1px solid #e2e8f0;align-items:center;gap:10px;padding:14px 22px;display:flex}.ps-add-input{color:#1e293b;background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:.84rem;transition:border-color .15s,box-shadow .15s}.ps-add-input:focus{border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b826}.ps-add-input.ps-add-unit{flex:0 0 130px}.ps-add-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#334155;border:none;border-radius:8px;padding:8px 20px;font-family:inherit;font-size:.82rem;font-weight:700;transition:opacity .15s,transform .1s;box-shadow:0 2px 6px #33415533}.ps-add-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.ps-add-btn:disabled{opacity:.45;cursor:not-allowed}.ps-price-table .ps-th-teacher{text-align:center;min-width:100px}.ps-price-table .ps-th-item{min-width:110px}.ps-th-unit{color:#94a3b8;font-size:.7rem;font-weight:500}.ps-teacher-name{color:#1e293b;text-align:center;font-weight:700}.ps-price-cell{cursor:pointer;transition:background .12s;padding:8px 12px!important}.ps-price-cell:hover{background:#eff6ff!important}.ps-price-cell.editing{cursor:default;background:#eff6ff!important}.ps-price-set{color:#1e293b;font-weight:700}.ps-price-empty{color:#cbd5e1;font-size:1rem}.ps-price-input{color:#1d4ed8;text-align:right;background:#eff6ff;border:1.5px solid #60a5fa;border-radius:6px;outline:none;width:80px;padding:4px 8px;font-family:inherit;font-size:.84rem;box-shadow:0 0 0 3px #60a5fa33}.ps-empty{text-align:center;color:#94a3b8;margin:0;padding:48px 0;font-size:.88rem}@media (width<=768px){.ps-page{gap:12px;padding:16px 14px}.ps-add-row{flex-direction:column;align-items:stretch}.ps-add-input.ps-add-unit{flex:unset}}.admin-query-page{box-sizing:border-box;background:#f8fafc;flex-direction:column;flex:1;width:100%;max-width:1100px;min-height:100%;margin:0 auto;padding:28px 24px;display:flex;overflow-x:hidden}.admin-query-header{background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:16px;margin-bottom:24px;padding:16px 20px;display:flex;box-shadow:0 1px 3px #00000014}.admin-query-header h2,.aq-page-title{color:#1e293b;margin:0;font-size:1.3rem;font-weight:800}.admin-query-filters{background:#fff;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:1.6fr 1.2fr 1fr 1fr 1.7fr 1.7fr;align-items:end;gap:12px;margin-bottom:20px;padding:20px;display:grid;box-shadow:0 1px 3px #00000014}.filter-group{flex-direction:column;gap:5px;display:flex}.filter-group input,.filter-group select{box-sizing:border-box;width:100%;min-width:0}.filter-group input[type=date]{box-sizing:border-box;appearance:none;color:#1e293b;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;width:100%;min-width:0;height:40px;padding:8px 12px;font-family:inherit;font-size:.9rem}.filter-group label{color:#64748b;letter-spacing:.3px;font-size:.78rem;font-weight:700}.filter-group input:focus,.filter-group select:focus{box-shadow:0 0 0 3px #94a3b826}.aq-btn-row{grid-column:1/-1;align-items:center;gap:12px;display:flex}.aq-search-btn{color:#fff;cursor:pointer;white-space:nowrap;box-sizing:border-box;background:#334155;border:1.5px solid #334155;border-radius:10px;min-width:120px;height:40px;padding:9px 24px;font-family:inherit;font-size:.9rem;font-weight:700;line-height:1;transition:opacity .15s,transform .15s;box-shadow:0 2px 6px #33415540}.aq-search-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #33415559}.aq-search-btn:disabled{opacity:.5;cursor:not-allowed}.aq-reset-btn{color:#334155;cursor:pointer;white-space:nowrap;box-sizing:border-box;background:#fff;border:1.5px solid #cbd5e1;border-radius:10px;min-width:120px;height:40px;padding:9px 24px;font-family:inherit;font-size:.9rem;font-weight:700;line-height:1;transition:background .15s,border-color .15s,color .15s,transform .15s}.aq-reset-btn:hover:not(:disabled){color:#1e293b;background:#f1f5f9;border-color:#94a3b8;transform:translateY(-1px)}.aq-reset-btn:disabled{opacity:.4;cursor:not-allowed}.aq-export-btn{color:#334155;cursor:pointer;white-space:nowrap;box-sizing:border-box;background:#fff;border:1.5px solid #cbd5e1;border-radius:10px;justify-self:end;min-width:120px;height:40px;padding:9px 24px;font-family:inherit;font-size:.9rem;font-weight:700;line-height:1;transition:background .15s,border-color .15s,color .15s,transform .15s}.aq-export-btn:hover:not(:disabled){color:#1e293b;background:#f1f5f9;border-color:#94a3b8;transform:translateY(-1px)}.aq-export-btn:disabled{opacity:.4;cursor:not-allowed}.aq-msg{text-align:center;color:#94a3b8;margin:0;padding:48px 0;font-size:.95rem}.aq-count{color:#64748b;margin:0 0 10px;font-size:.85rem;font-weight:600}.aq-table-scroll{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow-x:auto;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.aq-table{border-collapse:collapse;width:100%;font-size:.875rem}.aq-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.aq-table th{text-align:center;color:#64748b;letter-spacing:.2px;white-space:nowrap;padding:12px 16px;font-size:.875rem;font-weight:500}.aq-table td{text-align:center;color:#334155;white-space:nowrap;vertical-align:middle;border-bottom:1px solid #e2e8f0;padding:10px 16px;font-size:.875rem}.aq-table .row-alt td{background:0 0}.aq-table tr:hover td{background:#f8fafc}.aq-table th.aq-check-col,.aq-table td.aq-check-col{width:40px;min-width:40px;padding-left:8px;padding-right:8px}.aq-table .aq-check-col input[type=checkbox]{cursor:pointer;accent-color:#0f172a;width:16px;height:16px}.aq-table .aq-check-col input[type=checkbox]:disabled{cursor:not-allowed;opacity:.4}.aq-pagination{justify-content:center;align-items:center;gap:16px;margin-top:16px;padding:12px 0;display:flex}.aq-page-btn{color:#334155;cursor:pointer;background:#fff;border:1.5px solid #cbd5e1;border-radius:8px;padding:8px 20px;font-family:inherit;font-size:.875rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.aq-page-btn:hover:not(:disabled){color:#1e293b;background:#f1f5f9;border-color:#94a3b8}.aq-page-btn:disabled{opacity:.4;cursor:not-allowed}.aq-page-info{color:#64748b;font-size:.875rem;font-weight:500}.aq-link{color:#475569;font-size:.85rem;font-weight:600;text-decoration:none}.aq-link:hover{color:#0f172a;text-decoration:underline}.aq-link.graded{color:#059669}.aq-download-btn{font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0}.aq-download-btn:disabled{opacity:.5;cursor:not-allowed}.aq-none{color:#94a3b8;font-size:.82rem}.badge{white-space:nowrap;border:1px solid #0000;border-radius:4px;align-items:center;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.badge.pending,.badge.待批改{color:#92400e;background:#fef3c7;border-color:#f59e0b}.badge.graded,.badge.已批改,.badge.已完成{color:#065f46;background:#d1fae5;border-color:#34d399}.badge.archived,.badge.已歸檔{color:#475569;background:#f1f5f9;border-color:#cbd5e1}.badge.rejected,.badge.已退件{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5}.badge.settled,.badge.已結算{color:#1d4ed8;background:#eff6ff}.aq-mono{color:#64748b;letter-spacing:.3px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.83rem}.aq-nowrap{white-space:nowrap}.aq-actions-wrap{align-items:center;gap:6px;display:flex}.aq-primary-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#334155;border:none;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:.82rem;font-weight:700;transition:opacity .15s,transform .15s;box-shadow:0 1px 4px #33415540}.aq-primary-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.aq-primary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.aq-graded-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#0e7490;border:none;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500;transition:opacity .15s,transform .15s;box-shadow:0 1px 4px #0e749040}.aq-graded-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.aq-graded-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.aq-more-wrap{outline:none;display:inline-flex;position:relative}.aq-more-wrap>button{color:#64748b;cursor:pointer;letter-spacing:1px;background:0 0;border:1.5px solid #0000;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-family:inherit;font-size:1.15rem;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.aq-more-wrap>button:hover{color:#334155;background:#f1f5f9;border-color:#e2e8f0}.aq-more-wrap .absolute{padding:4px 0;border-radius:8px!important;width:max-content!important;min-width:10rem!important;box-shadow:0 12px 28px #0000001f,0 4px 12px #00000014!important}.aq-more-wrap .absolute button,.aq-more-wrap .absolute a{white-space:nowrap;align-items:center;gap:6px;font-weight:500;transition:background .12s,color .12s;padding:9px 14px!important;font-size:.875rem!important;display:flex!important}.btn-delete{color:#dc2626;cursor:pointer;white-space:nowrap;background:#fef2f2;border:1.5px solid #fecaca;border-radius:7px;padding:4px 12px;font-family:inherit;font-size:.78rem;font-weight:700;transition:background .15s,color .15s,border-color .15s,opacity .15s}.btn-delete:hover:not(:disabled){color:#fff;background:#dc2626;border-color:#dc2626}.btn-delete:disabled{opacity:.45;cursor:not-allowed}@media (width<=1100px){.admin-query-filters{grid-template-columns:1fr 1fr 1fr}}@media (width<=700px){.admin-query-page{padding:16px 12px}.admin-query-filters{grid-template-columns:1fr 1fr}.aq-btn-row{flex-wrap:wrap}.aq-search-btn,.aq-reset-btn,.aq-export-btn{width:100%;min-width:0}.aq-export-btn{margin-left:0}}@media (width<=440px){.admin-query-filters{grid-template-columns:1fr}}.tp-panel{text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:14px;grid-column:1/-1;padding:0;overflow:hidden;box-shadow:0 1px 4px #0000000d}.tp-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.tp-header-left{align-items:center;gap:8px;display:flex}.tp-header-icon{color:#475569;align-items:center;display:flex}.tp-header-title{color:#1e293b;letter-spacing:-.2px;font-size:.92rem;font-weight:700}.tp-header-total{color:#94a3b8;font-size:.78rem;font-weight:500}.tp-header-total strong{color:#475569;font-weight:700}.tp-list{flex-direction:column;display:flex}.tp-row-wrap{border-bottom:1px solid #f8fafc}.tp-row-wrap:last-child{border-bottom:none}.tp-row{cursor:pointer;color:#334155;text-align:left;background:0 0;border:none;grid-template-columns:10px 1fr 1.2fr auto auto 18px;align-items:center;gap:10px;width:100%;padding:13px 20px;font-family:inherit;font-size:.85rem;transition:background .12s;display:grid}.tp-row:hover{background:#f8fafc}.tp-row--done{opacity:.5}.tp-row--done:hover{opacity:.7}.tp-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.tp-dot--red{background:#ef4444;box-shadow:0 0 6px #ef444459}.tp-dot--yellow{background:#f59e0b;box-shadow:0 0 6px #f59e0b4d}.tp-dot--green{background:#22c55e;box-shadow:0 0 6px #22c55e4d}.tp-dot--gray{background:#d1d5db}.tp-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.tp-subjects{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.tp-count{color:#475569;white-space:nowrap;text-align:right;font-size:.82rem}.tp-count strong{color:#1e293b;font-weight:800}.tp-count--zero{color:#94a3b8;font-weight:500}.tp-last{color:#94a3b8;white-space:nowrap;text-align:right;min-width:60px;font-size:.72rem}.tp-chevron{color:#cbd5e1;justify-content:center;align-items:center;transition:transform .2s,color .15s;display:flex}.tp-chevron--open{color:#64748b;transform:rotate(180deg)}.tp-breakdown{flex-wrap:wrap;gap:6px 12px;padding:0 20px 14px 40px;animation:.15s ease-out tp-slide-in;display:flex}@keyframes tp-slide-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tp-bd-item{background:#f1f5f9;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;font-size:.76rem;display:inline-flex}.tp-bd-subject{color:#475569;font-weight:600}.tp-bd-count{color:#94a3b8}.tp-loading,.tp-empty{text-align:center;color:#94a3b8;padding:24px 20px;font-size:.85rem}@media (width<=640px){.tp-row{grid-template-columns:10px 1fr auto 18px;gap:8px;padding:12px 16px}.tp-subjects,.tp-last{display:none}.tp-header{padding:14px 16px}.tp-breakdown{padding-left:34px}}:root{--bg-page:#f8fafc;--bg-surface:#fff;--border:#e2e8f0;--border-light:#f1f5f9;--tx-1:#0f172a;--tx-2:#64748b;--tx-3:#94a3b8;--danger:#dc2626;--danger-pale:#fef2f2;--success:#059669;--shadow-sm:0 1px 3px #00000014;--r-card:8px;--r-btn:6px;--r-chip:100px;--header-h:52px;--accent:#334155}.page{background:var(--bg-page);flex-direction:column;min-height:100svh;font-family:system-ui,-apple-system,Segoe UI,sans-serif;display:flex}.site-header{height:var(--header-h);z-index:100;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;width:100%;max-width:1100px;margin:0 auto;display:flex}.header-brand{align-items:center;gap:8px;display:flex}.header-logo-mark{color:#f1f5f9;letter-spacing:2px;background:#334155;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.05rem;font-weight:800;line-height:1;display:flex}.header-brand-name{color:#f1f5f9;font-size:.9375rem;font-weight:700}.header-divider{color:#ffffff40;-webkit-user-select:none;user-select:none;font-weight:300}.header-brand-sub{color:#94a3b8;font-size:.8125rem;font-weight:500}.header-actions{align-items:center;gap:8px;display:flex}.db-indicator{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.db-indicator--checking{background:var(--tx-3)}.db-indicator--healthy{background:var(--success)}.db-indicator--unhealthy{background:var(--danger)}.role-badge{border-radius:var(--r-chip);color:#cbd5e1;background:#ffffff14;border:1px solid #ffffff24;padding:3px 10px;font-size:.75rem;font-weight:600}.btn-logout{border-radius:var(--r-btn);color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #ffffff26;height:28px;padding:0 12px;font-family:inherit;font-size:.8125rem;font-weight:500;line-height:1;transition:background .15s,color .15s,border-color .15s}.btn-logout:hover{color:#fca5a5;background:#dc26262e;border-color:#dc262659}.dash-main{box-sizing:border-box;flex:1;width:100%;max-width:1100px;margin:0 auto;padding:28px 24px 48px}.dash-welcome{margin-bottom:20px}.welcome-greeting{color:#64748b;margin:0 0 4px;font-size:1rem;font-weight:600}.welcome-heading{letter-spacing:-.4px;color:var(--tx-1)!important;margin:0 0 3px!important;font-size:1.25rem!important;font-weight:700!important;line-height:1.3!important}.welcome-meta{color:#64748b;margin:0;font-size:.875rem;font-weight:500}.bento-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.bc{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;flex-direction:column;gap:5px;padding:16px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex;position:relative;overflow:hidden}.bc:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 10px #00000014}.bc:active{box-shadow:var(--shadow-sm)}.bc--primary:before,.bc--teal:before,.bc--indigo:before,.bc--amber:before{display:none}.bc--primary,.bc--teal,.bc--indigo,.bc--amber,.bc--primary:hover,.bc--teal:hover,.bc--indigo:hover,.bc--amber:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}.bc--primary:hover,.bc--teal:hover,.bc--indigo:hover,.bc--amber:hover{border-color:#d1d5db;box-shadow:0 2px 8px #00000012}.bc--wide{grid-column:span 1}.bc--tall{grid-row:span 1}.bc-system-strip{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-sm);grid-column:1/-1;align-items:stretch;display:flex;overflow:hidden}.bc-system-half{cursor:pointer;flex-direction:column;flex:1;gap:5px;padding:16px;transition:background .12s;display:flex}.bc-system-half:hover{background:#f1f5f9}.bc-system-half:hover .bc-arrow{color:var(--tx-2)}.bc-system-divider{background:var(--border);flex-shrink:0;width:1px;margin:12px 0}.bc-top{justify-content:space-between;align-items:flex-start;margin-bottom:2px;display:flex}.bc-label{letter-spacing:.2px;color:var(--tx-2)!important;margin:0!important;font-size:.75rem!important;font-weight:600!important;line-height:1!important}.bc--primary .bc-label,.bc--teal .bc-label,.bc--indigo .bc-label,.bc--amber .bc-label{color:var(--tx-2)!important}.bc-icon{background:var(--border-light);width:32px;height:32px;color:var(--tx-2);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.bc-icon svg{display:block}.bc-icon--primary,.bc-icon--teal,.bc-icon--indigo,.bc-icon--amber,.bc-icon--gray{background:var(--border-light);color:var(--tx-2)}.bc-arrow{color:var(--tx-3);margin-top:1px;font-size:1rem;line-height:1;transition:color .15s}.bc:hover .bc-arrow{color:var(--tx-2)}.bc-title{letter-spacing:-.3px;color:var(--tx-1)!important;margin:0!important;font-size:1rem!important;font-weight:700!important;line-height:1.3!important}.bc-desc{color:var(--tx-2)!important;margin:0!important;font-size:.875rem!important;line-height:1.5!important}.bc-hero,.bc-mini-stats,.bc-data-panel,.bc-metric-panel,.bc-chips{display:none}.bc-action-strip{border-top:1px solid var(--border-light);align-items:center;margin-top:8px;padding-top:10px;display:flex}.bc-action-link{color:var(--tx-1);font-size:.875rem;font-weight:600;transition:color .15s}.bc:hover .bc-action-link{color:var(--tx-1)}.site-footer{border-top:1px solid var(--border);background:#f1f5f9;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:8px 24px;display:flex}.footer-txt{color:#64748b;font-size:.75rem}.footer-sep{color:#94a3b8;font-size:.75rem}.subtitle{display:none}.ann-board{margin-top:32px}.ann-board-title{color:var(--tx-1);letter-spacing:-.3px;border-bottom:2px solid #cbd5e1;margin:0 0 12px;padding-bottom:10px;font-size:1.125rem;font-weight:700;display:inline-block}.ann-board-empty{color:var(--tx-3);padding:20px 0;font-size:.875rem}.ann-board-list{background:var(--bg-surface);border-radius:var(--r-card);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden}.ann-board-item{border-bottom:1px solid var(--border)}.ann-board-item:last-child{border-bottom:none}.ann-board-row{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:15px 18px;font-family:inherit;transition:background .1s;display:flex}.ann-board-row:hover{background:#f1f5f9}.ann-board-row-title{color:var(--tx-1);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.9375rem;font-weight:500;overflow:hidden}.ann-board-row-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.ann-board-row-date{color:var(--tx-3);white-space:nowrap;font-size:.75rem}.ann-board-chevron{color:#94a3b8;-webkit-user-select:none;user-select:none;font-size:1.25rem;line-height:1;transition:transform .2s}.ann-board-chevron.open{transform:rotate(90deg)}.ann-board-content{background:#f8fafc;border-top:1px solid #e2e8f0;padding:16px 18px 20px}.ann-board-content-body{color:#334155;white-space:pre-wrap;text-align:left;border-left:3px solid #cbd5e1;margin:0;padding-left:12px;font-size:.9375rem;line-height:1.85}.ann-board-links{border-top:1px solid #e2e8f0;flex-direction:column;gap:6px;margin-top:14px;padding-top:12px;display:flex}.ann-board-link-btn{color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;padding:9px 14px;font-size:.875rem;text-decoration:none;transition:border-color .15s,color .15s,background .15s;display:flex}.ann-board-link-btn:hover{color:#1e293b;background:#f1f5f9;border-color:#334155}.ann-board-link-btn svg{color:#94a3b8;flex-shrink:0;transition:color .15s}.ann-board-link-btn:hover svg{color:#334155}.ann-modal-overlay{z-index:8000;background:#00000073;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out ann-modal-fade;display:flex;position:fixed;inset:0}@keyframes ann-modal-fade{0%{opacity:0}to{opacity:1}}.ann-modal{background:#fff;border-radius:14px;flex-direction:column;width:100%;max-width:560px;max-height:80vh;animation:.2s ease-out ann-modal-slide;display:flex;overflow:hidden;box-shadow:0 16px 48px #0000002e}@keyframes ann-modal-slide{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.ann-modal-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 32px 0;display:flex}.ann-modal-title{color:#1e293b;margin:0;font-size:1.1rem;font-weight:700;line-height:1.45}.ann-modal-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:24px;line-height:1;transition:color .15s}.ann-modal-close:hover{color:#334155}.ann-modal-date{color:#94a3b8;text-align:left;padding:6px 32px 0;font-size:.78rem;display:block}.ann-modal-body{text-align:left;padding:18px 32px 28px;overflow-y:auto}.ann-modal-content{color:#334155;white-space:pre-wrap;margin:0;font-size:.95rem;line-height:1.85}.ann-modal-body .ann-board-links{border-top:1px solid #e2e8f0}@media (width<=640px){.ann-modal-overlay{padding:16px}.ann-modal{border-radius:12px;max-width:100%;max-height:85vh}.ann-modal-header{padding:16px 16px 0}.ann-modal-date{padding:4px 16px 0}.ann-modal-body{padding:14px 16px 20px}.ann-modal-title{font-size:1rem}}@media (width<=768px){.bento-grid{grid-template-columns:1fr;gap:8px}.bc-system-strip{flex-direction:column;grid-column:span 1}.bc-system-divider{width:auto;height:1px;margin:0 12px}}@media (width<=640px){.site-header{height:48px;padding:0 16px}.header-divider,.header-brand-sub{font-size:.75rem}.btn-logout{height:36px;padding:0 14px;font-size:.875rem}.dash-main{padding:20px 16px 40px}.dash-welcome{margin-bottom:16px}.ann-board{margin-top:20px}.ann-board-row-date{font-size:.68rem}}.confirm-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.confirm-modal{text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:16px;width:100%;max-width:360px;padding:28px 28px 24px;box-shadow:0 8px 40px #00000026}.confirm-modal-icon{color:var(--accent);justify-content:center;margin-bottom:10px;display:flex}.confirm-modal-title{color:#1e293b;margin:0 0 10px;font-size:1.05rem;font-weight:800}.confirm-modal-msg{color:#64748b;white-space:pre-line;margin:0 0 22px;font-size:.875rem;line-height:1.65}.confirm-modal-actions{gap:10px;display:flex}.confirm-btn-cancel{color:#475569;cursor:pointer;background:#f1f5f9;border:1.5px solid #e2e8f0;border-radius:10px;flex:1;padding:9px 0;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .15s}.confirm-btn-cancel:hover{background:#e2e8f0}.confirm-btn-danger{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:10px;flex:1;padding:9px 0;font-family:inherit;font-size:.9rem;font-weight:700;transition:opacity .15s;box-shadow:0 2px 8px #dc26264d}.confirm-btn-danger:hover{opacity:.88}.draft-warning-banner{cursor:pointer;background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%);border:1.5px solid #fca5a5;border-left:5px solid #dc2626;border-radius:10px;align-items:center;gap:14px;margin:0 0 18px;padding:14px 18px;transition:background .15s,transform .15s,box-shadow .15s;display:flex;box-shadow:0 2px 8px #dc26261a}.draft-warning-banner:hover{background:linear-gradient(135deg,#fee2e2 0%,#fecaca 100%);transform:translateY(-1px);box-shadow:0 4px 14px #dc26262e}.draft-warning-banner:focus-visible{outline-offset:2px;outline:2px solid #dc2626}.draft-warning-icon{color:#dc2626;flex-shrink:0;justify-content:center;align-items:center;display:flex}.draft-warning-text{flex:1;min-width:0}.draft-warning-text strong{color:#991b1b;margin-bottom:2px;font-size:.98rem;font-weight:700;display:block}.draft-warning-text p{color:#b91c1c;margin:0;font-size:.82rem;line-height:1.45}.draft-warning-arrow{color:#dc2626;flex-shrink:0;font-size:1.6rem;font-weight:300;line-height:1}@media (width<=640px){.draft-warning-banner{gap:10px;padding:12px 14px}.draft-warning-text strong{font-size:.92rem}.draft-warning-text p{font-size:.76rem}}.regraded-notice-banner{cursor:pointer;text-align:left;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;align-items:center;gap:14px;margin:0 0 18px;padding:16px 20px;transition:background .15s,transform .15s,box-shadow .15s;display:flex;box-shadow:0 1px 4px #0000000f}.regraded-notice-banner:hover{background:#dcfce7;transform:translateY(-1px);box-shadow:0 3px 10px #00000014}.regraded-notice-banner:focus-visible{outline-offset:2px;outline:2px solid #059669}.regraded-notice-icon{color:#fff;background:#059669;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 2px 6px #05966959}.regraded-notice-text{text-align:left;flex:1;min-width:0}.regraded-notice-text strong{color:#064e3b;letter-spacing:.01em;margin-bottom:3px;font-size:.98rem;font-weight:700;display:block}.regraded-notice-text p{color:#047857;margin:0;font-size:.82rem;line-height:1.45}.regraded-notice-arrow{color:#059669;flex-shrink:0;font-size:1.6rem;font-weight:300;line-height:1}@media (width<=640px){.regraded-notice-banner{gap:10px;padding:12px 14px}.regraded-notice-icon{width:34px;height:34px}.regraded-notice-text strong{font-size:.92rem}.regraded-notice-text p{font-size:.76rem}}
