:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--bg:#f6f8fc;--card:#ffffff;--text:#0f172a;--muted:#475569;--line:#e2e8f0;--btn:#0ea5e9;--btnHover:#0284c7;--radius:16px;--shadow:0 14px 40px rgba(15, 23, 42, .1)}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto;background:radial-gradient(900px 400px at 10% 10%,rgba(14,165,233,.18),transparent 60%),radial-gradient(900px 400px at 90% 10%,rgba(99,102,241,.12),transparent 60%),var(--bg)}.login-wrapper{height:100vh;width:100%;display:flex;justify-content:center;align-items:center}.login-error{margin-top:10px;color:#b91c1c;font-size:14px;font-weight:700}.login-card{width:min(520px,calc(100vw - 48px));background:#ffffffeb;border:1px solid rgba(226,232,240,.9);border-radius:20px;box-shadow:0 30px 80px #0f172a1f,0 2px 12px #0f172a0f;padding:30px 34px 26px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-bottom:18px}.mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#0ea5e9f2,#6366f1e6);box-shadow:0 10px 24px #0ea5e938}.kicker{display:inline-block;font-size:13px;font-weight:700;color:#0f172a;letter-spacing:.3px;padding:8px 12px;border-radius:999px;background:#0ea5e91a;border:1px solid rgba(14,165,233,.18);margin-top:8px;text-align:center}.portal-logo{width:330px;max-width:70%;height:auto;object-fit:contain;display:block}.title-group{display:flex;flex-direction:column}.portal-title{margin:0;font-size:30px;font-weight:800;line-height:1.2;color:var(--text);max-width:18ch}.login-form{display:flex;flex-direction:column;gap:14px;align-items:stretch}.field label{display:block;color:var(--muted);font-size:13px;margin-bottom:6px}.field input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--text);outline:none;transition:box-shadow .15s ease,border-color .15s ease,transform .05s ease}.field input:focus{border-color:#0ea5e98c;box-shadow:0 0 0 4px #0ea5e924}.login-form label{color:var(--muted);font-size:13px;margin-bottom:4px}.login-form input{width:100%}.login-form button{margin-top:6px;height:46px;border-radius:12px;border:none;background:linear-gradient(180deg,#0ea5e9,#0284c7);color:#fff;font-weight:700;letter-spacing:.2px;cursor:pointer;box-shadow:0 12px 22px #0ea5e938;transition:transform .06s ease,box-shadow .15s ease,opacity .15s ease}.login-form button:hover{opacity:.98;box-shadow:0 16px 28px #0ea5e942}.login-form button:active{transform:translateY(1px)}.card-foot{margin-top:16px;font-size:13px;color:var(--muted)}.link{color:#0284c7;text-decoration:none;font-weight:600}.link:hover{text-decoration:underline}#root{height:100vh}html,body{overflow-x:hidden}.topbar{position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f5f9ffc7;border-bottom:1px solid #e5e7eb}.brand{display:flex;align-items:center;width:100%;padding:12px 8px 12px 6px;min-height:96px;margin:auto;max-width:1200px}.brandRow{display:flex;align-items:center;justify-content:space-between;width:100%;gap:24px}.logoBox{display:flex;align-items:center;justify-content:center;height:72px}.logoBoxLeft{width:140px}.logoBoxRight{width:170px}.brandLeft{display:flex;align-items:center;gap:110px;flex:1;min-width:0}.brandText{min-width:0}.brandRight{display:flex;align-items:center;flex:0 0 auto;margin-left:0}.brandLogo{height:100%;width:100%;object-fit:contain;display:block}.logoBoxLeft .brandLogo{transform:scale(1.67);transform-origin:left center}.brandTitle{font-size:22px;font-weight:900;line-height:1.15;letter-spacing:.2px;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brandSub{font-size:12px;font-weight:600;color:#64748b;margin-top:4px}@media(max-width:820px){.brandRow{flex-direction:column;align-items:flex-start;gap:10px}.logoBox{height:64px}.logoBoxLeft{width:210px}.logoBoxRight{width:160px}.logoBoxLeft .brandLogo{transform:scale(1.25)}.brandTitle{white-space:normal}}.page{min-height:calc(100vh - 110px);padding:18px 24px}.pageShell{max-width:1280px;margin:0 auto;padding:16px clamp(12px,2vw,24px)}.topActionRow{display:flex;gap:12px;align-items:center;justify-self:end}.btnLogout{padding:10px 16px;border-radius:12px;border:1px solid rgba(220,38,38,.18);background:#fff;color:#b91c1c;font-weight:800;cursor:pointer;box-shadow:0 10px 25px #0206170d;transition:all .15s ease}.btnLogout:hover{background:#ef44440f;border-color:#dc262647}.instituteBtn{border:1px solid rgba(2,6,23,.1);background:#ffffffbf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;padding:10px 14px;cursor:pointer;box-shadow:0 10px 25px #0206170f;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:280px}.topCardsRow{display:grid;grid-template-columns:minmax(0,560px) minmax(280px,1fr);gap:20px;align-items:start}.disclaimerCard{margin-top:18px;margin-bottom:20px;border-radius:16px;padding:18px;border:1px solid rgba(109,40,217,.18);background:linear-gradient(180deg,#8b5cf629,#6d28d91a);box-shadow:0 10px 25px #4c1d951a}.disclaimerTitle{font-size:18px;font-weight:900;color:#4c1d95}.disclaimerText{margin-top:8px;font-size:14px;line-height:1.6;color:#312e81}.disclaimerList{margin:14px 0 0;padding-left:18px;color:#312e81;font-size:14px;line-height:1.7}.disclaimerList li+li{margin-top:6px}.instituteBtnLabel{font-weight:900;font-size:16px;color:#0f172a}.instituteBtnHint{font-size:12px;color:#64748b}.instituteBtn:hover{box-shadow:0 14px 34px #0206171a}.setupCard{margin-top:18px;margin-bottom:20px;background:#ffffffc7;border:1px solid rgba(2,6,23,.08);border-radius:16px;padding:18px;box-shadow:0 10px 25px #0206170d;max-width:none}.setupTitle{font-size:18px;font-weight:900;color:#0f172a}.setupSub{margin-top:4px;font-size:13px;color:#64748b}.fieldBlock{margin-top:16px}.fieldLabel{display:block;margin-bottom:6px;font-size:13px;font-weight:700;color:#334155}.fieldInput{width:100%;padding:11px 12px;border-radius:12px;border:1px solid #dbe3ee;background:#fff;color:#0f172a;outline:none}.fieldInput:focus{border-color:#0ea5e98c;box-shadow:0 0 0 4px #0ea5e91f}.programChecklist{display:flex;flex-direction:column;gap:10px;margin-top:4px}.programCheck{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #dbe3ee;border-radius:12px;background:#fff;color:#0f172a;font-weight:600;cursor:pointer}.programCheck input{width:16px;height:16px;accent-color:#0b3b86}.helperText{margin-top:10px;font-size:13px;color:#64748b}.errorText{margin-top:10px;font-size:13px;font-weight:700;color:#b91c1c}.selectedInfo{margin-top:14px;padding:10px 12px;border-radius:12px;background:#0ea5e914;border:1px solid rgba(14,165,233,.16);font-size:13px;color:#0f172a}.canvas{height:460px;border-radius:18px;border:1px solid rgba(2,6,23,.08);background:radial-gradient(900px 400px at 20% 20%,rgba(14,165,233,.18),transparent 60%),radial-gradient(900px 400px at 85% 15%,rgba(99,102,241,.12),transparent 60%),#ffffff59}.modalOverlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px}.modalBackdrop{position:absolute;inset:0;background:#02061773}.modalCard{position:relative;width:min(720px,calc(100vw - 32px));border-radius:18px;background:#fff;box-shadow:0 30px 80px #02061738;overflow:hidden;padding:18px 18px 14px}.modalLoading{padding:16px;color:#334155;font-weight:700}.modalBody{padding:6px 6px 0}.modalTop{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modalTitle{font-size:26px;font-weight:900;color:#0f172a}.modalSub{margin-top:6px;color:#64748b;font-weight:600}.statusPill{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900;border:1px solid rgba(2,6,23,.1)}.statusPill.active{background:#22c55e1a;border-color:#22c55e59;color:#15803d}.statusPill.inactive{background:#ef44441a;border-color:#ef444459;color:#b91c1c}.hr{margin:14px 0;height:2px;background:#0b3b86;border-radius:999px;opacity:.95}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 30px;padding:6px 2px 10px}.kv .k{font-size:12px;font-weight:900;color:#64748b;letter-spacing:.5px}.kv .v{margin-top:4px;font-size:15px;font-weight:800;color:#0f172a}.modalActions{display:flex;justify-content:flex-end;gap:12px;padding:14px 2px 6px}.btnSecondary{padding:10px 14px;border-radius:10px;border:1px solid rgba(2,6,23,.12);background:#e5e7eb;font-weight:900;cursor:pointer}.btnPrimary{padding:10px 14px;border-radius:10px;border:1px solid rgba(2,6,23,.12);background:#0b3b86;color:#fff;font-weight:900;cursor:pointer}.pageTitleRow{display:flex;align-items:center;gap:12px;margin:0}.pageTitle{font-size:28px;font-weight:900;color:#0f172a;margin:0}.pageTopRow{display:grid;grid-template-columns:1fr auto;align-items:end;gap:16px;margin-top:8px;margin-bottom:16px}.yearBadge{font-size:14px;font-weight:800;padding:6px 12px;border-radius:999px;background:#0b3b86;color:#fff;display:inline-flex;align-items:center}.pageDivider{height:1px;background:#e5e7eb;margin-top:12px;margin-bottom:20px}.programTabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.programTab{padding:10px 14px;border-radius:999px;border:1px solid #dbe3ee;background:#fff;color:#0f172a;font-weight:800;cursor:pointer;transition:all .15s ease}.programTab:hover{border-color:#0ea5e959;background:#0ea5e90d}.programTab.active{background:#0b3b86;color:#fff;border-color:#0b3b86}.programPanels{margin-top:20px}.moduleCard{border:1px solid rgba(2,6,23,.1);border-radius:18px;background:#ffffffd1;overflow:hidden;box-shadow:0 10px 25px #0206170d}.moduleCardHeader{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid #e5e7eb;background:#f8fafcd9}.moduleCardTitle{font-size:16px;font-weight:900;color:#0f172a}.modulePill{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:32px;padding:0 12px;border-radius:999px;background:#2563eb1a;color:#1d4ed8;font-size:13px;font-weight:900;border:1px solid rgba(37,99,235,.15)}.moduleCardBody{padding:22px 18px}.moduleSectionTitle{margin:0;font-size:18px;font-weight:900;color:#0f172a}.moduleSectionSub{margin:8px 0 0;font-size:14px;color:#475569}.epSelectGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.epSelectBox{display:flex;align-items:center;gap:10px;padding:14px 16px;border:1px solid #dbe3ee;border-radius:14px;background:#fff;color:#0f172a;font-weight:700;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.epSelectBox:hover{border-color:#0ea5e959;background:#0ea5e90a}.epSelectBox input{width:16px;height:16px;accent-color:#0b3b86}.epSubmoduleCard{margin-top:18px;border:1px solid rgba(2,6,23,.08);border-radius:16px;background:#ffffffe0;overflow:hidden}.epSubmoduleHeader{padding:14px 16px;border-bottom:1px solid #e5e7eb;background:#f8fafce6}.epSubmoduleTitle{font-size:16px;font-weight:900;color:#0f172a}.epFieldGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px 16px}.epFieldBlock{display:flex;flex-direction:column}.epFieldLabel{font-size:13px;font-weight:700;color:#334155;margin-bottom:6px}.epFieldPlaceholder{height:42px;border-radius:12px;border:1px solid #dbe3ee;background:#fff}.submoduleActions{margin-top:14px}.rowActions{padding:0 16px 16px;display:flex;justify-content:flex-end}.epDivider{margin:28px 0;height:1px;background:linear-gradient(to right,transparent,#cbd5e1,transparent)}.tmCard{border:1px solid rgba(2,6,23,.08);border-radius:18px;background:#ffffffeb;overflow:hidden;margin-top:12px}.tmCardHeader{padding:16px 18px;border-bottom:1px solid #e5e7eb;background:#f8fafce6}.tmCardTitle{font-size:18px;font-weight:900;color:#0f172a}.tmCardBody{padding:18px}.tmTopGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.tmTopGrid>*{min-width:0}.tmInput{width:100%;max-width:100%;padding:11px 12px;border-radius:12px;border:1px solid #dbe3ee;background:#fff;color:#0f172a;outline:none;box-sizing:border-box}.tmUnitOtherInput{width:160px;padding:8px 10px}.tmInput:focus{border-color:#0ea5e98c;box-shadow:0 0 0 4px #0ea5e91f}.tmMarkersWrap{margin-top:18px}.tmMarkersLabel{margin-bottom:10px}.tmMarkerGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.tmMarkerRow{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-width:80px;padding:10px 12px;border:1px solid #dbe3ee;border-radius:12px;background:#f8fbff}.tmMarkerCheck{display:flex;align-items:center;gap:12px;font-weight:900;color:#0f172a;min-width:90px}s .tmMarkerCheck input{width:18px;height:18px;accent-color:#0b3b86}.tmMarkerName{font-size:15px}.tmUnitSelect{width:110px;flex:0 0 auto;padding:10px 12px;border-radius:12px;border:1px solid #dbe3ee;background:#fff;color:#0f172a}.tmUnitSelect:disabled{background:#eef2f7;color:#94a3b8}.tmActionsRow{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}.cbqapFooter{margin-top:40px;background:#f8fafc;border-top:1px solid #dbe3ee;padding:24px 16px 16px;border-radius:16px 16px 0 0}.cbqapFooterInner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.cbqapFooterBlock{font-size:13px}.footerCenter{text-align:center}.cbqapFooterTitle{font-weight:900;margin-bottom:6px;color:#0f172a}.cbqapFooterText{color:#64748b;line-height:1.45;margin-bottom:4px}.cbqapFooterText a{color:#2563eb;text-decoration:none}.cbqapFooterText a:hover{text-decoration:underline}.cbqapFooterBottom{margin-top:16px;padding-top:12px;border-top:1px solid #dbe3ee;text-align:center;font-size:12px;color:#64748b}@media(max-width:900px){.tmTopGrid,.tmMarkerGrid{grid-template-columns:1fr}}@media(max-width:700px){.epFieldGrid{grid-template-columns:1fr}}@media(max-width:640px){.grid{grid-template-columns:1fr}}@media(max-width:700px){.epSelectGrid{grid-template-columns:1fr}}@media(max-width:980px){.topCardsRow{grid-template-columns:1fr}}@media(max-width:900px){.pageTopRow{grid-template-columns:1fr;align-items:start}.topActionRow{justify-self:start}.tmTopGrid,.tmMarkerGrid{grid-template-columns:1fr}}
