@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-base:#090e1a;--bg-surface:#0f1729;--bg-elevated:#141e35;--bg-card:#1a2540;--border:#1f2e4d;--border-glow:#2a4080;--accent:#3d7fff;--accent-dim:#2557cc;--accent-glow:#3d7fff2e;--accent2:#00d4a8;--accent2-glow:#00d4a826;--warning:#f5a623;--danger:#ff4d6d;--success:#00d4a8;--text-primary:#e8eeff;--text-secondary:#89b;--text-muted:#4a5a7a;--text-mono:#a8c4ff;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:22px;--shadow-card:0 4px 32px #00000080;--shadow-glow:0 0 40px #3d7fff1f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px}body{background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,system-ui,sans-serif;line-height:1.6}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border-glow);border-radius:3px}h1{letter-spacing:-.5px;font-size:1.9rem;font-weight:700}h2{font-size:1.2rem;font-weight:600}h3{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-size:.95rem;font-weight:600}code,.mono{font-family:JetBrains Mono,monospace;font-size:.85em}.app-shell{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.app-header{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:1rem;height:60px;padding:0 2rem;display:flex;position:sticky;top:0}.logo-mark{align-items:center;gap:.6rem;display:flex}.logo-icon{background:linear-gradient(135deg, var(--accent), var(--accent2));width:32px;height:32px;box-shadow:0 0 16px var(--accent-glow);border-radius:8px;justify-content:center;align-items:center;font-size:1rem;display:flex}.logo-text{letter-spacing:-.3px;font-size:1.1rem;font-weight:700}.logo-text span{color:var(--accent)}.header-badge{background:var(--accent-glow);border:1px solid var(--accent-dim);color:var(--accent);letter-spacing:.05em;border-radius:99px;margin-left:auto;padding:3px 10px;font-size:.7rem;font-weight:500}.main-content{grid-template-columns:220px 1fr;height:calc(100vh - 60px);display:grid;overflow:hidden}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;gap:.25rem;padding:1.5rem 0;display:flex;overflow-y:auto}.nav-section{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:0 1rem .5rem;font-size:.65rem;font-weight:600}.nav-item{cursor:pointer;text-align:left;width:100%;color:var(--text-secondary);background:0 0;border:none;border-radius:0;align-items:center;gap:.75rem;padding:.65rem 1.25rem;font-family:inherit;font-size:.875rem;transition:all .15s;display:flex;position:relative}.nav-item:hover{background:var(--bg-elevated);color:var(--text-primary)}.nav-item.active{background:var(--accent-glow);color:var(--accent);font-weight:500}.nav-item.active:before{content:"";background:var(--accent);border-radius:0 2px 2px 0;width:3px;position:absolute;top:0;bottom:0;left:0}.nav-icon{text-align:center;width:20px;font-size:1rem}.workspace{flex-direction:column;gap:1.5rem;padding:2rem;display:flex;overflow-y:auto}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.5rem}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:1rem;display:flex}.card-title{align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:500}input[type=text],input[type=password],input[type=number],select,textarea{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;width:100%;padding:.55rem .8rem;font-family:JetBrains Mono,monospace;font-size:.875rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}select option{background:var(--bg-elevated)}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 12px #3d7fff59}.btn-primary:hover{background:#5590ff;transform:translateY(-1px);box-shadow:0 4px 20px #3d7fff80}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-danger{color:var(--danger);background:#ff4d6d26;border:1px solid #ff4d6d4d}.btn-danger:hover{background:#ff4d6d40}.btn-success{color:var(--success);background:#00d4a826;border:1px solid #00d4a84d}.btn-success:hover{background:#00d4a840}.btn-sm{padding:.35rem .8rem;font-size:.8rem}.btn-icon{border-radius:var(--radius-sm);padding:.5rem}.data-table-wrap{border-radius:var(--radius-md);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.825rem}.data-table th{background:var(--bg-elevated);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.6rem .9rem;font-size:.7rem;font-weight:600}.data-table td{color:var(--text-primary);border-bottom:1px solid #1f2e4d80;padding:.55rem .9rem;font-family:JetBrains Mono,monospace}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-elevated)}.data-table .pob-row td{color:var(--accent);font-weight:600}.closure-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.closure-stat{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:1rem}.closure-stat .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.3rem;font-size:.7rem}.closure-stat .value{font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:700}.closure-stat .value.pass{color:var(--success)}.closure-stat .value.fail{color:var(--danger)}.closure-stat .value.neutral{color:var(--accent)}.status-badge{border-radius:99px;align-items:center;gap:.4rem;padding:.4rem .9rem;font-size:.8rem;font-weight:600;display:inline-flex}.status-badge.pass{color:var(--success);background:#00d4a81f;border:1px solid #00d4a84d}.status-badge.fail{color:var(--danger);background:#ff4d6d1f;border:1px solid #ff4d6d4d}.course-list{flex-direction:column;gap:.6rem;display:flex}.course-row{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:32px 80px 1fr 110px 36px;align-items:center;gap:.5rem;padding:.5rem .75rem;transition:border-color .15s;display:grid}.course-row:hover{border-color:var(--border-glow)}.course-num{color:var(--text-muted);text-align:center;font-family:JetBrains Mono,monospace;font-size:.7rem}.map-container{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);position:relative;overflow:hidden}.map-canvas{width:100%;display:block}.map-legend{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#090e1ad9;padding:.5rem .75rem;font-size:.72rem;position:absolute;bottom:1rem;left:1rem}.drop-zone{border:2px dashed var(--border-glow);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--bg-elevated);padding:3rem 2rem;transition:all .2s}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--accent);background:var(--accent-glow)}.drop-zone .drop-icon{margin-bottom:.75rem;font-size:2.5rem}.drop-zone p{color:var(--text-secondary);font-size:.875rem}.drop-zone strong{color:var(--accent)}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.progress-bar-container{background:#ffffff0d;width:100%;height:4px;position:relative;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent) 0%, var(--accent2) 50%, var(--success) 100%);width:40%;height:100%;box-shadow:0 0 8px var(--accent-glow);border-radius:2px;animation:1.6s ease-in-out infinite shimmerProgress;position:absolute;left:-40%}@keyframes shimmerProgress{0%{left:-40%}50%{width:60%;left:40%}to{left:100%}}.alert{border-radius:var(--radius-sm);align-items:flex-start;gap:.6rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.alert-error{color:var(--danger);background:#ff4d6d1a;border:1px solid #ff4d6d4d}.alert-success{color:var(--success);background:#00d4a81a;border:1px solid #00d4a84d}.alert-info{background:var(--accent-glow);border:1px solid var(--accent-dim);color:var(--accent)}.grid-2{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:1rem;display:grid}.flex-row{align-items:center;gap:.75rem;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.text-mono{font-family:JetBrains Mono,monospace;font-size:.85em}.text-muted{color:var(--text-muted)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.divider{background:var(--border);height:1px;margin:1rem 0}.print-overlay{z-index:1500;background:#070b19;font-family:Inter,sans-serif;display:flex;position:fixed;inset:0;overflow:hidden}.print-sidebar{background:#0f1526;border-right:1px solid #1e2942;flex-direction:column;flex-shrink:0;width:330px;height:100%;padding:1.25rem;display:flex;box-shadow:4px 0 24px #0006}.sidebar-scrollable{flex-direction:column;flex:1;gap:1.25rem;padding-right:.25rem;display:flex;overflow-y:auto}.sidebar-section{border-bottom:1px solid #1d283d;flex-direction:column;gap:.75rem;padding-bottom:1.25rem;display:flex}.section-title{text-transform:uppercase;color:#89b;letter-spacing:.08em;margin:0 0 .25rem;font-size:.72rem;font-weight:600}.checkbox-label{color:#e8eeff;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.6rem;font-size:.8rem;font-weight:400;display:inline-flex}.checkbox-label input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.sidebar-actions{flex-shrink:0}.print-canvas-wrapper{background:#070b19;flex:1;justify-content:center;align-items:center;padding:2rem;display:flex;overflow:auto}.blueprint-sheet{color:#000;box-sizing:border-box;background-color:#f8f5ed;background-image:linear-gradient(#785a3c14 1px,#0000 1px),linear-gradient(90deg,#785a3c14 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:20px 20px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;flex-direction:column;flex-shrink:0;width:1056px;height:816px;display:flex;position:relative;box-shadow:0 16px 48px #0009}.blueprint-border-outer{box-sizing:border-box;border:2px solid #000;width:calc(100% - 24px);height:calc(100% - 24px);margin:12px;padding:3px}.blueprint-border-inner{box-sizing:border-box;border:.75px solid #000;flex-direction:column;width:100%;height:100%;padding:12px;display:flex}.blueprint-grid{box-sizing:border-box;grid-template-columns:699px 1fr;gap:12px;width:100%;height:100%;display:grid}.blueprint-map-column{box-sizing:border-box;border-right:.5px solid #000;flex-direction:column;height:100%;padding-right:12px;display:flex}.blueprint-section-title{letter-spacing:.08em;text-transform:uppercase;text-align:left;color:#000;border-bottom:1.5px solid #000;margin-bottom:8px;padding-bottom:6px;font-family:Inter,sans-serif;font-size:.85rem;font-weight:700}.blueprint-canvas-element{background:0 0;width:686px;height:457px;display:block}.blueprint-info-column{box-sizing:border-box;flex-direction:column;gap:12px;height:100%;display:flex;overflow:hidden}.blueprint-desc-panel{box-sizing:border-box;border:1px solid #000;border-radius:2px;flex-direction:column;height:320px;display:flex}.panel-header{color:#fff;letter-spacing:.08em;text-align:center;text-transform:uppercase;background:#000;padding:4px 8px;font-size:.65rem;font-weight:700}.panel-body{word-break:break-word;text-align:justify;color:#000;flex:1;padding:8px;font-size:.72rem;line-height:1.45;overflow-y:auto}.panel-body .no-description{color:#666;font-size:.68rem;font-style:italic;line-height:1.4}.font-serif{font-family:Georgia,Times New Roman,serif}.blueprint-tables-panel{box-sizing:border-box;border:1.5px solid #000;border-radius:2px;flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.table-block{width:100%}.survey-table{border-collapse:collapse;text-align:left;width:100%;font-size:.62rem}.survey-table th{color:#000;text-transform:uppercase;letter-spacing:.02em;background:#f5f5f5;border-bottom:1.25px solid #000;padding:3px 6px;font-size:.56rem;font-weight:700}.survey-table td{color:#000;border-bottom:.5px solid #ddd;padding:3px 6px;font-family:JetBrains Mono,monospace}.survey-table td.bold{font-family:Inter,sans-serif;font-weight:700}.survey-table tr:last-child td{border-bottom:none}.blueprint-title-block{box-sizing:border-box;border:2px solid #000;flex-direction:column;flex-shrink:0;width:100%;font-size:.62rem;display:flex}.tb-row{box-sizing:border-box;width:100%;display:flex}.tb-cell{box-sizing:border-box;flex-direction:column;justify-content:center;padding:4px 6px;display:flex}.tb-cell.col-12{width:100%}.tb-cell.col-6{width:50%}.tb-cell.col-4{width:33.33%}.tb-cell.center{text-align:center}.tb-cell.bold{font-weight:700}.tb-label{text-transform:uppercase;color:#555;letter-spacing:.04em;margin-bottom:1px;font-size:.48rem;font-weight:600;display:block}.tb-val{color:#000;font-family:Inter,sans-serif;font-size:.65rem;font-weight:600;display:block}.only-print{opacity:0!important;pointer-events:none!important;position:absolute!important;top:-9999px!important;left:-9999px!important}.blueprint-multi-container{flex-direction:column;gap:2rem;display:flex}@media print{.app-shell{display:none!important}body,html{color:#000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important}.no-print,.print-sidebar{display:none!important}.print-overlay{z-index:99999!important;opacity:1!important;visibility:visible!important;background:#fff!important;width:100%!important;height:auto!important;display:block!important;position:absolute!important;top:0!important;left:0!important;overflow:visible!important}.print-canvas-wrapper{opacity:1!important;visibility:visible!important;background:#fff!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;display:block!important;position:relative!important;overflow:visible!important}.blueprint-sheet{box-shadow:none!important;transform-origin:0 0!important;page-break-inside:avoid!important;page-break-after:avoid!important;border:none!important;width:1056px!important;height:816px!important;margin:0!important;padding:0!important;overflow:hidden!important;transform:scale(.954)!important}@page{size:letter landscape;margin:.25in}.blueprint-multi-container{gap:0!important;display:block!important}.blueprint-sheet.page-break{page-break-before:always!important;break-before:page!important}.only-print{opacity:1!important;visibility:visible!important;pointer-events:auto!important;width:auto!important;height:auto!important;display:block!important;position:relative!important;inset:0 auto auto 0!important;overflow:visible!important;transform:none!important}}.print-overlay{z-index:9999;background:#000000e0;justify-content:center;align-items:flex-start;gap:1.5rem;padding:1.5rem;font-family:Inter,sans-serif;display:flex;position:fixed;inset:0;overflow-y:auto}.print-sidebar{background:var(--bg-card,#1a2540);border:1px solid var(--border,#1f2e4d);border-radius:var(--radius-md,10px);flex-direction:column;flex-shrink:0;width:280px;min-width:260px;max-height:calc(100vh - 3rem);padding:1.25rem;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-scrollable{flex-direction:column;flex:1;gap:1rem;display:flex;overflow-y:auto}.sidebar-section{flex-direction:column;gap:.5rem;display:flex}.section-title{color:var(--accent,#3d7fff);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border,#1f2e4d);margin:0 0 .35rem;padding-bottom:.25rem;font-size:.78rem;font-weight:700}.sidebar-actions{margin-top:auto;padding-top:1rem}.checkbox-label{color:var(--text-secondary,#89b);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.checkbox-label input[type=checkbox]{accent-color:var(--accent,#3d7fff);width:14px;height:14px}.print-canvas-wrapper{flex-direction:column;flex:1;gap:1.5rem;min-width:0;display:flex}.blueprint-sheet{color:#000;aspect-ratio:11/8.5;box-sizing:border-box;background-color:#f8f5ed;background-image:linear-gradient(#785a3c14 1px,#0000 1px),linear-gradient(90deg,#785a3c14 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:20px 20px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border-radius:2px;flex-direction:column;width:100%;max-width:1056px;min-height:816px;padding:.6rem;display:flex;overflow:hidden;box-shadow:0 8px 48px #000000b3}.blueprint-sheet.theme-blueprint{color:#fff!important;background-color:#0c1a2d!important;background-image:linear-gradient(#38bdf814 1px,#0000 1px),linear-gradient(90deg,#38bdf814 1px,#0000 1px)!important;background-position:0 0!important;background-repeat:repeat!important;background-size:20px 20px!important;background-attachment:scroll!important;background-origin:padding-box!important;background-clip:border-box!important}.blueprint-sheet.theme-blueprint .blueprint-border-outer,.blueprint-sheet.theme-blueprint .blueprint-border-inner,.blueprint-sheet.theme-blueprint .blueprint-desc-panel,.blueprint-sheet.theme-blueprint .blueprint-title-block,.blueprint-sheet.theme-blueprint .tb-row.border-bottom,.blueprint-sheet.theme-blueprint .tb-cell.border-left,.blueprint-sheet.theme-blueprint .table-block,.blueprint-sheet.theme-blueprint .survey-table,.blueprint-sheet.theme-blueprint .survey-table td,.blueprint-sheet.theme-blueprint .survey-table th,.blueprint-sheet.theme-blueprint .blueprint-map-column{border-color:#38bdf8!important}.blueprint-sheet.theme-blueprint .panel-header,.blueprint-sheet.theme-blueprint .survey-table th{color:#38bdf8!important;background:#111e36!important;border-bottom:1px solid #38bdf8!important}.blueprint-sheet.theme-blueprint .blueprint-section-title,.blueprint-sheet.theme-blueprint .tb-val,.blueprint-sheet.theme-blueprint .tb-label,.blueprint-sheet.theme-blueprint .panel-body,.blueprint-sheet.theme-blueprint .survey-table td{color:#f1f5f9!important}.blueprint-sheet.theme-blueprint .tb-label{color:#94a3b8!important}.blueprint-sheet.theme-blueprint .survey-table tbody tr:nth-child(2n) td{background:#1e293b80!important}.blueprint-sheet.theme-blueprint .no-description{color:#64748b!important}.blueprint-sheet.hide-grid{background-image:none!important}.blueprint-border-outer{box-sizing:border-box;border:2px solid #000;flex-direction:column;flex:1;display:flex;overflow:hidden}.blueprint-border-inner{box-sizing:border-box;border:.75px solid #000;flex-direction:column;flex:1;margin:3px;padding:.5rem;display:flex;overflow:hidden}.blueprint-section-title{text-transform:uppercase;letter-spacing:.12em;color:#000;margin-bottom:6px;padding-bottom:4px;font-family:Inter,sans-serif;font-size:.72rem;font-weight:800}.blueprint-grid{flex:1;grid-template-columns:60% 40%;gap:.5rem;min-height:0;display:grid;overflow:hidden}.blueprint-map-column{border-right:1px solid #000;flex-direction:column;padding-right:.5rem;display:flex;overflow:hidden}.blueprint-info-column{flex-direction:column;gap:.4rem;display:flex;overflow:hidden}.blueprint-canvas-element{object-fit:contain;flex:1;min-height:0;display:block;width:100%!important;height:auto!important}.panel-header{color:#fff;text-transform:uppercase;letter-spacing:.1em;background:#000;padding:2px 6px;font-family:Inter,sans-serif;font-size:.6rem;font-weight:700}.panel-body{color:#111;flex:1;padding:.4rem .5rem;font-size:.72rem;line-height:1.6;overflow-y:auto}.panel-body.font-serif{font-family:Georgia,Times New Roman,serif}.blueprint-desc-panel{border:1.5px solid #000;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.blueprint-tables-panel{flex-direction:column;flex-shrink:0;gap:.3rem;display:flex}.table-block{border:1px solid #000}.survey-table{border-collapse:collapse;color:#000;width:100%;font-family:JetBrains Mono,monospace;font-size:.65rem}.survey-table th{color:#fff;text-transform:uppercase;letter-spacing:.06em;text-align:left;background:#000;border:.5px solid #444;padding:2px 5px;font-size:.6rem;font-weight:700}.survey-table td{color:#000;border:.5px solid #bbb;padding:1.5px 5px;font-size:.63rem}.survey-table tbody tr:nth-child(2n) td{background:#f5f5f5}.survey-table .bold{font-weight:700}.blueprint-title-block{color:#000;border:1.5px solid #000;flex-shrink:0;font-family:Inter,sans-serif;font-size:.62rem}.tb-row{align-items:stretch;min-height:22px;display:flex}.tb-row.border-bottom{border-bottom:.75px solid #000}.tb-cell{flex-direction:column;flex:1;justify-content:center;padding:2px 5px;display:flex}.tb-cell.col-12{flex:12}.tb-cell.col-6{flex:6}.tb-cell.col-4{flex:4}.tb-cell.border-left{border-left:.75px solid #000}.tb-label{text-transform:uppercase;letter-spacing:.08em;color:#555;font-size:.48rem;font-weight:600;line-height:1.2}.tb-val{color:#000;font-size:.6rem;font-weight:500;line-height:1.3}.tb-val.bold{font-weight:700}.tb-val.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tb-cell.center{text-align:center;align-items:center}.tb-cell.font-sans{font-family:Inter,sans-serif}.no-description{color:#888;font-size:.7rem;font-style:italic}@media print{body>:not(.print-overlay){display:none!important}.print-overlay{background:0 0!important;gap:0!important;padding:0!important;position:static!important}.no-print{display:none!important}.only-print{display:block!important}.blueprint-sheet{page-break-after:always;break-after:page;box-shadow:none!important;width:1056px!important;max-width:1056px!important;height:816px!important;min-height:unset!important;aspect-ratio:unset!important;transform-origin:0 0!important;border-radius:0!important;overflow:hidden!important;transform:scale(.954)!important}.page-break{page-break-before:always;break-before:page}.blueprint-desc-panel,.panel-body,.blueprint-canvas-element{overflow:visible!important}@page{size:letter landscape;margin:.25in}}@media screen{.only-print{display:none!important}}.blueprint-multi-container{flex-direction:column;gap:1.5rem;width:100%;display:flex}.login-wrapper{background:radial-gradient(circle at 50% 50%, #0d1527 0%, var(--bg-base) 100%);z-index:2000;justify-content:center;align-items:center;width:100vw;height:100vh;padding:1.5rem;font-family:Inter,system-ui,sans-serif;display:flex;position:fixed;inset:0;overflow:hidden}.orb{filter:blur(120px);opacity:.35;mix-blend-mode:screen;pointer-events:none;z-index:1;border-radius:50%;transition:all 1s ease-in-out;position:absolute}.orb-1{background:radial-gradient(circle, var(--accent) 0%, #3d7fff00 70%);width:450px;height:450px;animation:20s ease-in-out infinite alternate floatOrb1;top:-10%;left:10%}.orb-2{background:radial-gradient(circle, var(--accent2) 0%, #00d4a800 70%);width:500px;height:500px;animation:25s ease-in-out infinite alternate floatOrb2;bottom:-15%;right:5%}.orb-3{background:radial-gradient(circle,#8a2be2 0%,#8a2be200 70%);width:350px;height:350px;animation:18s ease-in-out infinite alternate floatOrb3;top:40%;left:35%}@keyframes floatOrb1{0%{transform:translate(0)scale(1)}to{transform:translate(80px,60px)scale(1.1)}}@keyframes floatOrb2{0%{transform:translate(0)scale(1)}to{transform:translate(-100px,-70px)scale(.95)}}@keyframes floatOrb3{0%{transform:translate(0)scale(1)}to{transform:translate(50px,-50px)scale(1.05)}}.login-container{border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(24px)saturate(160%);z-index:10;background:#0f172973;border:1px solid #ffffff13;grid-template-columns:420px 1fr;width:960px;max-width:100%;min-height:580px;animation:.6s cubic-bezier(.16,1,.3,1) slideDown;display:grid;overflow:hidden;box-shadow:0 24px 64px #0009,0 0 80px #3d7fff0f,inset 0 1px 1px #ffffff1a}.login-brand{color:var(--text-primary);background:linear-gradient(135deg,#141e35bf 0%,#0a101ee6 100%);border-right:1px solid #ffffff0d;flex-direction:column;padding:3rem 2.5rem;display:flex;position:relative}.login-brand:before{content:"";pointer-events:none;background:radial-gradient(circle at 0 0,#3d7fff14 0%,#0000 60%);position:absolute;inset:0}.brand-logo{align-items:center;gap:.8rem;margin-bottom:.5rem;display:flex}.logo-symbol{background:linear-gradient(135deg, var(--accent), var(--accent2));border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.25rem;font-weight:700;display:flex;box-shadow:0 4px 20px #3d7fff4d}.logo-text-large{letter-spacing:-.5px;font-size:1.45rem;font-weight:800}.logo-text-large span{color:var(--accent)}.brand-tagline{color:var(--text-secondary);margin-bottom:3.5rem;font-size:.85rem;font-weight:400}.brand-features{flex-direction:column;flex:1;gap:1.75rem;display:flex}.feature-item{align-items:flex-start;gap:1rem;display:flex}.feature-icon{background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.25rem;display:flex}.feature-item h4{color:var(--text-primary);margin-bottom:.2rem;font-size:.9rem;font-weight:600}.feature-item p{color:var(--text-secondary);font-size:.78rem;line-height:1.4}.brand-footer{color:var(--text-muted);margin-top:2rem;font-size:.7rem;font-weight:500}.login-form-panel{justify-content:center;align-items:center;padding:3.5rem 4rem;display:flex}.login-form{flex-direction:column;gap:1.25rem;width:100%;max-width:380px;display:flex}.form-header{margin-bottom:.75rem}.form-header h2{letter-spacing:-.4px;margin-bottom:.4rem;font-size:1.75rem;font-weight:700}.form-header p{color:var(--text-secondary);font-size:.85rem;line-height:1.45}.input-with-icon{width:100%;position:relative}.input-with-icon input{height:42px;color:#fff!important;background:#0f172999!important;border:1px solid #ffffff14!important;padding-left:2.5rem!important;font-family:inherit!important;font-size:.9rem!important}.input-with-icon input:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px #3d7fff26!important}.input-icon{color:var(--text-secondary);pointer-events:none;opacity:.65;font-size:.95rem;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.login-btn{border-radius:var(--radius-sm);justify-content:center;width:100%;height:44px;margin-top:.75rem;font-size:.9rem!important;font-weight:600!important}.form-toggle{color:var(--text-secondary);justify-content:center;align-items:center;gap:.4rem;margin-top:.5rem;font-size:.825rem;display:flex}.toggle-link-btn{color:var(--accent);cursor:pointer;font-family:inherit;font-weight:600;font-size:inherit;background:0 0;border:none;padding:0;transition:color .15s}.toggle-link-btn:hover{color:#5590ff;text-decoration:underline}.slide-down-anim{animation:.3s cubic-bezier(.16,1,.3,1) forwards slideDown}.user-badge{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:.65rem;margin-left:.75rem;padding:.35rem .85rem;font-size:.8rem;transition:all .15s;display:flex}.user-badge:hover{border-color:var(--border-glow)}.user-avatar{background:linear-gradient(135deg, var(--accent), var(--accent2));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.65rem;font-weight:700;display:flex}.user-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:100px;font-weight:500;overflow:hidden}.logout-icon-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:.2rem;font-size:.95rem;transition:color .15s,transform .15s;display:flex}.logout-icon-btn:hover{color:var(--danger);transform:translate(1px)}@media (width<=900px){.login-container{grid-template-columns:1fr;width:480px;min-height:auto}.login-brand{display:none}.login-form-panel{padding:3rem 2rem}}.google-custom-btn{border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;gap:.65rem;width:100%;height:42px;font-family:inherit;font-size:.875rem;font-weight:600;transition:background-color .15s,box-shadow .15s,transform .15s;box-shadow:0 1px 2px #0000000d;color:#1f2e4d!important;background:#fff!important;border:1px solid #dadce0!important;display:flex!important}.google-custom-btn:hover{transform:translateY(-.5px);box-shadow:0 2px 8px #00000026;background:#f8f9fa!important}.google-custom-btn:active{transform:translateY(0)}.google-icon-svg{justify-content:center;align-items:center;display:flex}.dev-modal-overlay{-webkit-backdrop-filter:blur(16px);z-index:9999;background:#050812d9;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.18s fadeInHelp;display:flex;position:fixed;inset:0}.dev-modal-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-card), 0 0 60px #3d7fff0f;flex-direction:column;gap:1.25rem;padding:2.25rem 2rem;animation:.3s cubic-bezier(.16,1,.3,1) slideDown;display:flex}.dev-modal-card h3{color:var(--text-primary);letter-spacing:-.3px;align-items:center;gap:.5rem;font-size:1.2rem;font-weight:700;display:flex}.dev-modal-card p{color:var(--text-secondary);font-size:.82rem;line-height:1.6}.course-drawer-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1400;opacity:0;pointer-events:none;background:#04060f66;transition:opacity .3s;position:fixed;inset:0}.course-drawer-backdrop.open{opacity:1;pointer-events:auto}.course-drawer{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:1500;color:#e8eeff;background:#0f172ad9;border-left:1px solid #ffffff1a;flex-direction:column;width:420px;height:100vh;transition:right .35s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;right:-420px;box-shadow:-10px 0 35px #0009}.course-drawer.open{right:0}.course-drawer-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.course-drawer-header h3{color:#fff;align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:flex}.course-drawer-body{flex-direction:column;flex:1;gap:1.25rem;padding:1.5rem;display:flex;overflow-y:auto}.course-drawer-footer{border-top:1px solid #ffffff14;gap:.75rem;padding:1.5rem;display:flex}.course-row.active{border-color:var(--accent)!important;background:var(--accent-glow)!important}.course-row.hovered{border-color:var(--accent2)!important}.split-layout{grid-template-columns:1fr 1fr;align-items:start;gap:1.5rem;display:grid}.split-layout>*{align-self:start}.sticky-column{flex-direction:column;gap:1.5rem;display:flex}@media (width<=1200px){.split-layout{grid-template-columns:1fr}}
