:root{
  --bg:#f4f7fb;--surface:#fff;--ink:#172033;--muted:#6d778b;--line:#dfe5ee;
  --primary:#1746a2;--primary-dark:#103574;--green:#168a55;--green-soft:#e5f7ee;
  --red:#c83c3c;--red-soft:#fdeaea;--amber:#b9790b;--amber-soft:#fff4d9;--shadow:0 12px 32px rgba(25,40,70,.08)
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{width:245px;background:#101b32;color:#fff;padding:22px 16px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:30}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#2f75e8,#163e88);display:grid;place-items:center;font-weight:800}.brand strong,.brand span{display:block}.brand span{font-size:12px;color:#aebbd3;margin-top:2px}.sidebar nav{display:grid;gap:6px}.sidebar nav a,.sidebar-footer a{padding:11px 12px;border-radius:10px;text-decoration:none;color:#cbd5e8}.sidebar nav a:hover,.sidebar nav a.active{background:#223556;color:#fff}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:16px 8px 0}.sidebar-footer a{display:inline-block;padding-left:0}.main-wrap{margin-left:245px;width:calc(100% - 245px)}.topbar{min-height:82px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);padding:15px 28px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:20}.topbar h1{font-size:22px;margin:0}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.school-switch{margin-left:auto}.school-switch select{min-width:190px}.menu-button{display:none;border:0;background:#e8eef9;border-radius:9px;font-size:21px;padding:8px 11px}.content{padding:26px;max-width:1500px;margin:0 auto}.grid{display:grid;gap:18px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:20px}.card h2,.card h3{margin:0 0 14px}.kpi{padding:18px}.kpi .label{font-size:13px;color:var(--muted)}.kpi .value{font-size:28px;font-weight:800;margin-top:8px}.kpi .hint{font-size:12px;color:var(--muted);margin-top:6px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px}.toolbar .spacer{margin-left:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 14px;border-radius:10px;border:1px solid transparent;text-decoration:none;font-weight:700;font-size:14px;cursor:pointer}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:#eef2f8;border-color:#d9e0eb}.btn-success{background:var(--green);color:#fff}.btn-danger{background:var(--red);color:#fff}.btn-sm{padding:7px 10px;font-size:12px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.table{width:100%;border-collapse:collapse;min-width:760px;background:#fff}.table th,.table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#5e687b;background:#f7f9fc}.table tr:last-child td{border-bottom:0}.table .actions{white-space:nowrap}.badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:700}.badge-green{background:var(--green-soft);color:#0b7142}.badge-red{background:var(--red-soft);color:#a32929}.badge-amber{background:var(--amber-soft);color:#946100}.badge-blue{background:#e6eefc;color:#234d9a}.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-4{grid-column:span 4}.col-3{grid-column:span 3}.col-2{grid-column:span 2}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.field small{display:block;color:var(--muted);margin-top:5px}.field input,.field select,.field textarea,.school-switch select{width:100%;border:1px solid #cfd7e4;border-radius:9px;background:#fff;padding:10px 11px;font:inherit;color:var(--ink)}.field textarea{min-height:88px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(23,70,162,.13);border-color:#7b9bd9}.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px;font-weight:600}.alert-success{background:var(--green-soft);color:#0b7142}.alert-error{background:var(--red-soft);color:#a32929}.alert-warning{background:var(--amber-soft);color:#805500}.number-legend{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 12px;font-size:13px}.dot{width:12px;height:12px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:-1px}.dot-free{background:#36a86b}.dot-used{background:#d94c4c}.dot-selected{background:#1746a2}.number-grid{display:grid;grid-template-columns:repeat(10,minmax(42px,1fr));gap:8px}.number-button{height:43px;border:0;border-radius:9px;font-weight:800;cursor:pointer;background:#dff5e8;color:#126d42}.number-button:hover{filter:brightness(.97)}.number-button.used{background:#f7dada;color:#a52d2d;cursor:not-allowed}.number-button.selected{background:var(--primary);color:#fff;box-shadow:0 0 0 3px rgba(23,70,162,.18)}.muted{color:var(--muted)}.small{font-size:12px}.empty{text-align:center;padding:30px;color:var(--muted)}.summary-line{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px dashed var(--line)}.summary-line:last-child{border:0}.amount-positive{color:var(--green);font-weight:800}.amount-negative{color:var(--red);font-weight:800}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:24px 0 12px}.section-title h2{margin:0}.status-steps{display:flex;gap:8px;flex-wrap:wrap}.status-step{padding:8px 10px;border-radius:9px;background:#eef2f8;font-size:12px;font-weight:700}.status-step.current{background:#dfeaff;color:#1746a2}.print-only{display:none}.login-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(145deg,#eef3fb,#dce7f7)}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 45px rgba(30,50,90,.14);padding:30px}.login-card .brand{color:var(--ink);padding:0 0 24px}.login-card .brand span{color:var(--muted)}.login-card h1{font-size:24px;margin:0 0 6px}.login-card p{color:var(--muted);margin:0 0 22px}.login-card .field{margin-bottom:14px}.login-card .btn{width:100%;margin-top:6px}.login-help{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.col-3{grid-column:span 6}.number-grid{grid-template-columns:repeat(8,1fr)}}
@media(max-width:920px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}.main-wrap{margin-left:0;width:100%}.menu-button{display:inline-block}.content{padding:18px}.topbar{padding:12px 16px}.school-switch select{min-width:135px}.col-8,.col-6,.col-4,.col-3,.col-2{grid-column:span 12}.number-grid{grid-template-columns:repeat(6,1fr)}}
@media(max-width:620px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.topbar h1{font-size:18px}.topbar p{display:none}.school-switch{max-width:150px}.card{padding:15px}.number-grid{grid-template-columns:repeat(5,1fr);gap:6px}.number-button{height:40px}.toolbar .spacer{display:none}.toolbar>*{flex:1}.toolbar .btn{white-space:nowrap}}
@media print{body{background:#fff}.sidebar,.topbar,.no-print{display:none!important}.main-wrap{margin:0;width:100%}.content{padding:0;max-width:none}.card{box-shadow:none;border:0}.print-only{display:block}.table-wrap{overflow:visible;border:0}.table{min-width:0}}

/* Administración de escuelas */
.notice-panel{display:flex;gap:10px;align-items:flex-start;background:#eaf1ff;border:1px solid #cbdcff;color:#173f86;border-radius:14px;padding:14px 16px;margin-bottom:18px}.notice-panel strong{white-space:nowrap}.notice-panel span{color:#38567f}.school-config-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.section-title-compact{margin:0 0 16px}.checkbox-field label{display:flex;align-items:center;gap:9px}.checkbox-field input{width:auto}.form-actions{display:flex;justify-content:flex-end}.school-help-card{background:linear-gradient(155deg,#12213c,#1e3761);color:#fff}.school-help-card h2{margin-bottom:18px}.feature-check{display:grid;gap:4px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.13)}.feature-check:last-child{border-bottom:0}.feature-check span{color:#c8d4e8;font-size:13px;line-height:1.45}.school-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.school-card{display:grid;gap:18px}.school-card-inactive{opacity:.72;background:#f8f9fb}.school-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.school-card-head h3{margin:0}.school-title-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.school-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.school-stats div{background:#f7f9fc;border:1px solid var(--line);border-radius:11px;padding:11px}.school-stats span{display:block;color:var(--muted);font-size:11px;margin-bottom:6px}.school-stats strong{font-size:16px}.school-open-form{display:flex;justify-content:flex-end}
@media(max-width:1100px){.school-config-grid{grid-template-columns:1fr}.school-list{grid-template-columns:1fr}}
@media(max-width:720px){.notice-panel{display:grid}.notice-panel strong{white-space:normal}.school-card-head{display:grid}.school-stats{grid-template-columns:repeat(2,1fr)}.school-open-form .btn{width:100%}}

/* Solicitudes simples tipo planilla Excel */
.sheet-topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 14px;margin-bottom:12px}.sheet-price{font-size:18px;font-weight:800;color:var(--primary);margin-left:5px}.sheet-filters{margin-bottom:10px}.sheet-hint{font-size:13px;color:#536076;margin:0 0 10px}.sheet-card{padding:0;border-radius:12px;overflow:hidden}.sheet-wrap{overflow:auto;max-height:calc(100vh - 245px)}.sheet-table{width:100%;min-width:1880px;border-collapse:separate;border-spacing:0;background:#fff;font-size:12px}.sheet-table th{position:sticky;top:0;z-index:5;background:#e9eef6;color:#34415a;text-transform:uppercase;letter-spacing:.025em;font-size:11px;padding:9px 7px;border-right:1px solid #d9e0ea;border-bottom:1px solid #cbd5e3;white-space:nowrap}.sheet-table td{padding:4px;border-right:1px solid #e0e5ed;border-bottom:1px solid #e0e5ed;vertical-align:middle;background:#fff}.sheet-table tr:hover td{background:#f8fbff}.sheet-table input,.sheet-table select{width:100%;min-width:92px;border:1px solid transparent;border-radius:5px;background:transparent;padding:7px 6px;font:inherit;color:var(--ink)}.sheet-table input:hover,.sheet-table select:hover{border-color:#c9d3e2;background:#fff}.sheet-table input:focus,.sheet-table select:focus{outline:2px solid rgba(23,70,162,.16);border-color:#7395d0;background:#fff}.sheet-table th:nth-child(1),.sheet-table td:nth-child(1){min-width:125px}.sheet-table th:nth-child(2),.sheet-table td:nth-child(2){min-width:145px}.sheet-table th:nth-child(3),.sheet-table td:nth-child(3){min-width:115px}.sheet-table th:nth-child(4),.sheet-table td:nth-child(4){min-width:104px}.sheet-table th:nth-child(5),.sheet-table td:nth-child(5){min-width:170px}.sheet-table th:nth-child(6),.sheet-table td:nth-child(6){min-width:175px}.sheet-table th:nth-child(7),.sheet-table td:nth-child(7){min-width:120px}.sheet-table th:nth-child(8),.sheet-table td:nth-child(8),.sheet-table th:nth-child(10),.sheet-table td:nth-child(10){min-width:105px}.sheet-table th:nth-child(9),.sheet-table td:nth-child(9){min-width:135px}.sheet-table th:nth-child(11),.sheet-table td:nth-child(11),.sheet-table th:nth-child(12),.sheet-table td:nth-child(12){min-width:86px;text-align:center}.sheet-table th:nth-child(13),.sheet-table td:nth-child(13){min-width:155px}.sheet-new-row td{background:#eef9f2!important;border-bottom:2px solid #9ccfb1}.sheet-delivered-row td{background:#fafafa}.sheet-delivered-row td:first-child{box-shadow:inset 4px 0 0 var(--green)}.sheet-money-cell{text-align:right;white-space:nowrap}.sheet-money-cell small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.money-input{text-align:right;font-weight:700}.mini-select{margin-top:2px!important;font-size:10px!important;color:var(--muted)!important;padding-top:3px!important;padding-bottom:3px!important}.sheet-actions-cell form{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sheet-detail-link{font-size:10px;color:var(--primary);padding:3px}.sheet-check{display:inline-flex;align-items:center;justify-content:center;gap:5px;font-weight:700;cursor:pointer}.sheet-check input{width:auto;min-width:0}.number-option-free{color:#08783f}.number-option-used{color:#b02c2c}.center-cell{text-align:center}.settings-layout{max-width:900px}.simple-help-card{background:#f8fafc}.simple-help-card .feature-check span{color:var(--muted)}
@media(max-width:920px){.sheet-wrap{max-height:calc(100vh - 220px)}.sheet-topbar{align-items:flex-start}.sheet-filters input{min-width:190px!important}}
@media(max-width:620px){.sheet-topbar{display:grid}.sheet-topbar .btn{width:100%}.sheet-wrap{max-height:calc(100vh - 250px)}.sheet-table{font-size:11px}.sheet-table input,.sheet-table select{padding:6px 4px}.sheet-hint{font-size:12px}}
