:root{--navy:#08345f;--blue:#1683e8;--light:#f4f7fb;--line:#dbe3ee;--text:#152238;--muted:#6b778c;--green:#3ca56b;--yellow:#f4bd32;--red:#e96b72}*{box-sizing:border-box}body{background:var(--light);color:var(--text);margin:0;font-family:Arial,Helvetica,sans-serif}.app{min-height:100vh;display:flex}.side{color:#fff;background:linear-gradient(#073764,#062d52);flex-shrink:0;width:220px;height:100vh;padding:18px 12px;transition:width .2s,padding .2s;position:sticky;top:0}.logo{letter-spacing:5px;margin:8px 12px 2px;font-size:25px;font-weight:800}.unit{text-align:center;letter-spacing:2px;margin-bottom:24px;font-size:12px}.nav{cursor:pointer;border-radius:10px;margin:6px 0;padding:13px 12px;font-weight:700}.nav.active,.nav:hover{color:var(--navy);background:#fff}.nav small{margin-top:3px;font-weight:400;display:block}.spacer{height:30vh}.main{flex:1;min-width:0;padding:12px 16px;overflow:auto}.top{justify-content:space-between;align-items:center;gap:15px;display:flex}.title h1{margin:0;font-size:27px}.title p{color:var(--muted);margin:5px 0}button{cursor:pointer;border:0;border-radius:9px;padding:11px 15px;font-weight:700}.primary{background:var(--blue);color:#fff}.ghost{color:var(--navy);background:#fff;border:1px solid #cbd8e8}.tabs{gap:8px;margin:0;display:flex}.tab{border:1px solid var(--line);text-align:center;cursor:pointer;background:#fff;border-radius:9px;min-width:105px;padding:9px 16px}.tab.active{background:var(--blue);color:#fff;border-color:var(--blue)}.tab strong{font-size:14px;display:block}.tab span{font-size:12px}.layout{grid-template-columns:1fr;display:grid}.summarybar{align-items:stretch;gap:10px;margin-top:10px;padding:8px 10px;display:flex}.compact-summary{margin-bottom:10px}.summarybar>div{min-width:0}.summarybar span{font-size:11px}.summarybar>div{border:1px solid var(--line);background:#f7f9fc;border-radius:10px;flex:1;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.summarybar span{color:var(--muted);font-size:12px}.summarybar b{font-size:18px}.section-title{border-bottom:1px solid var(--line);background:#eef3f8;padding:11px 14px;font-size:14px;font-weight:800}.dragging{opacity:.5}.drag-over{border:2px dashed var(--blue)!important;background:#eef7ff!important}.admin-mode .assistant-name{cursor:pointer}.assistant-name:hover{text-decoration:underline}.card{border:1px solid var(--line);background:#fff;border-radius:14px;box-shadow:0 2px 8px #102a4310}.tablewrap{overflow:auto}.grid{border-collapse:collapse;width:100%;min-width:900px}.grid th{color:#fff;background:#0a3157;padding:12px 8px;font-size:13px;position:sticky;top:0}.grid th:first-child{width:110px}.grid td{border:1px solid var(--line);vertical-align:top;min-width:110px;height:78px;padding:3px 4px}.grid-cell{cursor:default}.grid-cell:hover{background:0 0}.admin-mode .grid-cell{cursor:pointer}.admin-mode .grid-cell:hover{background:#f8fbff}.empty{color:#1683e8;text-align:center;padding-top:30px;font-weight:700}.grid td:first-child{text-align:center;vertical-align:middle;color:#13243a;background:#f2f5fa;font-weight:800}.assistant-name{border-radius:7px;padding:6px 4px;font-size:11px;display:inline-block}.slot{cursor:pointer;background:#fbfdff;border:1px solid #e1e8f1;border-radius:6px;margin:1px 0;padding:2px 4px;line-height:1.05}.slot:hover{border-color:var(--blue);box-shadow:0 0 0 2px #1683e822}.student-name{font-size:10px;font-weight:700;line-height:1.15;display:block}.discmarks{margin-top:5px;display:block}.disc{border-radius:4px;width:12px;height:5px;margin-right:3px;display:inline-block}.disc.blue{background:#1677d2}.disc.yellow{background:#f0c62e}.disc.red{background:#df4f55}.session-meta{color:#6b778c;margin-top:2px;font-size:8px}.custom-time{border-left:4px solid #1683e8}.count{float:right;background:#e9eef5;border-radius:12px;padding:2px 6px;font-size:9px}.empty{color:#aeb8c7;text-align:center;padding-top:30px}.sidecard{margin-bottom:14px;padding:16px}.sidecard h3{margin:0 0 12px;font-size:15px}.metric{border-bottom:1px solid #edf1f6;justify-content:space-between;padding:8px 0;display:flex}.metric:last-child{border:0}.legend div{margin:10px 0;font-size:12px}.dot{border-radius:50%;width:10px;height:10px;margin-right:7px;display:inline-block}.notice{margin-top:15px;padding:14px 18px}.notice h3{margin:0 0 10px}.noticeitem{vertical-align:top;background:#fff9e8;border:1px solid #f2df9b;border-radius:9px;width:48%;margin:0 1% 8px 0;padding:10px;font-size:13px;display:inline-block}.modalbg{background:#061a2b88;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal{background:#fff;border-radius:15px;width:min(560px,100%);max-height:88vh;padding:22px;overflow-y:auto}.modal h2{margin-top:0}.row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.field{margin:10px 0}.field label{margin-bottom:5px;font-size:12px;font-weight:700;display:block}.field input,.field select{border:1px solid #cbd8e8;border-radius:8px;width:100%;padding:10px;font-size:14px}.modal-scroll{padding-right:4px}.actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;margin-top:15px;display:flex}.toast{color:#fff;background:#13243a;border-radius:9px;padding:12px 16px;display:none;position:fixed;bottom:20px;right:20px}@media (width<=900px){.side{width:75px}.logo,.unit,.nav small{display:none}.nav{text-align:center}.main{padding:14px}.layout{grid-template-columns:1fr}.top{align-items:flex-start}.tabs{overflow:auto}}.side-toggle{color:#fff;background:0 0;border:1px solid #fff3;border-radius:8px;width:34px;height:34px;padding:0;font-size:20px}.side.collapsed{width:56px;padding:18px 6px}.side.collapsed .logo,.side.collapsed .unit,.side.collapsed .nav small{display:none}.side.collapsed .nav{text-align:center;padding:12px 4px;font-size:0}.side.collapsed .nav:first-letter{font-size:18px}.filter-row{flex-wrap:nowrap;align-items:center;gap:10px;margin:8px 0 10px;display:flex}.filter-row .tabs{margin:0}.filter-row .tab{min-width:96px;padding:8px 14px}.main{padding:8px 14px}.grid td{min-width:0;height:78px;padding:3px 4px}.slot{margin:1px 0;padding:2px 4px}.student-name{font-size:10px;line-height:1.15}.timeline-wrap{padding:0 6px 10px;overflow-x:auto}.timeline{min-width:820px}.timeline-scale{grid-template-columns:110px 1fr;display:grid}.timeline-header-spacer{color:#fff;text-align:center;background:#0a3157;border-radius:8px 0 0;padding:8px 5px;font-size:12px;font-weight:800}.timeline-axis-area{background:#0a3157;border-radius:0 8px 0 0;height:34px;position:relative}.timeline-axis-area span{color:#fff;white-space:nowrap;font-size:10px;position:absolute;top:8px;transform:translate(-50%)}.timeline-row{border:1px solid var(--line);border-top:0;grid-template-columns:110px 1fr;display:grid}.timeline-assistant{background:#f2f5fa;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.timeline-track{background:#fbfcfe;min-height:48px;position:relative}.timeline-ref-line{z-index:1;pointer-events:none;border-left:1px solid #dce5ef;position:absolute;top:0;bottom:0}.timeline-lane{border-bottom:1px solid #eef2f6;height:46px;position:relative}.timeline-lane:last-child{border-bottom:0}.timeline-bar{cursor:grab;z-index:2;border:1px solid;border-radius:7px;height:34px;padding:3px 5px;position:absolute;top:4px;overflow:hidden;box-shadow:0 1px 2px #102a4310}.timeline-bar .bar-name{white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:700;line-height:1.2;overflow:hidden}.timeline-bar .bar-time{margin-top:1px;font-size:8px}.timeline-bar.blue{color:#1677d2;background:#eef6ff;border-color:#7db2ee}.timeline-bar.yellow{color:#a17b00;background:#fff9df;border-color:#e5cd66}.timeline-bar.red{color:#c53f46;background:#fff0f1;border-color:#e99298}.timeline-track.drag-over{background:#eef7ff}.modalbg{z-index:99999}.modal{z-index:100000;isolation:isolate;position:relative}.table-section{margin-bottom:8px}.header-info{border:1px solid var(--line);color:#14283e;cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:6px;padding:9px 12px;font-weight:800;display:flex}.notice-badge{color:#fff;background:#d93e49;border-radius:99px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;display:inline-flex}.header-date{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:135px;padding:7px 11px;font-size:12px}.header-date b{font-size:13px;display:block}.header-date small{color:#6b778c;margin-top:2px;display:block}.assistant-totals{flex-wrap:wrap;gap:8px;margin-top:8px;padding:8px 10px;display:flex}.assistant-total{border:1px solid var(--line);background:#f8fafc;border-radius:9px;flex:115px;grid-template-columns:1fr auto;align-items:center;gap:1px 8px;padding:7px 10px;font-size:12px;display:grid}.assistant-total b{grid-row:span 2;font-size:16px}.assistant-total small{color:#6b778c;font-size:9px}.kumon-wordmark{object-fit:contain;width:150px;max-width:100%;height:auto;display:block}.side .logo{justify-content:center;align-items:center;min-height:88px;margin:4px 8px;display:flex}.phantom-slot{color:#8a99a7;cursor:default;opacity:.35;background:#f4f6f8;border:1px dashed #b0bec8;border-radius:6px;justify-content:space-between;align-items:center;gap:5px;margin:2px 0;padding:4px 6px;font-size:11px;font-style:italic;display:flex}.connect-dot{background:#f28c28;border:2px solid #fff;border-radius:50%;flex:none;width:10px;height:10px;display:inline-block;box-shadow:0 0 0 1px #f28c28}.connect-dot.inline{vertical-align:1px;width:8px;height:8px;box-shadow:none;border-width:1px;margin-right:5px}.connect-dot.list-dot{margin-left:6px}.phantom-slot{color:#8a99a7;opacity:.35;background:#f4f6f8;border:1px dashed #b0bec8;border-radius:6px;justify-content:space-between;align-items:center;gap:6px;margin:2px 0;padding:4px 6px;font-size:11px;font-style:italic;display:flex}.phantom-slot:hover{opacity:.7}.connect-dot{vertical-align:1px;background:#f28c28;border:1px solid #fff;border-radius:50%;flex:none;width:9px;height:9px;display:inline-block;box-shadow:0 0 0 1px #f28c28}.connect-dot.inline{width:8px;height:8px;margin-right:4px}.online-dot{vertical-align:1px;background:#22c55e;border:1px solid #fff;border-radius:50%;flex:none;width:9px;height:9px;display:inline-block;box-shadow:0 0 0 1px #22c55e}.online-dot.inline{width:8px;height:8px;margin-right:4px}.phantom-bar{color:#8a99a7;opacity:.35;background:#f4f6f8;border:1px dashed #b0bec8}.phantom-bar:hover{opacity:.7}.student-admin-row{background:#fff;border:1px solid #e1e8f1;border-radius:9px;margin:8px 0;padding:11px}.student-admin-head{font-size:14px}.student-admin-info{color:#6b778c;margin-top:4px;font-size:11px;line-height:1.45}.student-admin-actions{flex-wrap:wrap;gap:7px;margin-top:8px;display:flex}.danger-btn{color:#b63b46!important;border-color:#e7b8bd!important}.student-admin-list{max-height:55vh}.search-result-admin{background:#fff;border:1px solid #e1e8f1;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;margin:7px 0;padding:10px;display:flex}.search-result-admin small{color:#6b778c}.search-result-actions{flex:none;gap:6px;display:flex}.grade-summary{margin-top:8px;padding:10px}.summary-title{letter-spacing:.3px;color:#43566d;margin-bottom:7px;font-size:12px;font-weight:800}.time-summary-grid{flex-wrap:wrap;gap:7px;margin-bottom:10px;display:flex}.time-summary-card{border:1px solid var(--line);text-align:center;background:#f8fafc;border-radius:8px;flex:90px;min-width:78px;padding:7px 8px}.time-summary-card b{font-size:16px;display:block}.time-summary-card span{color:#6b778c;font-size:10px}.assistant-summary-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;display:grid}.assistant-summary-card{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px}.assistant-summary-head{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;font-weight:800;display:flex}.assistant-summary-total{font-size:16px}.assistant-summary-counts{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.assistant-summary-counts div{text-align:center;background:#f7f9fc;border-radius:6px;padding:5px}.assistant-summary-counts b{font-size:13px;display:block}.assistant-summary-counts span{color:#6b778c;font-size:8px}.order-btn{padding:3px 7px;font-size:10px;line-height:1}.order-btn:disabled{opacity:.25;cursor:not-allowed}.assistant-admin-list{max-height:55vh;padding-right:4px;overflow-y:auto}.assistant-admin-row{grid-template-columns:56px 28px 1fr auto auto;align-items:center;gap:6px;margin:8px 0;display:grid}.assistant-order-controls{gap:3px;display:flex}.assistant-order-btn{padding:6px 8px;font-size:10px;line-height:1}.assistant-order-btn:disabled{opacity:.25;cursor:not-allowed}.assistant-rank{text-align:center;color:#6b778c;font-size:12px;font-weight:800}.assistant-order-help{color:#53657a;background:#f7f9fc;border:1px solid #e1e8f1;border-radius:9px;margin:8px 0 12px;padding:9px 11px;font-size:12px}.save-all-btn{font-weight:800}.save-top-btn{background:#3ca56b!important}.admin-mode .save-top-btn{display:block!important}.save-state-dirty{box-shadow:inset 0 0 0 2px #f4bd32!important}.save-state-clean{opacity:.75}.availability-pill{cursor:pointer;background:#fff;border:1px solid #dbe3ee;border-radius:7px;align-items:center;gap:4px;padding:6px 8px;font-size:11px;display:inline-flex}.availability-help{color:#53657a;background:#f7f9fc;border:1px solid #e1e8f1;border-radius:9px;margin:8px 0;padding:9px 11px;font-size:12px}.assistant-unavailable{color:#aab3bf!important;cursor:not-allowed!important;background:#f1f3f6!important}.assistant-unavailable:after{content:"Indisponível";text-align:center;margin-top:3px;font-size:9px;display:block}.auto-save-status{color:#167a4a;background:#f8fbff;border:1px solid #d6e2ee;border-radius:8px;align-items:center;gap:5px;padding:7px 10px;font-size:12px;font-weight:800;display:inline-flex}.auto-save-status.saving{color:#8a6412;background:#fff9e8;border-color:#efd88a}.auto-save-status.error{color:#b63b46;background:#fff1f2;border-color:#efc1c7}.grid{table-layout:fixed}.grid td{min-width:0}.grid th:first-child,.grid td:first-child{width:112px}.side{flex-direction:column;display:flex}.side-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.side .unit{text-align:center;letter-spacing:1px;color:#cfe1f5;margin:0 0 18px;font-size:12px;font-weight:700;line-height:1.3}.side.collapsed .side-head{justify-content:center}.adminbar{background:#f4f8fd;border:1px solid #cfe0f3;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;padding:8px 10px;display:flex}.adminbar button{color:#14283e;background:#fff;border:1px solid #cbd8e8;border-radius:9px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;display:inline-flex}.adminbar .admin-toggle{background:#fff;border-color:#cbd8e8}.adminbar .admin-toggle.on{color:#fff;background:#0a3157;border-color:#0a3157}.adminbar .hint{color:#58708b;flex:1;min-width:200px;font-size:12px}.grid col.col-assistant{width:112px}.grid th:first-child,.grid td:first-child{z-index:3;width:112px;position:sticky;left:0}.grid thead th:first-child{z-index:5}.grid th{z-index:2;position:sticky;top:0;box-shadow:inset 0 -1px #fff3}.grid td:first-child{box-shadow:1px 0 0 var(--line)}.grid td{overflow:hidden}.slot{margin:1px 0;padding:2px 4px;overflow:hidden}.slot .student-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;line-height:1.15;display:block;overflow:hidden}.slot .connect-dot.inline,.slot .online-dot.inline{vertical-align:0;width:7px;height:7px;margin-right:3px}.phantom-slot span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden}.grid th.time-exception{background:#0d4a7a}.grid th.time-exception .exception-tag{letter-spacing:.5px;text-transform:uppercase;color:#ffd98a;margin-top:2px;font-size:9px}.timeline-off{z-index:0;background:repeating-linear-gradient(45deg,#f1f4f8,#f1f4f8 6px,#e6ebf2 6px 12px);position:absolute;top:0;bottom:0}.timeline-bar{flex-direction:column;justify-content:center;display:flex}.assistant-total{grid-template-columns:1fr auto auto}.assistant-total-breakdown{flex-wrap:wrap;grid-column:1/-1;gap:4px;margin-top:4px;display:flex}.assistant-total-breakdown .chip{color:#48607a;border:1px solid var(--line);background:#eef2f6;border-radius:6px;align-items:center;gap:3px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-flex}.assistant-total-breakdown .chip b{grid-row:auto;font-size:11px}.assistant-total-breakdown .chip.blue{color:#1677d2;background:#eef6ff;border-color:#bfdbfa}.assistant-total-breakdown .chip.yellow{color:#a17b00;background:#fff9df;border-color:#ecdb92}.assistant-total-breakdown .chip.red{color:#c53f46;background:#fff0f1;border-color:#f0bcc0}.assistant-total-breakdown .chip.orange{color:#b45309;background:#fff4e8;border-color:#f6c68a}.assistant-total-breakdown .chip.green{color:#127a4b;background:#eafaf1;border-color:#a9e2c5}.assistant-filter{color:#48607a;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.assistant-filter select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 9px;font-size:12px}.grade-options-row{justify-content:flex-end;align-items:center;margin:6px 0 4px;display:flex}.progress-toggle{color:#14283e;background:#fff;border:1px solid #cbd8e8;border-radius:9px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:800;display:inline-flex;box-shadow:0 1px 2px #102a4310}.progress-toggle.active{color:#fff;background:#0a3157;border-color:#0a3157}.progress-toggle.small{white-space:nowrap;border-radius:99px;padding:6px 10px;font-size:11px}@media (width<=700px){.grade-options-row{justify-content:flex-start}.progress-toggle{justify-content:center;width:100%}}.timeline-axis-area{height:50px}.timeline-axis-area span.hour-tick{font-size:11px;font-weight:800;top:5px}.timeline-axis-area span.slot-tick{color:#bcd6f5;font-size:10px;font-weight:700;top:30px}.timeline-axis-area .axis-split{border-top:1px solid #fff3;position:absolute;top:26px;left:0;right:0}.timeline-axis-area .axis-hour-mark{border-left:1px solid #fff6;height:6px;position:absolute;top:20px}.timeline-axis-area .axis-slot-mark{border-left:1px solid #fff6;height:6px;position:absolute;top:44px}.print-modal .print-area{border-top:1px solid #edf1f6;max-height:46vh;padding-top:10px;overflow:auto}.print-header{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;font-size:13px;display:flex}.print-block{margin-bottom:14px}.print-title{color:#2c4a6b;margin-bottom:4px;font-size:12px;font-weight:700}.print-table{border-collapse:collapse;table-layout:fixed;width:100%}.print-table th,.print-table td{vertical-align:top;word-break:break-word;border:1px solid #c9d6e4;padding:3px 4px;font-size:9.5px}.print-table th{background:#eef3f9;font-size:9px}.print-assistant{width:84px;font-weight:700}.print-slot{border-radius:3px;margin-bottom:2px;padding:1px 3px;line-height:1.25}.print-slot.ghost{color:#8494a6;background:#f1f4f8;border:1px dashed #c3cedb}.print-time{opacity:.85;font-size:8px}@media print{body *{visibility:hidden!important}.print-modalbg,.print-modalbg .modal,.print-area,.print-area *{visibility:visible!important}.print-modalbg{background:0 0!important;padding:0!important;display:block!important;position:static!important}.print-modalbg .modal{box-shadow:none!important;border:0!important;width:100%!important;max-width:none!important;max-height:none!important;padding:0!important;position:static!important;overflow:visible!important}.print-modal .print-area{border:0!important;max-height:none!important;overflow:visible!important}.no-print{display:none!important}.print-block{break-inside:avoid}@page{size:landscape;margin:8mm}}.wa-btn{color:#fff;white-space:nowrap;background:#25d366;border-radius:99px;align-items:center;gap:4px;padding:5px 10px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.wa-btn:hover{background:#128c7e}.grade-chip{color:inherit;vertical-align:middle;white-space:nowrap;background:#1f3e6a1f;border-radius:6px;margin-left:3px;padding:0 3px;font-size:9px;font-weight:700;line-height:13px;display:inline-block}.stage-chip{color:inherit;vertical-align:middle;white-space:nowrap;background:#3ca56b24;border-radius:6px;margin-left:3px;padding:0 3px;font-size:9px;font-weight:800;line-height:13px;display:inline-block}.absent-chip{color:#fff;vertical-align:middle;white-space:nowrap;background:#111827;border-radius:6px;margin-left:3px;padding:0 4px;font-size:9px;font-weight:800;line-height:13px;display:inline-block}.slot.absent-slot,.timeline-bar.absent-slot{background:#111827!important;border-color:#111827!important}.slot.absent-slot .student-name,.slot.absent-slot .session-meta,.timeline-bar.absent-slot .bar-name,.timeline-bar.absent-slot .bar-time{color:#fff!important}.slot.absent-slot .absent-chip,.timeline-bar.absent-slot .absent-chip{color:#111827;background:#fff}.slot.absent-slot .grade-chip,.timeline-bar.absent-slot .grade-chip,.slot.absent-slot .stage-chip,.timeline-bar.absent-slot .stage-chip{color:#fff;background:#fff3}.assistant-summary-exceptions{color:#8a6d1f;margin-top:2px;font-size:10px}.side .logo{flex:1;min-width:0;min-height:38px;margin:0 2px 2px}.side .kumon-wordmark{width:98px}.side .nav{margin:1px 0;padding:6px 10px}.side .nav br{display:none}.side .nav small{margin-top:1px;font-size:10px}.side .spacer{flex:1;height:auto;min-height:8px}.device-label-field{align-items:center;gap:6px;min-width:260px;display:flex}.device-label-field span{color:#58708b;font-size:11px;font-weight:700}.device-label-field input{border:1px solid #cbd8e8;border-radius:8px;width:190px;padding:8px 9px;font-size:13px}@media (width<=600px){.device-label-field{flex-wrap:wrap;min-width:100%}.device-label-field input{width:100%}}.student-report-box{background:#f8fafc;border:1px solid #dbe3ee;border-radius:10px;margin:0 0 10px;padding:9px 10px;font-size:12px}.student-report-title{color:#344963;margin-bottom:6px;font-weight:800}.student-report-grid{grid-template-columns:minmax(95px,1.2fr) minmax(92px,.9fr) minmax(62px,.7fr) minmax(58px,.7fr);align-items:center;gap:4px 8px;display:grid}.student-report-grid>span{color:#6b778c;text-transform:uppercase;font-size:10px;font-weight:800}.student-report-row{display:contents}.student-report-row strong,.student-report-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.student-report-row strong{color:#13243a}.student-report-row span{color:#344963}@media (width<=600px){.student-report-grid{grid-template-columns:1fr 1fr}.student-report-grid>span:nth-child(3),.student-report-grid>span:nth-child(4){display:none}.student-report-row{border-top:1px solid #e1e8f1;grid-column:1/-1;grid-template-columns:1fr 1fr;margin-top:2px;padding-top:5px;display:grid}.student-report-row strong{grid-column:1/-1}.student-report-row span:nth-child(3):before{content:"Estágio: ";color:#6b778c;font-weight:800}.student-report-row span:nth-child(4):before{content:"Série: ";color:#6b778c;font-weight:800}}.new-slot{outline-offset:1px;outline:2px dashed #d97706}.new-chip{color:#92400e;letter-spacing:.02em;vertical-align:middle;background:#fef3c7;border:1px solid #d97706;border-radius:999px;margin-left:6px;padding:0 6px;font-size:10px;font-weight:700;line-height:1.5;display:inline-block}.modal.kf-sheet{background:#fff;border:1px solid #dfe5ed;border-radius:14px;flex-direction:column;width:96vw;max-width:1240px;height:min(900px,94vh);padding:0;font-family:Manrope,Arial,sans-serif;display:flex;overflow:hidden;box-shadow:0 22px 60px #07182b38}.kf-header{z-index:2;background:#fff;border-bottom:1px solid #e5eaf1;flex:none;align-items:center;gap:16px;padding:18px 26px;display:flex}.kf-header-info{flex:1;min-width:0}.kf-header h2{color:#0f1f3a;margin:0;font:700 21px/1.25 Sora,Arial,sans-serif}.kf-header-subtitle{color:#64748b;margin:3px 0 8px;font-size:12px}.kf-badges{flex-wrap:wrap;gap:6px;display:flex}.kf-badge{color:#475569;background:#eef1f5;border-radius:99px;padding:3px 9px;font-size:11.5px;font-weight:600}.kf-badge.ok{color:#16803c;background:#e3f6ea}.kf-badge.info{color:#2f5fd0;background:#e3ecfd}.kf-body{scrollbar-color:#b8c4d4 #edf1f5;scrollbar-width:auto;background:#f8fafc;flex-direction:column;flex:auto;min-height:0;padding:24px 26px 32px;display:flex;overflow:hidden scroll}.kf-body::-webkit-scrollbar{width:12px}.kf-body::-webkit-scrollbar-track{background:#edf1f5}.kf-body::-webkit-scrollbar-thumb{background:#b8c4d4;border:3px solid #edf1f5;border-radius:10px}.kf-body::-webkit-scrollbar-thumb:hover{background:#93a3b7}.kf-body>.kf-msg{order:0}.kf-body>.kf-row{order:1}.kf-body>.kf-address{order:2}.kf-body>.kf-responsibles{order:3}.kf-body>.kf-billing{order:4}.kf-row{grid-template-columns:1.25fr .75fr;gap:16px;display:grid}@media (width<=760px){.kf-row{grid-template-columns:1fr}.kf-grid-4,.kf-grid-3{grid-template-columns:1fr 1fr!important}}.kf-card{background:#fff;border:1px solid #e3e9f1;border-radius:10px;margin-bottom:18px;padding:18px 20px;box-shadow:0 2px 7px #102a430a}.kf-card h3{color:#1e293b;align-items:center;gap:10px;margin:0 0 16px;font:600 16px/1.3 Sora,Arial,sans-serif;display:flex}.kf-section-mark{background:#3b82f6;border-radius:6px;flex:none;width:5px;height:24px;display:inline-block}.kf-contact-data .kf-section-mark{background:#10b981}.kf-address .kf-section-mark{background:#f59e0b}.kf-responsibles .kf-section-mark{background:#8b5cf6}.kf-card-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.kf-card-head h3{margin:0}.kf-grid{gap:13px 14px;display:grid}.kf-grid-2{grid-template-columns:1fr 1fr}.kf-grid-3{grid-template-columns:repeat(3,1fr)}.kf-grid-4{grid-template-columns:repeat(4,1fr)}.kf-field{text-transform:uppercase;color:#64748b;flex-direction:column;gap:5px;min-width:0;font-size:11px;font-weight:700;display:flex}.kf-field.span-2{grid-column:span 2}.kf-field.span-3{grid-column:span 3}.kf-field input,.kf-field select{color:#0f1f3a;text-transform:none;background:#f8fafc;border:1px solid #d9e0e9;border-radius:8px;width:100%;padding:9px 11px;font:500 13.5px Manrope,Arial,sans-serif}.kf-field input:focus,.kf-field select:focus{border-color:#2f5fd0;outline:2px solid #bcd0f7}.kf-inline{gap:4px;display:flex}.kf-icon{cursor:pointer;background:#fff;border:1px solid #d5dde8;border-radius:8px;padding:0 8px}.kf-check{align-self:end;align-items:center;gap:6px;padding-bottom:8px;font-size:13px;display:flex}.kf-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;display:flex}.kf-btn{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.kf-btn.sm{padding:5px 10px;font-size:12px}.kf-btn.primary{color:#fff;background:#1f5bd8}.kf-btn.primary:hover{background:#1a4dba}.kf-btn.ghost{color:#1f5bd8;background:#fff;border-color:#cbd8ee}.kf-btn.danger{color:#b42318;background:#fff;border-color:#f3c2c2}.kf-btn:disabled{opacity:.6;cursor:default}.kf-people{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=760px){.kf-people{grid-template-columns:1fr}}.kf-person{background:#f8fafc;border:1px solid #e3e9f1;border-radius:9px;padding:15px}.kf-person.editing{background:#fafcff;border-color:#bcd0f7;grid-column:1/-1;margin-bottom:12px}.kf-person-head{align-items:flex-start;gap:12px;display:flex}.kf-person-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.kf-contact{color:#334155;gap:4px;margin:10px 0;padding:0;font-size:13px;list-style:none;display:grid}.kf-muted{color:#64748b;font-size:12.5px}.kf-warn{background:#fff7e6;border:1px solid #f0b429;border-radius:8px;margin-bottom:10px;padding:8px 10px;font-size:13px}.kf-msg{color:#0f5132;background:#e3f6ea;border-radius:8px;margin-bottom:12px;padding:8px 10px;font-size:13px}@media (width<=760px){.modalbg{padding:8px}.modal.kf-sheet{width:100%;height:96vh;max-height:96vh}.kf-header{padding:14px 16px}.kf-header h2{font-size:18px}.kf-body{padding:16px}.kf-grid-2,.kf-grid-4{grid-template-columns:1fr!important}.kf-field.span-2,.kf-field.span-3{grid-column:span 1}.kf-card{padding:15px}.kf-card-head{align-items:flex-start;gap:10px}.kf-card-head .kf-btn{white-space:nowrap}}.kf-table-scroll{overscroll-behavior-inline:contain;scrollbar-color:#b8c4d4 #edf1f5;scrollbar-width:thin;width:100%;overflow-x:auto}.kf-table-scroll:focus{outline-offset:2px;outline:2px solid #bcd0f7}.kf-table-scroll::-webkit-scrollbar{height:10px}.kf-table-scroll::-webkit-scrollbar-track{background:#edf1f5}.kf-table-scroll::-webkit-scrollbar-thumb{background:#b8c4d4;border:2px solid #edf1f5;border-radius:10px}.kf-table{border-collapse:collapse;width:100%;font-size:13px}.kf-billing-table{min-width:850px}.kf-installments-scroll{margin-top:12px}.kf-installments-table{min-width:760px}.kf-table th{text-align:left;text-transform:uppercase;color:#64748b;border-bottom:1px solid #e3e9f1;padding:6px 8px;font-size:11px}.kf-table td{vertical-align:middle;border-bottom:1px solid #f0f3f7;padding:6px 8px}.kf-table select,.kf-table input{border:1px solid #cbd5e1;border-radius:6px;max-width:190px;padding:4px 6px;font-size:12.5px}.kf-table tfoot td{border-top:2px solid #e3e9f1;border-bottom:0}.kf-table tr.kf-off{opacity:.5}.kf-td-actions{text-align:right;white-space:nowrap}.kf-td-actions .kf-btn{margin-left:6px}.kf-subtitle{color:#0f1f3a;margin:18px 0 8px;font-size:13px}.kf-billing{min-height:520px;overflow:visible}@media (width<=760px){.kf-billing{min-height:0}.kf-billing-table{min-width:820px}.kf-installments-table{min-width:720px}}.kf-record-tabs{background:#fff;border-bottom:1px solid #e3e9f1;flex:none;gap:6px;padding:10px 26px;display:flex}.kf-record-tabs button,.finance-tabs button{color:#64748b;background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;padding:9px 14px;font-size:13px}.kf-record-tabs button.active,.finance-tabs button.active{border-bottom-color:var(--blue);color:var(--navy);background:#eef6ff}.kf-finance-note{border-left:4px solid var(--blue);color:#334155;background:#eef6ff;margin-top:18px;padding:12px 14px;font-size:13px}.adminbar-organized{align-items:center}.admin-group-label{text-transform:uppercase;color:#6b778c;border-left:1px solid #cbd8e8;margin-left:2px;padding-left:9px;font-size:9px;font-weight:800}.finance-page{border:1px solid var(--line);background:#fff;border-radius:12px;min-height:calc(100vh - 20px);overflow:hidden}.finance-page-head{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:flex-start;gap:18px;padding:24px 26px 18px;display:flex}.finance-page-head h1{color:#0f1f3a;margin:3px 0;font:700 26px/1.2 Sora,Arial,sans-serif}.finance-page-head p{color:#64748b;margin:4px 0 0;font-size:13px}.finance-eyebrow{color:#1683e8;letter-spacing:1px;font-size:10px;font-weight:800}.finance-tabs{border-bottom:1px solid var(--line);background:#fbfcfe;gap:5px;padding:0 24px;display:flex}.finance-content{background:#f8fafc;min-height:600px;padding:22px 24px 32px}.finance-toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:16px;display:flex}.finance-toolbar .finance-search{flex:1;min-width:220px}.finance-metrics{grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;margin-bottom:18px;display:grid}.finance-metrics>div{background:#fff;border:1px solid #dfe6ef;border-radius:8px;flex-direction:column;gap:5px;padding:14px 15px;display:flex}.finance-metrics span{text-transform:uppercase;color:#64748b;font-size:10px;font-weight:800}.finance-metrics strong{color:#0f1f3a;font-size:19px}.finance-metrics .received{border-left:4px solid #3ca56b}.finance-metrics .pending{border-left:4px solid #e96b72}.finance-table-wrap{background:#fff;border:1px solid #e3e9f1;border-radius:8px}.finance-table{min-width:1380px}.finance-table th{background:#f2f5f9;position:sticky;top:0}.finance-table td{padding:10px 8px}.finance-empty{text-align:center;color:#64748b;padding:34px!important}.finance-status{color:#475569;background:#eef1f5;border-radius:99px;padding:4px 8px;font-size:10px;font-weight:800;display:inline-block}.finance-status.paid{color:#16803c;background:#e3f6ea}.finance-status.overdue{color:#b42318;background:#feecec}.finance-status.pending{color:#8a6412;background:#fff7df}.finance-status.cancelled{color:#64748b}.finance-editor{background:#fff;border:1px solid #bcd0f7;border-radius:8px;margin-top:16px;padding:17px}.finance-editor-head{justify-content:space-between;align-items:flex-start;margin-bottom:15px;display:flex}.finance-editor-head>div{flex-direction:column;gap:3px;display:flex}.finance-editor-head span{color:#64748b;font-size:12px}@media (width<=800px){.kf-record-tabs{padding:8px 14px;overflow-x:auto}.kf-record-tabs button{white-space:nowrap}.finance-page-head{flex-direction:column;padding:18px}.finance-tabs{padding:0 12px;overflow-x:auto}.finance-content{padding:16px 12px}.finance-metrics{grid-template-columns:1fr 1fr}.admin-group-label{border-top:1px solid #dbe3ee;border-left:0;flex-basis:100%;margin-top:4px;padding:7px 0 0}}.finance-gen-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.finance-gen-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px}.finance-gen-actions .kf-muted{margin-right:auto}.finance-sort{font:inherit;color:inherit;cursor:pointer;white-space:nowrap;font-weight:inherit;background:0 0;border:0;padding:0}.finance-cell-input{border:1px solid var(--line,#d9dde3);color:inherit;background:0 0;border-radius:6px;max-width:170px;padding:4px 6px;font-size:12px}.finance-due{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.finance-table-wrap{min-height:240px;max-height:calc(100vh - 260px);overflow:auto}.finance-table-wrap thead th{z-index:2;background:#f5f8fb;position:sticky;top:0}.finance-table-wrap::-webkit-scrollbar{width:12px;height:14px}.finance-bank-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;display:flex}.finance-inter-log{flex-direction:column;gap:2px;margin:0 0 12px;padding-left:22px;display:flex}.finance-boleto-cell{white-space:nowrap}.finance-boleto-num{opacity:.75;font-size:11px;display:block}.finance-boleto-actions{gap:2px;margin-top:2px;display:inline-flex}.finance-linha{word-break:break-all;margin:8px 0 0;font-size:12px}
