/*! tailwindcss v4.3.3 | 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-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"Segoe UI Variable Text", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--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-semibold:600;--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);--color-paper:#f4f6f8;--color-paper-raised:#fff;--color-ink:#10151f;--color-muted:#626c7a;--color-line:#dce1e7;--color-accent:#2f6fed;--color-accent-ink:#1e4fbe;--color-good:#1f9d6b;--color-good-bg:#e7f5ef;--color-warn:#d64545;--color-warn-bg:#fbeaea}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-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:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.card{background:var(--color-paper-raised);border:1px solid var(--color-line);padding:1.25rem}@media (min-width:40rem){.card{padding:2rem}}.card-auth{width:100%;max-width:340px}.page-title{letter-spacing:-.01em;color:var(--color-ink);font-size:1.5rem;font-weight:700}.field{margin-bottom:1rem}.field-label{color:var(--color-ink);margin-bottom:.375rem;font-size:.75rem;font-weight:600;display:block}.field-input{border:1px solid var(--color-line);background:var(--color-paper);width:100%;color:var(--color-ink);padding:.625rem .75rem;font-size:1rem;display:block}.field-input.is-upper{text-transform:uppercase}.field-input.is-upper::placeholder{text-transform:none}.student-identity{align-items:center;gap:.875rem;display:flex}.student-identity.is-compact{gap:.5rem}.photo-thumb.is-small{width:2rem;height:2rem}.photo-thumb.is-empty{color:var(--color-muted);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:inline-flex}.photo-thumb{object-fit:cover;border:1px solid var(--color-line);background:var(--color-paper);flex:none;width:3.5rem;height:3.5rem}.detail-card{align-items:flex-start;gap:1.5rem;display:flex}.detail-card .detail-grid{flex:1;min-width:0}.detail-photo{object-fit:cover;border:1px solid var(--color-line);background:var(--color-paper);flex:none;width:10rem;height:12.5rem}@media (max-width:48rem){.detail-card{flex-direction:column-reverse}.detail-photo{width:8rem;height:10rem}}.photo-field{align-items:center;gap:.875rem;display:flex}.photo-field .field-input{padding:.375rem}.suggest{position:relative}.suggest-list{z-index:20;background:var(--color-paper-raised);border:1px solid var(--color-line);max-height:15rem;margin:0;padding:0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 20px #10151f1f}.suggest-option{cursor:pointer;padding:.5rem .75rem;font-size:.875rem}.suggest-option:hover,.suggest-option.is-active{background:var(--color-paper);color:var(--color-accent-ink)}.field-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}.btn{cursor:pointer;text-align:center;border:1px solid #0000;justify-content:center;align-items:center;min-height:2.75rem;padding:.625rem 1.125rem;font-size:.9375rem;font-weight:600;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-accent-ink);color:#fff}.btn-primary:hover{background:var(--color-accent)}.btn-primary:focus-visible{outline:2px solid var(--color-accent-ink);outline-offset:2px}.btn-secondary{background:var(--color-paper-raised);color:var(--color-ink);border-color:var(--color-line)}.btn-secondary:hover{background:var(--color-paper)}.btn-block{width:100%;display:flex}.alert{border:1px solid #0000;margin-bottom:1rem;padding:.625rem .75rem;font-size:.75rem}.alert-error{background:var(--color-warn-bg);border-color:var(--color-warn);color:var(--color-warn)}.alert-notice{background:var(--color-good-bg);border-color:var(--color-good);color:var(--color-good)}.app-nav{background:var(--color-paper-raised);border-bottom:1px solid var(--color-line)}.app-nav-inner{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;padding:.75rem 1rem;display:flex}@media (min-width:40rem){.app-nav-inner{padding:.75rem 2rem}}.app-nav-brand{letter-spacing:-.01em;color:var(--color-ink);font-size:1.0625rem;font-weight:700}.app-nav-links{flex:1;gap:1.25rem;display:flex}.app-nav-link{color:var(--color-muted);border-bottom:2px solid #0000;padding:.25rem 0;font-size:.875rem;font-weight:600}.app-nav-link:hover{color:var(--color-ink)}.app-nav-link.is-active{color:var(--color-accent-ink);border-bottom-color:var(--color-accent-ink)}.app-nav-user{align-items:center;gap:.75rem;display:flex}.app-nav-who{color:var(--color-muted);font-size:.8125rem}.btn-sm{min-height:2.25rem;padding:.375rem .75rem;font-size:.8125rem}.app-main{padding:1.5rem 1rem}@media (min-width:40rem){.app-main{padding:2rem}}.table-wrap{background:var(--color-paper-raised);border:1px solid var(--color-line);overflow-x:auto}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.875rem}.data-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);border-bottom:1px solid var(--color-line);white-space:nowrap;padding:.75rem 1rem;font-size:.6875rem;font-weight:600}.data-table td{border-bottom:1px solid var(--color-line);color:var(--color-ink);padding:.75rem 1rem}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--color-paper)}.data-table a{color:var(--color-accent-ink);font-weight:600}.data-table a:hover{text-decoration:underline}.cell-num{text-align:right;font-variant-numeric:tabular-nums}.data-table th.cell-num{text-align:right}.ledger-table .col-date{width:9.5rem}.ledger-table .col-session{width:8rem}.ledger-table .col-money{width:7rem}.ledger-table .col-receipt{width:6rem}.ledger-table .col-who{width:9rem}.ledger-table tbody tr.entry-charge{background:#fdf2f2}.ledger-table tbody tr.entry-payment{background:#f1faf4}.ledger-table tbody tr.entry-waiver{background:#fdf6ea}.ledger-table tbody tr.entry-adjustment{background:#f1f4fd}.ledger-table tbody tr.is-reversal{background:#f4f1fa}.ledger-table tbody tr.entry-charge:hover{background:#f9e4e4}.ledger-table tbody tr.entry-payment:hover{background:#e4f4ea}.ledger-table tbody tr.entry-waiver:hover{background:#f8edd9}.ledger-table tbody tr.entry-adjustment:hover{background:#e5eafa}.ledger-table tbody tr.is-reversal:hover{background:#e9e2f5}.legend{color:var(--color-muted);flex-wrap:wrap;gap:.375rem 1rem;margin-bottom:.5rem;font-size:.75rem;display:flex}.legend-item{align-items:center;gap:.375rem;display:inline-flex}.legend-swatch{border:1px solid var(--color-line);width:.875rem;height:.875rem}.data-table td.amount-charge{color:#a82f2f;font-weight:600}.data-table td.amount-credit{color:#17714d;font-weight:600}.data-table td.amount-owed{color:#a82f2f;font-weight:600}.data-table td.amount-clear{color:var(--color-muted)}.data-table td.amount-in{color:#17714d}.data-table td.amount-out{color:#a82f2f}.amount-running{font-variant-numeric:tabular-nums;font-weight:700}.data-table tbody tr.row-new{background:#e6f9eb}.data-table tbody tr.row-owes-earlier{background:#e7e9ec}.data-table tbody tr.row-clear{background:#fbf8da}.data-table tbody tr.row-alumni-owes{background:#fbe4e4}.data-table tbody tr.row-alumni-clear{background:#e7eafb}.data-table tbody tr.row-new:hover{background:#d6f2de}.data-table tbody tr.row-owes-earlier:hover{background:#dadde2}.data-table tbody tr.row-clear:hover{background:#f5f0c4}.data-table tbody tr.row-alumni-owes:hover{background:#f6d5d5}.data-table tbody tr.row-alumni-clear:hover{background:#d9ddf6}.amount-owed{color:#a82f2f;font-weight:600}.amount-clear{color:var(--color-muted)}.badge{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;padding:.1875rem .5rem;font-size:.6875rem;font-weight:600;display:inline-block}.badge-new{border-color:var(--color-accent);color:var(--color-accent-ink);background:#e8f0fe}.badge-promoted{background:var(--color-good-bg);border-color:var(--color-good);color:#17714d}.badge-left{color:#8a5a16;background:#fdf3e3;border-color:#d8a657}.badge-present{color:#3b5b85;background:#eef3fa;border-color:#a9bfda}.badge-alumni{color:var(--color-muted);background:#eef0f3;border-color:#b9c1cb}.lookup-field{border:2px solid var(--color-line);background:var(--color-paper-raised);width:100%;color:var(--color-ink);padding:1rem 1.125rem;font-size:1.25rem}.lookup-field::placeholder{color:var(--color-muted)}.lookup-field:focus-visible{border-color:var(--color-accent);outline:none}#student_list[aria-busy=true],#student_list[busy]{opacity:.55;transition:opacity .12s ease-out}.section-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.625rem;font-size:.6875rem;font-weight:600}.chip-row{flex-wrap:wrap;gap:.375rem;margin-bottom:1rem;display:flex}.chip{border:1px solid var(--color-line);background:var(--color-paper-raised);min-height:2.5rem;color:var(--color-ink);white-space:nowrap;align-items:center;gap:.375rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:600;display:inline-flex}.chip:hover{background:var(--color-paper)}.chip.is-active{background:var(--color-accent-ink);border-color:var(--color-accent-ink);color:#fff}.chip-count{font-variant-numeric:tabular-nums;color:var(--color-muted);font-size:.6875rem}.chip.is-active .chip-count{color:#c7d7f7}.empty-state{text-align:center;color:var(--color-muted);padding:3rem 1.5rem;font-size:.9375rem}.pager{color:var(--color-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;font-size:.8125rem;display:flex}.pager-links{gap:.5rem;display:flex}.pager-link{border:1px solid var(--color-line);background:var(--color-paper-raised);color:var(--color-ink);align-items:center;min-height:2.75rem;padding:.5rem .875rem;font-weight:600;display:inline-flex}.pager-link:hover{background:var(--color-paper)}.pager-link[aria-disabled=true]{opacity:.4;pointer-events:none}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.detail-grid{grid-template-columns:1fr;gap:1rem 2rem;display:grid}@media (min-width:40rem){.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.detail-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);margin-bottom:.25rem;font-size:.6875rem;font-weight:600}.detail-value{color:var(--color-ink);font-size:.9375rem}.detail-value.is-empty{color:var(--color-muted)}.form-errors{background:var(--color-warn-bg);border:1px solid var(--color-warn);color:var(--color-warn);margin-bottom:1rem;padding:.75rem 1rem;font-size:.8125rem}.form-errors ul{padding-left:1.25rem;list-style:outside}.tabs{border-bottom:1px solid var(--color-line);gap:1.5rem;margin-bottom:1.5rem;display:flex}.tab{color:var(--color-muted);border-bottom:2px solid #0000;align-items:center;gap:.5rem;margin-bottom:-1px;padding:.625rem 0;font-size:.9375rem;font-weight:600;display:inline-flex}.tab:hover{color:var(--color-ink)}.tab.is-active{color:var(--color-accent-ink);border-bottom-color:var(--color-accent-ink)}.tab-count{font-variant-numeric:tabular-nums;border:1px solid var(--color-line);color:var(--color-muted);padding:.125rem .375rem;font-size:.75rem}.tab-count.is-owed{border-color:var(--color-warn);color:#a82f2f}.balance-row{background:var(--color-line);border:1px solid var(--color-line);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1px;margin-bottom:1rem;display:grid}.balance-tile{background:var(--color-paper-raised);padding:1rem 1.25rem}.balance-tile.is-total{background:var(--color-paper)}.month-list{border:1px solid var(--color-line);background:var(--color-paper-raised)}.month{border-bottom:1px solid var(--color-line)}.month:last-child{border-bottom:none}.month-head{cursor:pointer;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;min-height:3.25rem;padding:.875rem 1rem;list-style:none;display:flex}.month-head::-webkit-details-marker{display:none}.month-head:hover{background:var(--color-paper)}.month[open]>.month-head{background:var(--color-paper);border-bottom:1px solid var(--color-line)}.month-name{color:var(--color-ink);align-items:center;gap:.5rem;font-size:.9375rem;font-weight:700;display:inline-flex}.month-name:before{content:"▸";color:var(--color-muted);font-size:.75rem}.month[open]>.month-head .month-name:before{content:"▾"}.month-now{letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--color-accent-ink);padding:.125rem .375rem;font-size:.625rem;font-weight:700}.month-figures{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:1.25rem;display:flex}.month-figure{align-items:baseline;gap:.375rem;font-size:.875rem;font-weight:600;display:inline-flex}.month-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);font-size:.625rem;font-weight:600}.month-body{padding:1rem}.day-table th,.day-table td{white-space:nowrap;padding:.5rem .625rem}.day-table tfoot td{border-top:2px solid var(--color-line);border-bottom:none;font-weight:700}.data-table tbody tr.is-reversed td{opacity:.55;text-decoration:line-through;text-decoration-thickness:1px}.inline-reverse{position:relative}.inline-reverse summary{list-style:none}.inline-reverse summary::-webkit-details-marker{display:none}.reverse-form{z-index:10;background:var(--color-paper-raised);border:1px solid var(--color-warn);width:20rem;margin-top:.375rem;padding:.875rem;position:absolute;right:0;box-shadow:0 6px 16px #10151f1f}.modal{border:1px solid var(--color-line);background:var(--color-paper-raised);width:100%;max-width:min(40rem,100vw - 2rem);max-height:calc(100vh - 4rem);margin:auto;padding:0}.modal::backdrop{background:#10151f73}.modal-panel{padding:1.5rem}.modal-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.modal-title{color:var(--color-ink);font-size:1.125rem;font-weight:700}.modal-close{color:var(--color-muted);cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:1.5rem;line-height:1}.modal-close:hover{color:var(--color-ink)}.open-day{margin-bottom:1.5rem}.open-day-row{flex-wrap:wrap;align-items:stretch;gap:.5rem;display:flex}.day-form{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:0 1rem;display:grid}.note-mark.is-ahead{color:#8a5a16;background:#fdf3e3;border-color:#d8a657}.app-nav-rolls{display:contents}.found-elsewhere{color:var(--color-muted);margin-top:.5rem;font-size:.875rem}.note-mark{letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);border:1px solid var(--color-line);cursor:help;margin-left:.375rem;padding:.0625rem .3125rem;font-size:.625rem;font-weight:600;display:inline-block}.field-pair{gap:.5rem;display:flex}.field-pair .field-input.is-num{text-align:right;font-variant-numeric:tabular-nums;flex:none;width:6rem}.field-pair .field-input:not(.is-num){flex:1;min-width:0}.field-input.is-readonly{background:var(--color-paper);color:var(--color-muted);cursor:not-allowed}.modal-foot{border-top:1px solid var(--color-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1rem;padding-top:1rem;display:flex}.modal-foot .hint{margin:0}.day-link{color:var(--color-accent-ink);font-weight:600}.day-row:hover{background:var(--color-paper)}.data-table tbody tr.is-empty td{color:#c9cfd6}.not-recorded{letter-spacing:.04em;text-transform:uppercase;background:#fdfaf3;font-size:.75rem;text-align:center!important;color:#b08442!important}tr.is-empty .day-link{color:#8a5a16;background:#fdf6ea;padding:.125rem .375rem}tr.is-empty .day-link:hover{background:#f8edd9}.day-link:hover{text-decoration:underline}.month-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.back-link{color:var(--color-muted);margin-bottom:.75rem;font-size:.8125rem;font-weight:600;display:inline-block}.back-link:hover{color:var(--color-accent-ink)}.action-bar{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.action-bar .btn.is-open{background:var(--color-accent-ink);border-color:var(--color-accent-ink);color:#fff}.action-panels{flex-basis:100%}.action-form{background:var(--color-paper-raised);border:1px solid var(--color-line);margin-top:.5rem;padding:1.25rem}.entries-drawer summary{list-style:none}.entries-drawer summary::-webkit-details-marker{display:none}.month-fee-note{margin-bottom:.75rem;font-size:.8125rem}.tile-note{color:var(--color-muted);margin-top:.25rem;font-size:.6875rem}.amount-out{color:#a82f2f}.amount-in{color:#17714d}.balance-figure{font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:.25rem;font-size:1.5rem;font-weight:700}.action-panel{margin-bottom:.75rem}.settled-note{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.settled-mark{color:#17714d;font-size:.9375rem;font-weight:700}.quiet-action{margin-bottom:.75rem}.link-action{color:var(--color-muted);text-underline-offset:2px;cursor:pointer;padding:.375rem 0;font-size:.8125rem;font-weight:600;text-decoration:underline;display:inline-block}.link-action:hover{color:var(--color-warn)}.row-actions{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.row-action{border:1px solid var(--color-line);background:var(--color-paper-raised);color:var(--color-ink);white-space:nowrap;padding:.375rem .625rem;font-size:.8125rem;font-weight:600;line-height:1;display:inline-block}.row-action:hover{border-color:var(--color-accent);color:var(--color-accent-ink)}.row-action.is-quiet{color:var(--color-muted);background:0 0;border-color:#0000}.row-action.is-quiet:hover{color:#a82f2f;border-color:#c98a8a}.segmented-field{border:0;margin-bottom:1rem}.segmented{border:1px solid var(--color-line);background:var(--color-paper);flex-wrap:wrap;display:inline-flex}.segmented input[type=radio]{opacity:0;pointer-events:none;position:absolute}.segmented label{color:var(--color-muted);cursor:pointer;border-right:1px solid var(--color-line);align-items:baseline;gap:.5rem;min-height:2.75rem;padding:.625rem 1rem;font-size:.875rem;font-weight:600;display:inline-flex}.segmented label:last-of-type{border-right:none}.segmented label:hover{background:var(--color-paper-raised);color:var(--color-ink)}.segmented input:checked+label{background:var(--color-accent-ink);color:#fff}.segmented input:focus-visible+label{outline:2px solid var(--color-accent);outline-offset:-2px}.segmented-amount{font-variant-numeric:tabular-nums;font-weight:700}.segmented input:checked+label .segmented-amount{color:#fff}.input-with-action{align-items:stretch;gap:.5rem;display:flex}.input-with-action .field-input{flex:1}.input-with-action .btn{white-space:nowrap}.hint{color:var(--color-muted);margin-top:.375rem;font-size:.75rem}.disclosure summary{-webkit-user-select:none;user-select:none;list-style:none}.disclosure summary::-webkit-details-marker{display:none}.disclosure[open]{width:100%}.disclosure-body{background:var(--color-paper-raised);border:1px solid var(--color-line);margin-top:.5rem;padding:1.25rem}.form-row{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:0 1rem;display:grid}.btn-danger{background:var(--color-warn);color:#fff}.btn-danger:hover{background:#b93a3a}.receipt-page{max-width:60rem;margin:0 auto;padding:1.5rem 1rem 3rem}.receipt-toolbar{justify-content:flex-end;gap:.5rem;margin-bottom:1rem;display:flex}.receipt-sheet{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (max-width:48rem){.receipt-sheet{grid-template-columns:1fr}}.receipt{background:var(--color-paper-raised);border:1px solid var(--color-line);padding:.75rem;font-size:.75rem}.receipt-head{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.receipt-logo{flex:none;width:auto;height:2.75rem}.receipt-titles{text-align:center;flex:1}.receipt-school{letter-spacing:-.01em;font-size:.875rem;font-weight:700}.receipt-address{color:var(--color-muted);font-size:.6875rem}.receipt-band{border-bottom:1px solid var(--color-ink);justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem;padding-bottom:.375rem;font-size:.6875rem;display:flex}.receipt-kind{text-transform:uppercase;letter-spacing:.04em;font-weight:700}.receipt-who{align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.receipt-facts{flex:1;min-width:0}.receipt-photo{object-fit:cover;border:1px solid var(--color-line);flex:none;width:18mm;height:22mm}.receipt-facts div{gap:.5rem;line-height:1.5;display:flex}.receipt-facts dt{min-width:6.5rem;font-weight:700}.receipt-facts dd{margin:0}.receipt-items{border-collapse:collapse;width:100%;font-size:.6875rem}.receipt-items th,.receipt-items td{border:1px solid var(--color-ink);text-align:left;padding:.125rem .25rem}.receipt-items thead th{text-align:center;font-weight:700}.receipt-items .cell-num{text-align:right;font-variant-numeric:tabular-nums}.receipt-sr{text-align:right;width:1.75rem}.receipt-remarks{width:5rem}.receipt-faint{color:var(--color-muted)}.receipt-items tr.is-total th,.receipt-items tr.is-total td{background:var(--color-paper);font-weight:700}.receipt-void{color:#a82f2f;border:1px solid #a82f2f;margin-top:.5rem;padding:.25rem .375rem;font-size:.6875rem;font-weight:700}.receipt-foot{justify-content:space-between;gap:1rem;margin-top:2.25rem;font-size:.6875rem;display:flex}.field-input.field-inline{width:auto;min-width:8rem;padding:.3125rem .5rem;font-size:.875rem}.field-input.field-inline.is-num{text-align:right;font-variant-numeric:tabular-nums;width:7rem;min-width:0}.data-table .col-tick{width:2.5rem}.data-table td.cell-actions{text-align:right;white-space:nowrap}.data-table tbody tr.is-sum td{border-top:2px solid var(--color-line);font-weight:700}.disclosure-summary{cursor:pointer;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted);padding:.5rem 0;font-size:.75rem;font-weight:600}.disclosure-summary:hover{color:var(--color-ink)}.filter-input{border:1px solid var(--color-line);background:var(--color-paper-raised);color:var(--color-ink);min-height:2.75rem;padding:.625rem .75rem;font-family:inherit;font-size:.9375rem}.filter-input:focus{outline:2px solid var(--color-accent);outline-offset:-1px}.data-table tbody tr.ledger-group th{background:var(--color-paper);border-top:2px solid var(--color-line);color:var(--color-ink);text-align:left;padding-top:.75rem;padding-bottom:.75rem;font-size:.8125rem;font-weight:700}.data-table tbody tr.ledger-group th.cell-num{text-align:right;font-weight:600}.data-table tbody:first-of-type tr.ledger-group th{border-top:none}.datefield{align-items:stretch;display:inline-flex;position:relative}.datefield .filter-input,.datefield .field-input{padding-right:2.5rem}.field .datefield{width:100%;display:flex}.datefield-toggle{width:2.5rem;color:var(--color-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;right:0}.datefield-toggle:hover{color:var(--color-accent-ink)}.datepicker{z-index:40;background:var(--color-paper-raised);border:1px solid var(--color-line);width:17rem;padding:.75rem;position:absolute;top:calc(100% + .25rem);left:0;box-shadow:0 8px 24px #0f172a1f}.datepicker[hidden]{display:none}.datepicker-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.datepicker-month{font-size:.875rem;font-weight:600}.datepicker-nav{width:2rem;height:2rem;color:var(--color-ink);border:1px solid var(--color-line);background:var(--color-paper);cursor:pointer;font-size:1.125rem;line-height:1}.datepicker-nav:hover:not(:disabled){background:var(--color-paper-raised);border-color:var(--color-accent)}.datepicker-nav:disabled{opacity:.3;cursor:default}.datepicker-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.datepicker-dayname{text-align:center;letter-spacing:.04em;color:var(--color-muted);padding:.25rem 0;font-size:.6875rem;font-weight:600}.datepicker-day{font-variant-numeric:tabular-nums;color:var(--color-ink);cursor:pointer;background:0 0;border:none;padding:.4rem 0;font-size:.8125rem}.datepicker-day:hover:not(:disabled){background:var(--color-paper)}.datepicker-day:disabled{color:#c9cfd6;cursor:default}.datepicker-day.is-today{color:var(--color-accent-ink);font-weight:700}.datepicker-day.is-selected{background:var(--color-accent);color:#fff}.datepicker-foot{border-top:1px solid var(--color-line);justify-content:flex-end;margin-top:.5rem;padding-top:.5rem;display:flex}.datepicker-today{color:var(--color-accent-ink);cursor:pointer;background:0 0;border:none;font-size:.8125rem;font-weight:600}.datepicker-today:hover{text-decoration:underline}.range-form{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.range-form .field{margin:0}.data-table tbody tr.is-cleared{background:var(--color-good-bg)}.range-shortcuts{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:.5rem;display:flex}.table-wrap.is-narrow{max-width:34rem}.report-split{grid-template-columns:1fr;gap:1.5rem;margin-top:1.5rem;display:grid}@media (min-width:48rem){.report-split{grid-template-columns:repeat(2,minmax(0,1fr))}}.report-note{max-width:46rem;color:var(--color-muted);margin-top:1rem;font-size:.8125rem;line-height:1.6}.data-table .col-money{width:7.5rem}.link-muted{color:var(--color-muted);text-underline-offset:2px;font-size:.8125rem;text-decoration:underline}.link-muted:hover{color:var(--color-ink)}}@layer utilities{.collapse{visibility:collapse}.collapse\!{visibility:collapse!important}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-28{margin-top:calc(var(--spacing) * 28)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.block\!{display:block!important}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.table\!{display:table!important}.min-h-screen{min-height:100vh}.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,)}.transform\!{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)!important}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-paper{background-color:var(--color-paper)}.p-4{padding:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.text-center{text-align:center}.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-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-ink{color:var(--color-ink)}.text-muted{color:var(--color-muted)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.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)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);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,)}.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))}.\[rdoc-ref\:lib\/racc\/rdoc\/grammar\.en\.rdoc\]{rdoc-ref:lib/racc/rdoc/grammar.en.rdoc}@media (min-width:40rem){.sm\:p-8{padding:calc(var(--spacing) * 8)}}}@media print{.no-print{display:none!important}.receipt-page{max-width:none;padding:0}@page{size:A4 portrait;margin:5mm}.receipt-sheet{grid-template-columns:1fr 1fr;gap:0}.receipt{break-inside:avoid;background:#fff;border:none;border-right:1px dashed #999;padding:0 .5rem}.receipt-sheet .receipt:last-child{border-right:none}.receipt-foot{margin-top:1.25rem}body{background:#fff}}::selection{background:var(--color-accent);color:#fff}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}