*{box-sizing:border-box}body{color:#102a43;background:#f4f7fb;margin:0;font-family:Inter,ui-sans-serif,system-ui,Arial}button,input{font:inherit}button{cursor:pointer}.center{place-items:center;min-height:100vh;display:grid}.login-page{background:#f4f7fb;grid-template-columns:58% 42%;min-height:100vh;display:grid}.login-brand{color:#fff;background:linear-gradient(135deg,#0d2740,#143d5a);flex-direction:column;justify-content:center;padding:10vw;display:flex}.brand-mark,.mini-mark{background:linear-gradient(135deg,#3e63dd,#37b7d8);border-radius:12px;place-items:center;width:48px;height:48px;font-weight:900;display:grid}.login-brand h1{margin:20px 0 8px;font-size:42px}.login-brand h1 span{color:#55d2ee}.login-brand h3{font-size:17px}.brand-strip{background:#ffffff08;border-left:3px solid #37b7d8;flex-direction:column;margin-top:50px;padding:16px;display:flex}.login-card{background:#fff;border-radius:24px;place-self:center;width:min(390px,82%);padding:34px;box-shadow:0 20px 60px #102a4315}.login-card h2{margin-bottom:6px}.login-card p{color:#6b7c93;margin-top:0}.login-card label{margin:12px 0 6px;font-size:12px;font-weight:700;display:block}.login-card input{border:1px solid #d8e2ef;border-radius:10px;width:100%;padding:13px}.login-card button,.primary{color:#fff;background:#3e63dd;border:0;border-radius:10px;padding:12px 18px;font-weight:800}.login-card button{width:100%;margin:14px 0}.error{color:#b42318;background:#feeceb;border-radius:8px;margin-top:10px;padding:10px}.shell{grid-template-columns:235px 1fr;min-height:100vh;display:grid}.sidebar{color:#dce9f5;background:#0f2a43;height:100vh;padding:18px 12px;position:sticky;top:0;overflow:auto}.side-brand{align-items:center;gap:10px;padding:0 6px 14px;display:flex}.side-brand small,.institution small,.topuser small,.child-card small{display:block}.mini-mark{width:34px;height:34px}.institution{background:#ffffff09;border:1px solid #ffffff12;border-radius:14px;margin-bottom:20px;padding:12px}.institution small{color:#98adc0;margin-top:3px}.menu button{text-align:left;color:#dce9f5;cursor:pointer;background:0 0;border:0;border-radius:9px;width:100%;margin:2px 0;padding:11px 12px;font-weight:650;display:block}.menu button:hover{background:#ffffff0d}.menu button.active{color:#fff;background:#3e63dd}.main{min-width:0}.topbar{z-index:3;background:#fff;border-bottom:1px solid #e1e8f0;justify-content:space-between;align-items:center;height:66px;padding:0 26px;display:flex;position:sticky;top:0}.topbar>input{background:#f7faff;border:1px solid #d6e0ea;border-radius:10px;width:min(500px,45vw);padding:11px 14px}.topuser{align-items:center;gap:10px;display:flex}.avatar{color:#fff;background:#3e8bed;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:900;display:grid}.text-btn{color:#3e63dd;background:0 0;border:0;font-weight:700}.content{padding:28px 36px}.page-title{justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px;display:flex}.page-title h1{margin:0;font-size:28px}.page-title p{color:#6b7c93;margin:4px 0}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.primary{color:#fff;background:#3e63dd;border:0;border-radius:10px;padding:11px 16px;font-weight:800}.primary:hover{background:#3154c8}.secondary{color:#3e63dd;background:#fff;border:1px solid #b8c9ef;border-radius:10px;padding:11px 16px;font-weight:800}.secondary:hover{background:#f4f7ff}.cards{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.kpi,.panel{background:#fff;border:1px solid #dfe8f2;border-radius:16px}.kpi{padding:18px}.kpi small{color:#63758b}.kpi strong{margin:5px 0;font-size:27px;display:block}.kpi span{color:#557389;font-size:12px}.dashboard-grid{grid-template-columns:2fr 1fr;gap:16px;margin-top:16px;display:grid}.panel{padding:18px}.panel-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.bars{border-bottom:1px solid #d8e2ef;align-items:flex-end;gap:8px;height:190px;margin-top:20px;display:flex}.bars div{background:linear-gradient(#37b7d8,#3e63dd);border-radius:7px 7px 0 0;flex:1}.actions{gap:9px;margin-top:15px;display:grid}.actions button{text-align:left;color:#223b53;background:#f6f9fd;border:0;border-radius:9px;justify-content:space-between;padding:12px;font-weight:700;display:flex}.activity>div{border-bottom:1px solid #edf2f7;gap:10px;padding:10px 0;display:flex}.dot{color:#fff;background:#3e8bed;border-radius:50%;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.activity small{color:#71869b;display:block}.insight{background:#f5f0ff}.purple{color:#fff;background:#7656d6;border:0;border-radius:9px;padding:9px 13px;font-weight:800}.inline-form{gap:10px;margin-bottom:14px;display:flex}.inline-form input{border:1px solid #d6e0ea;border-radius:8px;flex:1;padding:11px}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #e8eef5;padding:11px;font-size:13px}th{color:#667b91}.empty-cell{text-align:center;color:#71869b;padding:28px}.readonly-note{color:#365a7b;background:#eef5ff;border:1px solid #d6e6fb;border-radius:10px;margin-bottom:14px;padding:11px 13px}.tracking-grid{grid-template-columns:minmax(240px,.8fr) minmax(0,2.2fr);align-items:start;gap:16px;display:grid}.tracking-grid .panel{min-width:0}.child-card{text-align:left;cursor:pointer;background:#fff;border:1px solid #e0e8f1;border-radius:12px;align-items:center;gap:10px;width:100%;margin-top:10px;padding:12px;transition:background .2s,border-color .2s,transform .2s;display:flex}.child-card:hover{background:#f7faff;border-color:#b9c9dc;transform:translateY(-1px)}.child-card-active{background:#eef3ff;border-color:#3e63dd}.child-card .avatar{flex-shrink:0}.child-card>div:last-child{min-width:0}.child-card b{color:#102a43;font-size:14px;display:block}.child-card small{color:#71869b;margin-top:3px}.tracking-status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0 18px;display:grid}.tracking-status-grid>div{background:#f7faff;border:1px solid #e2eaf3;border-radius:12px;padding:12px}.tracking-status-grid small{color:#6b7c93;margin-bottom:5px;font-size:11px;display:block}.tracking-status-grid strong{color:#102a43;word-break:break-word;font-size:14px;display:block}.location-online{color:#176b4d;background:#e8f7ef;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:800;display:inline-flex}.location-online:before{content:"";background:#20a66a;border-radius:50%;width:8px;height:8px}.google-map-wrapper{border:1px solid #dfe8f2;border-radius:14px;width:100%;margin-top:15px;overflow:hidden;box-shadow:0 4px 18px #102a4314}.map-placeholder{text-align:center;color:#496b89;background:linear-gradient(135deg,#eaf4ff,#eef8f3);border:1px dashed #8fb5d7;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;height:420px;font-weight:800;display:flex}.map-placeholder small{color:#6d8296;font-weight:500}.map-placeholder.large{height:360px;margin-bottom:18px}@media (width<=1100px){.tracking-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1000px){.cards{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.tracking-grid{grid-template-columns:1fr}.shell{grid-template-columns:200px 1fr}.content{padding:22px}}@media (width<=720px){.login-page{grid-template-columns:1fr}.login-brand{display:none}.shell{display:block}.sidebar{height:auto;position:static}.menu{display:flex;overflow:auto}.menu button{white-space:nowrap;width:auto}.topbar{padding:0 12px}.topbar>input{display:none}.content{padding:16px}.cards{grid-template-columns:1fr}.page-title{flex-direction:column;align-items:flex-start;gap:10px}.dashboard-grid{grid-template-columns:1fr}}@media (width<=600px){.tracking-status-grid{grid-template-columns:1fr}.map-placeholder{height:320px}}.success-message{color:#176b4d;background:#e8f7ef;border:1px solid #b9e5cf;border-radius:9px;margin-bottom:14px;padding:10px 12px;font-weight:600}.inline-form button:disabled,.primary:disabled,.secondary:disabled{opacity:.6;cursor:not-allowed}.table-action{color:#3154c8;cursor:pointer;background:#fff;border:1px solid #cbd8e6;border-radius:7px;margin-right:6px;padding:6px 10px;font-weight:700;transition:background .2s,border-color .2s,color .2s}.table-action:hover{background:#f4f7ff;border-color:#9db4e5}.table-action.danger{color:#b42318;border-color:#f0c3bf}.table-action.danger:hover{background:#fff1f0;border-color:#e49a93}.module-status{border-radius:999px;align-items:center;gap:6px;padding:5px 9px;font-size:12px;font-weight:800;display:inline-flex}.module-status.active,.module-status.success{color:#176b4d;background:#e8f7ef}.module-status.pending{color:#a15c00;background:#fff7e6}.module-status.error,.module-status.failed{color:#b42318;background:#feeceb}.table-scroll{width:100%;overflow-x:auto}.table-scroll table{min-width:720px}@media (width<=720px){.page-actions,.page-actions .primary,.page-actions .secondary{width:100%}.inline-form{flex-direction:column}.inline-form .primary{width:100%}}.record-form{margin-bottom:16px}.record-form .inline-form{grid-template-columns:minmax(180px,2fr) minmax(120px,1fr) minmax(120px,1fr) minmax(110px,1fr) auto auto;gap:10px;display:grid}.record-form input,.record-form select,.record-form textarea{color:#102a43;width:100%;font:inherit;background:#fff;border:1px solid #d6e0ea;border-radius:8px;padding:11px}.record-form textarea{resize:vertical;min-height:74px}.sidebar-error{color:#ffd7dc;background:#44212a;border-radius:8px;margin-bottom:10px;padding:9px;font-size:12px}@media (width<=1100px){.record-form .inline-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.record-form .inline-form{grid-template-columns:1fr}}.student-hero{background:linear-gradient(135deg,#fff,#eef6ff);border:1px solid #dfe8f2;border-radius:20px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;padding:24px;display:flex}.student-hero h1{margin:5px 0 4px;font-size:30px}.student-hero p{color:#64748b;margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:#3e63dd;font-size:12px;font-weight:800}.hero-badge{text-align:center;color:#3154c8;background:#eef3ff;border-radius:999px;min-width:90px;padding:12px 16px;font-weight:900}.student-kpis,.finance-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.student-kpi,.finance-kpis article{background:#fff;border:1px solid #dfe8f2;border-radius:16px;padding:18px}.student-kpi small,.finance-kpis small{color:#64748b;display:block}.student-kpi strong,.finance-kpis strong{margin:5px 0;font-size:24px;display:block}.student-kpi span{color:#71869b;font-size:12px}.student-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,.9fr);gap:16px;display:grid}.timeline-list{margin-top:12px}.timeline-row{border-bottom:1px solid #edf2f7;grid-template-columns:90px 1fr 130px;align-items:center;gap:12px;padding:12px 0;display:grid}.timeline-row>span{color:#3e63dd;font-weight:800}.timeline-row small{color:#71869b;text-align:right}.quick-tile-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px;display:grid}.quick-tile-grid button{color:#223b53;background:#f8fbff;border:1px solid #dfe8f2;border-radius:12px;justify-content:space-between;padding:14px;font-weight:800;display:flex}.institution-school .student-hero{background:linear-gradient(135deg,#fff7e8,#eaf8ff)}.institution-school .student-kpi:first-child{background:#fff6e9}.institution-school .student-kpi:nth-child(2){background:#f4efff}.institution-school .student-kpi:nth-child(3){background:#eafaf3}.institution-school .student-kpi:nth-child(4){background:#eef7ff}.institution-college .student-hero{background:linear-gradient(135deg,#fff3ec,#eef4ff)}.institution-university .student-hero{background:linear-gradient(135deg,#eef8ff,#f3efff)}.finance-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.finance-kpis article:nth-child(2){background:#effbf4}.finance-kpis article:nth-child(3){background:#fff1f1}.finance-kpis article:nth-child(4){background:#fff9e8}.finance-panel{margin-top:16px}.fee-status{border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800;display:inline-flex}.fee-status.paid{color:#176b4d;background:#e8f7ef}.fee-status.due{color:#b42318;background:#feeceb}@media (width<=1050px){.student-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.student-grid{grid-template-columns:1fr}}@media (width<=720px){.student-hero{flex-direction:column;align-items:flex-start}.student-kpis{grid-template-columns:1fr}.timeline-row{grid-template-columns:75px 1fr}.timeline-row small{text-align:left;grid-column:2}.quick-tile-grid{grid-template-columns:1fr}}.module-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.module-kpis article{background:#fff;border:1px solid #dfe8f2;border-radius:16px;min-height:92px;padding:18px}.module-kpis small{color:#64748b;margin-bottom:7px;display:block}.module-kpis strong{color:#102a43;font-size:21px}.student-module-school .module-kpis article:first-child{background:#fff6e9}.student-module-school .module-kpis article:nth-child(2){background:#f4efff}.student-module-school .module-kpis article:nth-child(3){background:#eafaf3}.student-module-school .module-kpis article:nth-child(4){background:#eef7ff}.student-module-college .module-kpis article:first-child{border-top:3px solid #ef8354}.student-module-college .module-kpis article:nth-child(2){border-top:3px solid #4f7cac}.student-module-college .module-kpis article:nth-child(3){border-top:3px solid #5b8c85}.student-module-college .module-kpis article:nth-child(4){border-top:3px solid #7c5cbf}.student-module-university .module-kpis article{background:linear-gradient(#fff,#f7f9fd)}@media (width<=1000px){.module-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.module-kpis{grid-template-columns:1fr}}.role-hero{background:linear-gradient(135deg,#fff,#f3f7fc);border:1px solid #dfe8f2;border-radius:20px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;padding:24px;display:flex}.role-hero h1{margin:5px 0 4px;font-size:30px}.role-hero p{color:#64748b;margin:0}.role-school .role-hero{background:linear-gradient(135deg,#fff7e8,#eef9ff)}.role-college .role-hero{background:linear-gradient(135deg,#fff3ec,#eef4ff)}.role-university .role-hero{background:linear-gradient(135deg,#edf6ff,#f4f0ff)}@media (width<=720px){.role-hero{flex-direction:column;align-items:flex-start}}.module-context{background:linear-gradient(135deg,#fff,#f7f9fc);border:1px solid #dfe8f2;border-radius:18px;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px;padding:20px 22px;display:flex}.module-context h1{margin:4px 0;font-size:25px}.module-context p{color:#64748b;max-width:720px;margin:0}.context-chips{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.context-chips span{color:#3154c8;background:#eef3ff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.arm-school .module-context{background:linear-gradient(135deg,#fff8eb,#f0fbff)}.arm-college .module-context{background:linear-gradient(135deg,#fff4ee,#f0f4ff)}.arm-university .module-context{background:linear-gradient(135deg,#eef7ff,#f6f2ff)}.adaptive-role-module>.page-title{display:none}@media (width<=760px){.module-context{flex-direction:column}.context-chips{justify-content:flex-start}}.setup-grid{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:16px;display:grid}.setup-form{gap:14px;margin:18px 0;display:grid}.setup-form label{color:#425b72;gap:7px;font-size:13px;font-weight:800;display:grid}.setup-form input,.setup-form select{color:#102a43;width:100%;font:inherit;background:#fff;border:1px solid #d6e0ea;border-radius:10px;padding:12px}.setup-summary{gap:10px;margin:16px 0;display:grid}.setup-summary>div{background:#f8fbff;border:1px solid #e3eaf2;border-radius:12px;padding:13px}.setup-summary small{color:#71869b;margin-bottom:5px;display:block}.setup-summary strong{color:#102a43}@media (width<=900px){.setup-grid{grid-template-columns:1fr}}.structure-flow{flex-direction:column;align-items:center;gap:7px;margin:18px 0;display:flex}.structure-flow span{text-align:center;color:#27445f;background:#f8fbff;border:1px solid #dfe8f2;border-radius:10px;width:100%;padding:10px 12px;font-weight:800}.structure-flow b{color:#7890a8}.structure-table{margin-top:16px}.work-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;display:grid}.work-grid textarea{resize:vertical;border:1px solid #d6e0ea;border-radius:10px;width:100%;min-height:100px;margin:12px 0;padding:11px}.work-meta{color:#64748b;flex-wrap:wrap;gap:14px;font-size:13px;display:flex}.grade-box{background:#f3f8ff;border-radius:12px;gap:4px;margin-top:12px;padding:12px;display:grid}.grade-box b{font-size:20px}.grade-box small{color:#64748b}.session-list{gap:8px;margin-top:12px;display:grid}.session-row{text-align:left;cursor:pointer;background:#fff;border:1px solid #dfe8f2;border-radius:10px;gap:3px;width:100%;padding:11px 12px;display:grid}.session-row span{color:#64748b;font-size:12px}.session-row.selected{outline:2px solid #8da9ff}.attendance-actions{flex-wrap:wrap;gap:5px;display:flex}.attendance-actions button{cursor:pointer;background:#fff;border:1px solid #d6e0ea;border-radius:8px;padding:6px 8px;font-size:11px;font-weight:800}.marks-input{width:90px}.transcript-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;display:flex}.transcript-head h1{margin:5px 0}.transcript-note{color:#64748b;text-align:center;margin-top:14px;font-size:12px}@media print{.sidebar,.topbar,.no-print{display:none!important}.shell,.main{display:block!important}.content{padding:0!important}.panel{box-shadow:none!important}.transcript{background:#fff}.transcript-head{margin-top:20px}}html,body,#root{max-width:100%;overflow-x:hidden}img,svg,video,canvas{max-width:100%;height:auto}.panel{overflow-wrap:anywhere;min-width:0}.table-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.panel>table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}input,select,textarea,button{max-width:100%}@media (width<=900px){.shell{grid-template-columns:190px minmax(0,1fr)}.content{padding:22px 20px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.tracking-grid{grid-template-columns:1fr}.topbar{padding:0 18px}.topbar>input{width:min(360px,42vw)}}@media (width<=640px){.login-page{grid-template-columns:1fr;min-height:100dvh}.login-brand{display:none}.login-card{border-radius:18px;width:calc(100% - 28px);padding:24px}.shell{display:block}.sidebar{width:100%;height:auto;max-height:none;padding:12px;position:relative}.side-brand{padding-bottom:10px}.institution{margin-bottom:10px}.menu{scrollbar-width:thin;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.menu button{white-space:nowrap;flex:none;width:auto;margin:0;padding:9px 11px}.topbar{flex-wrap:wrap;gap:10px;height:auto;min-height:62px;padding:10px 14px;position:relative}.topbar>input{order:2;width:100%}.topuser{margin-left:auto}.content{padding:18px 14px}.page-title,.transcript-head{flex-direction:column;align-items:flex-start}.page-title h1,.role-hero h1,.student-hero h1{font-size:24px}.page-actions{width:100%}.page-actions button{flex:auto}.cards,.student-kpis,.module-kpis,.finance-kpis,.dashboard-grid,.student-grid,.setup-grid,.tracking-grid,.tracking-status-grid,.work-grid{grid-template-columns:1fr}.inline-form{flex-direction:column}.inline-form>*{width:100%}.record-form .inline-form,.quick-tile-grid{grid-template-columns:1fr}.timeline-row{grid-template-columns:70px minmax(0,1fr)}.timeline-row small{text-align:left;grid-column:2}.module-context,.role-hero,.student-hero{padding:18px}.context-chips{justify-content:flex-start}.marks-input{width:100%}th,td{white-space:nowrap}.panel>table{margin-bottom:2px}}@media (width<=380px){.content{padding:14px 10px}.panel,.kpi,.student-kpi,.finance-kpis article,.module-kpis article{padding:14px}.topuser small{display:none}.avatar{width:34px;height:34px}}
