@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap";html{scroll-behavior:smooth}.course-root{--navy:#0F2942;--navy-deep:#0A1E30;--ink:#EAF2F8;--ink-muted:#93AFC4;--cyan:#5FD0DA;--amber:#F2A93B;--coral:#F0765A;--mint:#7ADFB0;font-family:Inter,sans-serif;background:var(--navy);color:var(--ink);background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:36px 36px;min-height:100vh;line-height:1.55}.course-root *{box-sizing:border-box}.module-sub-section,[id^=dasar-de-],[id^=sql-dasar-],[id^=sql-lanjutan-],[id^=model-data-],[id^=pipeline-dag-],[id^=data-quality-formats-],[id^=streaming-cdc-],[id^=dbt-governance-],[id^=lakehouse-iceberg-],[id^=spark-distributed-],[id^=observability-finops-],[id^=realtime-analytics-],[id^=mesh-contracts-]{scroll-margin-top:32px}.spin-slow{animation:spin 1.2s linear infinite}.bp-mono{font-family:IBM Plex Mono,monospace}.course-shell{display:flex;min-height:100vh}.course-sidebar{width:230px;flex-shrink:0;padding:20px 12px;border-right:1px solid rgba(255,255,255,.1);position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.course-logo{font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--cyan);padding:8px 10px 16px;letter-spacing:.05em}.course-side-item{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:1px solid transparent;border-radius:6px;padding:10px;cursor:pointer;color:var(--ink-muted);text-align:left;font-family:Inter,sans-serif}.course-side-item:hover{background:#ffffff0a}.course-side-item.active{background:#5fd0da1a;border-color:var(--cyan);color:var(--ink)}.course-side-item.locked{opacity:.4;cursor:not-allowed}.course-side-text{display:flex;flex-direction:column;gap:1px;min-width:0}.course-side-num{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--cyan)}.course-side-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-side-sub{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--ink-muted)}@media (max-width:860px){.course-shell{flex-direction:column}.course-sidebar{width:100%;height:auto;flex-direction:row;overflow-x:auto;overflow-y:visible;border-right:none;border-bottom:1px solid rgba(255,255,255,.1);padding:10px 12px;z-index:30;background:#0a1e30e6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.course-logo{display:none}.course-side-item{flex-shrink:0;width:auto}.course-side-sub{display:none}}.course-main{flex:1;min-width:0}.course-section{max-width:900px;margin:0 auto;padding:48px 22px 70px}.bp-eyebrow{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--cyan);letter-spacing:.08em;margin-bottom:10px;display:flex;align-items:center;gap:8px}.bp-h1{font-family:Space Grotesk,sans-serif;font-weight:700;font-size:clamp(26px,4vw,40px);margin:0 0 16px;line-height:1.15}.bp-h2{font-family:Space Grotesk,sans-serif;font-weight:600;font-size:clamp(20px,2.6vw,26px);margin:0 0 8px}.bp-lead{color:var(--ink-muted);font-size:15px;max-width:640px;margin:0 0 20px}.bp-stat{font-family:IBM Plex Mono,monospace;font-size:13px;color:var(--ink-muted)}.bp-stat b{color:var(--ink);font-size:16px;font-family:Space Grotesk,sans-serif}.bp-panel{position:relative;background:#ffffff08;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:20px;margin-bottom:18px}.bp-corner:before,.bp-corner:after{content:"";position:absolute;width:12px;height:12px;border:1.5px solid var(--cyan);opacity:.5}.bp-corner:before{top:-1px;left:-1px;border-right:none;border-bottom:none}.bp-corner:after{bottom:-1px;right:-1px;border-left:none;border-top:none}.bp-btn{font-family:IBM Plex Mono,monospace;font-size:12.5px;border:1px solid var(--cyan);background:transparent;color:var(--ink);border-radius:5px;padding:8px 14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.bp-btn:hover{background:#5fd0da1f}.bp-btn.solid{background:var(--cyan);color:var(--navy-deep);font-weight:600}.bp-btn.solid:hover{background:#7adbe3}.bp-btn.ghost{border-color:#fff3;color:var(--ink-muted)}.bp-btn:disabled{opacity:.4;cursor:not-allowed}.bp-table-wrap{overflow-x:auto;margin-top:10px}.bp-table{width:100%;border-collapse:collapse;font-size:12.5px}.bp-table th{text-align:left;font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--ink-muted);font-weight:500;padding:7px 9px;border-bottom:1px solid rgba(255,255,255,.15);white-space:nowrap}.bp-table td{padding:7px 9px;border-bottom:1px solid rgba(255,255,255,.06);white-space:nowrap}.bp-table tr.dup td{color:var(--coral)}.bp-table .note{font-size:11px;color:var(--amber)}.bp-empty{font-size:13px;color:var(--ink-muted);font-style:italic;padding:10px 0}.de-hero-visual{overflow-x:auto;padding-bottom:6px}.de-hero-row{display:flex;align-items:center;gap:18px;min-width:640px}.de-src-col{display:flex;flex-direction:column;gap:10px}.de-src-item{display:flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-muted);border:1px solid rgba(255,255,255,.12);border-radius:5px;padding:6px 10px;background:#ffffff05}.de-track-wrap{flex:1}.de-track{position:relative;height:46px;border-top:1px dashed rgba(255,255,255,.25);border-bottom:1px dashed rgba(255,255,255,.25)}.de-packet{position:absolute;top:50%;width:12px;height:12px;transform:translateY(-50%);animation:flowPacket 4.6s linear infinite}.de-packet.p2{animation-delay:1.55s}.de-packet.p3{animation-delay:3.1s}@keyframes flowPacket{0%{left:0%;background:var(--cyan);border-radius:3px;opacity:1}32%{background:var(--cyan);border-radius:3px}34%{background:var(--amber);border-radius:3px}64%{background:var(--amber);border-radius:3px}66%{background:var(--coral);border-radius:50%}97%{left:96%;background:var(--coral);border-radius:50%;opacity:1}to{left:101%;background:var(--coral);border-radius:50%;opacity:0}}@media (prefers-reduced-motion:reduce){.de-packet{animation:none;left:40%}}.de-zones{display:flex;margin-top:6px}.de-zone{flex:1;text-align:center;font-family:IBM Plex Mono,monospace;font-size:11px;padding-top:6px;border-top:2px solid}.de-zone.z1{border-color:var(--cyan);color:var(--cyan)}.de-zone.z2{border-color:var(--amber);color:var(--amber)}.de-zone.z3{border-color:var(--coral);color:var(--coral)}.de-wh-col{display:flex;flex-direction:column;align-items:center;gap:6px}.de-hero-hint{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-muted);margin-top:10px;display:none}@media (max-width:680px){.de-hero-hint{display:block}}.de-steps{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap}.de-step-btn{font-family:IBM Plex Mono,monospace;font-size:12px;border:1px solid rgba(255,255,255,.15);background:#ffffff05;color:var(--ink-muted);border-radius:5px;padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:6px}.de-step-btn.active{color:var(--navy-deep);font-weight:600}.de-step-btn.active.s0{background:var(--cyan);border-color:var(--cyan)}.de-step-btn.active.s1{background:var(--amber);border-color:var(--amber)}.de-step-btn.active.s2{background:var(--coral);border-color:var(--coral)}.de-step-btn.done{color:var(--mint);border-color:var(--mint)}.de-step-btn:disabled{opacity:.4;cursor:not-allowed}.de-rules{display:flex;flex-direction:column;gap:8px;margin:16px 0}.de-rule{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-muted)}.de-rule.active{color:var(--mint)}.de-src-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.de-src-card{border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:14px;background:#ffffff05}.de-src-card .lbl{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--cyan);margin-bottom:6px;display:flex;align-items:center;gap:6px}.de-storage-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}@media (max-width:640px){.de-storage-grid{grid-template-columns:1fr}}.de-storage-panel{border-radius:6px;padding:20px;border:1.5px solid}.de-storage-panel.warehouse{border-color:var(--cyan);background:#5fd0da0f}.de-storage-panel.lake{border-color:var(--amber);background:#f2a93b0f}.de-storage-panel h3{font-family:Space Grotesk,sans-serif;margin:8px 0 6px;font-size:18px}.de-storage-panel p{color:var(--ink-muted);font-size:13px;margin:0}.de-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.de-chip{display:flex;align-items:center;gap:6px;font-size:13px;padding:8px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.15);background:#ffffff05;color:var(--ink);cursor:pointer}.de-chip.sel{border-color:var(--ink);background:#ffffff14}.de-explain{border-left:3px solid var(--cyan);padding:12px 16px;background:#ffffff08;border-radius:0 6px 6px 0;font-size:14px}.de-explain.lake{border-color:var(--amber)}.de-sim-controls{display:flex;align-items:center;gap:10px;margin-bottom:22px;flex-wrap:wrap}.de-lanes{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width:640px){.de-lanes{grid-template-columns:1fr}}.de-lane{border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:18px;min-height:200px}.de-lane h4{margin:0 0 4px;font-family:Space Grotesk,sans-serif;font-size:16px;display:flex;align-items:center;gap:8px}.de-lane .sub{color:var(--ink-muted);font-size:12px;margin-bottom:16px}.de-tray{display:flex;gap:5px;flex-wrap:wrap;min-height:32px;border:1px dashed rgba(255,255,255,.2);border-radius:6px;padding:8px;margin-bottom:14px;transition:opacity .5s,transform .5s}.de-tray.flushing{opacity:.15;transform:translate(30px)}.de-dot{width:12px;height:12px;border-radius:3px;background:var(--amber)}.de-stream-track{position:relative;height:30px;border-top:1px dashed rgba(255,255,255,.25);border-bottom:1px dashed rgba(255,255,255,.25);margin-bottom:14px}.de-stream-dot{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;background:var(--cyan);transform:translateY(-50%);animation:streamFlow 1.3s linear infinite;animation-play-state:paused}.de-stream-dot.run{animation-play-state:running}.de-stream-dot.d2{animation-delay:.43s}.de-stream-dot.d3{animation-delay:.86s}@keyframes streamFlow{0%{left:-3%;opacity:0}10%{opacity:1}90%{opacity:1}to{left:100%;opacity:0}}.de-quiz-item{border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:18px;margin-bottom:14px}.de-quiz-q{font-family:Space Grotesk,sans-serif;font-size:16px;margin:0 0 12px}.de-quiz-opt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid rgba(255,255,255,.14);background:#ffffff05;color:var(--ink);border-radius:5px;padding:10px 12px;margin-bottom:8px;cursor:pointer;font-size:14px;font-family:Inter,sans-serif}.de-quiz-opt.correct{border-color:var(--mint);background:#7adfb01a}.de-quiz-opt.wrong{border-color:var(--coral);background:#f0765a1a}.de-quiz-explain{font-size:13px;color:var(--ink-muted);margin-top:6px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.15)}.de-score-box{text-align:center;padding:26px}.de-score-num{font-family:Space Grotesk,sans-serif;font-size:44px;color:var(--mint)}.sql-schema-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.sql-schema-chip{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-muted);border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:4px 8px}.sql-schema-chip b{color:var(--cyan)}.sql-toggle-link{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--cyan);background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:5px;padding:0;margin-top:12px}.sql-ex-num{font-family:Space Grotesk,sans-serif;font-weight:600;font-size:17px;margin:2px 0 8px}.sql-ex-prompt{font-size:14px;margin:0 0 14px}.sql-textarea{width:100%;min-height:78px;background:var(--navy-deep);color:var(--mint);border:1px solid rgba(255,255,255,.18);border-radius:5px;padding:12px;font-family:IBM Plex Mono,monospace;font-size:13px;resize:vertical;outline:none}.sql-textarea:focus{border-color:var(--cyan)}.sql-btn-row{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}.sql-err{border-left:3px solid var(--coral);background:#f0765a14;border-radius:0 5px 5px 0;padding:10px 14px;font-size:13px;margin-top:10px}.sql-feedback{display:flex;align-items:center;gap:8px;border-radius:5px;padding:10px 14px;font-size:13.5px;margin-top:12px}.sql-feedback.ok{background:#7adfb01a;border:1px solid var(--mint);color:var(--mint)}.sql-feedback.bad{background:#f0765a1a;border:1px solid var(--coral);color:var(--coral)}.sql-hintbox{font-size:13px;color:var(--ink-muted);border-top:1px dashed rgba(255,255,255,.15);margin-top:12px;padding-top:12px}.sql-solution{font-family:IBM Plex Mono,monospace;font-size:12.5px;color:var(--amber);background:#f2a93b14;border-radius:4px;padding:8px 10px;margin-top:8px}.sql-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.sql-chip{font-family:IBM Plex Mono,monospace;font-size:11.5px;color:var(--ink-muted);border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:6px 11px;cursor:pointer;background:#ffffff05}.sql-chip:hover{color:var(--ink);border-color:var(--cyan)}.sm-classify-label{font-family:Space Grotesk,sans-serif;font-size:15px;margin-bottom:12px}.sm-classify-btns{display:flex;gap:8px;flex-wrap:wrap}.sm-classify-btn{font-family:IBM Plex Mono,monospace;font-size:12.5px;border:1px solid rgba(255,255,255,.18);background:#ffffff05;color:var(--ink-muted);border-radius:5px;padding:8px 14px;cursor:pointer}.sm-classify-btn:hover{border-color:var(--cyan);color:var(--ink)}.sm-classify-btn.correct{border-color:var(--mint);background:#7adfb01f;color:var(--mint)}.sm-classify-btn.wrong{border-color:var(--coral);background:#f0765a1f;color:var(--coral)}.sm-explain{font-size:13px;color:var(--ink-muted);margin-top:12px;padding-top:12px;border-top:1px dashed rgba(255,255,255,.15)}.star-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:auto auto auto;gap:10px;align-items:center;justify-items:center}.star-box{border-radius:6px;padding:14px 8px;font-family:IBM Plex Mono,monospace;font-size:11px;text-align:center;width:100%;border:1.5px solid}.star-box.dim{border-color:var(--cyan);background:#5fd0da14;color:var(--cyan)}.star-box.fact{border-color:var(--coral);background:#f0765a1a;color:var(--coral);font-weight:600;font-size:12px}.star-connector{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--ink-muted);text-align:center}.pos-produk{grid-column:3;grid-row:1}.pos-vline{grid-column:3;grid-row:2}.pos-toko{grid-column:1;grid-row:3}.pos-hline1{grid-column:2;grid-row:3}.pos-fakta{grid-column:3;grid-row:3}.pos-hline2{grid-column:4;grid-row:3}.pos-waktu{grid-column:5;grid-row:3}@media (max-width:640px){.star-grid{grid-template-columns:1fr}.pos-produk,.pos-vline,.pos-toko,.pos-hline1,.pos-fakta,.pos-hline2,.pos-waktu{grid-column:1;grid-row:auto}}.sm-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.sm-tab{font-family:IBM Plex Mono,monospace;font-size:12px;border:1px solid rgba(255,255,255,.15);background:#ffffff05;color:var(--ink-muted);border-radius:5px;padding:8px 12px;cursor:pointer}.sm-tab.active{border-color:var(--cyan);color:var(--cyan);background:#5fd0da14}.dag-pillars-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:20px}.dag-pillar-card{margin-bottom:0;display:flex;flex-direction:column;gap:8px}.dag-pillar-tag{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600}.dag-pillar-title{font-family:Space Grotesk,sans-serif;font-size:16px;font-weight:600;color:var(--ink)}.dag-pillar-desc{font-size:13px;color:var(--ink-muted);margin:0;line-height:1.5}.dag-compare-table-wrap{overflow-x:auto;margin-top:10px}.dag-control-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.dag-canvas-container{border:1px dashed rgba(255,255,255,.18);border-radius:6px;padding:18px 14px;background:#00000026;overflow-x:auto}.dag-legend{display:flex;gap:14px;flex-wrap:wrap;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-muted);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}.dag-legend-item{display:flex;align-items:center;gap:6px}.dag-status-pill{width:9px;height:9px;border-radius:50%;display:inline-block}.dag-status-pill.idle{background:#ffffff4d}.dag-status-pill.running{background:var(--cyan);box-shadow:0 0 6px var(--cyan)}.dag-status-pill.success{background:var(--mint)}.dag-status-pill.failed{background:var(--coral)}.dag-status-pill.upstream_failed{background:var(--amber)}.dag-status-pill.retrying{background:#d898ff}.dag-flow-grid{display:flex;align-items:center;gap:12px;min-width:820px;justify-content:space-between}.dag-stage-col{flex:1;display:flex;flex-direction:column;gap:8px}.dag-stage-header{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--ink-muted);letter-spacing:.05em;text-align:center;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.1)}.dag-stage-tasks{display:flex;flex-direction:column;gap:10px}.dag-arrow-col{font-size:18px;color:#ffffff4d;-webkit-user-select:none;user-select:none;flex-shrink:0;text-align:center}.dag-node-box{border:1.5px solid rgba(255,255,255,.18);border-radius:6px;padding:10px 12px;background:#ffffff08;cursor:pointer;transition:all .25s ease}.dag-node-box:hover{border-color:var(--cyan);background:#5fd0da0f}.dag-node-box.selected{box-shadow:0 0 0 1.5px var(--cyan)}.dag-node-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px}.dag-node-icon{color:var(--cyan)}.dag-node-name{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;color:var(--ink);word-break:break-word;line-height:1.3}.dag-node-layer{font-size:10px;color:var(--ink-muted);margin-top:2px}.dag-node-status-badge{font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:600;padding:2px 6px;border-radius:4px}.dag-node-box.idle .dag-node-status-badge{background:#ffffff0f;color:var(--ink-muted)}.dag-node-box.queued{border-color:#fff6}.dag-node-box.queued .dag-node-status-badge{background:#ffffff1a;color:var(--ink)}.dag-node-box.running{border-color:var(--cyan);background:#5fd0da1f;animation:nodePulse 1.4s ease-in-out infinite}.dag-node-box.running .dag-node-status-badge{background:var(--cyan);color:var(--navy-deep)}.dag-node-box.success{border-color:var(--mint);background:#7adfb01a}.dag-node-box.success .dag-node-status-badge{background:var(--mint);color:var(--navy-deep)}.dag-node-box.failed{border-color:var(--coral);background:#f0765a1f}.dag-node-box.failed .dag-node-status-badge{background:var(--coral);color:#fff}.dag-node-box.upstream_failed{border-color:var(--amber);background:#f2a93b1a}.dag-node-box.upstream_failed .dag-node-status-badge{background:var(--amber);color:var(--navy-deep)}.dag-node-box.retrying{border-color:#d898ff;background:#d898ff1a;animation:nodePulse 1s ease-in-out infinite}.dag-node-box.retrying .dag-node-status-badge{background:#d898ff;color:var(--navy-deep)}@keyframes nodePulse{0%,to{box-shadow:0 0 4px var(--cyan)}50%{box-shadow:0 0 12px var(--cyan)}}.dag-inspector-panel{margin-top:14px;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:12px 16px;background:#ffffff05}.dag-inspector-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.dag-terminal-wrap{margin-top:14px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:var(--navy-deep);overflow:hidden}.dag-terminal-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.1);font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-muted)}.dag-terminal-body{max-height:160px;overflow-y:auto;padding:10px 12px;font-family:IBM Plex Mono,monospace;font-size:11.5px;display:flex;flex-direction:column;gap:4px}.dag-log-line{display:flex;gap:8px;line-height:1.4;word-break:break-all}.dag-log-time{color:var(--ink-muted);opacity:.7;flex-shrink:0}.dag-log-tag{font-weight:600;flex-shrink:0}.dag-log-line.info .dag-log-tag{color:var(--cyan)}.dag-log-line.success .dag-log-tag{color:var(--mint)}.dag-log-line.warn .dag-log-tag{color:var(--amber)}.dag-log-line.error .dag-log-tag{color:var(--coral)}.dag-log-text{color:var(--ink)}.dq-tab-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.dq-tab-btn{font-family:IBM Plex Mono,monospace;font-size:12.5px;border:1px solid rgba(255,255,255,.15);background:#ffffff05;color:var(--ink-muted);border-radius:6px;padding:10px 14px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s}.dq-tab-btn:hover{border-color:var(--cyan);color:var(--ink)}.dq-tab-btn.active{border-color:var(--cyan);color:var(--cyan);background:#5fd0da1a;font-weight:600}.dq-rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:14px}.dq-rule-card{border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:12px;background:#ffffff05;cursor:pointer;transition:all .2s}.dq-rule-card:hover{border-color:#ffffff4d}.dq-rule-card.active{border-color:var(--cyan);background:#5fd0da0d}.dq-checkbox{width:18px;height:18px;border-radius:4px;border:1.5px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.dq-checkbox.checked{background:var(--cyan);border-color:var(--cyan);color:var(--navy-deep)}.dq-rule-name{font-size:11px;color:var(--cyan);font-weight:600;word-break:break-all}.dq-rule-target{font-size:11px;color:var(--ink);margin:2px 0}.dq-rule-desc{font-size:12px;color:var(--ink-muted);line-height:1.4}.dq-row-pass{background:#7adfb00a}.dq-row-fail{background:#f0765a14}.dq-badge-pass{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;color:var(--mint);background:#7adfb026;padding:2px 6px;border-radius:4px;display:inline-flex;align-items:center;gap:4px}.dq-badge-fail{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;color:var(--coral);background:#f0765a26;padding:2px 6px;border-radius:4px;display:inline-flex;align-items:center;gap:4px}.storage-compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:14px}.storage-box{display:flex;flex-direction:column;gap:12px}.storage-bytes-visual{background:#0000004d;border-radius:5px;padding:10px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex;flex-direction:column;gap:6px}.storage-byte-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.byte-tag{color:var(--ink-muted);font-size:10px;width:70px;flex-shrink:0}.byte-val{background:#ffffff14;padding:2px 6px;border-radius:3px}.byte-val.c-amount{background:#5fd0da26;color:var(--cyan);border:1px solid rgba(95,208,218,.3)}.storage-feature-list{display:flex;flex-direction:column;gap:6px;font-size:12px;line-height:1.4}.storage-feature-item{padding:6px 8px;border-radius:4px;background:#ffffff05;border-left:2.5px solid rgba(255,255,255,.15)}.query-sql-box{background:var(--navy-deep);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:10px 14px;font-size:12.5px;margin-bottom:14px}.profiler-card{border:1px solid rgba(255,255,255,.12)}.profiler-card.active-profile{border-color:var(--cyan);box-shadow:0 0 10px #5fd0da1a}.profiler-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:10px}.profiler-metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.p-metric-item{display:flex;flex-direction:column;gap:2px}.p-metric-label{font-size:11px;color:var(--ink-muted)}.p-metric-val{font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600;color:var(--ink)}.scan-bar-track{height:22px;border-radius:4px;background:#ffffff0f;overflow:hidden;position:relative}.scan-bar-fill{height:100%;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:600;display:flex;align-items:center;padding-left:10px;color:var(--navy-deep);min-width:80px;transition:width .4s ease}.scan-bar-fill.csv{background:var(--coral);color:#fff}.scan-bar-fill.parquet{background:var(--mint)}.kafka-producer-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px;background:#00000040;padding:14px;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.kafka-input-group{display:flex;flex-direction:column;gap:4px}.kafka-label{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-muted)}.kafka-select,.kafka-input{font-family:IBM Plex Mono,monospace;font-size:12px;background:var(--navy-deep);color:var(--ink);border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:6px 10px;outline:none}.kafka-select:focus,.kafka-input:focus{border-color:var(--cyan)}.kafka-partitions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:12px}.kafka-partition-box{border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#0003;padding:10px;display:flex;flex-direction:column}.kafka-p-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:6px;margin-bottom:8px;font-size:11px}.kafka-offset-stream{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto;padding-right:4px}.kafka-msg-pill{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:6px 8px;display:flex;flex-direction:column;gap:3px}.kafka-offset-badge{font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:600;color:var(--cyan);background:#5fd0da1f;padding:1px 5px;border-radius:3px}.kafka-consumers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:16px;border-top:1px solid rgba(255,255,255,.08);padding-top:14px}.kafka-cg-card{background:#ffffff05;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:10px 12px}.cdc-pipeline-flow{display:flex;align-items:center;justify-content:space-between;gap:10px;overflow-x:auto;margin-top:14px;padding-bottom:6px}.cdc-flow-step{flex:1;min-width:200px;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:12px;background:#ffffff08;display:flex;flex-direction:column;gap:6px}.cdc-step-title{font-family:Space Grotesk,sans-serif;font-size:14px;font-weight:600;display:flex;align-items:center;gap:6px;color:var(--ink)}.cdc-step-desc{font-size:12px;color:var(--ink-muted);line-height:1.4}.cdc-step-badge{font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:600;padding:2px 6px;border-radius:3px;align-self:flex-start;background:#ffffff14;color:var(--ink)}.window-visual-canvas{background:#0003;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:14px;margin-top:12px}.window-ticks-bar{border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:12px}.tick-bar-item{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:40px;justify-content:flex-end}.tick-bar-fill{width:22px;background:var(--cyan);border-radius:3px 3px 0 0;min-height:4px}.dbt-model-badge-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.dbt-tag-pill{font-family:IBM Plex Mono,monospace;font-size:11px;padding:3px 8px;border-radius:4px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1)}.dbt-code-compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:14px}.dbt-code-box{display:flex;flex-direction:column;justify-content:space-between}.dbt-code-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:8px;margin-bottom:10px}.dbt-code-pre{font-size:11.5px;line-height:1.5;background:#00000059;padding:12px;border-radius:5px;border:1px solid rgba(255,255,255,.07);overflow-x:auto;margin:0;min-height:220px;white-space:pre-wrap}.lineage-canvas{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#00000040;border:1px solid rgba(255,255,255,.12);padding:16px;border-radius:8px;overflow-x:auto}.lineage-stage-col{display:flex;flex-direction:column;gap:10px;flex:1;min-width:180px}.lineage-col-title{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--ink-muted);text-align:center;padding-bottom:6px;border-bottom:1px dashed rgba(255,255,255,.15)}.lineage-node-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:10px;cursor:pointer;transition:all .2s ease;position:relative}.lineage-node-card:hover{border-color:var(--cyan);background:#5fd0da0f}.lineage-node-card.selected{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan)}.lineage-node-card.broken{border-color:var(--coral)!important;background:#ff6b6b14!important}.lineage-node-card.exposure{border-style:dashed}.lineage-node-name{font-size:12px;font-weight:600;color:var(--ink)}.lineage-node-sub{font-size:10.5px;color:var(--ink-muted);margin-top:2px}.lineage-broken-badge{font-family:IBM Plex Mono,monospace;font-size:8.5px;font-weight:700;color:#fff;background:var(--coral);padding:2px 5px;border-radius:3px;margin-top:6px;display:inline-block}.dag-arrow-col{color:#ffffff4d;font-size:16px;-webkit-user-select:none;user-select:none}.iceberg-snapshot-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}.iceberg-snap-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:12px;cursor:pointer;transition:all .2s ease}.iceberg-snap-card:hover{border-color:var(--cyan);background:#5fd0da0f}.iceberg-snap-card.selected{border-color:var(--cyan);background:#5fd0da1a;box-shadow:0 0 0 1px var(--cyan)}.iceberg-snap-card.corrupted{border-color:#ff6b6b80}.iceberg-snap-card.rollback{border-color:#4ecdc480}.iceberg-tree-canvas{display:flex;flex-direction:column;align-items:center;gap:6px;background:#00000040;border:1px solid rgba(255,255,255,.12);padding:20px;border-radius:8px;margin-top:14px}.tree-node-row{width:100%;max-width:680px}.tree-badge{font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:700;color:var(--cyan);letter-spacing:.5px;margin-bottom:4px}.tree-box{background:#ffffff0d;border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:10px 14px}.tree-title{font-size:12.5px;font-weight:600;color:var(--ink);font-family:IBM Plex Mono,monospace}.tree-meta{font-size:11px;color:var(--ink-muted);margin-top:3px}.tree-down-arrow{color:var(--cyan);font-weight:700;font-size:16px;-webkit-user-select:none;user-select:none}.iceberg-pruning-controls{display:flex;gap:20px;flex-wrap:wrap;margin-top:12px;background:#ffffff05;border:1px solid rgba(255,255,255,.08);padding:12px;border-radius:6px}.pruning-gauge-box{background:#0000004d;border-color:#ffffff1f;padding:12px 16px}.iceberg-files-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.iceberg-file-card{background:#ffffff08;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:12px;transition:all .2s ease}.iceberg-file-card.scanned{border-color:var(--mint);background:#4ecdc40f}.iceberg-file-card.pruned{border-color:#ffffff14;opacity:.6}.prune-status-pill{font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:700;padding:2px 6px;border-radius:3px}.prune-status-pill.scanned{background:#4ecdc433;color:var(--mint)}.prune-status-pill.pruned{background:#ff6b6b26;color:var(--coral)}.file-stats-sub{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--ink-muted);margin-top:8px;border-top:1px dashed rgba(255,255,255,.1);padding-top:6px}.file-prune-reason{font-size:10px;color:var(--ink-muted);margin-top:6px}.spark-dag-canvas{display:flex;flex-direction:column;gap:12px;margin-top:16px}.spark-stage-card{background:#ffffff08;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:16px;transition:all .3s ease}.spark-stage-card.active-stage{border-color:#5fd0da66;background:#5fd0da0a}.spark-stage-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.spark-badge{font-family:IBM Plex Mono,monospace;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:3px}.spark-badge.narrow{background:#4ecdc426;color:var(--mint)}.spark-badge.wide{background:#ffbe0b26;color:var(--amber)}.spark-stage-body{display:flex;flex-direction:column;gap:8px}.spark-op-box{background:#0000004d;border:1px solid rgba(255,255,255,.08);padding:10px 14px;border-radius:5px}.spark-op-sub{font-size:11px;color:var(--ink-muted);margin-top:3px}.spark-op-arrow{font-size:11px;color:var(--cyan);font-family:IBM Plex Mono,monospace;text-align:center;padding:2px 0}.spark-shuffle-boundary{display:flex;align-items:center;gap:12px;margin:4px 0}.shuffle-line{flex:1;height:1px;background:dashed #ffbe0b4d}.shuffle-pill{display:flex;align-items:center;gap:6px;background:#ffbe0b1f;border:1px dashed var(--amber);color:var(--amber);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:700;padding:4px 12px;border-radius:20px}.spark-executor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.spark-worker-card{background:#ffffff08;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:14px;transition:all .2s ease}.spark-worker-card.bad-straggler{border-color:var(--coral);background:#ff6b6b14}.duckdb-benchmark-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:12px}.benchmark-card{border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.12);background:#ffffff08}.benchmark-card.spark-side{border-color:#ffbe0b4d}.benchmark-card.duckdb-side{border-color:#4ecdc466;background:#4ecdc40d}.bench-header{display:flex;justify-content:space-between;align-items:center}.bench-latency{font-family:Space Grotesk,sans-serif;font-size:24px;font-weight:700;color:var(--amber);margin:12px 0 8px}.bench-details{font-size:11px;color:var(--ink-muted);display:flex;flex-direction:column;gap:3px}.ajarindar-hero-badge{display:inline-flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:11.5px;color:var(--cyan);background:#5fd0da14;border:1px solid rgba(95,208,218,.25);padding:5px 12px;border-radius:20px;margin-bottom:16px;letter-spacing:.05em;font-weight:600}.ajarindar-pill-free{background:var(--mint);color:var(--navy-deep);font-weight:700;font-size:9.5px;padding:2px 6px;border-radius:10px;margin-left:4px}.ajarindar-perks-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:20px 0 24px}.ajarindar-perk-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-muted);background:#ffffff05;border:1px solid rgba(255,255,255,.08);padding:10px 14px;border-radius:6px}.ajarindar-perk-item b{color:var(--ink)}.ajarindar-creator-card{background:linear-gradient(135deg,#5fd0da14,#0a1e30cc);border-color:#5fd0da4d}.creator-card-inner{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.creator-avatar-wrap{position:relative;width:58px;height:58px;flex-shrink:0}.creator-avatar-img{width:58px;height:58px;border-radius:50%;object-fit:cover;object-position:top center;border:2px solid var(--cyan);box-shadow:0 0 16px #5fd0da59;display:block}.creator-avatar-circle{width:58px;height:58px;border-radius:50%;background:var(--cyan);display:flex;align-items:center;justify-content:center;box-shadow:0 0 16px #5fd0da59}.creator-online-dot{position:absolute;bottom:1px;right:1px;width:12px;height:12px;border-radius:50%;background:var(--mint);border:2px solid var(--navy-deep)}.creator-info-block{flex:1;min-width:240px}.creator-name{font-family:Space Grotesk,sans-serif;font-size:18px;font-weight:700;color:var(--ink);margin:2px 0}.creator-bio{font-size:13px;color:var(--ink-muted);margin:0;line-height:1.45}.creator-action-block{display:flex;align-items:center;gap:10px}.linkedin-btn{background:#0a66c2!important;color:#fff!important;border-color:#0a66c2!important;font-weight:600;box-shadow:0 2px 10px #0a66c24d}.linkedin-btn:hover{background:#084e96!important}.ajarindar-feedback-section{background:#00000040}.ajarindar-community-badge{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:700;color:var(--amber);background:#f2a93b26;border:1px dashed var(--amber);padding:3px 8px;border-radius:4px}.feedback-preset-chips{display:flex;gap:8px;flex-wrap:wrap}.preset-chip{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-muted);background:#ffffff0a;border:1px solid rgba(255,255,255,.12);border-radius:15px;padding:5px 11px;cursor:pointer;transition:all .15s ease;text-align:left}.preset-chip:hover{border-color:var(--cyan);color:var(--cyan);background:#5fd0da14}.feedback-form-grid{display:flex;flex-direction:column;gap:12px;margin-top:14px}.feedback-form-row{display:flex;gap:12px;flex-wrap:wrap}.feedback-label{font-size:10.5px;color:var(--ink-muted);display:block;margin-bottom:5px;font-weight:600}.feedback-input{width:100%;font-family:Inter,sans-serif;font-size:13px;color:var(--ink);background:#0006;border:1px solid rgba(255,255,255,.15);border-radius:5px;padding:9px 12px;outline:none;transition:border-color .2s}.feedback-input:focus{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan)}.feedback-textarea{resize:vertical;min-height:80px}.community-req-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.community-req-item{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:10px 12px}.req-topic-tag{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--cyan);background:#5fd0da1f;padding:1px 5px;border-radius:3px;font-weight:600}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.course-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:20px}.course-card{border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:20px;background:#ffffff08;display:flex;flex-direction:column;gap:10px;min-height:200px}.course-card.locked{opacity:.55}.course-card-title{font-family:Space Grotesk,sans-serif;font-size:17px;font-weight:600}.course-card-desc{color:var(--ink-muted);font-size:13px;margin:0;flex:1}.course-progress-track{height:5px;border-radius:3px;background:#ffffff1a;overflow:hidden}.course-progress-fill{height:100%;background:var(--mint)}.course-locked-badge{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-muted);border:1px dashed rgba(255,255,255,.25);border-radius:20px;padding:6px 12px;display:inline-flex;align-items:center;gap:6px;align-self:flex-start}.learning-tracker-panel{background:linear-gradient(135deg,#5fd0da0f,#0a1e30d9);border:1px solid rgba(95,208,218,.25);border-radius:8px;padding:20px;margin-bottom:28px;position:relative}.tracker-header-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:16px}.tracker-rank-badge{display:inline-flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:20px;border:1px solid currentColor;letter-spacing:.03em}.tracker-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:16px 0}.tracker-stat-box{background:#00000040;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.tracker-stat-label{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--ink-muted);display:flex;align-items:center;gap:6px}.tracker-stat-val{font-family:Space Grotesk,sans-serif;font-size:22px;font-weight:700;color:var(--ink);line-height:1.1}.tracker-stat-sub{font-size:11px;color:var(--ink-muted)}.tracker-bar-wrap{height:9px;border-radius:5px;background:#ffffff14;overflow:hidden;margin:12px 0 16px;position:relative}.tracker-bar-fill{height:100%;background:linear-gradient(90deg,var(--cyan) 0%,var(--mint) 100%);border-radius:5px;transition:width .4s cubic-bezier(.4,0,.2,1);box-shadow:0 0 12px #5fd0da66}.tracker-actions-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:1px dashed rgba(255,255,255,.1)}.tracks-section{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}.tracks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:12px}.track-card{background:#ffffff06;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:8px;transition:all .2s ease}.track-card:hover{border-color:#ffffff2e;background:#ffffff0a}.track-title-row{display:flex;justify-content:space-between;align-items:center;font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:600;color:var(--ink)}.track-stat-pill{font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:700;padding:2px 6px;border-radius:3px;background:#ffffff0f}.track-progress-track{height:4px;border-radius:2px;background:#ffffff14;overflow:hidden}.track-chips-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}.track-mod-chip{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--ink-muted);background:#ffffff0a;border:1px solid rgba(255,255,255,.08);padding:1px 5px;border-radius:3px;cursor:pointer}.track-mod-chip:hover{color:var(--cyan);border-color:var(--cyan)}.sub-matrix-panel{margin-top:18px;background:#00000059;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:16px}.sub-matrix-filter-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.08)}.sub-matrix-group{margin-bottom:14px;background:#ffffff05;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:10px 12px}.sub-matrix-group-title{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:700;color:var(--cyan);display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sub-item-row{display:flex;align-items:center;justify-content:space-between;padding:7px 8px;border-radius:4px;border-bottom:1px dashed rgba(255,255,255,.05);gap:10px;transition:background .15s ease}.sub-item-row:hover{background:#ffffff0a}.sub-item-row:last-child{border-bottom:none}.sub-item-info{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.sub-item-name{font-size:12.5px;color:var(--ink);font-weight:500}.sub-item-tag{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--ink-muted);background:#ffffff0d;padding:1px 5px;border-radius:3px;white-space:nowrap}.sub-item-status-pill{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;padding:2px 7px;border-radius:12px;display:inline-flex;align-items:center;gap:4px}.sub-item-status-pill.done{background:#4ecdc426;color:var(--mint);border:1px solid rgba(78,205,196,.3)}.sub-item-status-pill.pending{background:#ffffff0a;color:var(--ink-muted);border:1px solid rgba(255,255,255,.08)}.module-top-tracker{margin-bottom:22px;background:#0a1e30bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-color:#5fd0da33;padding:14px 16px}.module-top-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}.module-subs-pill-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.module-sub-pill{font-family:IBM Plex Mono,monospace;font-size:11px;padding:6px 12px;border-radius:20px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap;transition:all .2s ease}.module-sub-pill:hover{border-color:var(--cyan);color:var(--ink);background:#5fd0da14}.module-sub-pill.completed{background:#4ecdc41f;border-color:#4ecdc466;color:var(--mint);font-weight:600}.sub-dot-indicator{width:6px;height:6px;border-radius:50%;background:#ffffff40}.sidebar-progress-box{margin:4px 4px 10px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:8px 10px;display:flex;flex-direction:column;gap:5px}.sidebar-progress-label{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--ink-muted);display:flex;justify-content:space-between;align-items:center}.sidebar-progress-bar{height:4px;border-radius:2px;background:#ffffff1a;overflow:hidden}.sidebar-progress-fill{height:100%;background:var(--cyan);transition:width .3s ease}.filter-tabs-row{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 6px}.filter-tab-btn{font-family:IBM Plex Mono,monospace;font-size:11px;padding:4px 10px;border-radius:15px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);color:var(--ink-muted);cursor:pointer;transition:all .15s ease}.filter-tab-btn:hover{border-color:var(--cyan);color:var(--ink)}.filter-tab-btn.active{background:#5fd0da1f;border-color:var(--cyan);color:var(--cyan);font-weight:700}.sidebar-creator-badge{margin-top:auto;padding:12px 10px;border-top:1px dashed rgba(255,255,255,.12)}.sidebar-creator-link{display:flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--cyan);text-decoration:none;padding:6px 8px;border-radius:4px;background:#5fd0da14;border:1px solid rgba(95,208,218,.2);transition:all .2s ease}.sidebar-creator-link:hover{background:#5fd0da29}.course-footer{text-align:center;padding:28px 22px 50px;color:var(--ink-muted);font-family:IBM Plex Mono,monospace;font-size:12px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center;gap:12px}.course-footer a{color:var(--cyan);text-decoration:none}.course-footer a:hover{text-decoration:underline}.footer-trakteer-row{display:inline-flex;align-items:center;gap:10px;background:#e11d481a;border:1px solid rgba(225,29,72,.3);padding:8px 16px;border-radius:24px;margin-bottom:4px}.trakteer-btn{font-family:IBM Plex Mono,monospace;display:inline-flex;align-items:center;gap:6px;text-decoration:none;border-radius:6px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;border:1px solid transparent}.trakteer-btn-sm{font-size:11px;padding:5px 10px}.trakteer-btn-md{font-size:12px;padding:7px 12px}.trakteer-btn-solid{background:linear-gradient(135deg,#e11d48,#be123c);color:#fff!important;border-color:#f43f5e;font-weight:600;box-shadow:0 2px 8px #e11d484d}.trakteer-btn-solid:hover{background:linear-gradient(135deg,#f43f5e,#e11d48);transform:translateY(-1px);box-shadow:0 4px 12px #e11d4873;text-decoration:none!important}.trakteer-btn-outline{background:#e11d4814;color:#fda4af!important;border-color:#e11d4859;font-weight:500}.trakteer-btn-outline:hover{background:#e11d482e;border-color:#f43f5e;color:#fff!important;text-decoration:none!important}.trakteer-end-compact-card{margin-top:32px;margin-bottom:20px;background:linear-gradient(135deg,#e11d4812,#0a1e30d9);border:1px solid rgba(225,29,72,.25);border-radius:8px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}.trakteer-end-compact-left{display:flex;align-items:center;gap:12px;max-width:620px}.trakteer-coffee-badge{width:32px;height:32px;border-radius:50%;background:#e11d4826;border:1px solid rgba(225,29,72,.3);display:flex;align-items:center;justify-content:center;flex-shrink:0}.trakteer-end-title{font-family:Space Grotesk,sans-serif;font-size:14px;font-weight:700;color:#fff;margin-bottom:2px}.trakteer-end-sub{font-size:12px;color:var(--ink-muted);line-height:1.4;margin:0}.trakteer-end-compact-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.trakteer-floating-container{position:fixed;bottom:18px;right:18px;z-index:999}.trakteer-floating-pill{display:inline-flex;align-items:center;background:#0a1e30e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(225,29,72,.4);border-radius:20px;padding:2px 3px 2px 10px;box-shadow:0 4px 14px #0006;transition:all .2s ease}.trakteer-floating-pill:hover{border-color:#f43f5e;background:#0a1e30fa}.trakteer-pill-link{display:inline-flex;align-items:center;gap:6px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;color:#fda4af!important;text-decoration:none!important;padding:3px 4px}.trakteer-pill-link:hover{color:#fff!important}.trakteer-floating-icon{color:#fda4af}.trakteer-pill-close{background:transparent;border:none;color:var(--ink-muted);cursor:pointer;padding:3px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-left:2px;transition:color .15s}.trakteer-pill-close:hover{color:#fff;background:#ffffff1a}@media (max-width: 640px){.trakteer-end-compact-card{padding:12px;flex-direction:column;align-items:flex-start}.trakteer-end-compact-actions{width:100%;justify-content:flex-start}.trakteer-floating-container{bottom:12px;right:12px}}
