/* King's School CRM — scoped to authenticated portals. */
.crm-layout{--side:224px;--navy:#102d4b;--gold:#d4b16b;background:#f4f6fa;color:#152f4a;font-family:Arial,sans-serif}.crm-layout header{background:#fff;color:var(--navy);border-bottom:1px solid #dfe6ee;box-shadow:none}.crm-layout header a{color:var(--navy)}.crm-layout header strong{font-family:Georgia,serif}.crm-layout .portal-nav{background:linear-gradient(155deg,#102d4b,#0a2038);padding:20px 12px;border:0;gap:4px}.crm-layout .portal-nav a{color:#e9eef5;border-radius:8px;padding:11px 12px;display:flex;gap:11px;align-items:center}.crm-layout .portal-nav a:hover{background:#ffffff10}.crm-layout .portal-nav a[aria-current=page]{background:var(--gold);color:#102d4b;font-weight:700;box-shadow:0 4px 15px #0002}.crm-layout .crm-brand{color:#dbc38e;font-size:10px;line-height:1.6;padding:4px 12px 24px;letter-spacing:1.7px}.nav-icon{width:19px;text-align:center;display:inline-flex;justify-content:center}.nav-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.crm-layout main{padding:25px 28px}.crm-layout h1{font-size:27px;margin:5px 0 9px}.crm-layout h2{font-size:20px;margin:5px 0 10px}.crm-layout h3{font-size:16px}.portal-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 22px}.portal-title small{font-size:10px;letter-spacing:1.6px;color:#96743a}.portal-title p{margin:0;color:#6c7d90;font-size:13px}.portal-title form{margin:0}.toolbar-actions,.table-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.crm-layout button,.crm-layout .button{border-radius:7px;font-weight:600;padding:11px 16px}.crm-layout .gold{background:var(--gold);color:var(--navy)}.crm-layout .light{background:#edf2f7;color:#25425e;border:1px solid #dce4ed}.full{display:block;width:100%;text-align:center;margin:12px 0}.portal-panel{background:white;border:1px solid #dce4ee;border-radius:12px;overflow:hidden;margin-bottom:20px;box-shadow:0 2px 4px #0a274306}.panel-heading{background:var(--navy);color:#fff;padding:14px 19px;font-size:15px;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-heading a{color:#eedbb3;text-decoration:none;font-size:12px}.panel-body{padding:19px}.panel-body>p:first-child{margin-top:0}.panel-tools{padding:14px 18px;display:flex;gap:12px;border-bottom:1px solid #e5eaf0}.panel-tools input{margin:0;background:#f9fafc}.portal-table{border-collapse:collapse;width:100%;font-size:12px}.portal-table th{font-size:10px;color:#53697f;background:#f5f7fa;text-align:left;padding:13px 16px;white-space:nowrap}.portal-table td{padding:15px 16px;vertical-align:middle;border-bottom:1px solid #edf0f5}.portal-table td small{display:block;font-size:11px;margin-top:5px}.portal-table .button{font-size:11px;padding:8px 13px}.table-actions{flex-wrap:nowrap}.icon-action{white-space:nowrap;font-size:11px;font-weight:700;text-decoration:none}.status-pill{display:inline-block;padding:6px 11px;border-radius:20px;background:#eef1f4;font-size:11px;font-weight:600;white-space:nowrap}.is-paid{background:#e3f3ea;color:#286449}.is-pending{background:#fff0d6;color:#87601e}.portal-empty{padding:24px;color:#78899b;text-align:center;font-size:13px}.portal-pager{display:flex;justify-content:flex-end;gap:15px;align-items:center;padding:11px 16px;font-size:11px;color:#77899b}.portal-pager button{padding:7px 10px;background:#edf2f6;color:#17324d}.portal-pager button:disabled,button:disabled{opacity:.45;cursor:default}.student-picker{display:flex;align-items:flex-end;gap:12px;margin-bottom:18px}.student-picker label{flex:1;margin:0}.student-picker select{margin-top:5px}.student-picker button{flex-shrink:0}.student-hero{padding:22px 25px;display:flex;align-items:center;gap:20px;border:1px solid #dce5ed;border-radius:13px;background:linear-gradient(110deg,#fff,#eef2f6);margin:0 0 20px}.student-hero>div:nth-child(2){flex:1}.student-hero h2{font-size:25px;margin:3px 0 7px}.student-hero p{margin:0 0 5px;font-size:13px;color:#536b83}.student-hero small{font-size:11px}.student-avatar{height:75px;width:75px;border-radius:50%;background:#102d4b;color:#e5ca91;font:34px Georgia,serif;display:flex;align-items:center;justify-content:center;border:5px solid #fff;box-shadow:0 0 0 1px #dce4ed;flex-shrink:0}.portal-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:20px 0}.metric{padding:20px;border-radius:11px;border:1px solid #dde5ed;background:#edf2f7}.metric span{display:block;font-size:11px;font-weight:600;color:#4d647b}.metric strong{display:block;font-size:26px;letter-spacing:-.7px;margin-top:10px}.metric.paid{background:#ebf4ef;border-color:#d9e9df}.metric.overdue{background:#fbf4e8;border-color:#f1e5cc}.metric.due{background:#eef0f6}.metric.due strong{font-size:21px}.billing-split,.invoice-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:22px;align-items:start}.billing-split>.portal-panel{min-width:0}.billing-split label,.portal-dialog label{font-size:12px}.billing-split input,.billing-split select,.billing-split textarea,.portal-dialog input,.portal-dialog select{padding:10px;font-size:13px;margin-top:5px}.billing-split textarea{min-height:65px}.grade-fee-summary{margin:18px 0;background:#f6f8fa;border:1px solid #e4e9ef;border-radius:8px}.grade-fee-summary div{display:flex;justify-content:space-between;padding:11px 13px;font-size:12px;border-bottom:1px solid #e4e9ef}.grade-fee-summary div:last-child{border:0}.notice-amber{padding:12px 14px;border-radius:8px;background:#fff5e3;color:#84632b;font-size:12px;border:1px solid #efdfbf}.extra-row{display:grid;grid-template-columns:minmax(0,1fr) 70px 32px;gap:8px;align-items:center;margin:12px 0}.extra-row button{padding:8px;background:#edf2f7;color:#1b3650}.record-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0;border-bottom:1px solid #dce3ed;padding-bottom:10px}.record-tabs a{text-decoration:none;color:#64798e;font-size:12px;padding:10px 14px;border-radius:7px}.record-tabs a[aria-current=page]{background:var(--navy);color:white}.record-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;max-height:58vh;overflow:auto;padding:2px 8px 18px 0;margin-bottom:15px}.record-fields label{font-size:11px}.record-fields input{padding:10px;font-size:13px;margin-top:5px}.record-fields p{margin:5px 0 12px;font-size:13px}.record-fields small{font-size:11px}.requirement-row{border:1px solid #e1e8ee;padding:12px;border-radius:7px;font-size:12px}.requirement-row summary{display:flex;justify-content:space-between;gap:10px}.requirement-row form{margin:12px 0}.requirement-row summary span{color:#7a8c9d}.timeline-item{padding:10px 0;border-bottom:1px solid #e8edf3;font-size:12px}.timeline-item p{margin:5px 0}.timeline-item small{font-size:10px}.portal-dialog{border:1px solid #dae3ee;border-radius:12px;padding:0;width:min(700px,94vw);max-height:92vh;color:#142f4a}.portal-dialog::backdrop{background:#102d4b88}.invoice-paper{background:#fff;border:1px solid #dfe5ed;border-radius:10px;padding:30px;min-width:0}.invoice-head{display:flex;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:3px solid var(--gold)}.invoice-head>div:last-child{text-align:right}.invoice-brand{display:flex;gap:13px;align-items:center}.invoice-brand img{width:42px;height:58px;object-fit:contain}.invoice-head h2{font-size:17px}.invoice-head small{font-size:9px;letter-spacing:.4px}.invoice-parties{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:24px 0}.invoice-parties small,.invoice-parties strong,.invoice-parties span{display:block}.invoice-parties small{font-size:9px;letter-spacing:1px;margin-bottom:8px}.invoice-parties strong{font-size:13px}.invoice-parties span{font-size:11px;margin-top:6px;color:#667e95}.invoice-paper table{width:100%;border-collapse:collapse;font-size:10px;min-width:560px}.invoice-paper th{background:#f2f5f8;font-size:9px;text-align:left;padding:10px 7px;color:#526c86}.invoice-paper td{padding:10px 7px;border-bottom:1px solid #e8edf2;vertical-align:top}.invoice-paper td small{display:block;font-size:9px;color:#7c8d9e}.invoice-paper .table-scroll{max-height:49vh;overflow:auto}.invoice-totals{display:flex;justify-content:flex-end;align-items:center;gap:25px;margin-top:24px;border-top:2px solid var(--gold);padding-top:15px}.invoice-totals strong{font-size:24px}.invoice-balance{text-align:right;font-size:12px;margin-top:12px}.invoice-note{font-size:11px;white-space:normal;border-left:3px solid #d4b16b;padding:10px;background:#fbf8f1}.invoice-paper footer{margin:25px 0 0;padding:18px 0 0;border-top:1px solid #e6ecf2;font-size:9px;color:#8b98a7}.invoice-sidebar{position:sticky;top:95px}.notification-strip{background:#edf5ed;padding:12px;border-radius:8px;margin:15px 0;font-size:12px}.notification-strip form{display:flex;align-items:center;gap:12px;justify-content:space-between;margin:0}.dashboard-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:24px}.dashboard-actions>a{display:flex;gap:13px;align-items:center;text-decoration:none;border:1px solid #dfe6ed;background:white;padding:18px;border-radius:10px;font-size:12px}.dashboard-actions strong{font-size:25px;color:#ab8340}.dashboard-billing{display:grid;grid-template-columns:minmax(0,2.7fr) minmax(230px,1fr);gap:20px}.dashboard-lower{display:grid;grid-template-columns:1fr 1fr;gap:20px}.due-item{display:grid;grid-template-columns:90px 1fr auto;gap:10px;padding:13px 0;border-bottom:1px solid #e7edf3;font-size:11px}.due-item>strong{color:#8d6a2c}.school-banner{padding:28px;border-radius:14px;margin-bottom:24px;background:linear-gradient(90deg,#102d4bf5,#102d4bd9 45%,#102d4b33),url('school-life.png') center/cover;min-height:180px;color:white}.school-banner h2{font:25px/1.3 Georgia,serif!important}.school-banner em{color:#e0c48a}.school-banner p{font-size:12px}.school-banner small{letter-spacing:2px;font-size:9px;color:#e0c48a}.legacy-ledger{padding:15px;font-size:12px}.invoice-print-page{padding:20px;background:white}.invoice-print-page .invoice-paper{max-width:1000px;margin:0 auto}.print-toolbar{text-align:right;max-width:1000px;margin:0 auto 15px}.crm-layout [hidden]{display:none!important}
@media(min-width:1600px){.billing-split{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)}.invoice-workspace{grid-template-columns:minmax(0,2.6fr) minmax(260px,1fr)}}
@media(max-width:1100px){.billing-split,.invoice-workspace,.dashboard-billing{grid-template-columns:1fr}.invoice-sidebar{position:static}.portal-metrics,.dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.record-fields{grid-template-columns:1fr 1fr}.invoice-paper .table-scroll{max-height:55vh}.portal-table{min-width:650px}}
@media(max-width:700px){.crm-layout main{padding:18px 14px}.crm-layout .portal-nav{background:var(--navy);width:auto;border-radius:10px;position:static;padding:8px}.crm-layout .portal-nav a{padding:9px;font-size:11px}.crm-layout .portal-nav a .nav-icon{display:none}.portal-title{align-items:flex-start;flex-direction:column;gap:10px}.crm-layout h1{font-size:23px}.portal-metrics{gap:9px}.metric{padding:14px}.metric strong{font-size:23px}.student-hero{padding:17px;gap:12px;flex-wrap:wrap}.student-hero h2{font-size:20px}.student-avatar{height:55px;width:55px;font-size:24px}.dashboard-lower{grid-template-columns:1fr}.record-fields{grid-template-columns:1fr;max-height:none}.invoice-paper{padding:18px}.invoice-head{flex-direction:column}.invoice-head>div:last-child{text-align:left}.student-picker{align-items:center}.student-picker label{font-size:11px}.dashboard-actions{gap:8px}.dashboard-actions>a{padding:12px;font-size:11px}.toolbar-actions{gap:5px}}
@media print{body,.invoice-print-page{background:white!important;padding:0!important}.print-toolbar,.portal-nav,header,body>footer,.toolbar-actions,.record-tabs,.invoice-sidebar{display:none!important}.invoice-print-page .invoice-paper,.invoice-paper{border:0;border-radius:0;padding:0;max-width:none;margin:0}.invoice-paper .table-scroll{overflow:visible;max-height:none}.invoice-paper table{min-width:0;font-size:10px}.invoice-paper tr{break-inside:avoid}.invoice-head{break-inside:avoid}.invoice-paper footer{display:block!important}.invoice-totals,.invoice-balance{break-inside:avoid}@page{size:A4;margin:16mm}}

.student-avatar{overflow:hidden}.student-avatar img{width:100%;height:100%;object-fit:cover}

@media(max-width:700px){.crm-layout{--side:0px}.crm-layout footer{margin-left:0}.record-tabs{flex-wrap:nowrap;overflow-x:auto}.record-tabs a{white-space:nowrap}}
