@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-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}}}@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;--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{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.block{display:block}.flex{display:flex}.grid{display:grid}.table{display:table}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.italic{font-style:italic}.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,)}}:root{--ink:#193142;--muted:#647482;--paper:#f4f1e9;--surface:#fffefa;--surface-strong:#fffefaeb;--line:#d9ddd9;--brand:#123d5c;--brand-soft:#dbe8ec;--gold:#ca9f53;--shadow:0 18px 50px #21343e1a}:root[data-theme=dark]{--ink:#f2f6fb;--muted:#9fb0c3;--paper:#08111a;--surface:#101b26;--surface-strong:#101b26f0;--line:#233546;--brand:#f2f6fb;--brand-soft:#172636;--gold:#f5c978;--shadow:0 20px 60px #00000061}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;transition:background-color .18s,color .18s}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:radial-gradient(circle at 84% 8%, #cfded975, transparent 22rem), var(--paper);min-height:100vh;margin:0;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif}html[data-theme=dark] body{background:radial-gradient(circle at 18% 0,#547baa33,#0000 24rem),radial-gradient(circle at 85% 10%,#cf9f531a,#0000 18rem),linear-gradient(#08111a,#0b1520 48%,#08111a)}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit}select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.eyebrow{color:#4b7683;letter-spacing:.15em;text-transform:uppercase;margin:0 0 .7rem;font-size:.72rem;font-weight:800}.muted{color:var(--muted)}.brand-mark{color:#fff;letter-spacing:.12em;border:1px solid #ffffff7a;border-radius:50%;place-items:center;width:4.6rem;height:4.6rem;font-family:Georgia,serif;font-size:1.35rem;display:grid}.brand-mark.compact{border-color:#ffffff47;flex:none;width:2.65rem;height:2.65rem;font-size:.8rem}.login-page{grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);min-height:100vh;display:grid}.login-brand{color:#eaf2f1;background:linear-gradient(135deg,#0c324bf5,#20575ee8),repeating-linear-gradient(116deg,#0000 0 92px,#ffffff0d 92px 93px);flex-direction:column;justify-content:center;min-height:100vh;padding:clamp(3rem,8vw,8rem);display:flex;position:relative;overflow:hidden}.login-brand:after{content:"";border:1px solid #ffffff2e;border-radius:50%;width:30rem;height:30rem;position:absolute;bottom:-11rem;right:-9rem;box-shadow:0 0 0 5rem #ffffff08,0 0 0 10rem #ffffff05}.login-brand .brand-mark{margin-bottom:clamp(3.5rem,10vh,7rem)}.login-brand .eyebrow{color:#c6d8d9}.login-brand h1{letter-spacing:-.05em;max-width:13ch;margin:0;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:clamp(2.6rem,5.5vw,5.5rem);font-weight:500;line-height:1.13}.login-brand>p:not(.eyebrow){color:#c9dbdc;max-width:37rem;margin:2rem 0;font-size:1rem;line-height:1.9}.login-points{z-index:1;flex-wrap:wrap;gap:.7rem;display:flex}.login-points span{color:#eaf2f1;border:1px solid #ffffff3d;border-radius:999px;padding:.48rem .8rem;font-size:.78rem}.login-panel{place-items:center;padding:2rem;display:grid}.login-card{width:min(100%,28rem);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffefae0;border:1px solid #19314217;border-radius:1.3rem;padding:clamp(2rem,5vw,3.6rem)}.login-card h2{margin:0;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:2.3rem;font-weight:500}.login-card>.muted{margin:.7rem 0 2rem;font-size:.92rem}.login-form{gap:.7rem;display:grid}.login-form label{margin-top:.6rem;font-size:.82rem;font-weight:700}.login-form input{width:100%;height:3.2rem;color:var(--ink);background:#fff;border:1px solid #c8d0d2;border-radius:.65rem;outline:none;padding:0 .95rem;transition:border-color .16s,box-shadow .16s}.login-form input:focus{border-color:#3c7585;box-shadow:0 0 0 3px #3c758524}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:.65rem;justify-content:center;align-items:center;min-height:3.1rem;font-weight:750;transition:transform .15s,opacity .15s,box-shadow .15s,background .15s,color .15s;display:inline-flex;box-shadow:0 10px 24px #123d5c1a}.primary-button{color:#fff;background:var(--brand);margin-top:1rem}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px);box-shadow:0 14px 28px #123d5c29}.primary-button:disabled{cursor:wait;color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.primary-button:disabled{color:color-mix(in srgb, var(--ink) 78%, white 22%)}}.primary-button:disabled{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.primary-button:disabled{background:color-mix(in srgb, var(--brand-soft) 82%, white 18%)}}.primary-button:disabled{box-shadow:none;opacity:1}.secondary-button{color:var(--brand);background:var(--brand-soft);padding:0 1.25rem}.theme-toggle-panel{border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:.55rem;margin:0 0 1.25rem;padding:.4rem;display:grid}@supports (color:color-mix(in lab, red, red)){.theme-toggle-panel{border:1px solid color-mix(in srgb, var(--line) 82%, white 18%)}}.theme-toggle-panel{background:var(--surface);border-radius:1.1rem}@supports (color:color-mix(in lab, red, red)){.theme-toggle-panel{background:color-mix(in srgb, var(--surface) 85%, white 15%)}}.theme-toggle-panel{box-shadow:inset 0 1px #ffffff38}.theme-button{border:1px solid var(--line);min-height:2.9rem;color:var(--ink);cursor:pointer;background:#ffffff8c;border-radius:999px;justify-content:center;align-items:center;padding:0 1rem;font-size:.85rem;font-weight:800;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s,color .15s;display:inline-flex}.theme-button:hover{transform:translateY(-1px)}.theme-button.active{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.theme-button.active{border-color:color-mix(in srgb, var(--brand) 65%, white 35%)}}.theme-button.active{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.theme-button.active{background:color-mix(in srgb, var(--brand-soft) 70%, white 30%)}}.theme-button.active{box-shadow:0 10px 24px #123d5c29}.theme-button.dark-glow{color:#eef5ff;text-shadow:0 1px 10px #06101c73;background:radial-gradient(circle at 20% 20%,#ffffff38,#0000 18%),radial-gradient(circle at 78% 28%,#f5c9782e,#0000 16%),linear-gradient(135deg,#101a28,#17283a)}html[data-theme=dark] .theme-button{color:#d8e4ef;background:#12202e}html[data-theme=dark] .theme-button.active{color:#fff8e6;background:radial-gradient(circle at 25% 20%,#f5c97842,#0000 32%),linear-gradient(135deg,#142537,#1a3148);border-color:#f5c978;box-shadow:0 0 0 1px #f5c9782e,0 14px 36px #00000052}html[data-theme=dark] .theme-button.dark-glow{box-shadow:inset 0 0 18px #ffffff08,0 0 0 1px #ffffff08}html[data-theme=dark] .login-card,html[data-theme=dark] .parent-card,html[data-theme=dark] .record-form,html[data-theme=dark] .record-panel,html[data-theme=dark] .attendance-roster,html[data-theme=dark] .module-card,html[data-theme=dark] .empty-state,html[data-theme=dark] .stat-grid article{background:var(--surface);border-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){html[data-theme=dark] .login-card,html[data-theme=dark] .parent-card,html[data-theme=dark] .record-form,html[data-theme=dark] .record-panel,html[data-theme=dark] .attendance-roster,html[data-theme=dark] .module-card,html[data-theme=dark] .empty-state,html[data-theme=dark] .stat-grid article{background:color-mix(in srgb, var(--surface) 94%, #132130 6%)}}html[data-theme=dark] .login-card,html[data-theme=dark] .parent-card,html[data-theme=dark] .record-form,html[data-theme=dark] .record-panel,html[data-theme=dark] .attendance-roster,html[data-theme=dark] .module-card,html[data-theme=dark] .empty-state,html[data-theme=dark] .stat-grid article{box-shadow:0 20px 48px #00000047}html[data-theme=dark] .workflow-strip,html[data-theme=dark] .search-box,html[data-theme=dark] .table-detail-panel,html[data-theme=dark] .attendance-card{background:var(--surface);border-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){html[data-theme=dark] .workflow-strip,html[data-theme=dark] .search-box,html[data-theme=dark] .table-detail-panel,html[data-theme=dark] .attendance-card{background:color-mix(in srgb, var(--surface) 92%, #132130 8%)}}html[data-theme=dark] .payroll-control{background:var(--surface);border:1px solid #ffffff14}@supports (color:color-mix(in lab, red, red)){html[data-theme=dark] .payroll-control{background:color-mix(in srgb, var(--surface) 92%, #132130 8%)}}html[data-theme=dark] .search-box button,html[data-theme=dark] .secondary-button,html[data-theme=dark] .table-action,html[data-theme=dark] .selection-summary{color:#f4f8ff;background:linear-gradient(135deg,#1e2e3ef5,#14202ef5);border-color:#ffffff1f}html[data-theme=dark] .primary-button,html[data-theme=dark] .primary-action{color:#fff9ee;background:linear-gradient(135deg,#274861,#19354a);border:1px solid #f5c9782e;box-shadow:0 14px 28px #00000042,inset 0 1px #ffffff14}html[data-theme=dark] .primary-button:hover,html[data-theme=dark] .primary-action:hover,html[data-theme=dark] .secondary-button:hover,html[data-theme=dark] .table-action:hover,html[data-theme=dark] .search-box button:hover,html[data-theme=dark] .review-action:hover{box-shadow:0 16px 28px #00000052,0 0 0 1px #f5c9781a}html[data-theme=dark] .table-action.danger,html[data-theme=dark] .manager-message,html[data-theme=dark] .form-error{color:#ffb9b9}html[data-theme=dark] .table-action.danger{color:#ffe7e7;background:linear-gradient(135deg,#5c2020eb,#491616f5);border-color:#ff8f8f38}html[data-theme=dark] .manager-message{background:#66282870}html[data-theme=dark] .manager-message.success{color:#9be1c2;background:#1a4a367a}html[data-theme=dark] .status-pill.active{color:#9ff2d0;background:#174a37ad}html[data-theme=dark] .status-pill.pending{color:#ffd991;background:#4a3612c2}html[data-theme=dark] .status-pill.archived{color:#d9c6d0;background:#40323bbd}html[data-theme=dark] .inline-notice{color:#f7d894;background:#5d461c75}html[data-theme=dark] .record-table th,html[data-theme=dark] .record-panel-heading,html[data-theme=dark] .attendance-roster>header{color:#b8c8d8;background:#12202ee0;border-color:#ffffff14}html[data-theme=dark] .record-table td,html[data-theme=dark] .workflow-strip>*,html[data-theme=dark] .table-detail-cell{border-color:#ffffff12}html[data-theme=dark] .record-table tbody tr:hover,html[data-theme=dark] .workflow-strip>:hover,html[data-theme=dark] .workflow-strip>:focus-visible{background:#1c2f4294}html[data-theme=dark] .record-table code,html[data-theme=dark] .record-name-button span,html[data-theme=dark] .module-chip,html[data-theme=dark] .environment-badge,html[data-theme=dark] .foundation-list span{color:#a8c0d5}html[data-theme=dark] .payroll-summary>div{background:#0e1c29e0;border:1px solid #ffffff14;box-shadow:inset 0 1px #ffffff0a,0 12px 24px #0000002e}html[data-theme=dark] .payroll-summary span,html[data-theme=dark] .payroll-control label span{color:#97abc0}html[data-theme=dark] .payroll-summary strong{color:var(--ink)}html[data-theme=dark] .payroll-control input,html[data-theme=dark] .record-panel-heading select{color:var(--ink);background:#0b1722eb;border-color:#ffffff1a}html[data-theme=dark] .payroll-control input:focus,html[data-theme=dark] .record-panel-heading select:focus{border-color:#f5c978;box-shadow:0 0 0 3px #f5c97829}html[data-theme=dark] .form-grid input,html[data-theme=dark] .form-grid select,html[data-theme=dark] .form-grid textarea,html[data-theme=dark] .parent-auth-form input,html[data-theme=dark] .parent-form-grid input,html[data-theme=dark] .parent-form-grid textarea,html[data-theme=dark] .review-note-field textarea,html[data-theme=dark] .role-switcher select{color:var(--ink);background:#0b1722eb;border-color:#ffffff1a}html[data-theme=dark] .form-grid input:focus,html[data-theme=dark] .form-grid select:focus,html[data-theme=dark] .parent-auth-form input:focus,html[data-theme=dark] .parent-form-grid input:focus,html[data-theme=dark] .parent-form-grid textarea:focus,html[data-theme=dark] .review-note-field textarea:focus,html[data-theme=dark] .role-switcher select:focus{border-color:#f5c978;box-shadow:0 0 0 3px #f5c97829}html[data-theme=dark] .search-box input::placeholder,html[data-theme=dark] .form-grid input::placeholder,html[data-theme=dark] .form-grid textarea::placeholder,html[data-theme=dark] .parent-auth-form input::placeholder,html[data-theme=dark] .parent-form-grid input::placeholder,html[data-theme=dark] .parent-form-grid textarea::placeholder{color:#7e91a5}html[data-theme=dark] .table-detail-grid label,html[data-theme=dark] .table-detail-grid fieldset,html[data-theme=dark] .checkbox-item{background:#0e1c29e0;border-color:#ffffff1a;box-shadow:inset 0 1px #ffffff0a,0 12px 24px #0000002e}html[data-theme=dark] .table-detail-grid input,html[data-theme=dark] .table-detail-grid select,html[data-theme=dark] .table-detail-grid textarea{color:var(--ink);background:#09141ef5;border-color:#ffffff1a}html[data-theme=dark] .table-detail-grid input:focus,html[data-theme=dark] .table-detail-grid select:focus,html[data-theme=dark] .table-detail-grid textarea:focus{border-color:#f5c978;box-shadow:0 0 0 3px #f5c97829}html[data-theme=dark] .primary-button:disabled,html[data-theme=dark] .primary-action:disabled,html[data-theme=dark] .review-action:disabled,html[data-theme=dark] .table-action:disabled{color:#d9e5ef;background:linear-gradient(135deg,#344352f5,#435463f5);border-color:#f5c97838;box-shadow:inset 0 1px #ffffff0f}html[data-theme=dark] button:not(.primary-button):not(.primary-action):not(.secondary-button):not(.table-action):not(.theme-button):not(.review-action){color:#e8f0fb}html[data-theme=dark] .sidebar-user button,html[data-theme=dark] .audit-filter-grid button,html[data-theme=dark] .import-panel .manager-toolbar button{color:#e8f0fb;background:linear-gradient(135deg,#1e2e3ef5,#14202ef5);border-color:#ffffff1f}html[data-theme=dark] .record-name-button{color:#f2f7ff}html[data-theme=dark] .record-name-button span{color:#9ac6d0}html[data-theme=dark] .search-box button{color:#f5fbff;border-left-color:#ffffff1a}html[data-theme=dark] .secondary-button{color:#f3f7ff}html[data-theme=dark] .primary-button:disabled,html[data-theme=dark] .primary-action:disabled,html[data-theme=dark] .review-action:disabled,html[data-theme=dark] .table-action:disabled{color:#cbd8e6;background:linear-gradient(135deg,#2f3d4cf5,#242f3af5);border-color:#ffffff1a}.primary-button:focus-visible,.secondary-button:focus-visible,.theme-button:focus-visible,.primary-action:focus-visible,.table-action:focus-visible,.search-box button:focus-visible,.menu-button:focus-visible,.record-name-button:focus-visible{box-shadow:0 0 0 3px var(--brand), 0 0 0 6px var(--gold);outline:0}@supports (color:color-mix(in lab, red, red)){.primary-button:focus-visible,.secondary-button:focus-visible,.theme-button:focus-visible,.primary-action:focus-visible,.table-action:focus-visible,.search-box button:focus-visible,.menu-button:focus-visible,.record-name-button:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent), 0 0 0 6px color-mix(in srgb, var(--gold) 26%, transparent)}}.form-error{color:#a23434;margin:.3rem 0 0;font-size:.82rem}.field-hint{color:var(--muted);gap:.25rem;margin-top:.45rem;font-size:.72rem;display:grid}.field-check{color:#7d5b1e}.field-check.ok{color:#22664f}.inline-help{color:var(--muted);text-transform:none;margin-top:.25rem;font-size:.72rem;font-weight:500;line-height:1.5;display:block}.security-note{color:#7a858d;margin:1.6rem 0 0;font-size:.75rem;line-height:1.7}.parent-entry-link,.parent-back-link{color:#2d6571;text-align:center;margin-top:1.2rem;font-size:.82rem;font-weight:750;display:block}.parent-portal-page{background:radial-gradient(circle at 10% 5%,#b47f312e,#0000 26rem),linear-gradient(145deg,#f8f5ec,#edf2ef);min-height:100vh;padding:1.2rem}.parent-portal-brand{max-width:62rem;color:var(--brand);align-items:center;gap:.7rem;margin:0 auto 1.2rem;display:flex}.parent-portal-brand span{color:#fff;background:var(--brand);border-radius:50%;place-items:center;width:2.6rem;height:2.6rem;font-family:Georgia,serif;display:grid}.parent-card,.parent-portal-content{width:min(100%,62rem);margin:0 auto}.parent-card{background:#fffffcf0;border:1px solid #1931421a;border-radius:1rem;padding:clamp(1.2rem,4vw,2rem);box-shadow:0 1rem 3rem #1c303714}.parent-auth-form{gap:.75rem;width:min(100%,31rem);margin-top:clamp(2rem,8vh,6rem);display:grid}.parent-auth-form h1,.parent-portal-header h1{margin:0;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:clamp(2rem,7vw,3.2rem);font-weight:500}.parent-auth-form label,.parent-form-grid label,.review-note-field{gap:.45rem;display:grid}.parent-auth-form label>span,.parent-form-grid label>span,.review-note-field>span{font-size:.78rem;font-weight:750}.parent-auth-form input,.parent-form-grid input,.parent-form-grid textarea,.review-note-field textarea,.form-grid textarea{width:100%;min-height:3rem;color:var(--ink);background:#fff;border:1px solid #cbd4d4;border-radius:.65rem;outline:none;padding:.7rem .85rem}.parent-loading{color:var(--muted);text-align:center;margin-top:20vh}.parent-portal-header{justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 0 1.5rem;display:flex}.parent-portal-header p{color:var(--muted)}.parent-payment-list{gap:1rem;display:grid}.payment-due-card{justify-content:space-between;align-items:center;gap:1rem;display:flex}.payment-due-card h2{margin:.2rem 0 .8rem;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-weight:600}.payment-due-card>div>span,.payment-report-status p{color:var(--muted);font-size:.75rem}.payment-due-card>div>strong{font-size:1.35rem}.payment-report-status{text-align:right}.parent-payment-form{margin-top:1rem}.parent-payment-form>header{justify-content:space-between;align-items:flex-start;display:flex}.parent-payment-form h2{margin:0;font-family:Noto Serif TC,Songti TC,Georgia,serif}.parent-form-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.3rem;display:grid}.parent-form-span{grid-column:1/-1}.payment-review-form{border-left:3px solid var(--gold)}.payment-review-summary{grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1rem;display:grid}.payment-review-summary>div{background:#f2f3ee;border-radius:.7rem;gap:.25rem;padding:.9rem;display:grid}.payment-review-summary span{color:var(--muted);font-size:.7rem}.review-actions{flex-wrap:wrap;gap:.65rem;display:flex}.review-action{cursor:pointer;border:0;border-radius:.6rem;min-height:2.8rem;padding:0 1rem;font-weight:750}.review-action.warning{color:#7d5b1e;background:#f8eac7}.review-action.danger{color:#8d3636;background:#fae4e1}.review-action:disabled{cursor:not-allowed;color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.review-action:disabled{color:color-mix(in srgb, var(--ink) 78%, white 22%)}}.review-action:disabled{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.review-action:disabled{background:color-mix(in srgb, var(--brand-soft) 82%, white 18%)}}.review-action:disabled{box-shadow:none;opacity:1}.approval-review-form{border-left:3px solid #8d5c72}.approval-target-summary{grid-template-columns:minmax(12rem,.8fr) minmax(15rem,1.5fr);gap:.8rem;display:grid}.approval-target-summary>div{background:#f2f3ee;border-radius:.7rem;gap:.25rem;padding:.9rem;display:grid}.approval-target-summary span,.approval-diff>div>span{color:var(--muted);font-size:.7rem}.approval-target-summary code{color:#34606a}.approval-diff{grid-template-columns:1fr 1fr;gap:.8rem;margin:.9rem 0;display:grid}.approval-diff>div{background:#f7f5ef;border-radius:.7rem;min-width:0;padding:.9rem}.approval-diff pre{color:#4c626d;white-space:pre-wrap;margin:.45rem 0 0;font-size:.7rem;overflow-x:auto}.payroll-control{background:#eef2ed;border-radius:.8rem;flex-wrap:wrap;align-items:end;gap:.7rem;margin:1rem 0;padding:1rem;display:flex}.payroll-control label{gap:.35rem;display:grid}.payroll-control label span{font-size:.72rem;font-weight:750}.payroll-control input,.record-panel-heading select{background:#fff;border:1px solid #cbd4d4;border-radius:.6rem;min-height:2.8rem;padding:0 .75rem}.notification-channel-group{gap:.75rem;min-width:min(32rem,100%);display:grid}.notification-channel-group>span{font-size:.72rem;font-weight:750}.notification-channel-grid{grid-template-columns:repeat(3,minmax(12rem,1fr));gap:.75rem;display:grid}.notification-channel-item{cursor:pointer;background:#fff;border:1px solid #cbd4d4;border-radius:.8rem;grid-template-columns:auto 1fr;align-items:start;gap:.8rem;min-height:4.1rem;padding:.9rem 1rem;display:grid}.notification-channel-item input[type=checkbox]{accent-color:#2f6b8f;width:1.15rem;height:1.15rem;margin-top:.15rem}.notification-channel-item strong{color:var(--ink);display:block}.notification-channel-item p{color:var(--muted);margin:.2rem 0 0;font-size:.72rem;line-height:1.5}.payroll-summary{grid-template-columns:repeat(4,1fr);gap:.8rem;margin:1rem 0;display:grid}.payroll-summary>div{background:#f5f4ee;border-radius:.8rem;gap:.35rem;padding:1rem;display:grid}.payroll-summary span{color:var(--muted);font-size:.72rem}.payroll-summary strong{color:var(--ink);font-size:1.2rem}.payroll-teacher-grid{gap:1rem;display:grid}.payroll-teacher-card{background:linear-gradient(#fff 0%,#fbfcf8 100%);border:1px solid #19314217;border-radius:1rem;gap:1rem;padding:1rem;display:grid;box-shadow:0 12px 30px #1423370f}.payroll-teacher-card-head{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:.75rem;display:flex}.payroll-teacher-card-head h3{margin:.15rem 0 .25rem;font-size:1.1rem}.payroll-teacher-card-head p{color:var(--muted);margin:0}.payroll-teacher-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.payroll-teacher-summary>div{background:#f4f7f2;border-radius:.8rem;gap:.25rem;padding:.9rem 1rem;display:grid}.payroll-teacher-summary span{color:var(--muted);font-size:.72rem}.payroll-teacher-summary strong{color:var(--ink);font-size:1.05rem}.payroll-teacher-meta{color:var(--muted);flex-wrap:wrap;gap:.5rem;font-size:.74rem;display:flex}.payroll-teacher-meta span{background:#edf2f0;border-radius:999px;padding:.35rem .65rem}.payroll-items-panel{margin-top:1rem}.compact-empty{margin-top:.5rem}.payroll-rules-panel{margin-top:1rem}.notification-list{gap:.8rem;display:grid}.notification-card{background:#fff;border:1px solid #19314217;border-radius:.8rem;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem;display:flex}.notification-card.unread{background:#f3f7f8;border-left:4px solid #466f91}.notification-card h2,.notification-card p{margin:.2rem 0}.notification-card h2{font-size:1rem}.notification-card span,.notification-card time{color:var(--muted);font-size:.7rem}.record-table details pre{white-space:pre-wrap;max-width:30rem;font-size:.68rem;overflow-x:auto}.file-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.file-link-list{display:grid}.file-link-list a{min-height:4rem;color:var(--ink);border-top:1px solid #19314214;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.file-link-list span{color:var(--muted);font-size:.72rem}@media (max-width:820px){.file-grid{grid-template-columns:1fr}}.app-frame{min-height:100vh}.sidebar{z-index:30;color:#dbe9e8;background:linear-gradient(180deg, #103b4efa, #103443fc), var(--brand);flex-direction:column;width:17.5rem;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar-brand{align-items:center;gap:.85rem;padding:1.7rem 1.4rem 1.3rem;display:flex}.sidebar-brand strong,.sidebar-brand small,.sidebar-user strong,.sidebar-user small{display:block}.sidebar-brand strong{color:#fff;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:1.05rem;font-weight:600}.sidebar-brand small{color:#aac2c6;margin-top:.16rem;font-size:.68rem}.sidebar nav{flex:1;padding:.6rem .85rem 1.5rem}.nav-group{margin-top:1.1rem}.nav-group>p{color:#819ea4;letter-spacing:.13em;margin:0 0 .35rem;padding:0 .7rem;font-size:.64rem;font-weight:800}.nav-link{color:#c7d9da;border-radius:.55rem;align-items:center;gap:.72rem;min-height:2.65rem;margin:.12rem 0;padding:0 .72rem;font-size:.82rem;font-weight:650;transition:background .15s,color .15s;display:flex}.nav-link:hover,.nav-link.active{color:#fff;background:#ffffff1a}.nav-link.active{box-shadow:inset 2px 0 var(--gold)}.nav-dot{background:#8db4b5;border-radius:50%;flex:none;width:.42rem;height:.42rem}.sidebar-user{background:#ffffff0f;border:1px solid #ffffff17;border-radius:.8rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;margin:.8rem;padding:.85rem;display:grid}.avatar{color:#193e4d;background:#d6e3df;border-radius:50%;place-items:center;width:2.35rem;height:2.35rem;font-size:.7rem;font-weight:850;display:grid}.avatar.small{width:2rem;height:2rem}.sidebar-user strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;max-width:7rem;font-size:.75rem;overflow:hidden}.sidebar-user small{color:#9db8bc;font-size:.65rem}.sidebar-user button{cursor:pointer;color:#b9ccce;background:0 0;border:0;font-size:.68rem}.app-main{min-height:100vh;margin-left:17.5rem}.content-wrap{width:min(100%,96rem);margin:0 auto;padding:clamp(2.2rem,5vw,5.5rem)}.page-heading{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2.6rem;display:flex}.page-heading h1{letter-spacing:-.04em;margin:0;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:clamp(2.2rem,4.2vw,4rem);font-weight:500}.page-heading>div>p:last-child{color:var(--muted);margin:.8rem 0 0}.compact-heading{align-items:center}.environment-badge,.module-chip{display:none!important}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;display:grid}.stat-grid article{background:#fffefac2;border:1px solid #1931421a;border-radius:.9rem;min-height:9.5rem;padding:1.25rem}.stat-grid .stat-card{min-height:9.5rem;color:inherit;background:#fffefac2;border:1px solid #1931421a;border-radius:.9rem;padding:1.25rem;text-decoration:none;display:block}.stat-grid p{color:#526773;margin:0;font-size:.78rem;font-weight:700}.stat-grid strong{margin:1.05rem 0 .6rem;font-family:Georgia,serif;font-size:2rem;font-weight:500;display:block}.stat-link{color:inherit;text-decoration:none}.stat-link:focus-visible{outline-offset:4px;border-radius:8px;outline:2px solid}.stat-grid .stat-card:focus-visible{outline-offset:4px;outline:2px solid}.stat-grid small{color:#849098;font-size:.67rem}.section-heading{justify-content:space-between;align-items:flex-end;gap:2rem;margin:4.2rem 0 1.4rem;display:flex}.section-heading h2{margin:0;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:1.8rem;font-weight:550}.section-heading>p{color:var(--muted);font-size:.78rem}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}.module-card{background:#fffefad4;border:1px solid #1931421a;border-radius:.9rem;grid-template-columns:auto 1fr auto;align-items:start;gap:1rem;min-height:11.5rem;padding:1.35rem;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;position:relative;overflow:hidden}button.module-card{appearance:none;text-align:left;width:100%;font:inherit;background:inherit;cursor:pointer}.module-card:before{background:var(--module-accent);content:"";width:3px;position:absolute;inset:0 auto 0 0}.module-card:hover{border-color:var(--module-accent);transform:translateY(-3px)}@supports (color:color-mix(in lab, red, red)){.module-card:hover{border-color:color-mix(in srgb, var(--module-accent) 28%, white)}}.module-card:hover{box-shadow:var(--shadow)}button.module-card:focus-visible{outline:2px solid var(--module-accent);outline-offset:3px}.module-number{color:var(--module-accent);font-family:Georgia,serif;font-size:.7rem}.module-card p{color:#869096;letter-spacing:.08em;margin:0 0 .7rem;font-size:.63rem;font-weight:800}.module-card h3{margin:0 0 .65rem;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:1.2rem;font-weight:600}.module-card div span{color:var(--muted);font-size:.76rem;line-height:1.65}.module-card b{color:var(--module-accent);align-self:end;font-size:1.15rem;font-weight:400}.empty-state{text-align:center;background:#fffefab8;border:1px solid #1931421a;border-radius:1.2rem;flex-direction:column;justify-content:center;align-items:center;min-height:31rem;padding:3rem;display:flex}.empty-mark{width:4.7rem;height:4.7rem;color:var(--module-accent);background:var(--module-accent);border-radius:50%;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.empty-mark{background:color-mix(in srgb, var(--module-accent) 12%, white)}}.empty-mark{font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:1.7rem}.empty-state h2{margin:1.5rem 0 .7rem;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:1.8rem;font-weight:550}.empty-state>p{max-width:42rem;color:var(--muted);margin:0;line-height:1.8}.foundation-list{flex-wrap:wrap;justify-content:center;gap:.6rem;margin:1.8rem 0;display:flex}.foundation-list span{color:#566d77;background:#e9eeeb;border-radius:999px;padding:.45rem .75rem;font-size:.72rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.workflow-strip{background:#fffefac2;border:1px solid #1931421a;border-radius:.9rem;grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:1.2rem;display:grid;overflow:hidden}.workflow-strip>*{cursor:pointer;min-height:4.8rem;color:var(--ink);text-align:left;background:0 0;border:0;border-right:1px solid #19314217;align-items:center;gap:.65rem;padding:.9rem 1rem;display:flex;position:relative}.workflow-strip>:hover,.workflow-strip>:focus-visible{background:#e7efec}.workflow-strip>:last-child{border-right:0}.workflow-strip>:not(:last-child):after{z-index:1;content:"";background:#faf9f4;border-top:1px solid #c8d1d0;border-right:1px solid #c8d1d0;width:.6rem;height:.6rem;position:absolute;right:-.32rem;transform:rotate(45deg)}.workflow-strip span{color:#fff;background:#3f7469;border-radius:50%;flex:none;place-items:center;width:1.65rem;height:1.65rem;font-family:Georgia,serif;font-size:.72rem;display:grid}.workflow-strip strong{font-size:.75rem}.manager-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin:1.1rem 0;display:flex}.manager-toolbar>div>strong{color:var(--ink);font-family:Noto Serif TC,Songti TC,Georgia,serif}.toolbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:.7rem;display:flex}.toolbar-hint{color:var(--muted);margin:.3rem 0 0;font-size:.72rem}.search-box{border:1px solid var(--line);background:var(--surface);border-radius:.9rem;width:min(100%,40rem);min-height:3.1rem;display:flex;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.search-box{background:color-mix(in srgb, var(--surface) 94%, white 6%)}}.search-box{box-shadow:inset 0 1px #ffffff40}.search-box input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;padding:0 .9rem}.search-box button{border:0;border-left:1px solid var(--line);cursor:pointer;min-width:5rem;color:var(--brand);padding:0 1.1rem}@supports (color:color-mix(in lab, red, red)){.search-box button{color:color-mix(in srgb, var(--brand) 78%, var(--ink) 22%)}}.search-box button{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.search-box button{background:color-mix(in srgb, var(--brand-soft) 72%, var(--surface) 28%)}}.search-box button{font-weight:750}.primary-action{cursor:pointer;color:#fff;background:var(--brand);border:0;border-radius:.85rem;flex:none;justify-content:center;align-items:center;min-height:3rem;padding:0 1.1rem;font-weight:750;display:inline-flex;box-shadow:0 14px 28px #123d5c24}.primary-action:disabled{cursor:not-allowed;color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.primary-action:disabled{color:color-mix(in srgb, var(--ink) 78%, white 22%)}}.primary-action:disabled{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.primary-action:disabled{background:color-mix(in srgb, var(--brand-soft) 82%, white 18%)}}.primary-action:disabled{box-shadow:none;opacity:1}.record-form,.record-panel{background:var(--surface-strong);border:1px solid #1931421a;border-radius:1.1rem;margin:1rem 0;box-shadow:0 18px 44px #21343e12}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#06121ead;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.edit-modal{width:min(100%,72rem);max-height:min(90vh,56rem);margin:0;overflow:auto}.preview-modal{width:min(100%,64rem)}.preview-modal-header{margin-bottom:1rem}.preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.preview-item{border:1px solid var(--line);gap:.35rem;min-width:0;padding:.95rem 1rem;display:grid}@supports (color:color-mix(in lab, red, red)){.preview-item{border:1px solid color-mix(in srgb, var(--line) 78%, white 22%)}}.preview-item{background:var(--surface);border-radius:1rem}@supports (color:color-mix(in lab, red, red)){.preview-item{background:color-mix(in srgb, var(--surface) 92%, white 8%)}}.preview-item{box-shadow:inset 0 1px #fff3,0 10px 24px #123d5c0d}.preview-item>span{color:var(--muted);font-size:.78rem;font-weight:800}.preview-item>strong{color:var(--ink);word-break:break-word;font-size:1rem;line-height:1.45}.preview-item input,.preview-item textarea{border:1px solid var(--line);background:var(--surface);border-radius:.8rem;width:100%;min-height:2.8rem;padding:.75rem .9rem}@supports (color:color-mix(in lab, red, red)){.preview-item input,.preview-item textarea{background:color-mix(in srgb, var(--surface) 97%, white 3%)}}.preview-item input,.preview-item textarea{color:var(--ink)}.table-shell{border:1px solid var(--line);overflow:auto}@supports (color:color-mix(in lab, red, red)){.table-shell{border:1px solid color-mix(in srgb, var(--line) 85%, white 15%)}}.table-shell{background:var(--surface);border-radius:1rem}@supports (color:color-mix(in lab, red, red)){.table-shell{background:color-mix(in srgb, var(--surface) 94%, white 6%)}}.toolbar{flex-wrap:wrap;align-items:end;gap:.9rem;margin-bottom:1rem;display:flex}.search-field{gap:.45rem;display:grid}.search-field>span{color:var(--muted);font-size:.78rem;font-weight:700}.search-field input{border:1px solid var(--line);background:var(--surface);border-radius:.85rem;min-height:3rem;padding:.75rem .95rem}@supports (color:color-mix(in lab, red, red)){.search-field input{background:color-mix(in srgb, var(--surface) 96%, white 4%)}}.search-field input{color:var(--ink)}.link-button{color:var(--accent-ink,var(--ink));font:inherit;text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline}.button-row{flex-wrap:wrap;gap:.75rem;display:flex}.preview-span{grid-column:1/-1}.preview-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.preview-link{border:1px solid var(--line);justify-content:center;align-items:center;min-height:2.7rem;padding:.75rem 1rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.preview-link{border:1px solid color-mix(in srgb, var(--line) 72%, white 28%)}}.preview-link{color:#163e58;background:var(--surface);border-radius:.9rem}@supports (color:color-mix(in lab, red, red)){.preview-link{background:color-mix(in srgb, var(--surface) 86%, white 14%)}}.preview-link{font-weight:800;text-decoration:none;transition:transform .14s,border-color .14s,color .14s,background .14s}.preview-link:hover,.preview-link:focus-visible{color:#0b2f45;background:#f8fbfc;border-color:#5c8ca1;transform:translateY(-1px)}.record-form{padding:clamp(1.35rem,3.2vw,2.3rem)}.page-editor{border-width:1px;border-radius:1.35rem;width:100%;margin-top:1.4rem;padding:clamp(1.6rem,3.8vw,2.8rem);box-shadow:0 24px 54px #182a3a1a}.record-form.nested-form{border-left:3px solid var(--gold)}.record-form>header,.record-form>footer,.record-panel-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.record-form>header{align-items:flex-start;margin-bottom:1.5rem}.record-form h2,.record-panel h2{margin:0;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:1.35rem;font-weight:600}.record-form>header>span,.record-panel-heading p{color:var(--muted);margin:.3rem 0 0;font-size:.75rem}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.form-grid label{gap:.45rem;display:grid}.form-grid label>span{font-size:.75rem;font-weight:750}.form-grid input,.form-grid select{width:100%;min-height:2.9rem;color:var(--ink);background:#fff;border:1px solid #cbd4d4;border-radius:.6rem;outline:0;padding:0 .8rem}.form-grid input:focus,.form-grid select:focus{border-color:#3c7585;box-shadow:0 0 0 3px #3c75851f}.form-span-2{grid-column:span 2}.selection-summary{color:#416369;background:#e6efec;border-radius:.6rem;align-content:center;gap:.35rem;min-height:2.9rem;padding:.45rem .8rem;display:grid}.selection-summary span{font-size:.65rem}.selection-summary strong{font-size:.78rem}.payment-form{border-left:3px solid var(--gold)}.record-form>footer{justify-content:flex-end;margin-top:1.4rem}.record-form>footer .secondary-button{border:0;padding:0 1rem}.edit-modal textarea{min-height:7rem}.inline-notice,.manager-message{color:#775b27;background:#fbf1d9;border-radius:.55rem;margin:1rem 0 0;padding:.75rem .9rem;font-size:.78rem}.manager-message{color:#8d3636;background:#fae4e1}.manager-message.success{color:#22664f;background:#dceee5}.attendance-form{margin-top:1.15rem}.attendance-form textarea,.private-attendance-section textarea{resize:vertical}.private-attendance-section{margin-top:4rem}.compact-section-heading{margin-bottom:1rem}.attendance-roster{background:#f8f8f4;border:1px solid #1931421a;border-radius:.75rem;margin-top:1.4rem;overflow:hidden}.attendance-roster>header{border-bottom:1px solid #19314217;justify-content:space-between;align-items:center;padding:1rem;display:flex}.attendance-roster h3,.attendance-roster p{margin:0}.attendance-roster p{color:var(--muted);margin-top:.25rem;font-size:.72rem}.attendance-grid{gap:.65rem;padding:.8rem;display:grid}.attendance-card{background:#fff;border-radius:.65rem;grid-template-columns:minmax(9rem,1fr) minmax(7rem,.65fr) minmax(12rem,1.4fr);align-items:center;gap:.65rem;padding:.7rem;display:grid}.attendance-card>div{gap:.15rem;display:grid}.attendance-card code{color:#557079;font-size:.7rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.record-panel-heading{border-bottom:1px solid #19314217;padding:1.2rem 1.35rem}.record-table-wrap{width:100%;overflow-x:auto}.record-table{border-collapse:collapse;width:100%;font-size:.78rem}.record-table th{color:#687984;text-align:left;white-space:nowrap;background:#f1f3ef;padding:.8rem 1rem;font-size:.68rem}.record-table td{color:#52636e;white-space:nowrap;border-top:1px solid #19314212;padding:.95rem 1rem}.record-table tbody tr:hover{background:#e1ebe757}.record-table code{color:#34606a;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.72rem}.record-table td strong{color:var(--ink)}.record-name-button{cursor:pointer;min-height:2.5rem;color:var(--ink);text-align:left;background:0 0;border:0;align-items:center;gap:.55rem;padding:0;font-weight:800;display:inline-flex}.record-name-button span{color:#2d6571;opacity:0;font-size:.65rem;font-weight:750;transition:opacity .15s}.record-name-button:hover,.record-name-button:focus-visible{color:#2d6571;text-underline-offset:.2rem;text-decoration:underline}.record-name-button:hover span,.record-name-button:focus-visible span{opacity:1}.scroll-target{scroll-margin-top:5.25rem}.status-pill{border-radius:999px;padding:.3rem .55rem;font-size:.66rem;font-weight:750;display:inline-flex}.status-pill.active{color:#28705b;background:#dceee5}.status-pill.pending{color:#8a672c;background:#f8eac7}.status-pill.inactive{color:#7a5a22;background:#f5e8c9}.status-pill.archived{color:#6d5363;background:#eee4ea}.table-action{border:1px solid var(--brand);justify-content:center;align-items:center;min-height:2.55rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.table-action{border:1px solid color-mix(in srgb, var(--brand) 14%, var(--line) 86%)}}.table-action{cursor:pointer;color:#2d6571;background:var(--brand-soft);border-radius:999px;padding:0 .95rem}@supports (color:color-mix(in lab, red, red)){.table-action{background:color-mix(in srgb, var(--brand-soft) 54%, var(--surface) 46%)}}.table-action{font-weight:800;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s;box-shadow:0 8px 20px #123d5c14}.table-action:hover{transform:translateY(-1px);box-shadow:0 12px 24px #123d5c24}.table-action:disabled{cursor:not-allowed;color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.table-action:disabled{color:color-mix(in srgb, var(--ink) 72%, white 28%)}}.table-action:disabled{border-color:var(--line)}@supports (color:color-mix(in lab, red, red)){.table-action:disabled{border-color:color-mix(in srgb, var(--line) 88%, white 12%)}}.table-action:disabled{background:var(--brand-soft)}@supports (color:color-mix(in lab, red, red)){.table-action:disabled{background:color-mix(in srgb, var(--brand-soft) 64%, white 36%)}}.table-action:disabled{box-shadow:none}.table-action.danger{color:#9f3333;background:#faecec;border-color:#a2343438}.table-inline-actions{flex-wrap:wrap;gap:.55rem;display:flex}.next-step{color:#8b6734;font-weight:750}.loading-state,.list-empty{color:var(--muted);text-align:center;margin:0;padding:3rem 1rem}.list-empty strong{color:var(--ink)}.list-empty p{margin:.45rem 0 0;font-size:.78rem}.mobile-header,.nav-scrim{display:none}@media (max-width:1050px){.module-grid,.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:820px){.login-page{grid-template-columns:1fr}.login-brand{min-height:auto;padding:3rem 1.5rem}.login-brand .brand-mark{margin-bottom:3.5rem}.login-brand h1{max-width:15ch;font-size:clamp(2.3rem,11vw,4rem)}.login-panel{min-height:30rem;padding:1.2rem}.login-card{margin-top:-1.7rem}.mobile-header{z-index:20;color:#fff;background:var(--brand);grid-template-columns:2rem 1fr 2rem;align-items:center;gap:.7rem;height:4.25rem;padding:0 1rem;display:grid;position:sticky;top:0}.mobile-header strong{text-align:center;font-family:Noto Serif TC,Songti TC,Georgia,serif;font-size:.9rem}.menu-button{cursor:pointer;background:0 0;border:0;align-content:center;gap:4px;width:2rem;height:2rem;display:grid}.menu-button span{background:#fff;width:1.2rem;height:1px;display:block}.sidebar{width:min(19rem,86vw);transition:transform .2s;transform:translate(-102%)}.sidebar.open{transform:translate(0)}.nav-scrim{z-index:25;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#06161e7a;border:0;display:block;position:fixed;inset:0}.app-main{margin-left:0}.content-wrap{padding:2rem 1rem 4rem}.page-heading{flex-direction:column;align-items:flex-start;margin-bottom:1.6rem}.page-heading h1{font-size:2.35rem}.module-grid{grid-template-columns:1fr}.section-heading{flex-direction:column;align-items:flex-start;gap:0;margin-top:3rem}.section-heading>p{margin-top:.45rem}.workflow-strip{grid-template-columns:1fr}.workflow-strip>*{border-bottom:1px solid #19314217;border-right:0;min-height:3.3rem}.workflow-strip>:last-child{border-bottom:0}.workflow-strip>:after{display:none}.manager-toolbar,.record-form>header,.record-form>footer{flex-direction:column;align-items:stretch}.page-editor{min-height:calc(100dvh - 8rem);padding-bottom:calc(1.5rem + env(safe-area-inset-bottom));border-radius:1.1rem;margin:.5rem 0 1.25rem}.search-box,.primary-action{width:100%}.form-grid{grid-template-columns:1fr}.page-editor .form-grid{gap:1.1rem}.form-span-2{grid-column:auto}.record-name-button{color:#174f62;text-underline-offset:.22rem;flex-direction:column;justify-content:center;align-items:flex-start;gap:.15rem;min-width:8rem;min-height:2.9rem;-webkit-text-decoration:underline #9ebac0;text-decoration:underline #9ebac0}.record-name-button span{opacity:1}.attendance-card{grid-template-columns:1fr}.attendance-roster>header{flex-direction:column;align-items:flex-start;gap:.6rem}.parent-portal-header,.payment-due-card,.parent-payment-form>header{flex-direction:column;align-items:stretch}.payment-report-status{text-align:left}.parent-form-grid,.payment-review-summary,.approval-target-summary,.approval-diff,.payroll-summary{grid-template-columns:1fr}.payroll-teacher-summary{grid-template-columns:1fr 1fr}.payroll-control>*{width:100%}.parent-form-span{grid-column:auto}}@media (max-width:460px){.stat-grid{grid-template-columns:1fr 1fr;gap:.6rem}.stat-grid article{min-height:8.2rem;padding:1rem}.module-card{min-height:10.5rem}.empty-state{min-height:27rem;padding:2rem 1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.sidebar-user-details{flex:1;min-width:0}.role-switcher select{width:100%;color:inherit;font:inherit;background:#ffffff1a;border:1px solid #ffffff47;border-radius:.4rem;margin-top:.2rem;padding:.25rem 1.5rem .25rem .45rem}.role-switcher option{color:#17354a}.audit-filter-grid{grid-template-columns:repeat(4,minmax(8rem,1fr));gap:.55rem;width:min(58rem,100%);display:grid}.audit-filter-grid input,.audit-filter-grid select,.audit-filter-grid button{min-height:2.7rem}.file-export-group{border-bottom:1px solid #1931421a;grid-template-columns:minmax(12rem,1fr) repeat(3,auto);align-items:center;gap:.75rem;padding:.85rem 1rem;display:grid}.file-export-group a{color:#174f62;font-weight:700}.import-panel{margin-bottom:24px}.import-panel>summary{cursor:pointer;color:var(--ink);padding:20px 24px;font-weight:800}.import-panel-body{padding:0 24px 24px}.inline-detail-card{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;gap:5px;min-width:220px;margin-top:8px;padding:12px;font-size:13px;display:grid}.table-detail-row{background:#e1ebe73d}.table-detail-row:hover{background:#e1ebe73d!important}.table-detail-cell{white-space:normal!important;padding:0!important}.table-detail-panel{background:linear-gradient(180deg, #f7f8f4f0, #eff3eefa), var(--surface);gap:1.15rem;padding:1.4rem 1.5rem 1.55rem;display:grid}.table-detail-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.table-detail-summary{color:var(--muted);gap:.45rem;display:grid}.table-detail-summary strong,.table-detail-form strong,.table-detail-history strong{color:var(--ink)}.table-detail-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.table-detail-form,.table-detail-history{gap:.9rem;display:grid}.table-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.1rem;display:grid}.table-detail-grid label,.table-detail-grid fieldset{border:1px solid var(--line);gap:.5rem;min-width:0;padding:.9rem 1rem;display:grid}@supports (color:color-mix(in lab, red, red)){.table-detail-grid label,.table-detail-grid fieldset{border:1px solid color-mix(in srgb, var(--line) 82%, white 18%)}}.table-detail-grid label,.table-detail-grid fieldset{background:var(--surface);border-radius:1rem}@supports (color:color-mix(in lab, red, red)){.table-detail-grid label,.table-detail-grid fieldset{background:color-mix(in srgb, var(--surface) 92%, white 8%)}}.table-detail-grid label,.table-detail-grid fieldset{box-shadow:inset 0 1px #ffffff3d,0 10px 24px #123d5c0a}.table-detail-grid label>span,.table-detail-grid fieldset>legend{color:var(--muted);font-size:.76rem;font-weight:800}.table-detail-grid fieldset>legend{padding:0 .2rem}.table-detail-grid input,.table-detail-grid select,.table-detail-grid textarea{border:1px solid var(--line);width:100%;min-height:3rem}@supports (color:color-mix(in lab, red, red)){.table-detail-grid input,.table-detail-grid select,.table-detail-grid textarea{border:1px solid color-mix(in srgb, var(--line) 80%, white 20%)}}.table-detail-grid input,.table-detail-grid select,.table-detail-grid textarea{color:var(--ink);background:#fff;border-radius:.8rem;outline:0;padding:.72rem .85rem;transition:border-color .15s,box-shadow .15s,background .15s}.table-detail-grid textarea{resize:vertical}.table-detail-grid input:focus,.table-detail-grid select:focus,.table-detail-grid textarea:focus{border-color:#3c7585;box-shadow:0 0 0 3px #3c75851f}.checkbox-grid{grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.7rem;display:grid}.checkbox-item{border:1px solid var(--line);align-items:center;gap:.6rem;min-height:3rem;padding:.7rem .8rem;display:flex}@supports (color:color-mix(in lab, red, red)){.checkbox-item{border:1px solid color-mix(in srgb, var(--line) 80%, white 20%)}}.checkbox-item{background:var(--surface);border-radius:.85rem}@supports (color:color-mix(in lab, red, red)){.checkbox-item{background:color-mix(in srgb, var(--surface) 95%, white 5%)}}.checkbox-item{font-weight:700}.checkbox-item input[type=checkbox]{width:1.05rem;height:1.05rem;min-height:0;margin:0}.table-detail-span{grid-column:1/-1}.table-detail-history-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;display:grid}.table-detail-panel .inline-detail-card{min-width:0;margin-top:0}@media (max-width:760px){.audit-filter-grid{grid-template-columns:1fr}.table-detail-panel{padding:1.1rem 1rem 1.2rem}.table-detail-header{flex-direction:column}.table-detail-actions>*{width:100%}.table-detail-grid{grid-template-columns:1fr;gap:.85rem}.table-detail-history-grid{grid-template-columns:1fr}}@property --tw-border-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}
