.public-page{min-height:100vh;display:flex;flex-direction:column}
.public-page [hidden]{display:none!important}
.public-header{background:var(--surface);border-bottom:1px solid var(--border-strong)}
.public-header-inner{max-width:1328px;margin:0 auto;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.public-brand{display:flex;align-items:center;gap:16px;min-width:0;color:var(--primary)}
.public-brand:hover{text-decoration:none}.public-brand strong{display:block;font-weight:700;font-size:16px;line-height:1.5}.public-brand span{display:block;font-size:14px;color:var(--muted);margin-top:4px}
.public-main{width:100%;max-width:1328px;padding:32px 24px 48px;flex:1;margin:0 auto}
.public-main .page-heading{margin-bottom:12px}.public-main h1{font-size:28px}.public-main .page-heading p{max-width:66ch;text-wrap:pretty}
.public-intro{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:32px;max-width:75ch;text-wrap:pretty}
.public-list-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.public-register .toolbar .field{flex:0 1 240px}.public-register .toolbar .field.search{flex:1 1 300px}
.public-loans td{max-width:340px}.public-loans th:nth-child(1){width:17%}.public-loans th:nth-child(2){width:15%}.public-loans th:nth-child(3){width:15%}.public-loans th:nth-child(4){width:23%}
.public-loans .loan-equipment{padding:0;margin:0;list-style:none}.loan-equipment li+li{margin-top:12px}.loan-equipment small{margin-top:2px}
.public-privacy{font-size:14px;color:var(--muted);max-width:78ch;line-height:1.6;margin-top:20px;text-wrap:pretty}
.public-footer{padding:24px;text-align:center;font-size:14px;color:var(--muted);border-top:1px solid var(--border);background:var(--surface)}
.public-error{padding:24px}.public-error p{margin-bottom:16px;color:var(--error-text)}
#public-modal{width:800px}#public-modal .dialog-body{padding:0}#public-modal .form-section{padding:20px 24px}#public-modal .dialog-head{padding:20px 24px}
#public-modal.public-form-modal[open]{display:flex;flex-direction:column;height:min(920px,calc(100dvh - 48px));overflow:hidden}
#public-modal.public-form-modal>.dialog-head{flex:none;border-bottom:1px solid var(--border)}
#public-form{display:flex;flex-direction:column;flex:1;min-height:0}
.public-form-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-padding:16px}
#public-modal .dialog-footer{flex:none;background:var(--surface);border-top:1px solid var(--border)}
#public-modal .dialog-head h2{font-size:24px;color:var(--primary)}#public-modal .dialog-footer{padding:16px 24px 24px}
#public-modal .form-section h3{margin-bottom:20px}
.public-form-note{padding:20px 24px;font-size:14px;line-height:1.6;color:var(--muted);text-wrap:pretty}
.public-lines{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.public-line{display:grid;grid-template-columns:minmax(0,1fr) 112px 44px;gap:12px;align-items:start}.public-line .field{margin:0}.public-line>.icon-btn{margin-top:28px;border:1px solid var(--border-strong)}
.public-line .subtext{min-height:21px}.public-section-note{font-size:14px;color:var(--muted);margin-top:12px;text-wrap:pretty}
.public-honeypot{display:none}.public-success{padding:0 24px 24px}.public-success .receipt-code{font-size:24px;font-weight:700;color:var(--primary);margin:16px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.public-success p{margin-bottom:12px;max-width:65ch;text-wrap:pretty}.public-success .badge{margin-bottom:16px}
#public-modal .form-error{margin:16px 24px 0}#public-form[aria-busy=true]{cursor:progress}
@media(max-width:767px){
 .public-header-inner{padding:16px;gap:12px;flex-wrap:wrap}.public-brand{gap:12px;flex:1 1 100%}.public-brand .school-logo{width:48px;height:48px}.public-brand strong{font-size:14px}.public-header-inner>.btn{font-size:14px;min-height:44px}
 .public-main{padding:24px 16px 32px}.public-main h1{font-size:24px}.public-main .page-heading>.actions{width:100%}.public-main .page-heading>.actions>.btn{width:100%}.public-intro{margin-bottom:24px}
 .public-list-head{align-items:start}.public-list-head h2{font-size:20px;max-width:14ch}.public-list-head>.btn{flex:none}
 .public-register .toolbar .field{flex:1 1 calc(50% - 12px);min-width:0}.public-register .toolbar .field.search{flex:1 1 100%}.public-loans td{max-width:none}
 #public-modal .dialog-head,#public-modal .form-section{padding:16px}#public-modal .dialog-head h2{font-size:20px}#public-modal .dialog-footer{padding:16px;flex-wrap:wrap}
 .public-form-note{padding:16px}.public-line{grid-template-columns:minmax(0,1fr) 80px 44px;gap:8px}.public-line .field:first-child{grid-column:1/-1}.public-line .field:nth-child(2){grid-column:1/3}.public-line>.icon-btn{grid-column:3;margin-top:28px}.public-success{padding:0 16px 16px}#public-modal .form-error{margin:16px 16px 0}
 .public-footer{padding:20px 16px;font-size:14px}
}

.public-header-inner>.public-brand{flex:1 1 auto}
.header-staff{flex:0 0 auto}
.public-header-inner>.btn{flex-shrink:0}
@media(max-width:1000px){.public-header-inner{flex-wrap:wrap}.public-header-inner>.public-brand,.header-staff{flex:1 1 100%}}

@media(min-width:768px){.public-register .toolbar .field.search{flex-basis:100%}.public-register .toolbar .field:not(.search){flex:1 1 180px}}

@media(min-width:768px){.public-loans td:nth-child(5) .cell-value,.public-loans td:nth-child(6) .cell-value{white-space:nowrap}}
