.plan-strip{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-strip .bi-en,.plan-strip .bi-hi{display:inline;font-size:inherit;line-height:inherit;margin:0}.plan-strip .bi-hi:before{content:" / "}.app-back{display:inline-flex;align-items:center;gap:9px;min-height:42px;margin:0 0 12px;padding:6px 14px 6px 7px;border:1px solid #d8e4e9;border-radius:14px;background:#fff;color:var(--ink);text-decoration:none;font-weight:900;box-shadow:0 4px 14px #18304212}.app-back-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:linear-gradient(145deg,#f4bd4d,#e8a932);font-size:1.25rem;line-height:1}.app-back span:last-child{display:flex;align-items:baseline;gap:5px}.app-back strong{font-size:.88rem}.app-back small{font-size:.68rem;color:var(--muted);font-weight:750}
.auth-screen{position:relative;max-width:590px;margin:34px auto;padding:25px}.auth-mark{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 10px;border-radius:17px;background:linear-gradient(145deg,#f6bd4c,#e7a62f);color:var(--ink);font-size:1.45rem;font-weight:950;box-shadow:0 8px 20px #d7952733}.auth-heading{text-align:center}.auth-heading h1{margin:3px 0 4px;color:var(--ink);font-size:1.55rem;line-height:1.1}.auth-heading p{margin:0 0 18px}.auth-kicker{color:#a76d0d;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.auth-links{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;font-size:.82rem}.auth-links a{color:var(--ink);font-weight:800;text-decoration:none}.auth-links .auth-create{color:#126a4b}.auth-links-centered{justify-content:center}.auth-section{border:1px solid #dce6eb;border-radius:16px;padding:12px;background:#fff}.auth-section h2{margin:0 0 10px;color:var(--ink);font-size:.95rem}
.auth-divider{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:#dce6eb}.google-login{width:100%;flex-direction:row;border:1px solid #cbd8df;background:#fff;color:var(--ink);box-shadow:none}.google-mark{display:grid;place-items:center;width:22px;height:22px;margin-right:9px;border-radius:50%;background:#fff;color:#4285f4;font:900 1rem/1 Arial,sans-serif}
.payment-qr-preview{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #cfe3d7;border-radius:14px;background:#f2fbf5}.payment-qr-preview img{width:112px;height:112px;object-fit:contain;border:7px solid #fff;border-radius:12px;box-shadow:0 3px 12px #18304218}.payment-qr-preview span{color:var(--ok);font-size:.78rem;font-weight:850}.share-payment-qr{border:1px solid #cfe3d7!important;background:#eef9f2!important;color:#126a4b!important}
@media(max-width:700px){
  body{background:#f2f5f7;-webkit-tap-highlight-color:transparent}
  .shell{padding:9px 10px calc(76px + env(safe-area-inset-bottom))}
  .app-back{display:inline-flex;align-items:center;gap:9px;min-height:40px;margin:0 0 8px;padding:5px 12px 5px 6px;border:1px solid #d8e4e9;border-radius:14px;background:#fff;color:var(--ink);text-decoration:none;font-weight:900;box-shadow:0 4px 14px #18304212}
  .app-back-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:linear-gradient(145deg,#f4bd4d,#e8a932);font-size:1.25rem;line-height:1}
  .app-back span:last-child{display:flex;align-items:baseline;gap:5px}.app-back strong{font-size:.84rem}.app-back small{font-size:.65rem;color:var(--muted);font-weight:750}
  .mobile-nav a[href$="logout.php"],.mobile-nav a[href$="admin_logout.php"]{color:#a53b3b}.mobile-nav a[href$="logout.php"] .nav-icon,.mobile-nav a[href$="admin_logout.php"] .nav-icon{background:#fff0f0;color:#a53b3b;font-weight:900}
  .plan-strip{min-height:34px;padding:7px 10px!important;font-size:.72rem!important;border-radius:11px!important}.plan-strip .bi-hi{display:inline!important;font-size:inherit!important}
  .shell>.hero:not(.reminder-hero),.app-back+.hero{min-height:0;margin-bottom:9px;padding:14px 15px;border-radius:17px;box-shadow:0 7px 22px #123b5d1d}
  .shell>.hero h1{font-size:1.3rem;line-height:1.15}.shell>.hero p{font-size:.78rem;line-height:1.3}.shell>.hero .dashboard-help{font-size:.72rem;margin-top:5px}
  .panel,.card{border-color:#dce6eb;border-radius:16px;padding:12px;box-shadow:0 4px 14px #1830420c}
  .section-title{margin:12px 2px 6px;align-items:center}.section-title h2{font-size:1rem;line-height:1.15}.section-title .muted{font-size:.72rem;line-height:1.2}
  .easy-steps{grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 9px}.easy-step{min-height:66px;padding:7px;border-radius:13px}.easy-step .step-number{width:24px;height:24px;margin-bottom:4px;font-size:.75rem}.easy-step strong{font-size:.7rem;line-height:1.15}.easy-step .bi-hi{font-size:.72em}
  .grid{gap:9px}.form{max-width:none}.form-section{padding-top:12px;margin-top:12px}.form-section h2{font-size:.95rem;margin-bottom:8px}
  .field{margin-bottom:9px}.field label{margin-bottom:3px;font-size:.8rem}.field input,.field select,.field textarea{min-height:44px;padding:8px 10px;border-radius:11px;font-size:16px}.field textarea{min-height:76px}
  .btn{min-height:40px;padding:7px 10px;border-radius:11px;font-size:.76rem;box-shadow:none}.actions{gap:6px}.actions form{margin:0}
  details.panel{margin-top:9px!important}details summary{font-size:.86rem;font-weight:800}
  .child-row{gap:8px;padding:10px 2px}.child-name{font-size:.9rem}.child-meta{font-size:.72rem;line-height:1.3}.child-row .actions{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.child-row .actions form,.child-row .actions .btn{width:100%}
  .fees{font-size:.76rem}.fees th,.fees td{padding:7px 6px}.pill{font-size:.66rem;padding:2px 6px}
  .reminder-hero{padding:14px 15px!important;gap:8px}.reminder-hero h1{font-size:1.2rem!important}.reminder-summary{padding:7px 10px;border-radius:11px}.reminder-summary strong{font-size:1rem}
  .reminder-row{padding:10px 2px}.reminder-status-icon{width:34px;height:34px;flex-basis:34px}.reminder-student h3{font-size:.9rem}.reminder-student p,.reminder-student small{font-size:.7rem}.reminder-actions .btn{min-width:68px}
  .card-payment-actions{padding:12px!important;gap:9px!important;border-radius:16px!important}.card-payment-actions h2{font-size:1rem}.card-payment-actions p{font-size:.72rem}
  #fee-card{margin:10px auto!important;border-radius:12px!important}.scan-card{padding:12px;border-radius:15px}.scan-card h2{font-size:1rem}.scan-upload{min-height:48px;margin-top:8px}.scan-status{margin-top:8px;padding:8px;font-size:.75rem}
  .footer{padding:12px 10px 76px;font-size:.7rem}
  body:has(.auth-screen){padding-bottom:0;background:linear-gradient(180deg,#eaf2f6 0,#f4f6f7 42%,#f2f5f7 100%)}body:has(.auth-screen) .topbar{box-shadow:0 5px 18px #0c2e4824}body:has(.auth-screen) .shell{max-width:540px;padding:10px 10px 20px}body:has(.auth-screen) .footer{padding:10px 10px 20px}
  .auth-screen{width:100%;max-width:none;margin:0;padding:13px 11px 11px;border-radius:20px;box-shadow:0 8px 24px #18304214}.auth-mark{width:46px;height:46px;margin-bottom:7px;border-radius:15px;font-size:1.25rem}.auth-heading h1{font-size:1.25rem}.auth-heading p{margin-bottom:10px;font-size:.7rem}.auth-kicker{font-size:.58rem}.auth-screen>.alert{margin:0 0 8px;padding:8px 10px;font-size:.72rem}
  .auth-form.native-form{grid-template-columns:1fr;gap:7px}.auth-form.native-form>.auth-section,.auth-form.native-form>.native-submit-bar{grid-column:1/-1}.auth-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px;border-radius:15px}.auth-section h2{grid-column:1/-1;margin:0;font-size:.8rem}.auth-section .field{min-width:0}.auth-section .auth-wide{grid-column:1/-1}.login-screen .auth-form .field{grid-column:1/-1}.auth-screen .native-submit-bar{position:static;grid-template-columns:1fr!important;bottom:auto;margin:3px 0 0!important;padding:0;background:none}.auth-screen .native-submit-bar .btn{width:100%;min-height:44px;border-radius:13px;font-size:.82rem;box-shadow:0 6px 16px #d8962238}.auth-links{margin-top:10px;padding:9px 4px 1px;border-top:1px solid #e4ebef;font-size:.7rem}.auth-links-centered{flex-wrap:wrap;gap:5px}.setup-screen{padding-top:10px}.setup-screen .auth-mark{width:40px;height:40px;margin-bottom:5px;border-radius:13px}.setup-screen .auth-heading h1{font-size:1.12rem}.setup-screen .auth-heading p{margin-bottom:7px}.setup-form.native-form{gap:7px}.payment-qr-settings>.payment-qr-preview{grid-column:1/-1}.payment-qr-preview{gap:9px;padding:8px}.payment-qr-preview img{width:86px;height:86px;border-width:5px}.payment-qr-preview span{font-size:.68rem}.payment-qr-settings input[type="file"]{font-size:.7rem!important}.panel:has(>#fee-card)>.easy-steps+.actions.has-payment-qr{grid-template-columns:repeat(2,minmax(0,1fr))}.panel:has(>#fee-card)>.easy-steps+.actions.has-payment-qr .btn{font-size:.68rem}
}
@media(max-width:700px){
  .panel.form{width:100%;max-width:none;padding:11px}.panel.form>h1,.panel.form>h2{margin:0 0 9px;font-size:1.05rem}
  form.native-form{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.native-form>.form-grid,.native-form details .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px!important}.native-form>.form-grid,.native-form>.form-section,.native-form>details,.native-form>.native-submit-bar{grid-column:1/-1}
  .native-form .form-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;border-top:0;margin:0 0 9px;padding:9px;background:#fff;border:1px solid #dce6eb;border-radius:15px;box-shadow:0 3px 10px #18304208}
  .native-form .form-section>h2,.native-form .form-section>details{grid-column:1/-1}.native-form .form-section>h2{display:flex;align-items:center;gap:4px;margin:0 0 1px;font-size:.9rem}.native-form .form-section>h2 .bi-hi{display:inline;font-size:.78em;margin:0 0 0 3px}
  .native-form .field{min-width:0;margin:0;padding:6px 8px 5px;background:#f7fafb;border:1px solid #d7e3e9;border-radius:12px;transition:border-color .15s,box-shadow .15s,background .15s}.native-form .field:focus-within{background:#fff;border-color:#2e7599;box-shadow:0 0 0 3px #2e759919}
  .native-form .field:has(textarea),.native-form .field:has(input[type="email"]),.native-form .field:has(input[type="password"]){grid-column:1/-1}
  .native-form .field label{display:block;margin:0 0 1px;color:#52697a;font-size:.68rem;line-height:1.15;font-weight:800}.native-form .field label .bi-hi{display:inline;font-size:.82em;line-height:inherit;margin:0 0 0 3px}.native-form .field label .required-mark{font-size:.9em}
  .native-form .field input:not([type="checkbox"]),.native-form .field select,.native-form .field textarea{width:100%;min-width:0;min-height:30px;padding:2px 0;border:0;border-radius:0;background:transparent;color:#102f46;font-size:15px;font-weight:650;box-shadow:none;outline:0}.native-form .field select{padding-right:20px}.native-form .field textarea{min-height:52px;resize:vertical}.native-form .field input::placeholder,.native-form .field textarea::placeholder{color:#94a5b0;font-weight:500}
  .native-form .field small{display:block;margin-top:2px;font-size:.62rem;line-height:1.2}.native-form .field:has(input[type="checkbox"]){padding:8px}.native-form input[type="checkbox"]{width:20px!important;min-height:20px!important;margin:0 6px 0 0;vertical-align:middle}
  .native-form details{margin:1px 0;padding:8px;border:1px solid #dce6eb;border-radius:12px;background:#fbfcfd}.native-form details summary{font-size:.72rem;line-height:1.2}.native-form details summary .bi-hi{display:inline;font-size:.78em;margin-left:3px}
  .native-submit-bar{position:sticky;bottom:67px;z-index:8;display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin:10px -4px -4px!important;padding:7px 4px 4px;background:linear-gradient(to bottom,#f2f5f700,#f2f5f7 28%);border-radius:12px}.native-submit-bar>.btn,.native-submit-bar>button{min-height:44px;font-size:.8rem;font-weight:850}.native-submit-bar>.btn.gold,.native-submit-bar>button.gold{box-shadow:0 5px 14px #d8962240}
  .native-form>.native-submit-bar:has(>button:only-child){grid-template-columns:1fr}.native-form>.native-submit-bar:has(>button:only-child)>button{width:100%}
  .scan-card>p.muted,.scan-card>p.small{display:none}.scan-card+.panel.form{margin-top:0}.form .section-title{margin:0 0 8px}.form .section-title h1{font-size:1.1rem}
}
@media(max-width:370px){form.native-form,.native-form>.form-grid,.native-form details .form-grid,.native-form .form-section{grid-template-columns:1fr}.native-form>.field,.native-form .form-section>.field{grid-column:1}}

@media(max-width:700px){
  body.mobile-menu-open{overflow:hidden}.mobile-nav a,.mobile-nav button{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;justify-content:center;padding:0;border:0;background:transparent;color:var(--muted);font:inherit;font-size:.66rem;font-weight:750;line-height:1.05;cursor:pointer}.mobile-nav button .bi-hi{display:none}.mobile-nav button.active,.mobile-nav button[aria-expanded="true"]{color:var(--ink)}.mobile-nav button.active .nav-icon,.mobile-nav button[aria-expanded="true"] .nav-icon{background:#e6f0f5;color:var(--ink)}
  .mobile-more-backdrop{display:block;position:fixed;inset:0;z-index:29;background:#102d4080;backdrop-filter:blur(2px)}.mobile-more-backdrop[hidden]{display:none}.mobile-more-menu{position:fixed;display:block;left:8px;right:8px;bottom:calc(68px + env(safe-area-inset-bottom));z-index:30;max-height:min(72vh,560px);padding:13px;border:1px solid #d7e3e9;border-radius:22px;background:#fff;box-shadow:0 18px 50px #102d4050;opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.mobile-more-menu.is-open{opacity:1;transform:translateY(0);pointer-events:auto}.mobile-more-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 11px;border-bottom:1px solid var(--line)}.mobile-more-head strong,.mobile-more-head small{display:block}.mobile-more-head strong{color:var(--ink);font-size:1rem}.mobile-more-head strong .bi-hi{display:inline;margin-left:5px;font-size:.75em}.mobile-more-head small{margin-top:3px;color:var(--muted);font-size:.68rem}.mobile-more-close{display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:12px;background:#edf3f6;color:var(--ink);font-size:1.5rem}.mobile-more-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding-top:10px}.mobile-more-links a{display:flex;align-items:center;gap:9px;min-height:48px;padding:8px 10px;border:1px solid #dce6eb;border-radius:13px;background:#f8fafb;color:var(--ink);font-size:.76rem;font-weight:850;text-decoration:none}.mobile-more-links a.active{border-color:#e3ad42;background:#fff7e7}.mobile-more-links .nav-icon{display:grid;place-items:center;flex:0 0 29px;width:29px;height:29px;border-radius:9px;background:#eaf2f6}.mobile-more-links .bi-en,.mobile-more-links .bi-hi{display:block}.mobile-more-links .bi-hi{margin:1px 0 0;font-size:.75em;color:var(--muted)}.mobile-more-links .mobile-logout{grid-column:1/-1;border-color:#f1d0d0;background:#fff4f4;color:#9d3434}
  .onboarding-card{grid-template-columns:1fr;gap:10px;margin-bottom:9px;padding:12px}.onboarding-copy h2{font-size:1rem;line-height:1.2}.onboarding-copy p{font-size:.72rem;line-height:1.3}.onboarding-steps{gap:6px}.onboarding-steps li{grid-template-columns:31px minmax(0,1fr) auto;gap:7px;padding:7px}.onboarding-steps li>span{width:29px;height:29px;font-size:.76rem}.onboarding-steps strong{font-size:.76rem}.onboarding-steps small{font-size:.62rem}.onboarding-steps .btn{min-height:34px;padding:5px 8px;font-size:.68rem}.next-action-card{gap:8px;margin-bottom:8px;padding:10px 11px;border-radius:14px}.next-action-card .eyebrow{font-size:.55rem}.next-action-card strong{font-size:.8rem}.next-action-card small{font-size:.62rem}.next-action-card .btn{flex:0 0 auto;min-height:38px;font-size:.7rem}.list-search{margin:6px 0 2px;padding:6px 9px;border-radius:11px}.list-search input{min-height:31px;font-size:15px}
}

/* Compact receipt/card workspace. The :has() selector keeps the PHP card data path unchanged. */
@media(max-width:700px){
  .card-payment-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center!important;margin-bottom:8px!important;padding:9px 10px!important}
  .card-payment-actions>div:first-child{min-width:0}.card-payment-actions h2{margin:0!important;font-size:.88rem!important;line-height:1.15}.card-payment-actions>div:first-child>p{display:none}
  .card-payment-actions>.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column:1/-1;gap:5px;width:100%}.card-payment-actions>.actions form,.card-payment-actions>.actions .btn{width:100%;min-width:0}.card-payment-actions>.actions .btn{min-height:38px;padding:6px 7px;font-size:.69rem;line-height:1.15}
  .panel:has(>#fee-card){padding:9px!important;border-radius:16px}.panel:has(>#fee-card)>.section-title{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin:0 0 7px;align-items:center}.panel:has(>#fee-card)>.section-title h1{margin:0;color:var(--ink);font-size:1rem;line-height:1.12}.panel:has(>#fee-card)>.section-title .muted{display:none}
  .panel:has(>#fee-card)>.section-title>.actions{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.panel:has(>#fee-card)>.section-title>.actions .btn{min-height:34px;padding:5px 7px;font-size:.64rem;white-space:nowrap}
  .panel:has(>#fee-card)>.easy-steps{margin-bottom:6px}.panel:has(>#fee-card)>.easy-steps .easy-step{display:grid;grid-template-columns:21px 1fr;align-items:center;gap:4px;min-height:39px;padding:5px 6px}.panel:has(>#fee-card)>.easy-steps .step-number{width:21px;height:21px;margin:0;font-size:.66rem}.panel:has(>#fee-card)>.easy-steps strong{font-size:.61rem}
  .panel:has(>#fee-card)>.easy-steps+.actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.panel:has(>#fee-card)>.easy-steps+.actions .btn{width:100%;min-width:0;min-height:38px;padding:5px 4px;font-size:.64rem;line-height:1.12;text-align:center}
  .panel:has(>#fee-card)>#fee-card{display:block!important;width:auto!important;max-width:100%!important;max-height:52vh;height:auto!important;margin:7px auto 0!important;border-radius:11px!important}
  .panel:has(>#fee-card)>p:last-of-type{display:none}
  .setup-form .auth-section:first-of-type>.field:first-of-type{grid-column:1/-1}.setup-screen .auth-section .field:has(input[type="email"]){grid-column:auto}
}
