.lesson-reading-progress{
    position:fixed;
    top:72px;
    left:0;
    right:0;
    width:100%;
    height:4px;
    margin:0;
    padding:0;
    z-index:99999;
    overflow:hidden;
    border:none;
    border-radius:0;
    background:rgba(151,173,195,.35);
    pointer-events:none
}.lesson-reading-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,#0f766e,#20b7c9,#f0c64a)}
.lesson-sidebar .lesson-section-link{display:block;margin:2px 0;padding:8px 11px;border-left:3px solid transparent;border-radius:7px;color:#29445f;font-size:13px;font-weight:650;line-height:1.35;text-decoration:none}.lesson-sidebar .lesson-section-link:hover,.lesson-sidebar .lesson-section-link.active{border-left-color:#0891b2;color:#064a75;background:#eaf6fa}.lesson-sidebar-status{margin:20px 5px 5px;padding:13px;border:1px solid #cadbea;border-radius:10px;background:#f2f8fc}.lesson-sidebar-status span,.lesson-sidebar-status strong{display:block}.lesson-sidebar-status span{color:#6a7c91;font-size:10px;font-weight:900;letter-spacing:.08em}.lesson-sidebar-status strong{margin-top:0px;color:#9a5c00;font-size:13px}.lesson-sidebar-status.is-complete{border-color:#a9d7c8;background:#ecf9f4}.lesson-sidebar-status.is-complete strong{color:#087252}
.lesson-main{max-width:1500px}.lesson-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:32px;align-items:center;padding:clamp(28px,4vw,54px);border-radius:20px;color:#fff;background:radial-gradient(circle at 80% 16%,rgba(24,172,181,.25),transparent 28%),linear-gradient(135deg,#071a2d,#0c385b 72%,#0e5767);box-shadow:0 16px 38px rgba(7,26,45,.18)}.lesson-breadcrumb{display:flex;gap:8px;margin-bottom:22px;color:#a9c4d8;font-size:13px}.lesson-breadcrumb a{color:#a9e5ea}.lesson-hero .subject-label{color:#f8d766}.lesson-hero h1{max-width:900px;margin:9px 0 15px;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:clamp(36px,4.7vw,61px);line-height:1.04}.lesson-hero>div>p{max-width:820px;margin:0;color:#c7d9e8;font-size:18px}.lesson-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.lesson-meta span{padding:6px 10px;border:1px solid rgba(255,255,255,.2);border-radius:999px;color:#d9e8f3;background:rgba(0,0,0,.14);font-size:12px;font-weight:700}.lesson-goal-card{padding:22px;border:1px solid rgba(143,218,227,.35);border-radius:14px;background:rgba(3,20,35,.38)}.lesson-goal-card>span{color:#f8d766;font-size:11px;font-weight:900;letter-spacing:.1em}.lesson-goal-card ul{margin:14px 0 0;padding-left:20px;color:#e0edf6}.lesson-goal-card li{margin:7px 0}
.lesson-jump-bar{position:sticky;top:76px;z-index:20;display:flex;justify-content:center;gap:8px;margin:18px 0 0;padding:10px;border:1px solid #d4e0ee;border-radius:12px;background:rgba(255,255,255,.95);box-shadow:0 8px 20px rgba(24,53,82,.08);backdrop-filter:blur(8px)}.lesson-jump-bar a{padding:7px 12px;border-radius:7px;color:#1b4e75;font-size:13px;font-weight:800;text-decoration:none}.lesson-jump-bar a:hover{color:#fff;background:#0f766e}
.lesson-section{margin-top:27px;padding:clamp(22px,3vw,36px);border:1px solid #d4e0ee;border-radius:17px;background:#fff;box-shadow:0 9px 24px rgba(24,53,82,.055)}.lesson-heading{margin-bottom:22px}.lesson-heading>span{color:#996800;font-size:11px;font-weight:900;letter-spacing:.1em}.lesson-heading h2{margin:5px 0 7px;color:#0a3563;font-family:Georgia,"Times New Roman",serif;font-size:clamp(28px,3.5vw,43px);line-height:1.12}.lesson-heading p{margin:0;color:#5b6f89;font-size:16px}
.concept-definition-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.concept-definition-grid article{position:relative;padding:23px;border:1px solid #cbdcea;border-radius:14px;background:#f8fbfe}.concept-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:10px;color:#fff;background:linear-gradient(135deg,#0f766e,#0891b2);font-weight:900}.concept-definition-grid h3{margin:15px 0 6px;color:#0d3c67;font-size:23px}.concept-definition-grid p{margin:0;color:#4d637b}.example-strip{margin-top:16px;padding:13px;border-left:4px solid #d4af37;border-radius:6px;background:#fff8df}.example-strip b,.example-strip code,.example-strip span{display:block}.example-strip b{margin-bottom:4px;color:#805e00;font-size:11px;letter-spacing:.08em}.flow-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;margin-top:18px;padding:17px;border-radius:12px;background:#09233c}.flow-strip span{padding:7px 10px;border:1px solid #315673;border-radius:7px;color:#d9eaf5;background:#0d304f;font-weight:800}.flow-strip b{color:#f8d766}.teacher-note,.key-idea{margin-top:18px;padding:16px 18px;border-left:5px solid #d4af37;border-radius:9px;background:#fff8df}.teacher-note strong,.key-idea strong{color:#6f5200}.teacher-note p,.key-idea p{margin:4px 0 0;color:#4d5360}
.interactive-section{border-color:#bcdde3;background:linear-gradient(145deg,#fff,#f5fcfd)}.data-lab-controls,.role-tabs,.anomaly-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.data-lab-controls button,.role-tabs button,.anomaly-actions button{min-height:42px;padding:8px 13px;border:1px solid #b8ccdd;border-radius:8px;color:#174568;background:#fff;cursor:pointer;font:inherit;font-size:14px;font-weight:800}.data-lab-controls button:hover,.data-lab-controls button.is-active,.role-tabs button:hover,.role-tabs button[aria-selected="true"],.anomaly-actions button:hover{border-color:#0f8696;color:#fff;background:#0f766e}.data-table-wrap,.difference-table-wrap{overflow-x:auto}.lesson-table{width:100%;border-collapse:collapse;background:#fff}.lesson-table th,.lesson-table td{padding:11px 13px;border:1px solid #d5e1ec;text-align:left}.lesson-table thead th{color:#fff;background:#0d385a}.lesson-table tbody th{color:#0c3e69;background:#f4f8fb}.lesson-table tr.is-highlighted{background:#e6f8f1}.lesson-table tr.is-warning{background:#fff2de}.data-insight{margin-top:14px;padding:15px 17px;border-radius:10px;color:#fff;background:#0a2945}.data-insight span,.data-insight strong{display:block}.data-insight span{color:#f8d766;font-size:10px;font-weight:900;letter-spacing:.1em}.data-insight strong{margin:4px 0;font-size:18px}.data-insight p{margin:0;color:#c8dce9}
.database-stack{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:9px;align-items:center}.database-stack article{min-height:170px;padding:18px;border:1px solid #d2e0eb;border-radius:12px;background:#f5f9fc}.database-stack article.emphasis{border-color:#0f8a99;color:#fff;background:#0d5269}.database-stack article>span{color:#967000;font-size:10px;font-weight:900;letter-spacing:.08em}.database-stack .emphasis>span{color:#f8d766}.database-stack h3{margin:18px 0 6px;color:#103e67;font-size:18px}.database-stack .emphasis h3{color:#fff}.database-stack p{margin:0;color:#536a81;font-size:14px}.database-stack .emphasis p{color:#d1e8ed}.database-stack>b{color:#0f8496;font-size:20px}.difference-table-wrap{margin-top:20px}.comparison-table td{vertical-align:top}
.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.comparison-grid article{padding:22px;border-radius:14px}.comparison-grid .file-side{border:1px solid #e4c6b8;background:#fff7f3}.comparison-grid .dbms-side{border:1px solid #b5ddce;background:#f0fbf7}.comparison-grid span{font-size:10px;font-weight:900;letter-spacing:.09em}.file-side span{color:#a34b25}.dbms-side span{color:#087356}.comparison-grid h3{margin:12px 0}.comparison-grid ul{margin:0;padding-left:20px}.problem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.problem-grid article{padding:18px;border:1px solid #d5e1ec;border-radius:11px}.problem-grid b{color:#0b8195}.problem-grid h3{margin:9px 0 4px;color:#0c3b66}.problem-grid p{margin:0;color:#5a6f85;font-size:14px}
.file-copies{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.file-copies article{padding:18px;border:1px solid #cddce8;border-radius:11px;background:#fff}.file-copies span{color:#8a6500;font-size:10px;font-weight:900}.file-copies h3{margin:12px 0 5px;color:#103c63}.file-copies p{margin:0}.file-copies article.is-stale{border-color:#e29a82;background:#fff0ea}.file-copies article.is-current{border-color:#75c4aa;background:#eaf9f3}.anomaly-actions{margin-top:15px}.anomaly-result{padding:14px 16px;border-radius:9px;background:#eaf3fb}.anomaly-result.is-danger{color:#7d2f19;background:#ffede6}.anomaly-result.is-success{color:#075c43;background:#e5f8f0}.anomaly-result p{margin:3px 0 0}
.component-wheel{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.component-wheel article{padding:19px;border:1px solid #d4e0ec;border-radius:12px;background:#f7fafc}.component-wheel span{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;color:#f8d766;background:#08243d;font-size:11px;font-weight:900}.component-wheel h3{margin:15px 0 5px;color:#0c3d68}.component-wheel p{margin:0;color:#596e84;font-size:14px}
.role-explorer{display:grid;grid-template-columns:240px 1fr;gap:18px}.role-tabs{align-content:flex-start;flex-direction:column;margin:0}.role-tabs button{text-align:left}.role-detail{min-height:230px;padding:24px;border-radius:13px;color:#fff;background:linear-gradient(145deg,#092740,#0e5267)}.role-detail>span{color:#f8d766;font-size:11px;font-weight:900;letter-spacing:.09em}.role-detail h3{margin:14px 0 5px;font-size:25px}.role-detail p{margin:0;color:#cfe1eb}.role-detail ul{padding-left:20px;color:#e3edf4}.role-detail li{margin:6px 0}
.application-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.application-grid article{padding:19px;border:1px solid #d3e0eb;border-radius:12px;background:#f8fbfd}.application-grid span{font-size:26px}.application-grid h3{margin:10px 0 5px;color:#0d3d66}.application-grid p{margin:0;color:#586d82;font-size:14px}.decision-card{margin-top:18px;padding:20px;border-radius:12px;color:#fff;background:#0a2945}.decision-card h3{margin:0 0 6px;color:#f8d766}.decision-card p{margin:0;color:#d3e2ec}
.concept-check-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}.concept-check{padding:19px;border:1px solid #d2dfeb;border-radius:12px;background:#fff}.concept-check h3{margin:0 0 13px;color:#103a61;font-size:17px}.check-options{display:grid;gap:7px}.check-options button{padding:10px 12px;border:1px solid #cfdeea;border-radius:8px;color:#29455f;background:#f8fbfd;cursor:pointer;font:inherit;font-size:14px;text-align:left}.check-options button:hover{border-color:#5d97c3}.check-options button.is-correct{border-color:#62bb9b;color:#075c43;background:#e5f8f0}.check-options button.is-wrong{border-color:#e09b83;color:#80341e;background:#ffede6}.check-feedback{min-height:46px;margin:11px 0 0;color:#586b80;font-size:13px}.check-feedback strong{color:#0a684c}.check-score{margin-top:15px;padding:13px;border-radius:9px;color:#fff;background:#0b3859;font-weight:800;text-align:center}
.question-bank-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.question-bank-grid article{padding:20px;border:1px solid #d4e0eb;border-radius:12px;background:#f8fbfd}.question-bank-grid span{color:#8c6800;font-size:10px;font-weight:900;letter-spacing:.09em}.question-bank-grid ol{margin:13px 0 0;padding-left:21px}.question-bank-grid li{margin:8px 0;color:#3b536b}.answer-framework{margin-top:16px;border:1px solid #bdcfdf;border-radius:11px;background:#fff}.answer-framework summary{padding:15px 17px;color:#0d4f7c;cursor:pointer;font-weight:800}.answer-framework>div{padding:0 19px 17px}.answer-framework h3{color:#0b3e69}.answer-framework li{margin:7px 0}
.summary-section{display:grid;grid-template-columns:1.2fr .8fr;gap:25px;color:#fff;background:linear-gradient(135deg,#071a2d,#0d4660)}.summary-section h2{margin:6px 0 12px;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:36px}.summary-section ul{padding-left:20px;color:#d5e5ef}.summary-section li{margin:8px 0}.completion-panel{padding:22px;border:1px solid rgba(255,255,255,.2);border-radius:13px;background:rgba(0,0,0,.17)}.completion-panel>span{color:#f8d766;font-size:10px;font-weight:900;letter-spacing:.09em}.completion-panel p{color:#d6e4ec}.completion-panel button{width:100%;min-height:48px;padding:10px;border:0;border-radius:9px;color:#08243a;background:#f8d766;cursor:pointer;font:inherit;font-weight:900}.completion-panel button.is-complete{color:#fff;background:#07845f}.completion-panel small{display:block;margin-top:8px;color:#abc2d2;text-align:center}
@media(max-width:1180px){.database-stack{grid-template-columns:1fr}.database-stack>b{justify-self:center;transform:rotate(90deg)}.component-wheel{grid-template-columns:repeat(3,1fr)}.problem-grid{grid-template-columns:repeat(2,1fr)}.application-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){  .lesson-jump-bar{top:112px}.lesson-hero{grid-template-columns:1fr}.concept-definition-grid,.comparison-grid,.role-explorer,.summary-section{grid-template-columns:1fr}.file-copies{grid-template-columns:1fr}.component-wheel{grid-template-columns:repeat(2,1fr)}.question-bank-grid{grid-template-columns:1fr}.lesson-main{padding-top:18px}}
@media(max-width:680px){ .lesson-jump-bar{position:static;justify-content:flex-start;overflow-x:auto;white-space:nowrap}.lesson-hero{padding:25px 19px}.lesson-hero h1{font-size:37px}.problem-grid,.component-wheel,.application-grid,.concept-check-list{grid-template-columns:1fr}.lesson-section{padding:21px 17px}.flow-strip{justify-content:flex-start}.flow-strip b{transform:rotate(90deg)}.flow-strip{flex-direction:column}.data-lab-controls button,.role-tabs button,.anomaly-actions button{width:100%}}

/* Level 10 — Database Definition */
.ddl-hero{background:radial-gradient(circle at 84% 12%,rgba(239,190,65,.22),transparent 28%),linear-gradient(135deg,#061827,#12344f 62%,#155b61)}
.ddl-lifecycle{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:10px;align-items:center}.ddl-lifecycle article{min-height:180px;padding:19px;border:1px solid #cfdfe7;border-radius:10px;background:#f8fbfd}.ddl-lifecycle span,.constraint-gallery span,.constraint-levels span,.referential-grid span,.alter-patterns span{color:#896500;font-size:11px;font-weight:900;letter-spacing:.09em}.ddl-lifecycle h3{margin:13px 0 6px;color:#0c405f}.ddl-lifecycle p{margin:0;color:#566d7c}.ddl-lifecycle>b{color:#0d7881}
.create-anatomy{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.create-anatomy pre{margin:0;padding:20px;border-radius:11px;color:#d9edf0;background:#08283f;overflow-x:auto}.create-anatomy pre span{color:#f8d766}.create-parts{display:grid;gap:9px}.create-parts article{padding:14px;border:1px solid #d0dfe8;border-radius:8px;background:#f8fbfd}.create-parts b{color:#0c5364}.create-parts p{margin:4px 0 0;color:#566d7c}.naming-rules{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:14px;padding:15px;border-left:5px solid #0f8a91;background:#edf9fa}.naming-rules span{color:#08717a;font-size:11px;font-weight:900}.naming-rules code{padding:6px;border-radius:5px;color:#d8ebef;background:#08283f}.naming-rules p{width:100%;margin:0;color:#526a76}
.constraint-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.constraint-gallery article{padding:18px;border:1px solid #d0dfe8;border-radius:10px;background:#f8fbfd}.constraint-gallery h3{margin:12px 0 7px;color:#0c405f}.constraint-gallery code{display:block;padding:8px;border-radius:6px;color:#d8ecef;background:#08283f;white-space:normal}.constraint-gallery p{margin:9px 0 0;color:#566d7c}.constraint-levels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.constraint-levels article{padding:17px;border-left:5px solid #0f8b91;border-radius:8px;background:#edf9fa}.constraint-levels code{display:block;margin:8px 0;color:#0c5364}.constraint-levels p{margin:0;color:#566d7c}
.fk-diagram{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;padding:20px;border-radius:11px;color:#fff;background:#08283f}.fk-diagram>div{display:grid;gap:7px;padding:14px;border:1px solid #3d6578;border-radius:8px;background:#0d3a52}.fk-diagram span{color:#f8d766;font-size:11px;font-weight:900}.fk-diagram code{color:#a8e9e8}.fk-diagram>b{color:#f8d766}.referential-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.referential-grid article{padding:16px;border:1px solid #d0dfe8;border-radius:9px;background:#f8fbfd}.referential-grid p{margin:8px 0 0;color:#566d7c}.cascade-warning{margin-top:14px;padding:17px;border-left:5px solid #c45a32;border-radius:8px;background:#fff1ea}.cascade-warning strong{color:#83361d}.cascade-warning p{margin:5px 0 0;color:#685046}
.alter-patterns{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.alter-patterns article{padding:16px;border:1px solid #d0dfe8;border-radius:9px;background:#f8fbfd}.alter-patterns code{display:block;margin:9px 0;padding:8px;border-radius:6px;color:#d8ecef;background:#08283f;white-space:normal}.alter-patterns p{margin:0;color:#566d7c;font-size:14px}.expand-contract{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:10px;align-items:center;margin-top:14px;padding:17px;border-radius:10px;color:#fff;background:#08283f}.expand-contract>span{color:#f8d766;font-size:11px;font-weight:900}.expand-contract>div{padding:11px;border:1px solid #3d6578;border-radius:7px}.expand-contract b{color:#9be8e4}.expand-contract p{margin:4px 0 0;color:#d4e5e9;font-size:13px}
.destructive-table{overflow-x:auto;border:1px solid #c8dbe3;border-radius:10px}.destructive-table table{width:100%;border-collapse:collapse}.destructive-table th,.destructive-table td{padding:11px 13px;border:1px solid #d5e2e7;text-align:left}.destructive-table thead th{color:#fff;background:#0b4c60}.destructive-table tbody th{color:#8a381f;background:#fff1ea}.destructive-checklist{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding:16px;border-radius:9px;background:#08283f}.destructive-checklist strong{width:100%;color:#f8d766}.destructive-checklist span{padding:7px 9px;border:1px solid #3d6578;border-radius:6px;color:#d9e9ed;background:#0d3a52}
.builder-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:13px}.builder-presets button,.column-builder-head button{min-height:40px;padding:8px 11px;border:1px solid #b6cdd8;border-radius:7px;color:#17495e;background:#fff;cursor:pointer;font:inherit;font-weight:800}.builder-presets button:hover,.column-builder-head button:hover{color:#fff;background:#0f747b}.schema-builder{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.schema-builder form{padding:18px;border:1px solid #c5d9e1;border-radius:11px;background:#fff}.table-name-label{display:grid;gap:5px;color:#16445b;font-weight:900}.table-name-label input,.column-row input,.column-row select{min-height:40px;box-sizing:border-box;padding:7px 9px;border:1px solid #b8ced8;border-radius:7px;font:inherit}.column-builder-head{display:flex;align-items:center;justify-content:space-between;margin:15px 0 9px;color:#0c405f;font-weight:900}.column-rows{display:grid;gap:8px}.column-row{display:grid;grid-template-columns:1fr 1fr auto auto auto 1fr 1.2fr 1.2fr auto;gap:6px;align-items:end;padding:10px;border:1px solid #d1e0e7;border-radius:8px;background:#f8fbfd}.column-row label{display:grid;gap:3px;color:#526a77;font-size:11px;font-weight:800}.column-row label.flag{display:flex;align-items:center;align-self:center;gap:4px;padding-top:15px;white-space:nowrap}.column-row [data-remove-column]{width:34px;height:40px;border:0;border-radius:7px;color:#8a2f1b;background:#ffe4d9;cursor:pointer;font-size:20px}.schema-builder form>button[type="submit"]{width:100%;min-height:46px;margin-top:13px;border:0;border-radius:8px;color:#fff;background:#0f747b;cursor:pointer;font:inherit;font-weight:900}.ddl-preview{display:grid;align-content:start;gap:10px}.builder-warnings{padding:12px;border:1px solid #d3e0e6;border-radius:8px;background:#f8fbfd}.builder-warnings p{margin:5px 0;color:#526a77}.builder-warnings p.error{color:#922f19}.builder-warnings p.success{color:#08705d}.ddl-preview pre{min-height:280px;margin:0;padding:18px;border-radius:10px;color:#d9edf0;background:#08283f;white-space:pre-wrap;overflow-wrap:anywhere}.ddl-explanation{display:flex;flex-wrap:wrap;gap:7px;padding:12px;border-radius:8px;background:#edf9fa}.ddl-explanation strong{width:100%;color:#0c5364}.ddl-explanation span{padding:6px;border-radius:5px;color:#08717a;background:#d9f0f2;font-size:12px;font-weight:800}
.migration-lab{display:grid;grid-template-columns:270px 1fr;gap:14px}.migration-cases{display:grid;align-content:start;gap:7px}.migration-cases button{min-height:44px;padding:9px 11px;border:1px solid #b6cdd8;border-radius:7px;color:#17495e;background:#fff;cursor:pointer;font:inherit;font-weight:800;text-align:left}.migration-cases button:hover,.migration-cases button[aria-selected="true"]{color:#fff;background:#0f747b}.migration-result{min-height:390px;padding:21px;border-radius:11px;color:#fff;background:#0b5d57}.migration-result.warning{background:#785b12}.migration-result.danger{background:#79351f}.migration-result>span{color:#f8d766;font-size:11px;font-weight:900}.migration-result h3{margin:10px 0;color:#fff}.migration-result pre{padding:12px;border:1px solid rgba(255,255,255,.17);border-radius:7px;background:rgba(0,0,0,.18);white-space:pre-wrap}.migration-result p,.migration-result li{color:#e0ecec}.migration-result li{margin:7px 0}
@media(max-width:1300px){.column-row{grid-template-columns:1fr 1fr auto auto auto}.column-row label:nth-of-type(n+6){grid-column:span 2}.column-row [data-remove-column]{grid-column:-2}.alter-patterns{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.ddl-lifecycle{grid-template-columns:1fr 1fr}.ddl-lifecycle>b{display:none}.referential-grid{grid-template-columns:1fr 1fr}.schema-builder,.migration-lab{grid-template-columns:1fr}.column-row{grid-template-columns:1fr 1fr auto auto auto 1fr}.column-row label:nth-of-type(n+6){grid-column:span 2}}
@media(max-width:900px){.create-anatomy{grid-template-columns:1fr}.constraint-gallery{grid-template-columns:1fr 1fr}.alter-patterns{grid-template-columns:1fr 1fr}.expand-contract{grid-template-columns:1fr}.fk-diagram{grid-template-columns:1fr}.fk-diagram>b{text-align:center}.column-row{grid-template-columns:1fr 1fr}.column-row label,.column-row label:nth-of-type(n+6),.column-row [data-remove-column]{grid-column:auto}.column-row label.flag{padding-top:0}}
@media(max-width:680px){.ddl-lifecycle,.constraint-gallery,.constraint-levels,.referential-grid,.alter-patterns{grid-template-columns:1fr}.builder-presets button{width:100%}.column-row{grid-template-columns:1fr}.ddl-preview pre{min-height:220px}}

/* Level 9 — SQL Foundations */
.sql-foundations-hero{background:radial-gradient(circle at 84% 12%,rgba(70,161,231,.25),transparent 28%),linear-gradient(135deg,#061827,#0c3457 62%,#125a70)}
.declarative-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}.declarative-compare article{min-height:205px;padding:21px;border:1px solid #cbdce5;border-radius:12px;background:#f8fbfd}.declarative-compare article>span,.sql-family-grid span,.language-grid span,.datatype-grid span{color:#896500;font-size:11px;font-weight:900;letter-spacing:.09em}.declarative-compare h3{margin:14px 0 7px;color:#0c405f}.declarative-compare p{color:#566d7c}.declarative-compare>b{color:#0c7186}.declarative-compare pre{margin:13px 0 0;padding:14px;border-radius:8px;color:#d8ecf5;background:#08283f;white-space:pre-wrap}.declarative-compare i{color:#76d7e5;font-style:normal;font-weight:900}.sql-pipeline{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:16px;padding:18px;border-radius:11px;background:#08283f}.sql-pipeline span{padding:10px;border:1px solid #3c6478;border-radius:7px;color:#f8d766;background:#0d3a52;font-weight:900;text-align:center}.sql-pipeline small{display:block;margin-top:4px;color:#d2e4ea;font-size:11px;font-weight:500}.sql-pipeline b{color:#8ddde9}
.sql-family-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:11px}.sql-family-grid article{padding:18px;border:1px solid #d0dfe8;border-radius:10px;background:#f8fbfd}.sql-family-grid h3{margin:12px 0 8px;color:#0c405f;font-size:17px}.sql-family-grid code{display:block;color:#087288;font-size:12px;white-space:normal}.sql-family-grid p{margin:9px 0 0;color:#566d7c;font-size:14px}.classification-note{padding:14px;border-left:5px solid #d4af37;background:#fff8df;color:#5c5339}
.query-anatomy{display:grid;grid-template-columns:1fr 1fr;gap:15px}.query-anatomy pre{margin:0;padding:20px;border-radius:11px;background:#08283f}.query-anatomy code{display:grid;gap:7px;color:#d7eaf2;white-space:normal}.query-anatomy code span{padding:8px;border-left:4px solid #1aa3b5;background:#0d3a52}.clause-notes{display:grid;gap:7px}.clause-notes p{margin:0;padding:9px;border:1px solid #d0dfe8;border-radius:7px;color:#536b7a;background:#f8fbfd}.clause-notes b{color:#087187}.where-having{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.where-having article{display:grid;gap:7px;padding:18px;border:1px solid #bfd9df;border-radius:10px;background:#eff9fb}.where-having span{color:#087187;font-size:11px;font-weight:900}.where-having strong{color:#0c405f}.where-having code{color:#415f6f}
.order-comparison{display:grid;grid-template-columns:1fr 1fr;gap:15px}.order-comparison>div{padding:20px;border:1px solid #cbdce5;border-radius:11px;background:#f8fbfd}.order-comparison>div+div{border-color:#94d0da;background:#eefbfc}.order-comparison span{color:#896500;font-size:11px;font-weight:900}.order-comparison ol{margin:13px 0 0;padding-left:28px;columns:2}.order-comparison li{margin:7px 0;color:#405f70;font-weight:800}.alias-explanation{margin-top:15px;padding:19px;border-left:5px solid #0f8aa0;border-radius:9px;background:#eef9fb}.alias-explanation h3{margin:0 0 9px;color:#075f72}.alias-explanation pre{padding:12px;border-radius:7px;color:#d9edf3;background:#08283f;white-space:pre-wrap}.alias-explanation mark{color:#ffb89f;background:transparent}.alias-explanation p{margin:9px 0 0;color:#4f6876}
.language-grid,.datatype-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.language-grid article,.datatype-grid article{padding:18px;border:1px solid #d0dfe8;border-radius:10px;background:#f8fbfd}.language-grid code{display:block;margin:12px 0 7px;color:#087288;font-size:17px;font-weight:900}.language-grid p,.datatype-grid p{margin:0;color:#566d7c}.quoting-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px;padding:17px;border-radius:10px;color:#fff;background:#08283f}.quoting-guide b,.quoting-guide span{display:block}.quoting-guide b{color:#9ce5ee}.quoting-guide span{margin-top:5px;color:#d3e4ea;font-size:13px}.datatype-grid h3{margin:12px 0 7px;color:#0c405f;font-size:17px}.type-decisions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.type-decisions article{padding:15px;border-left:4px solid #0f8ba0;border-radius:8px;background:#eef9fb}.type-decisions strong,.type-decisions span{display:block}.type-decisions strong{color:#0c405f}.type-decisions span{margin:5px 0;color:#087187;font-size:12px;font-weight:900}.type-decisions p{margin:0;color:#566d7c;font-size:14px}
.null-basics{display:grid;grid-template-columns:1fr 1fr;gap:13px}.null-basics article{padding:19px;border:1px solid #e4b9aa;border-radius:10px;background:#fff3ee}.null-basics article.right{border-color:#9bd2c1;background:#effaf6}.null-basics span{color:#a13f23;font-size:11px;font-weight:900}.null-basics .right span{color:#08705d}.null-basics code{display:block;margin:10px 0;color:#0c405f;font-size:18px}.null-basics p{margin:0;color:#566d7c}.truth-tables{display:grid;grid-template-columns:.7fr 1.3fr;gap:13px;margin-top:14px}.truth-tables table{width:100%;border-collapse:collapse}.truth-tables th,.truth-tables td{padding:9px 11px;border:1px solid #d2e0e7;text-align:center}.truth-tables th{color:#fff;background:#0b4c67}.where-gate{display:grid;grid-template-columns:auto auto 1fr;gap:12px;align-items:center;margin-top:14px;padding:17px;border-radius:10px;color:#fff;background:#08283f}.where-gate>span{color:#d8e9ef}.where-gate>strong{padding:9px;border-radius:7px;color:#075543;background:#b9efdb}.where-gate>div{display:flex;gap:7px}.where-gate b{padding:8px;border-radius:6px;color:#8a2f1c;background:#ffd9ca}.where-gate p{grid-column:1/-1;margin:0;color:#cbdfe6}
.query-trace-controls{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}.query-trace-controls label{color:#16445b;font-weight:900}.query-trace-controls select{min-height:46px;padding:9px 11px;border:1px solid #b8ced9;border-radius:8px;font:inherit}.trace-query{margin:14px 0;padding:17px;border-radius:10px;color:#d9edf3;background:#08283f;white-space:pre-wrap}.trace-stage-buttons{display:flex;flex-wrap:wrap;gap:7px}.trace-stage-buttons button,.trace-navigation button,.null-expression-list button{min-height:42px;padding:8px 11px;border:1px solid #b6cdd8;border-radius:8px;color:#17495e;background:#fff;cursor:pointer;font:inherit;font-weight:800}.trace-stage-buttons button[aria-selected="true"],.trace-stage-buttons button:hover,.null-expression-list button[aria-selected="true"],.null-expression-list button:hover{border-color:#0d8098;color:#fff;background:#0f7187}.trace-stage{position:relative;min-height:330px;margin-top:12px;padding:20px;border:1px solid #bfd6df;border-radius:11px;background:#fff}.trace-stage header>span{color:#896500;font-size:11px;font-weight:900}.trace-stage h3{margin:8px 0 5px;color:#0c405f}.trace-stage header p{margin:0;color:#566d7c}.trace-table-wrap{overflow-x:auto;margin-top:14px}.trace-table-wrap table{width:100%;border-collapse:collapse}.trace-table-wrap th,.trace-table-wrap td{padding:9px 11px;border:1px solid #d3e1e7;text-align:left}.trace-table-wrap th{color:#fff;background:#0b4c67}.trace-table-wrap td.is-null{color:#9a3f25;background:#fff1eb;font-weight:900}.row-count{display:flex;align-items:center;gap:7px;margin-top:11px;color:#526a77}.row-count strong{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;color:#fff;background:#0f7187}.trace-navigation{display:flex;justify-content:space-between;gap:10px;margin-top:11px}.trace-navigation button{color:#fff;background:#0f7187}.trace-navigation button:disabled{cursor:not-allowed;color:#7b8b94;background:#e2e9ec}
.null-predictor{display:grid;grid-template-columns:260px 1fr;gap:14px}.null-expression-list{display:grid;align-content:start;gap:7px}.null-predictor-result{min-height:390px;padding:20px;border:1px solid #bfd6df;border-radius:11px;background:#fff}.null-predictor-result header>span{color:#087187;font-family:Consolas,monospace;font-weight:900}.null-predictor-result h3{margin:9px 0 5px;color:#0c405f}.null-predictor-result header p{color:#566d7c}.null-result-table{overflow-x:auto}.null-result-table table{width:100%;border-collapse:collapse}.null-result-table th,.null-result-table td{padding:8px 9px;border:1px solid #d3e1e7;text-align:left;font-size:13px}.null-result-table th{color:#fff;background:#0b4c67}.null-result-table td b{color:#9a3f25}.null-result-table tr.truth-true td{background:#eaf8f2}.null-result-table tr.truth-unknown td{background:#fff7e2}.null-result-table tr.truth-false td{background:#fff0ea}
.dialect-table{overflow-x:auto;border:1px solid #c8dbe3;border-radius:10px}.dialect-table table{width:100%;border-collapse:collapse}.dialect-table th,.dialect-table td{padding:11px 13px;border:1px solid #d5e2e7;text-align:left}.dialect-table thead th{color:#fff;background:#0b4c67}.dialect-table tbody th{color:#0b5c6a;background:#edf8fa}.portable-principles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.portable-principles article{padding:17px;border:1px solid #d0dfe8;border-radius:9px;background:#f8fbfd}.portable-principles b{color:#0c405f}.portable-principles p{margin:6px 0 0;color:#566d7c}
@media(max-width:1180px){.sql-family-grid{grid-template-columns:repeat(3,1fr)}.null-predictor{grid-template-columns:1fr}.null-expression-list{grid-template-columns:repeat(3,1fr)}.type-decisions,.portable-principles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.declarative-compare,.query-anatomy{grid-template-columns:1fr}.declarative-compare>b{justify-self:center}.sql-pipeline{flex-wrap:wrap}.language-grid,.datatype-grid{grid-template-columns:1fr 1fr}.truth-tables{grid-template-columns:1fr}.order-comparison{grid-template-columns:1fr}}
@media(max-width:680px){.sql-family-grid,.language-grid,.datatype-grid,.type-decisions,.portable-principles,.null-basics,.null-expression-list{grid-template-columns:1fr}.where-having{grid-template-columns:1fr}.quoting-guide{grid-template-columns:1fr}.where-gate{grid-template-columns:1fr}.where-gate p{grid-column:auto}.query-trace-controls{grid-template-columns:1fr}.trace-navigation{flex-direction:column}.trace-stage{padding:14px}.order-comparison ol{columns:1}}

/* Level 2 — Architecture and data models */
.architecture-hero{background:radial-gradient(circle at 83% 12%,rgba(84,188,220,.27),transparent 27%),linear-gradient(135deg,#071a2d,#15395c 67%,#155c70)}
.abstraction-story{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:12px;align-items:center}.abstraction-story article{min-height:170px;padding:20px;border:1px solid #d3e1ec;border-radius:12px;background:#f6fafe}.abstraction-story article>span,.model-categories article>span{color:#926b00;font-size:10px;font-weight:900;letter-spacing:.09em}.abstraction-story h3{margin:22px 0 6px;color:#0d3b65}.abstraction-story p{margin:0;color:#5a6e83}.abstraction-story>b{color:#0f8396;font-size:22px}.term-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.term-pair article{padding:20px;border:1px solid #cbdce9;border-radius:12px;background:#fff}.term-pair h3{margin:0 0 5px;color:#0c3e6b}.term-pair p{margin:0 0 12px;color:#586e84}.term-pair code{display:block;padding:11px;border-radius:8px;color:#d8edf4;background:#08243d;white-space:pre-wrap}
.schema-explorer{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:18px}.schema-levels{display:grid;gap:7px}.schema-levels button{display:grid;grid-template-columns:42px 1fr;gap:2px 10px;align-items:center;padding:14px;border:1px solid #bfd1e0;border-radius:11px;color:#174568;background:#fff;cursor:pointer;text-align:left}.schema-levels button span{grid-row:1/3;display:grid;width:40px;height:40px;place-items:center;border-radius:9px;color:#f8d766;background:#08243d;font-size:11px;font-weight:900}.schema-levels button b{font-size:16px}.schema-levels button small{color:#687b90}.schema-levels button:hover,.schema-levels button[aria-selected="true"]{border-color:#0b8798;background:#e8f8fa}.mapping-arrow{color:#6c7d8f;font-size:11px;font-weight:800;text-align:center}.schema-level-detail{min-height:340px;padding:26px;border-radius:14px;color:#fff;background:linear-gradient(145deg,#09243d,#0d5268)}.schema-level-detail>span{color:#f8d766;font-size:10px;font-weight:900;letter-spacing:.1em}.schema-level-detail h3{margin:13px 0 5px;font-size:27px}.schema-level-detail>p{margin:0;color:#cfe2ec}.schema-detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.schema-detail-columns div{padding:14px;border:1px solid rgba(255,255,255,.16);border-radius:9px;background:rgba(0,0,0,.13)}.schema-detail-columns b{display:block;color:#8ce1e5}.schema-detail-columns p{margin:4px 0 0;color:#d5e5ed;font-size:14px}.view-example{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:10px;align-items:center;margin-top:18px;padding:15px;border:1px solid #cbdce8;border-radius:11px;background:#fff}.view-example h3{margin:0;color:#0c3d68;font-size:16px}.view-example div{padding:11px;border-radius:8px;background:#f0f6fa}.view-example span,.view-example code{display:block}.view-example span{color:#8b6800;font-size:9px;font-weight:900}.view-example code{margin-top:4px;color:#31516c;font-size:11px;white-space:normal}
.independence-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.independence-grid article{padding:22px;border:1px solid #cddde9;border-radius:13px;background:#f8fbfd}.independence-grid article>span{color:#8b6700;font-size:10px;font-weight:900;letter-spacing:.08em}.independence-grid h3{margin:15px 0 6px;color:#0c3e69}.independence-grid p{color:#586e83}.independence-grid strong{display:inline-block;padding:5px 9px;border-radius:999px;color:#087154;background:#e7f8f1;font-size:12px}.change-simulator{margin-top:18px;padding:18px;border:1px solid #bfd5e4;border-radius:13px;background:#fff}.change-buttons{display:flex;flex-wrap:wrap;gap:8px}.change-buttons button,.tier-tabs button{min-height:42px;padding:8px 13px;border:1px solid #b9cddd;border-radius:8px;color:#174568;background:#fff;cursor:pointer;font:inherit;font-size:14px;font-weight:800}.change-buttons button:hover,.change-buttons button.is-active,.tier-tabs button:hover,.tier-tabs button[aria-selected="true"]{border-color:#0f7f90;color:#fff;background:#0f766e}.change-path{display:flex;align-items:center;justify-content:center;gap:8px;margin:17px 0;padding:15px;border-radius:10px;background:#09253e}.impact-node{padding:8px 10px;border:1px solid #3b607a;border-radius:7px;color:#d8e9f4;background:#0e3858;font-weight:800}.impact-node.is-changing{border-color:#f8d766;color:#102b43;background:#f8d766}.change-path b{color:#82cfd9;font-size:11px}.change-result{padding:15px;border-radius:9px;background:#edf4fa}.change-result>span{color:#8b6800;font-size:10px;font-weight:900;letter-spacing:.08em}.change-result h3{margin:6px 0;color:#0d3d67}.change-result p{margin:0;color:#576d82}
.model-categories{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.model-categories article{padding:20px;border:1px solid #d1dfea;border-radius:12px;background:#f8fbfd}.model-categories h3{margin:15px 0 5px;color:#0d3e68}.model-categories p{margin:0 0 12px;color:#586e83}.model-categories b{color:#0b6e78;font-size:13px}.model-table-wrap{margin-top:18px;overflow-x:auto}.model-table th,.model-table td{vertical-align:top;min-width:130px}
.model-selector{display:grid;grid-template-columns:minmax(220px,.45fr) minmax(0,1.55fr);gap:14px}.model-selector label{align-self:center;color:#173f62;font-weight:900}.model-selector select{width:100%;min-height:48px;padding:10px 12px;border:1px solid #b8cddd;border-radius:9px;color:#173f62;background:#fff;font:inherit}.model-recommendation{grid-column:1/-1;min-height:210px;padding:22px;border-radius:13px;color:#fff;background:linear-gradient(145deg,#09253f,#0e5468)}.model-recommendation>span{color:#f8d766;font-size:10px;font-weight:900;letter-spacing:.09em}.model-recommendation h3{margin:12px 0 5px;font-size:24px}.model-recommendation p{margin:0;color:#cfe2ec}.model-reasoning{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}.model-reasoning div{padding:12px;border:1px solid rgba(255,255,255,.16);border-radius:8px;background:rgba(0,0,0,.12)}.model-reasoning b{display:block;color:#8ce0e5}.model-reasoning small{color:#d5e6ed;font-size:13px}.decision-rule{margin-top:15px;padding:15px 17px;border-left:5px solid #0f8395;border-radius:8px;background:#e9f8fa}.decision-rule strong{color:#07566b}.decision-rule p{margin:3px 0 0;color:#405e75}
.tier-tabs{display:flex;gap:8px;margin-bottom:16px}.tier-display{min-height:290px;padding:23px;border:1px solid #cadbe8;border-radius:13px;background:#f6fafe}.tier-display>span{color:#8b6800;font-size:10px;font-weight:900;letter-spacing:.09em}.tier-display h3{margin:9px 0 5px;color:#0c3d68;font-size:24px}.tier-display>p{margin:0;color:#587087}.tier-flow{display:flex;align-items:stretch;justify-content:center;gap:10px;margin-top:22px}.tier-node{display:flex;min-width:170px;flex-direction:column;justify-content:center;padding:17px;border:1px solid #bed2e1;border-radius:10px;background:#fff;text-align:center}.tier-node b{color:#0d3e69}.tier-node small{margin-top:5px;color:#667c90}.tier-arrow{align-self:center;color:#0c8194;font-weight:900}.tier-benefits{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.tier-benefits span{padding:6px 9px;border-radius:999px;color:#075941;background:#e4f7ef;font-size:12px;font-weight:800}.tier-warning{margin-top:14px;padding:14px;border-left:5px solid #d4af37;border-radius:8px;background:#fff8df;color:#554619}
@media(max-width:1180px){.view-example{grid-template-columns:1fr 1fr}.abstraction-story{grid-template-columns:1fr}.abstraction-story>b{justify-self:center;transform:rotate(90deg)}.schema-detail-columns{grid-template-columns:1fr}}
@media(max-width:900px){.schema-explorer,.model-selector{grid-template-columns:1fr}.independence-grid,.model-categories{grid-template-columns:1fr}.model-recommendation{grid-column:auto}.tier-flow{align-items:center;flex-direction:column}.tier-arrow{transform:rotate(90deg)}}
@media(max-width:680px){.term-pair,.view-example,.model-reasoning{grid-template-columns:1fr}.change-buttons button,.tier-tabs button{width:100%}.tier-tabs,.change-path{align-items:stretch;flex-direction:column}.change-path b{align-self:center;transform:rotate(90deg)}.impact-node{text-align:center}}

/* Level 3 — ER modelling */
.er-hero{background:radial-gradient(circle at 82% 12%,rgba(57,190,181,.27),transparent 28%),linear-gradient(135deg,#071a2d,#123d57 68%,#12665f)}
.requirement-case{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.requirement-case>div{padding:23px;border-left:5px solid #d4af37;border-radius:11px;background:#fff8df}.requirement-case>div>span{color:#805f00;font-size:12px;font-weight:900;letter-spacing:.09em}.requirement-case>div p{margin:12px 0 0;color:#4c4d4f;font-size:17px}.requirement-case mark{padding:1px 4px;border-radius:4px;color:#075b56;background:#cceee7}.requirement-case ol{margin:0;padding:20px 22px 20px 42px;border:1px solid #d2dfeb;border-radius:11px;background:#f8fbfd}.requirement-case li{margin:8px 0;color:#415970}.modelling-process{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.modelling-process article{display:grid;grid-template-columns:40px 1fr;gap:2px 10px;padding:17px;border:1px solid #d3e0eb;border-radius:11px}.modelling-process b{grid-row:1/3;display:grid;width:38px;height:38px;place-items:center;border-radius:50%;color:#f8d766;background:#08243d}.modelling-process span{color:#0c3e68;font-weight:900}.modelling-process p{margin:3px 0 0;color:#5a6e82;font-size:14px}
.definition-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.definition-row article{padding:20px;border:1px solid #d1dfeb;border-radius:12px;background:#f8fbfd}.definition-row span{color:#8a6600;font-size:12px;font-weight:900;letter-spacing:.09em}.definition-row h3{margin:16px 0 6px;color:#0d3d67}.definition-row p{margin:0;color:#586e83}.attribute-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.attribute-gallery article{padding:20px;border:1px solid #d2dfeb;border-radius:12px;text-align:center}.attribute-symbol{display:grid;min-height:68px;place-items:center;margin:auto;border:2px solid #0d7b88;color:#0a5362;background:#eafaFA;font-weight:900}.attribute-symbol.simple,.attribute-symbol.key,.attribute-symbol.stored{width:130px;border-radius:50%}.attribute-symbol.composite{width:170px;padding:9px;border-radius:50%}.attribute-symbol.composite span,.attribute-symbol.composite small{display:block}.attribute-symbol.composite small{font-weight:600}.attribute-symbol.multi{width:130px;border:5px double #0d7b88;border-radius:50%}.attribute-symbol.derived{width:130px;border-style:dashed;border-radius:50%}.attribute-symbol.key{text-decoration:underline}.attribute-gallery h3{margin:15px 0 4px;color:#0d3d67}.attribute-gallery p{margin:0;color:#5a6e82;font-size:14px}
.relationship-sentence{display:flex;align-items:center;justify-content:center;gap:30px;min-height:150px;padding:22px;border-radius:13px;background:#09253e}.entity-box{min-width:180px;padding:19px;border:3px solid #63c7ce;border-radius:5px;color:#fff;background:#0d3857;font-weight:900;text-align:center}.relationship-diamond{display:grid;width:130px;height:90px;place-items:center;color:#08243d;background:#f8d766;font-weight:900;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.relationship-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:18px}.relationship-grid article{padding:20px;border:1px solid #d1dfeb;border-radius:11px;background:#f8fbfd}.relationship-grid span,.relationship-attribute>span{color:#8a6600;font-size:12px;font-weight:900;letter-spacing:.08em}.relationship-grid h3{margin:15px 0 5px;color:#0d3c66}.relationship-grid p{margin:0;color:#586e82}.relationship-attribute{margin-top:15px;padding:20px;border-left:5px solid #0f8394;border-radius:10px;background:#eaf8fa}.relationship-attribute h3{margin:9px 0 4px;color:#095467}.relationship-attribute p{margin:0;color:#405f74}
.constraint-compare{display:grid;grid-template-columns:1fr 1fr;gap:16px}.constraint-compare>article{padding:22px;border:1px solid #d1dfeb;border-radius:12px;background:#f8fbfd}.constraint-compare>article>span{color:#8a6600;font-size:12px;font-weight:900;letter-spacing:.08em}.constraint-compare h3{margin:13px 0;color:#0c3d68}.cardinality-list,.participation-list{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;align-items:center}.cardinality-list b,.participation-list b{padding:7px 10px;border-radius:7px;color:#fff;background:#0f766e;text-align:center}.cardinality-list p,.participation-list p{margin:0;color:#516980}.minmax-examples{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:17px}.minmax-examples article{padding:17px;border:1px solid #cddde9;border-radius:10px}.minmax-examples code{display:inline-block;padding:5px 8px;border-radius:6px;color:#f8d766;background:#08243d;font-weight:900}.minmax-examples p{margin:10px 0 0;color:#526a80;font-size:14px}
.er-builder{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:18px}.builder-controls{display:grid;gap:13px;padding:20px;border:1px solid #c7dbe8;border-radius:12px;background:#fff}.builder-controls label{display:grid;gap:6px;color:#173f62;font-size:14px;font-weight:900}.builder-controls input,.builder-controls select{width:100%;min-height:44px;padding:9px 11px;border:1px solid #b8cddd;border-radius:8px;color:#183f60;background:#fff;font:inherit}.builder-controls input:focus,.builder-controls select:focus{border-color:#0f8394;outline:3px solid rgba(15,131,148,.14)}.builder-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.er-canvas-wrap{display:grid;grid-template-rows:minmax(300px,1fr) auto;gap:12px}.er-canvas{display:grid;grid-template-columns:minmax(130px,1fr) minmax(210px,1.2fr) minmax(130px,1fr);align-items:center;min-height:310px;padding:24px;border:1px dashed #8bb4c8;border-radius:13px;background-image:linear-gradient(rgba(12,81,103,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(12,81,103,.05) 1px,transparent 1px);background-size:24px 24px;background-color:#f7fcfd}.er-node{display:grid;min-height:115px;place-items:center;padding:16px;border:3px solid #0c7280;border-radius:5px;color:#0b3e65;background:#fff;box-shadow:0 8px 20px rgba(20,66,86,.09);text-align:center}.er-node>span{color:#7f6200;font-size:12px;font-weight:900}.er-node strong{font-size:18px;overflow-wrap:anywhere}.er-node small{color:#526b80;font-weight:800}.er-connector{display:grid;grid-template-columns:1fr 110px 1fr;align-items:center}.er-line{height:4px;background:#0c7280}.er-line.is-total{height:8px;border-top:3px solid #0c7280;border-bottom:3px solid #0c7280;background:transparent}.er-diamond{display:grid;width:110px;height:82px;place-items:center;padding:14px;color:#092840;background:#f6cf58;font-size:13px;font-weight:900;overflow-wrap:anywhere;text-align:center;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.er-rule-output{padding:17px;border-radius:10px;color:#fff;background:#0a2945}.er-rule-output>span{color:#f8d766;font-size:12px;font-weight:900;letter-spacing:.08em}.er-rule-output h3{margin:7px 0 4px}.er-rule-output p{margin:0;color:#d2e3ed}.builder-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;color:#526b80;font-size:13px}.builder-legend span{display:flex;align-items:center;gap:7px}.builder-legend i{display:inline-block;width:25px;height:18px;border:2px solid #0c7280}.builder-legend .legend-relationship{background:#f6cf58;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.builder-legend .legend-total{height:8px;border-right:0;border-left:0;border-top-width:3px;border-bottom-width:3px}
.weak-diagram{display:grid;grid-template-columns:1fr 180px 1fr;gap:18px;align-items:center;min-height:220px;padding:24px;border-radius:13px;background:#09253e}.weak-diagram article{padding:20px;color:#fff;background:#0d3b5b;text-align:center}.owner-entity{border:3px solid #6ac8d0}.weak-entity{border:7px double #f6cf58}.weak-diagram article span{color:#9ddde1;font-size:12px;font-weight:900}.weak-diagram h3{margin:13px 0 5px}.weak-diagram p{margin:0;color:#d2e2eb}.identifying-relation{display:grid;min-height:110px;place-items:center;padding:16px;color:#09253e;background:#f6cf58;font-weight:900;text-align:center;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.identifying-relation small{font-size:11px}.weak-rules{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.weak-rules article{padding:17px;border:1px solid #d0deea;border-radius:10px}.weak-rules b{color:#0d6070}.weak-rules p{margin:5px 0 0;color:#566d82;font-size:14px}
.eer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.eer-grid>article{padding:21px;border:1px solid #d0deea;border-radius:12px;background:#f8fbfd}.eer-grid>article>span{color:#8a6600;font-size:12px;font-weight:900;letter-spacing:.08em}.eer-grid h3{margin:14px 0 5px;color:#0d3d67}.eer-grid p{color:#566d82}.isa-mini,.aggregation-mini{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:16px}.isa-mini b,.isa-mini i,.isa-mini span,.aggregation-mini span,.aggregation-mini i,.aggregation-mini b{padding:8px;border-radius:6px;text-align:center;font-size:12px}.isa-mini b,.aggregation-mini b{grid-column:1/-1;color:#fff;background:#0d3b5c}.isa-mini i{grid-column:1/-1;color:#705400;background:#f7d86f;font-style:normal;font-weight:900}.isa-mini span,.aggregation-mini span{color:#075e68;background:#dff5f3;font-weight:800}.isa-mini.reverse b{grid-row:3}.isa-mini.reverse i{grid-row:2}.aggregation-mini i{grid-column:1/-1;color:#fff;background:#0f766e;font-style:normal}.specialization-constraints{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.specialization-constraints article{padding:18px;border-left:5px solid #0f8394;border-radius:9px;background:#eaf8fa}.specialization-constraints h3{margin:0 0 5px;color:#095367}.specialization-constraints p{margin:0;color:#405f74}
@media(max-width:1180px){.er-builder{grid-template-columns:1fr}.weak-rules{grid-template-columns:repeat(2,1fr)}.eer-grid{grid-template-columns:1fr}.requirement-case{grid-template-columns:1fr}}
@media(max-width:900px){.modelling-process,.attribute-gallery{grid-template-columns:repeat(2,1fr)}.definition-row,.relationship-grid,.minmax-examples{grid-template-columns:1fr}.relationship-sentence{flex-direction:column}.constraint-compare{grid-template-columns:1fr}.weak-diagram{grid-template-columns:1fr}.identifying-relation{width:160px;justify-self:center}.specialization-constraints{grid-template-columns:1fr}}
@media(max-width:680px){.modelling-process,.attribute-gallery,.weak-rules{grid-template-columns:1fr}.builder-two{grid-template-columns:1fr}.er-canvas{grid-template-columns:1fr;gap:8px}.er-connector{grid-template-columns:1fr;justify-items:center}.er-line{width:4px;height:42px}.er-line.is-total{width:8px;height:42px;border-top:0;border-bottom:0;border-right:3px solid #0c7280;border-left:3px solid #0c7280}.relationship-sentence{gap:12px}.entity-box{min-width:0;width:100%}}

/* Level 4 — Relational model */
.relational-hero{background:radial-gradient(circle at 82% 14%,rgba(85,178,222,.28),transparent 28%),linear-gradient(135deg,#071a2d,#123b61 68%,#126073)}
.annotated-relation{overflow:hidden;border:1px solid #bfd3e2;border-radius:13px;background:#f8fbfd}.relation-title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;color:#fff;background:#0b385a}.relation-title span{color:#9ddde4;font-size:12px;font-weight:900;letter-spacing:.08em}.relation-title strong{font-family:Consolas,monospace}.relation-sample{border:0}.relation-sample .key-column{color:#075d69;background:#e3f6f5;font-weight:900;text-decoration:underline}.relation-sample .tuple-focus td{border-top:3px solid #d4af37;border-bottom:3px solid #d4af37;background:#fff9e7}.relation-callouts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:13px}.relation-callouts span{padding:10px;border-radius:8px;color:#496177;background:#edf4f9;font-size:13px}.relation-callouts b{display:block;color:#0b536c}.terminology-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:17px}.terminology-grid article{padding:17px;border:1px solid #d2e0eb;border-radius:10px}.terminology-grid b{color:#0c586d}.terminology-grid p{margin:4px 0 0;color:#566d82;font-size:14px}
.property-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.property-grid article{padding:19px;border:1px solid #d2e0eb;border-radius:11px;background:#f8fbfd}.property-grid span{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;color:#f8d766;background:#08243d;font-size:12px;font-weight:900}.property-grid h3{margin:14px 0 5px;color:#0d3d67}.property-grid p{margin:0;color:#586e82;font-size:14px}
.key-family{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.key-family article{padding:18px;border:1px solid #d1dfeb;border-radius:11px;background:#f8fbfd}.key-family span{color:#8a6600;font-size:12px;font-weight:900;letter-spacing:.08em}.key-family h3{margin:14px 0 5px;color:#0d3d67;font-size:17px}.key-family p{margin:0;color:#566d82;font-size:14px}.key-family code{font-size:12px}.key-hierarchy{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;margin-top:17px;padding:17px;border-radius:11px;background:#09253e}.key-hierarchy span{padding:8px 11px;border:1px solid #3a617b;border-radius:7px;color:#e0edf5;background:#0d3858;font-weight:800}.key-hierarchy b{color:#f8d766}
.key-explorer{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:15px}.key-relation{padding:20px;border:1px solid #c7d9e6;border-radius:12px;background:#fff}.key-relation>span{display:block;margin-bottom:13px;color:#876400;font-size:12px;font-weight:900;letter-spacing:.09em}.attribute-picks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.attribute-picks label{padding:9px;border:1px solid #d1dfeb;border-radius:7px;color:#27465f;background:#f8fbfd;font-weight:700}.key-relation>button{width:100%;min-height:44px;margin-top:14px;border:0;border-radius:8px;color:#fff;background:#0f766e;cursor:pointer;font:inherit;font-weight:900}.key-result{padding:22px;border-radius:12px;color:#fff;background:linear-gradient(145deg,#09253e,#0d5368)}.key-result>span{color:#f8d766;font-size:12px;font-weight:900;letter-spacing:.08em}.key-result h3{margin:12px 0 5px;font-size:24px}.key-result p{margin:0;color:#d1e4ec}.key-result .classification{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.key-result .classification b{padding:6px 9px;border-radius:999px;color:#064a3a;background:#bff0dc;font-size:12px}.key-examples,.validator-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.key-examples button,.validator-presets button{padding:8px 11px;border:1px solid #b9cedd;border-radius:8px;color:#174765;background:#fff;cursor:pointer;font:inherit;font-size:13px;font-weight:800}.key-examples button:hover,.validator-presets button:hover{border-color:#0f7f90;color:#fff;background:#0f766e}
.integrity-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.integrity-grid article{padding:21px;border:1px solid #d0dfeb;border-radius:12px;background:#f8fbfd}.integrity-grid span{color:#8a6600;font-size:12px;font-weight:900;letter-spacing:.08em}.integrity-grid h3{margin:14px 0 5px;color:#0d3d67}.integrity-grid p{color:#576e83}.integrity-grid code{display:block;padding:10px;border-radius:7px;color:#dcebf3;background:#08243d;white-space:normal}.referential-actions{margin-top:17px;padding:20px;border-radius:12px;color:#fff;background:#0a2945}.referential-actions h3{margin:0 0 13px;color:#f8d766}.referential-actions>div{display:grid;grid-template-columns:1fr 1fr;gap:9px}.referential-actions span{padding:10px;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#d3e4ec}.referential-actions b{color:#8ce1e5}
.row-validator{display:grid;grid-template-columns:minmax(310px,.85fr) minmax(0,1.15fr);gap:16px}.row-validator form{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:20px;border:1px solid #c7dae7;border-radius:12px;background:#fff}.row-validator label{display:grid;gap:5px;color:#173f61;font-size:14px;font-weight:900}.row-validator input,.row-validator select{min-height:43px;padding:8px 10px;border:1px solid #b8cddd;border-radius:8px;font:inherit}.row-validator form button{grid-column:1/-1;min-height:44px;border:0;border-radius:8px;color:#fff;background:#0f766e;cursor:pointer;font:inherit;font-weight:900}.validation-result{padding:22px;border-radius:12px;color:#fff;background:#0a2945}.validation-result>span{color:#f8d766;font-size:12px;font-weight:900}.validation-result h3{margin:10px 0 5px}.validation-result p{margin:0;color:#d1e3eb}.validation-result ul{padding-left:20px}.validation-result.is-error{background:#702f27}.validation-result.is-success{background:#096449}
.mapping-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.mapping-tabs button{min-height:42px;padding:8px 12px;border:1px solid #b9cddd;border-radius:8px;color:#174568;background:#fff;cursor:pointer;font:inherit;font-size:14px;font-weight:800}.mapping-tabs button:hover,.mapping-tabs button[aria-selected="true"]{border-color:#0f7f90;color:#fff;background:#0f766e}.mapping-output{min-height:300px;padding:22px;border:1px solid #c4d8e6;border-radius:12px;background:#f8fbfd}.mapping-output>span{color:#8a6600;font-size:12px;font-weight:900;letter-spacing:.08em}.mapping-output h3{margin:10px 0 5px;color:#0d3d67}.mapping-output>p{margin:0;color:#576e83}.mapped-relations{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:17px}.mapped-table{overflow:hidden;border:1px solid #adc7d8;border-radius:9px;background:#fff}.mapped-table strong{display:block;padding:9px 11px;color:#fff;background:#0b385a}.mapped-table code{display:block;padding:11px;color:#29485f;white-space:normal}.mapped-table .pk{color:#08715c;font-weight:900}.mapped-table .fk{color:#a24a20;font-weight:900}.mapping-reason{margin-top:14px;padding:12px;border-left:4px solid #d4af37;border-radius:7px;background:#fff8df;color:#544a2e}
.null-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.null-grid article{padding:19px;border:1px solid #d1dfeb;border-radius:11px;background:#f8fbfd}.null-grid span{color:#8a6600;font-size:12px;font-weight:900}.null-grid p{margin:8px 0 0;color:#586e82}.null-warning{margin-top:16px;padding:20px;border-radius:12px;color:#fff;background:#0a2945}.null-warning h3{margin:0 0 11px;color:#f8d766}.null-warning>div{display:flex;flex-wrap:wrap;gap:8px}.null-warning code{padding:6px 9px;border:1px solid #3c6179;border-radius:6px;color:#9fe1e6;background:#0e3b5b}.null-warning p{margin:13px 0 0;color:#d3e3eb}
@media(max-width:1180px){.key-family{grid-template-columns:repeat(2,1fr)}.property-grid{grid-template-columns:repeat(2,1fr)}.relation-callouts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.terminology-grid,.null-grid{grid-template-columns:1fr 1fr}.key-explorer,.row-validator{grid-template-columns:1fr}.integrity-grid{grid-template-columns:1fr}}
@media(max-width:680px){.terminology-grid,.property-grid,.key-family,.null-grid{grid-template-columns:1fr}.relation-callouts{grid-template-columns:1fr}.attribute-picks,.row-validator form,.referential-actions>div{grid-template-columns:1fr}.row-validator form button{grid-column:auto}.key-hierarchy{flex-direction:column}.mapping-tabs button{width:100%}}

/* Level 5 — Relational algebra */
.algebra-hero{background:radial-gradient(circle at 82% 13%,rgba(80,186,217,.27),transparent 28%),linear-gradient(135deg,#071a2d,#123c61 66%,#12656b)}
.closure-flow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;padding:22px;border-radius:12px;background:#09253e}.closure-flow span{padding:10px 14px;border:1px solid #4d7187;border-radius:8px;color:#e3eef5;background:#0d3a59;font-weight:900}.closure-flow .operator-pill{color:#09253e;background:#f8d766}.closure-flow b{color:#8bdde1}.algebra-basics{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:17px}.algebra-basics article{padding:20px;border:1px solid #d1dfeb;border-radius:11px;background:#f8fbfd}.algebra-basics span{color:#896500;font-size:12px;font-weight:900;letter-spacing:.08em}.algebra-basics h3{margin:14px 0 5px;color:#0c3d67}.algebra-basics p{margin:0;color:#576e82}.operator-map{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:15px}.operator-map>div{display:flex;flex-wrap:wrap;gap:8px;padding:17px;border-radius:11px;color:#fff;background:#0a2945}.operator-map span{width:100%;color:#f8d766;font-size:12px;font-weight:900}.operator-map b{padding:6px 9px;border:1px solid #3c6179;border-radius:6px;color:#d7e8f1;background:#0e3b5b}
.operator-cards{display:grid;gap:14px}.operator-cards article{display:grid;grid-template-columns:82px 1fr;gap:17px;align-items:center;padding:20px;border:1px solid #d0dfeb;border-radius:12px;background:#f8fbfd}.op-symbol{display:grid;width:75px;height:75px;place-items:center;border-radius:50%;color:#f8d766;background:#08243d;font-family:Georgia,serif;font-size:38px}.operator-cards h3{margin:0 0 7px;color:#0d3d67}.operator-cards code{display:block;padding:9px;border-radius:7px;color:#d8eaf3;background:#0a2945}.operator-cards p{margin:9px 0 0;color:#566e83}
.compatibility-rule{display:grid;grid-template-columns:1fr 1fr;gap:14px}.compatibility-rule>div{padding:21px;border:1px solid #d1dfeb;border-radius:12px;background:#f8fbfd}.compatibility-rule span{color:#896500;font-size:12px;font-weight:900}.compatibility-rule h3{margin:13px 0 5px;color:#0d3d67}.compatibility-rule p{margin:0;color:#576e82}.compatibility-example{display:grid;gap:7px}.compatibility-example code{padding:8px;border-radius:6px;color:#d9eaf2;background:#0a2945}.compatibility-example strong{color:#0a7457}.set-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:16px}.set-grid article{padding:20px;border:1px solid #d1dfeb;border-radius:11px}.set-grid span{color:#0c6978;font-family:Georgia,serif;font-size:26px;font-weight:900}.set-grid h3{margin:10px 0 5px;color:#0d3d67}.set-grid p{margin:0;color:#576e82}
.product-warning{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:21px;border-left:5px solid #d06d42;border-radius:11px;background:#fff4ee}.product-warning span{color:#9b451f;font-size:12px;font-weight:900}.product-warning h3{margin:10px 0 5px;color:#71351c}.product-warning p{margin:0;color:#6e5549}.product-warning>strong{padding:12px;border-radius:8px;color:#fff;background:#9b451f}.join-family{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:17px}.join-family article{padding:18px;border:1px solid #d1dfeb;border-radius:11px;background:#f8fbfd}.join-family span{color:#896500;font-size:12px;font-weight:900}.join-family h3{margin:13px 0 5px;color:#0d3d67}.join-family p{margin:0;color:#576e82;font-size:14px}.join-trace{margin-top:15px;padding:17px;border-radius:10px;color:#fff;background:#0a2945}.join-trace code{color:#9be1e5}.join-trace p{margin:7px 0 0;color:#d1e3ec}
.division-story{display:grid;grid-template-columns:1.4fr auto .8fr auto .8fr;gap:12px;align-items:center}.division-story>div{overflow:hidden;border:1px solid #c3d6e4;border-radius:10px;background:#fff}.division-story span{display:block;padding:9px;color:#fff;background:#0b385a;font-size:12px;font-weight:900}.division-story table{width:100%;border-collapse:collapse}.division-story td{padding:7px 10px;border:1px solid #d9e4ed}.division-story>b{color:#0c7e90;font-size:28px}.division-explanation{margin:15px 0 0;padding:16px;border-left:5px solid #d4af37;border-radius:8px;background:#fff8df;color:#53492e}
.operator-lab{display:grid;grid-template-columns:280px 1fr;gap:16px}.lab-operation-list{display:grid;align-content:start;gap:7px}.lab-operation-list button{min-height:44px;padding:9px 12px;border:1px solid #b9cddd;border-radius:8px;color:#174568;background:#fff;cursor:pointer;font:inherit;font-size:14px;font-weight:800;text-align:left}.lab-operation-list button:hover,.lab-operation-list button[aria-selected="true"]{border-color:#0f7f90;color:#fff;background:#0f766e}.lab-operation-stage{min-height:420px;padding:21px;border:1px solid #c6dae7;border-radius:12px;background:#fff}.operation-heading>span,.workspace-label{color:#886500;font-size:12px;font-weight:900;letter-spacing:.08em}.operation-heading h3{margin:9px 0 5px;color:#0d3d67}.operation-heading p{margin:0;color:#576e82}.operation-expression{display:block;margin:13px 0;padding:11px;border-radius:7px;color:#d8eaf2;background:#0a2945}.operation-tables{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-relation{overflow-x:auto}.mini-relation h4{margin:0;padding:8px;color:#fff;background:#0b385a}.mini-relation table{width:100%;border-collapse:collapse;background:#f8fbfd}.mini-relation th,.mini-relation td{padding:7px 9px;border:1px solid #d5e1eb;text-align:left;font-size:13px}.mini-relation tr.highlight td{background:#e4f7ef}.operation-note{margin-top:12px;padding:11px;border-left:4px solid #d4af37;background:#fff8df;color:#51472e}
.query-selector{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}.query-selector label{color:#173f61;font-weight:900}.query-selector select{min-height:46px;padding:9px 11px;border:1px solid #b9cddd;border-radius:8px;font:inherit}.query-workspace{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:16px}.query-workspace>div{padding:19px;border:1px solid #cadbe7;border-radius:11px;background:#fff}.query-expression{display:block;margin-top:9px;padding:12px;border-radius:7px;color:#d8eaf3;background:#0a2945;white-space:normal}.query-steps{display:grid;gap:7px;margin-top:13px}.query-steps article{padding:9px;border-left:4px solid #0f8394;border-radius:6px;background:#eef8fa;color:#36596e;font-size:14px}.query-tree{display:flex;min-height:270px;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;padding-top:9px}.tree-node{min-width:180px;padding:8px 12px;border:2px solid #0c7180;border-radius:7px;color:#0b3c63;background:#f4fbfc;font-weight:900;text-align:center}.tree-node.leaf{border-color:#9b7211;background:#fff7dc}.tree-branch{display:flex;gap:60px;position:relative}.tree-branch::before{content:"";position:absolute;top:-9px;right:20%;left:20%;height:2px;background:#718da1}.tree-edge{width:2px;height:16px;background:#718da1}.query-result{margin-top:14px;padding:17px;border-radius:10px;color:#fff;background:#0a2945}.query-result>span{color:#f8d766;font-size:12px;font-weight:900}.query-result h3{margin:7px 0 3px}.query-result p{margin:0;color:#d2e3eb}
.equivalence-example{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}.equivalence-example>div{padding:20px;border:1px solid #d1dfeb;border-radius:11px;background:#f8fbfd}.equivalence-example .preferred{border-color:#9ad1bd;background:#edf9f4}.equivalence-example span{color:#896500;font-size:12px;font-weight:900}.equivalence-example code{display:block;margin:11px 0;padding:9px;border-radius:7px;color:#d9eaf2;background:#0a2945}.equivalence-example p{margin:0;color:#576e82}.equivalence-example>b{color:#0c7d8e;font-size:25px}.law-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.law-grid article{padding:16px;border:1px solid #d1dfeb;border-radius:10px}.law-grid h3{margin:0 0 8px;color:#0d3d67}.law-grid code{color:#0c6070}
@media(max-width:1180px){.operator-lab{grid-template-columns:1fr}.lab-operation-list{grid-template-columns:repeat(2,1fr)}.join-family{grid-template-columns:repeat(2,1fr)}.division-story{grid-template-columns:1fr}.division-story>b{justify-self:center;transform:rotate(90deg)}}
@media(max-width:900px){.algebra-basics,.set-grid{grid-template-columns:1fr}.operator-map,.compatibility-rule,.operation-tables,.query-workspace{grid-template-columns:1fr}.join-family{grid-template-columns:1fr}.product-warning{grid-template-columns:1fr}.law-grid{grid-template-columns:1fr}}
@media(max-width:680px){.closure-flow{flex-direction:column}.operator-cards article{grid-template-columns:1fr}.op-symbol{margin:auto}.lab-operation-list{grid-template-columns:1fr}.query-selector{grid-template-columns:1fr}.equivalence-example{grid-template-columns:1fr}.equivalence-example>b{justify-self:center;transform:rotate(90deg)}.tree-branch{gap:12px}.division-story>div{width:100%}}

/* Level 6 — Functional dependencies */
.fd-hero{background:radial-gradient(circle at 82% 13%,rgba(50,198,190,.28),transparent 29%),linear-gradient(135deg,#061b2c,#0b3d55 66%,#0d665f)}
.fd-statement{display:flex;align-items:center;justify-content:center;gap:22px;padding:25px;border-radius:13px;color:#fff;background:#08283f}.fd-statement>div{min-width:230px;padding:16px;border:1px solid #39647a;border-radius:10px;background:#0d3b55;text-align:center}.fd-statement span,.fd-reading span{display:block;color:#f8d766;font-size:11px;font-weight:900;letter-spacing:.09em}.fd-statement strong{display:block;margin-top:7px;font-family:Consolas,monospace;font-size:20px}.fd-statement>b{color:#72ddd7;font-family:Georgia,serif;font-size:36px}.fd-reading{margin-top:15px;padding:20px;border-left:5px solid #11a39d;border-radius:10px;background:#ecfaf8}.fd-reading h3{margin:0 0 7px;color:#075f5b}.fd-reading p{margin:6px 0;color:#405e6e}.fd-table-demo{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.fd-table-demo>div{overflow:hidden;border:1px solid #b8d9cf;border-radius:11px;background:#f3fcf8}.fd-table-demo>div.violated{border-color:#e4b9aa;background:#fff6f1}.fd-table-demo>div>span{display:block;padding:10px 13px;color:#fff;background:#08755e;font-size:11px;font-weight:900;letter-spacing:.08em}.fd-table-demo .violated>span{background:#a4482d}.fd-table-demo table{width:100%;border-collapse:collapse}.fd-table-demo th,.fd-table-demo td{padding:9px 12px;border:1px solid #d5e2e7;text-align:left}.fd-table-demo p{margin:0;padding:11px 13px;color:#4f6675;font-size:14px}
.fd-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.fd-type-grid article{padding:19px;border:1px solid #d0dfe9;border-radius:11px;background:#f8fbfd}.fd-type-grid span,.axiom-grid span,.cover-example>span{color:#8b6700;font-size:11px;font-weight:900;letter-spacing:.08em}.fd-type-grid h3{margin:13px 0 8px;color:#0b4764}.fd-type-grid code{display:block;padding:8px;border-radius:7px;color:#d9f2ef;background:#083448}.fd-type-grid p{margin:10px 0 0;color:#566d7c;font-size:14px}
.axiom-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.axiom-grid article{position:relative;padding:22px;border:1px solid #bcd8d6;border-radius:12px;background:linear-gradient(145deg,#f7fdfc,#eaf9f6)}.axiom-grid span{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;color:#fff;background:#0c756e}.axiom-grid h3{margin:14px 0 8px;color:#09534f}.axiom-grid code{display:block;padding:9px;border-radius:7px;color:#e0f4f2;background:#083448;white-space:normal}.axiom-grid p{margin:9px 0 0;color:#506977}.derived-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.derived-grid article{padding:15px;border:1px solid #d3e0e8;border-radius:9px}.derived-grid h3{margin:0 0 8px;color:#0d4160;font-size:16px}.derived-grid code{color:#08716d;white-space:normal}.inference-trace{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:15px;padding:18px;border-radius:11px;color:#fff;background:#08283f}.inference-trace>span{color:#f8d766;font-size:11px;font-weight:900}.inference-trace>code{padding:7px 9px;border:1px solid #3f687b;border-radius:6px;color:#b0eeea;background:#0d3a52}.inference-trace>b{color:#f8d766;font-size:22px}.inference-trace>div{display:flex;flex:1;flex-wrap:wrap;gap:8px}.inference-trace p{margin:0;padding:7px 9px;border-radius:6px;color:#d4e7ed;background:#0c354b;font-size:13px}
.closure-algorithm{display:grid;grid-template-columns:1fr 1fr;gap:15px}.closure-algorithm>div{padding:20px;border:1px solid #c8dce4;border-radius:12px;background:#f8fbfd}.closure-algorithm span{color:#886500;font-size:11px;font-weight:900;letter-spacing:.09em}.closure-algorithm li{margin:8px 0;color:#4b6474}.worked-closure{margin-top:16px;padding:22px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#08283f,#0c5959)}.worked-closure>span{color:#f8d766;font-size:11px;font-weight:900;letter-spacing:.09em}.worked-closure h3{margin:10px 0;color:#fff}.worked-closure>div{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:15px 0}.worked-closure p{margin:0;padding:9px;border:1px solid rgba(255,255,255,.16);border-radius:7px;color:#d9ecec;background:rgba(0,0,0,.13);font-size:13px}.worked-closure>strong{color:#94eee2}
.fd-calculator{display:grid;grid-template-columns:minmax(310px,.8fr) minmax(0,1.2fr);gap:16px}.fd-calculator form{display:grid;gap:12px;padding:20px;border:1px solid #c1d8df;border-radius:12px;background:#fff}.fd-calculator label{display:grid;gap:6px;color:#143f58;font-size:14px;font-weight:900}.fd-calculator input,.fd-calculator textarea{width:100%;box-sizing:border-box;padding:10px 11px;border:1px solid #afcbd5;border-radius:8px;color:#102f43;background:#fbfdfe;font:inherit}.fd-calculator textarea{resize:vertical;font-family:Consolas,monospace;line-height:1.5}.fd-calculator input:focus,.fd-calculator textarea:focus{outline:3px solid rgba(17,163,157,.18);border-color:#0d8c86}.calculator-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.calculator-actions button{min-height:45px;padding:9px;border:1px solid #0b756f;border-radius:8px;color:#fff;background:#0f766e;cursor:pointer;font:inherit;font-weight:900}.calculator-actions button+button{color:#0b5e5a;background:#e9f9f6}.calculator-actions button:hover{filter:brightness(.92)}.input-help{margin:0;color:#647786;font-size:12px;line-height:1.5}.fd-calculator-result{min-height:330px;padding:24px;border-radius:12px;color:#fff;background:linear-gradient(145deg,#08283f,#0c4556)}.fd-calculator-result>span{color:#f8d766;font-size:11px;font-weight:900;letter-spacing:.09em}.fd-calculator-result h3{margin:12px 0 6px;color:#fff;font-size:24px;overflow-wrap:anywhere}.fd-calculator-result>p{color:#d4e6eb}.fd-calculator-result.is-success{background:linear-gradient(145deg,#06382f,#087264)}.fd-calculator-result.is-error{background:linear-gradient(145deg,#53271e,#8b3c29)}.closure-trace{display:grid;gap:8px;margin-top:17px;padding:0;list-style:none}.closure-trace li{padding:11px;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:#e1eef0;background:rgba(0,0,0,.13)}.closure-trace code{color:#9ff2e8}.closure-trace small{display:block;margin-top:4px;color:#bdd6dc}.key-verdict{padding:10px;border-left:4px solid #f8d766;background:rgba(0,0,0,.14)}.candidate-key-list{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0}.candidate-key-pill{padding:9px 12px;border-radius:999px;color:#06483e;background:#bcf1df}.search-note{font-size:13px}.calculator-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.calculator-presets button{padding:8px 11px;border:1px solid #afcbd5;border-radius:8px;color:#15536b;background:#fff;cursor:pointer;font:inherit;font-size:13px;font-weight:800}.calculator-presets button:hover{border-color:#0f766e;color:#fff;background:#0f766e}
.key-method{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.key-method article{padding:18px;border:1px solid #d0dfe8;border-radius:11px;background:#f8fbfd}.key-method span{color:#8a6600;font-size:11px;font-weight:900}.key-method h3{margin:13px 0 6px;color:#0c405f;font-size:17px}.key-method p{margin:0;color:#566d7b;font-size:14px}.key-case{margin-top:15px;padding:19px;border-left:5px solid #10a29b;border-radius:9px;background:#ecfaf8}.key-case>span{color:#08726c;font-size:11px;font-weight:900}.key-case h3{margin:9px 0 5px;color:#075c58}.key-case p{margin:0;color:#456471}
.cover-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.cover-steps article{padding:20px;border:1px solid #d0dfe8;border-radius:11px;background:#f8fbfd}.cover-steps b{display:grid;width:37px;height:37px;place-items:center;border-radius:50%;color:#08283f;background:#f4d45f}.cover-steps h3{margin:13px 0 6px;color:#0c405f}.cover-steps p{margin:0;color:#566d7c}.cover-example{margin-top:15px;padding:20px;border-radius:11px;color:#fff;background:#08283f}.cover-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}.cover-flow code{padding:8px;border:1px solid #41697a;border-radius:6px;color:#a9eee7;background:#0c3a50}.cover-flow b{color:#f8d766;font-size:12px}.cover-example p{margin:0;color:#d4e5e9}.extraneous-note{margin-top:14px;padding:17px;border-left:5px solid #d4af37;border-radius:9px;background:#fff8df}.extraneous-note h3{margin:0 0 5px;color:#745800}.extraneous-note p{margin:0;color:#5c5338}
@media(max-width:1180px){.fd-type-grid{grid-template-columns:repeat(2,1fr)}.derived-grid,.key-method{grid-template-columns:repeat(2,1fr)}.worked-closure>div{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.fd-calculator,.closure-algorithm{grid-template-columns:1fr}.axiom-grid,.cover-steps{grid-template-columns:1fr}.fd-table-demo{grid-template-columns:1fr}.worked-closure>div{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.fd-statement{flex-direction:column}.fd-statement>div{min-width:0;width:100%;box-sizing:border-box}.fd-statement>b{transform:rotate(90deg)}.fd-type-grid,.derived-grid,.key-method,.worked-closure>div{grid-template-columns:1fr}.calculator-actions{grid-template-columns:1fr}.inference-trace{align-items:stretch;flex-direction:column}.inference-trace>div{flex-direction:column}.cover-flow{flex-direction:column;align-items:stretch}.cover-flow b{text-align:center}}

/* Level 7 — Normalization I */
.normalization-hero{background:radial-gradient(circle at 83% 14%,rgba(240,198,74,.22),transparent 29%),linear-gradient(135deg,#071a2d,#123c58 64%,#17665e)}
.normalization-purpose-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.normalization-purpose-grid article{padding:19px;border:1px solid #d0dfe8;border-radius:11px;background:#f8fbfd}.normalization-purpose-grid b{display:grid;width:37px;height:37px;place-items:center;border-radius:50%;color:#07263b;background:#f5d55f}.normalization-purpose-grid h3{margin:14px 0 6px;color:#0c405f;font-size:18px}.normalization-purpose-grid p{margin:0;color:#566d7c;font-size:14px}.normalization-misconception{margin-top:15px;padding:17px;border-left:5px solid #d4af37;border-radius:9px;background:#fff8df}.normalization-misconception strong{color:#725600}.normalization-misconception p{margin:5px 0 0;color:#5b5239}.normal-form-ladder{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:17px;padding:20px;border-radius:12px;color:#fff;background:#08283f}.normal-form-ladder span{min-width:135px;padding:12px;border:1px solid #3c6577;border-radius:9px;color:#f8d766;background:#0d3a50;font-size:20px;font-weight:900;text-align:center}.normal-form-ladder small{display:block;margin-top:5px;color:#d0e3e7;font-size:12px;font-weight:500}.normal-form-ladder b{color:#8ce5de;font-size:12px;text-align:center}
.anomaly-controls,.decomposition-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.anomaly-controls button,.decomposition-tabs button,.decomposition-actions button{min-height:43px;padding:9px 13px;border:1px solid #b5ccd8;border-radius:8px;color:#17485e;background:#fff;cursor:pointer;font:inherit;font-weight:850}.anomaly-controls button:hover,.anomaly-controls button[aria-pressed="true"],.decomposition-tabs button:hover,.decomposition-tabs button[aria-selected="true"]{border-color:#0d8179;color:#fff;background:#0f766e}.anomaly-controls button[data-anomaly="reset"]{margin-left:auto;color:#6f5360}.anomaly-table-wrap{overflow-x:auto;border:1px solid #c8dae3;border-radius:11px}.anomaly-table tr.is-anomaly td{color:#7c2e18;background:#fff0e8;font-weight:750}.anomaly-explanation{margin-top:14px;padding:18px;border-left:5px solid #0f8a82;border-radius:10px;background:#ebfaf6}.anomaly-explanation.is-warning{border-left-color:#c25a32;background:#fff2eb}.anomaly-explanation span{color:#8b6700;font-size:11px;font-weight:900;letter-spacing:.09em}.anomaly-explanation h3{margin:8px 0 5px;color:#0c455c}.anomaly-explanation.is-warning h3{color:#84391e}.anomaly-explanation p{margin:0;color:#536a76}
.nf-rule-card{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;align-items:center;padding:22px;border-radius:12px;color:#fff;background:#08283f}.nf-rule-card span{color:#f8d766;font-size:11px;font-weight:900;letter-spacing:.08em}.nf-rule-card h3{margin:10px 0 5px;color:#fff}.nf-rule-card p{margin:0;color:#d4e5e9}.nf-rule-card>code{padding:15px;border:1px solid #3e6879;border-radius:8px;color:#a6eee6;background:#0d3a50;white-space:normal}.atomic-comparison{display:grid;grid-template-columns:1fr auto 1fr;gap:13px;align-items:center;margin-top:15px}.atomic-comparison article{overflow:hidden;border:1px solid #d7dde3;border-radius:11px}.atomic-comparison article>span{display:block;padding:10px 13px;color:#fff;background:#9b472d;font-size:11px;font-weight:900;letter-spacing:.08em}.atomic-comparison article.good-design>span{background:#08715e}.atomic-comparison table{width:100%;border-collapse:collapse}.atomic-comparison th,.atomic-comparison td{padding:10px 13px;border:1px solid #d9e4e9;text-align:left}.atomic-comparison p{margin:0;padding:11px 13px;color:#526976;background:#f8fbfd}.atomic-comparison>b{color:#0c8179;font-size:27px}
.key-dependency-map{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);gap:14px}.composite-key{display:grid;align-content:center;justify-items:center;padding:22px;border-radius:12px;color:#fff;background:#08283f;text-align:center}.composite-key span{color:#f8d766;font-size:11px;font-weight:900}.composite-key strong{margin-top:12px;color:#a6eee6;font-family:Consolas,monospace;font-size:20px}.dependency-arrows{display:grid;gap:8px}.dependency-arrows p{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin:0;padding:13px;border:1px solid #d0dfe7;border-radius:9px;background:#f8fbfd}.dependency-arrows code{color:#0b4a60;white-space:normal}.dependency-arrows b{padding:5px 8px;border-radius:999px;color:#8b321a;background:#ffe5d9;font-size:11px}.dependency-arrows b.safe{color:#075c49;background:#dff6ed}.partial-explanation{margin-top:14px;padding:17px;border-left:5px solid #cc653d;border-radius:9px;background:#fff3ed}.partial-explanation h3{margin:0 0 5px;color:#81371c}.partial-explanation p{margin:0;color:#654f46}.two-nf-result,.three-nf-result{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:15px}.two-nf-result article,.three-nf-result article{padding:16px;border:1px solid #bcd8d3;border-radius:9px;background:#f0fbf8}.two-nf-result span,.three-nf-result span{display:block;margin-bottom:8px;color:#087066;font-size:11px;font-weight:900}.two-nf-result code,.three-nf-result code{color:#214f5d;white-space:normal}
.transitive-chain{display:flex;align-items:center;justify-content:center;gap:12px;padding:22px;border-radius:12px;color:#fff;background:#08283f}.transitive-chain span{min-width:180px;padding:14px;border:1px solid #3d6678;border-radius:9px;color:#a8eee7;background:#0d3a50;font-family:Consolas,monospace;font-size:17px;font-weight:900;text-align:center}.transitive-chain small{display:block;margin-top:4px;color:#d3e5e9;font-family:inherit;font-size:11px;font-weight:500}.transitive-chain b{color:#f8d766;font-size:27px}.transitive-reading{padding:16px;border-left:5px solid #0f8a82;background:#eefaf8;color:#466572}.three-nf-result{grid-template-columns:repeat(4,1fr)}.formal-three-nf{margin-top:15px;padding:19px;border-radius:11px;color:#fff;background:linear-gradient(135deg,#0a3550,#0c685f)}.formal-three-nf>span{color:#f8d766;font-size:11px;font-weight:900;letter-spacing:.09em}.formal-three-nf p{margin:9px 0;color:#e0eff0}.formal-three-nf code{color:#aef0e8}.formal-three-nf small{color:#c3dcdf}
.decomposition-tabs button{min-width:92px}.decomposition-stage{min-height:460px;padding:22px;border:1px solid #bfd7df;border-radius:12px;background:#fff}.decomposition-stage>header>span{color:#8a6600;font-size:11px;font-weight:900;letter-spacing:.09em}.decomposition-stage>header h3{margin:9px 0 5px;color:#0c405f;font-size:24px}.decomposition-stage>header p{margin:0;color:#576e7c}.nf-dependencies{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px;padding:13px;border-radius:9px;background:#08283f}.nf-dependencies span{width:100%;color:#f8d766;font-size:11px;font-weight:900}.nf-dependencies code{padding:6px 8px;border:1px solid #3d6678;border-radius:6px;color:#a9eee7;background:#0d3a50;font-size:12px}.nf-table-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:16px}.nf-mini-table{overflow:hidden;border:1px solid #bdd3de;border-radius:10px}.nf-mini-table h4{margin:0;padding:10px 12px;color:#fff;background:#0b4c60}.nf-mini-table>div{overflow-x:auto}.nf-mini-table table{width:100%;border-collapse:collapse;background:#f9fcfd}.nf-mini-table th,.nf-mini-table td{padding:8px 10px;border:1px solid #d7e3e8;text-align:left;font-size:12px;white-space:nowrap}.nf-mini-table th{color:#18445a;background:#edf5f7}.stage-verdict{margin-top:15px;padding:14px;border-left:5px solid #d4af37;border-radius:8px;background:#fff8df}.stage-verdict strong{color:#745700;font-size:11px}.stage-verdict p{margin:4px 0 0;color:#5e553c}.decomposition-actions{display:flex;justify-content:space-between;gap:10px;margin-top:12px}.decomposition-actions button{color:#fff;background:#0f766e}.decomposition-actions button:disabled{cursor:not-allowed;color:#7d8e97;background:#e2e9ed}
.nf-diagnostic{display:grid;grid-template-columns:minmax(330px,.9fr) minmax(0,1.1fr);gap:16px}.nf-diagnostic form{display:grid;gap:11px;padding:20px;border:1px solid #c5d9e1;border-radius:12px;background:#fff}.nf-diagnostic fieldset{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:13px;border:1px solid #d1e0e7;border-radius:9px}.nf-diagnostic legend{padding:0 5px;color:#16445b;font-weight:900}.nf-diagnostic label{padding:7px 9px;border-radius:7px;color:#425f6f;background:#f2f7f9;font-size:14px}.nf-diagnostic form>button{min-height:46px;border:0;border-radius:8px;color:#fff;background:#0f766e;cursor:pointer;font:inherit;font-weight:900}.nf-diagnostic-result{padding:23px;border-radius:12px;color:#fff;background:linear-gradient(145deg,#08283f,#0d4b58)}.nf-diagnostic-result>span{color:#f8d766;font-size:11px;font-weight:900}.nf-diagnostic-result h3{margin:11px 0 6px;color:#fff;font-size:24px}.nf-diagnostic-result p,.nf-diagnostic-result li{color:#d6e6e9}.nf-diagnostic-result.level-unf,.nf-diagnostic-result.level-1nf{background:linear-gradient(145deg,#5b2a20,#93422b)}.nf-diagnostic-result.level-2nf{background:linear-gradient(145deg,#55410b,#887016)}.nf-diagnostic-result.level-3nf{background:linear-gradient(145deg,#073d34,#087265)}
@media(max-width:1180px){.normalization-purpose-grid,.three-nf-result{grid-template-columns:repeat(2,1fr)}.normal-form-ladder{flex-wrap:wrap}.normal-form-ladder b{min-width:90px}.two-nf-result{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.nf-rule-card,.key-dependency-map,.nf-diagnostic{grid-template-columns:1fr}.atomic-comparison{grid-template-columns:1fr}.atomic-comparison>b{justify-self:center;transform:rotate(90deg)}.transitive-chain{flex-direction:column}.transitive-chain b{transform:rotate(90deg)}.transitive-chain span{width:100%;box-sizing:border-box}.two-nf-result,.three-nf-result{grid-template-columns:1fr}.anomaly-controls button[data-anomaly="reset"]{margin-left:0}}
@media(max-width:680px){.normalization-purpose-grid{grid-template-columns:1fr}.normal-form-ladder{flex-direction:column}.normal-form-ladder span{width:100%;box-sizing:border-box}.normal-form-ladder b{min-width:0}.decomposition-stage{padding:15px}.decomposition-tabs button{flex:1}.decomposition-actions{flex-direction:column}.nf-diagnostic fieldset{display:grid}.nf-table-grid{grid-template-columns:1fr}}

/* Level 8 — Normalization II */
.advanced-normalization-hero{background:radial-gradient(circle at 84% 12%,rgba(64,205,190,.22),transparent 28%),linear-gradient(135deg,#061827,#102f4d 60%,#164f5a)}
.bcnf-comparison{display:grid;grid-template-columns:1fr 1fr;gap:15px}.bcnf-comparison article{padding:22px;border:1px solid #cbdce5;border-radius:12px;background:#f8fbfd}.bcnf-comparison article.strict{border-color:#86cfc6;background:#edfaf7}.bcnf-comparison span,.bcnf-case>span,.lossless-proof>span,.mvd-rules span,.jd-case>span{color:#896500;font-size:11px;font-weight:900;letter-spacing:.09em}.bcnf-comparison h3{margin:12px 0;color:#0c405f}.bcnf-comparison p{margin:13px 0 0;color:#566d7c}.condition-choice{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.condition-choice b{padding:8px 10px;border-radius:7px;color:#07584f;background:#dff5ef}.condition-choice em{color:#8d6500;font-style:normal;font-weight:900}.bcnf-case{margin-top:15px;padding:21px;border-radius:12px;color:#fff;background:#08283f}.bcnf-case h3{margin:9px 0;color:#fff}.case-fds{display:flex;flex-wrap:wrap;gap:8px}.case-fds code{padding:8px;border:1px solid #3e6879;border-radius:7px;color:#a7eee7;background:#0d3a50}.bcnf-case p{margin:13px 0 0;color:#d4e5e9}.bcnf-case p code{color:#a7eee7}
.bcnf-lab{display:grid;grid-template-columns:320px 1fr;gap:15px}.bcnf-fd-list{display:grid;align-content:start;gap:8px}.bcnf-fd-list button,.safety-scenarios button{min-height:46px;padding:10px 13px;border:1px solid #b7cdd8;border-radius:8px;color:#17475d;background:#fff;cursor:pointer;font:inherit;font-weight:850;text-align:left}.bcnf-fd-list button:hover,.bcnf-fd-list button[aria-selected="true"],.safety-scenarios button:hover,.safety-scenarios button[aria-selected="true"]{border-color:#0d837b;color:#fff;background:#0f766e}.bcnf-lab-result{min-height:240px;padding:23px;border-radius:12px;color:#fff;background:#0a3e4d}.bcnf-lab-result.is-fail{background:#713521}.bcnf-lab-result>span{color:#f8d766;font-size:11px;font-weight:900;letter-spacing:.09em}.bcnf-lab-result h3{margin:11px 0 8px;color:#fff;font-size:25px}.bcnf-lab-result>p{color:#d8e8e9}.closure-audit{display:grid;grid-template-columns:1fr 1fr;gap:8px}.closure-audit p{margin:0;padding:10px;border:1px solid rgba(255,255,255,.16);border-radius:7px;color:#d8e8e9;background:rgba(0,0,0,.13)}.bcnf-decomposition{display:grid;grid-template-columns:1fr auto 1fr;gap:13px;align-items:center;margin-top:15px;padding:18px;border:1px solid #c8dce3;border-radius:11px;background:#fff}.bcnf-decomposition>div{display:grid;gap:7px}.bcnf-decomposition span{color:#896500;font-size:11px;font-weight:900}.bcnf-decomposition code{padding:8px;border-radius:6px;color:#d9eeef;background:#08283f;white-space:normal}.bcnf-decomposition>b{max-width:220px;color:#0b756e;text-align:center}
.lossless-definition{display:grid;grid-template-columns:1.4fr .6fr;gap:15px;padding:21px;border-radius:12px;color:#fff;background:#08283f}.lossless-definition span{color:#f8d766;font-size:11px;font-weight:900}.lossless-definition h3{margin:10px 0 8px;color:#fff}.lossless-definition code{display:block;padding:10px;border:1px solid #3e6879;border-radius:7px;color:#a7eee7;background:#0d3a50;white-space:normal}.lossless-definition>div+div{display:grid;grid-template-columns:auto 1fr;gap:6px 9px;align-content:center;padding:14px;border:1px solid #3e6879;border-radius:9px}.lossless-definition strong{color:#8fe6d5}.lossless-definition strong.danger{color:#ffb49d}.lossless-definition p{margin:0;color:#d4e5e9}.lossless-proof{margin-top:15px;padding:18px;border-left:5px solid #0e9188;border-radius:9px;background:#ecfaf7}.lossless-proof h3{margin:8px 0 5px;color:#075c58}.lossless-proof p{margin:0;color:#486673}.spurious-example{display:grid;grid-template-columns:1fr auto 1fr;gap:13px;align-items:center;margin-top:15px}.spurious-example>div{overflow-x:auto;border:1px solid #c7d9e2;border-radius:10px}.spurious-example span{display:block;padding:9px 11px;color:#fff;background:#0b4c60;font-size:11px;font-weight:900}.spurious-example table{width:100%;border-collapse:collapse;background:#fff}.spurious-example th,.spurious-example td{padding:8px 11px;border:1px solid #d8e3e8;text-align:left}.spurious-example tr.spurious td{color:#842f17;background:#ffe9df;font-weight:800}.spurious-example>b{color:#0b756e;text-align:center}.spurious-note{padding:13px;border-left:5px solid #c65c34;background:#fff1ea;color:#6b4b40}
.preservation-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.preservation-grid article{padding:21px;border:1px solid #b9d9cf;border-radius:11px;background:#effaf6}.preservation-grid article.not-preserved{border-color:#e4c1b4;background:#fff5f0}.preservation-grid span{color:#08705f;font-size:11px;font-weight:900}.preservation-grid .not-preserved span{color:#a04327}.preservation-grid h3{margin:11px 0 7px;color:#0c405f}.preservation-grid code{display:block;padding:8px;border-radius:6px;color:#d8eeee;background:#08283f}.preservation-grid p{margin:10px 0 0;color:#526a76}.two-safety-goals{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.two-safety-goals>div{padding:18px;border:1px solid #cbdce4;border-radius:10px}.two-safety-goals b,.two-safety-goals span{display:block}.two-safety-goals b{color:#0b4a60;font-size:19px}.two-safety-goals span{margin:5px 0;color:#087166;font-size:12px;font-weight:900}.two-safety-goals p{margin:0;color:#576e7b}
.mvd-story{display:grid;grid-template-columns:.65fr auto 1.35fr;gap:14px;align-items:center}.mvd-story>div{padding:20px;border-radius:11px;color:#fff;background:#08283f}.mvd-story>div>span{color:#f8d766;font-size:11px;font-weight:900}.mvd-story strong{display:block;margin-top:12px;color:#9ceae2}.mvd-story p{margin:3px 0;color:#d7e7ea}.mvd-story>b{max-width:150px;color:#0c756e;text-align:center}.mvd-story table{width:100%;border-collapse:collapse;background:#fff}.mvd-story th,.mvd-story td{padding:10px 12px;border:1px solid #d4e1e7;text-align:left}.mvd-story th{color:#fff;background:#0b4c60}.mvd-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:15px}.mvd-rules article{padding:18px;border:1px solid #cbdce4;border-radius:10px;background:#f8fbfd}.mvd-rules code{display:block;margin-top:8px;color:#08736e;font-weight:900}.mvd-rules p{margin:9px 0 0;color:#556d7b}.four-nf-decomposition{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:15px;padding:18px;border-radius:11px;color:#fff;background:#08283f}.four-nf-decomposition>div{display:grid;gap:7px}.four-nf-decomposition span{color:#f8d766;font-size:11px;font-weight:900}.four-nf-decomposition code{padding:8px;border:1px solid #3d6678;border-radius:6px;color:#a7eee7;background:#0d3a50}.four-nf-decomposition>b{color:#f8d766;font-size:25px}.four-nf-benefit{padding:14px;border-left:5px solid #0f8d84;background:#ecfaf7;color:#476572}
.jd-case{padding:21px;border:1px solid #c7dce3;border-radius:12px;background:#f8fbfd}.jd-case h3{margin:10px 0;color:#0c405f}.jd-case p{color:#566d7b}.pair-relations{display:flex;flex-wrap:wrap;gap:8px}.pair-relations code{padding:8px;border-radius:6px;color:#d7eeee;background:#08283f}.five-nf-rule{margin-top:14px;padding:18px;border-radius:11px;color:#fff;background:linear-gradient(135deg,#0b334c,#0d655e)}.five-nf-rule strong{color:#f8d766}.five-nf-rule p{margin:7px 0;color:#e0eeee}.five-nf-rule small{color:#c5dfe0}.normal-form-summary-table{overflow-x:auto;margin-top:16px;border:1px solid #c8dbe3;border-radius:10px}.normal-form-summary-table table{width:100%;border-collapse:collapse;background:#fff}.normal-form-summary-table th,.normal-form-summary-table td{padding:11px 13px;border:1px solid #d6e2e7;text-align:left}.normal-form-summary-table thead th{color:#fff;background:#0b4c60}.normal-form-summary-table tbody th{color:#0b5f61;background:#edf8f6}
.safety-lab{display:grid;grid-template-columns:280px 1fr;gap:15px}.safety-scenarios{display:grid;align-content:start;gap:8px}.safety-result{min-height:480px;padding:22px;border:1px solid #bfd7df;border-radius:12px;background:#fff}.safety-result>header>span{color:#896500;font-size:11px;font-weight:900;letter-spacing:.09em}.safety-result>header h3{margin:9px 0;color:#0c405f;font-size:24px}.safety-definition{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.safety-definition p{margin:0;padding:10px;border-radius:7px;color:#d8ebed;background:#08283f}.safety-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.safety-status{display:flex;align-items:center;justify-content:space-between;padding:13px;border-radius:8px}.safety-status.pass{color:#075745;background:#ddf6ec}.safety-status.fail{color:#842f1b;background:#ffe7dd}.safety-status span{font-weight:800}.safety-status strong{font-size:19px}.safety-reasoning{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.safety-reasoning article{padding:15px;border:1px solid #d0dfe6;border-radius:9px;background:#f8fbfd}.safety-reasoning span{color:#0a6f68;font-size:11px;font-weight:900}.safety-reasoning p{margin:7px 0 0;color:#526a77}.safety-conclusion{margin-top:12px;padding:15px;border-left:5px solid #d4af37;border-radius:8px;background:#fff8df}.safety-conclusion strong{color:#765800;font-size:11px}.safety-conclusion p{margin:4px 0 0;color:#5c533b}
@media(max-width:1180px){.bcnf-lab,.safety-lab{grid-template-columns:1fr}.bcnf-fd-list,.safety-scenarios{grid-template-columns:repeat(2,1fr)}.mvd-rules{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.bcnf-comparison,.preservation-grid,.two-safety-goals,.mvd-rules{grid-template-columns:1fr}.lossless-definition{grid-template-columns:1fr}.bcnf-decomposition,.spurious-example,.mvd-story,.four-nf-decomposition{grid-template-columns:1fr}.bcnf-decomposition>b,.spurious-example>b,.mvd-story>b,.four-nf-decomposition>b{justify-self:center}.four-nf-decomposition>b{transform:rotate(90deg)}.safety-definition,.safety-reasoning{grid-template-columns:1fr}}
@media(max-width:680px){.bcnf-fd-list,.safety-scenarios,.closure-audit,.safety-status-grid{grid-template-columns:1fr}.condition-choice{align-items:stretch;flex-direction:column}.condition-choice em{text-align:center}.safety-result{padding:15px}.case-fds,.pair-relations{flex-direction:column}.bcnf-decomposition code,.four-nf-decomposition code{overflow-wrap:anywhere}}
+
/* Level 11 — Data Manipulation */
.dml-hero{background:radial-gradient(circle at 86% 10%,rgba(57,198,152,.2),transparent 29%),linear-gradient(135deg,#061827,#092d3c 55%,#104d48)}
.dml-cycle{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:12px;align-items:stretch}.dml-cycle article{padding:20px;border:1px solid #cfe2de;border-top:4px solid #11a679;border-radius:14px;background:linear-gradient(180deg,#fff,#f4fbf8)}.dml-cycle article span,.insert-patterns article>span,.update-rules article>span,.upsert-grid article>span,.verification-grid article>span,.dml-data-head span{font-size:.78rem;font-weight:900;letter-spacing:.08em;color:#08765a}.dml-cycle h3{margin:.55rem 0 .35rem;color:#092b3f}.dml-cycle p{margin:0;color:#526b75}.dml-cycle>b{display:grid;place-items:center;color:#0a9b74;font-size:1.3rem}
.statement-anatomy,.update-anatomy{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:20px}.statement-anatomy>pre,.update-anatomy>pre,.upsert-grid pre{margin:0;padding:24px;overflow:auto;border-radius:14px;background:#071b2d;color:#d8f5eb;line-height:1.8}.statement-anatomy pre span,.update-anatomy pre span{color:#48d7ad;font-weight:800}.statement-anatomy>div{display:grid;gap:10px}.statement-anatomy article{padding:14px 16px;border-left:4px solid #18aa7f;border-radius:8px;background:#f3faf8}.statement-anatomy p{margin:.25rem 0 0;color:#526b75}
.insert-patterns,.update-rules,.verification-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px}.insert-patterns article,.update-rules article,.verification-grid article{padding:18px;border:1px solid #d5e2e5;border-radius:13px;background:#fff}.insert-patterns code,.update-rules code,.verification-grid code{display:block;margin:.65rem 0;padding:.5rem;border-radius:6px;background:#eef8f5;color:#086f57;overflow-wrap:anywhere}.insert-patterns p,.update-rules p,.verification-grid p{color:#526b75}.constraint-path,.delete-guard,.upsert-decisions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:20px;padding:16px;border:1px solid #cfe2de;border-radius:12px;background:#eff9f6}.constraint-path>span,.delete-guard>strong{width:100%;font-size:.78rem;font-weight:900;letter-spacing:.08em;color:#08765a}.constraint-path b,.delete-guard span,.upsert-decisions b{padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #c9ded9;color:#12384a}.constraint-path i{font-style:normal;color:#0a9b74}
.blast-radius{padding:22px;border:1px solid #efcf77;border-radius:14px;background:#fff9e8}.blast-radius>strong{color:#8a5a00;font-size:1.05rem}.blast-radius p,.blast-radius li{color:#5f5b4f}.blast-radius ol{padding-left:1.25rem}.delete-workflow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.delete-workflow>div{padding:20px;border:1px solid #d6e2e5;border-radius:13px;background:#fff}.delete-workflow span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#0a263b;color:#ffd24a;font-weight:900}.delete-workflow h3{margin:.7rem 0}.delete-workflow code{display:block;color:#08765a;overflow-wrap:anywhere}.delete-guard{border-color:#f0c7c2;background:#fff3f1}.delete-guard>strong{color:#aa2e24}.delete-guard span{border-color:#edc6c0;color:#88251e}
.upsert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.upsert-grid article{min-width:0}.upsert-grid pre{margin-top:.65rem;padding:18px;font-size:.88rem}.upsert-decisions{background:#edf7ff;border-color:#c4dff0}.verification-grid article strong{display:block;margin:.65rem 0;color:#0a263b;font-size:1.08rem}
.dml-lab-shell{display:grid;grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);overflow:hidden;border:1px solid #bdd6d3;border-radius:16px;background:#fff;box-shadow:0 18px 45px rgba(4,35,47,.08)}.dml-lab-controls{padding:22px;background:#092337;color:#eaf8f4}.dml-operation-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:18px}.dml-operation-tabs button,.dml-safety-cases button{min-height:44px;border:1px solid #477083;border-radius:9px;background:#123b50;color:#dbeef0;font-weight:900;cursor:pointer}.dml-operation-tabs button[aria-selected="true"]{border-color:#48d7ad;background:#0f735d;color:#fff}.dml-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dml-field-grid label{display:grid;gap:6px;font-size:.85rem;font-weight:800}.dml-field-grid input,.dml-field-grid select{width:100%;min-height:44px;padding:9px 11px;border:1px solid #4f7383;border-radius:8px;background:#061827;color:#fff;font:inherit}.danger-confirm{display:flex;gap:9px;align-items:flex-start;margin-top:14px;color:#ffd4cf;font-weight:700}.danger-confirm input{margin-top:3px}.dml-lab-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.dml-lab-actions button{min-height:42px;padding:9px 13px;border:1px solid #4b7183;border-radius:8px;background:#153f55;color:#fff;font-weight:800;cursor:pointer}.dml-lab-actions button:first-child{background:#168f6e;border-color:#20b88e}.dml-lab-actions button:disabled{opacity:.42;cursor:not-allowed}.dml-risk-message{margin-top:16px;padding:13px;border-radius:9px;background:#102f41}.dml-risk-message strong{display:block}.dml-risk-message p{margin:.35rem 0 0;color:#c3d7de}.dml-risk-message.safe{border-left:4px solid #35d09f}.dml-risk-message.warning{border-left:4px solid #ffd15a}.dml-risk-message.danger{border-left:4px solid #ff776e}.dml-generated{margin:14px 0 0;padding:16px;overflow:auto;border:1px solid #315669;border-radius:10px;background:#04131f;color:#a8f0d8;white-space:pre-wrap}.dml-data-panel{min-width:0;padding:22px}.dml-data-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.dml-data-head h3{margin:.25rem 0 0;font-size:1.35rem}.dml-data-head>strong{padding:8px 12px;border-radius:999px;background:#eaf7f2;color:#08765a}.dml-table-wrap{overflow:auto}.dml-table-wrap table{width:100%;border-collapse:collapse}.dml-table-wrap th,.dml-table-wrap td{padding:12px 10px;text-align:left;border-bottom:1px solid #dbe6e8;white-space:nowrap}.dml-table-wrap th{background:#eff6f7;color:#244653;font-size:.8rem}.dml-table-wrap tr.preview-change{background:#fff7d9}.dml-table-wrap tr.preview-new{background:#e5faef}.dml-table-wrap tr.preview-delete{background:#ffebe8;text-decoration:line-through}.dml-table-wrap td b{color:#8c6370}.dml-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:16px;color:#526b75;font-size:.85rem}.dml-legend i{display:inline-block;width:12px;height:12px;margin-right:5px;border-radius:3px;vertical-align:-1px}.dml-legend .will-change{background:#ffe78a}.dml-legend .new-row{background:#8be0b1}.dml-legend .will-delete{background:#f2aaa2}
.dml-safety-lab{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px}.dml-safety-cases{display:grid;gap:8px;align-content:start}.dml-safety-cases button{text-align:left;background:#f3f8f8;color:#183b49;border-color:#cbdfe0}.dml-safety-cases button[aria-selected="true"]{background:#0a263b;color:#fff;border-color:#0a263b}.dml-safety-result{padding:22px;border:1px solid #cae0da;border-left:6px solid #16a77b;border-radius:13px;background:#f7fcfa}.dml-safety-result.warning{border-color:#edd48e;border-left-color:#d59a0a;background:#fffaf0}.dml-safety-result.danger{border-color:#efb9b2;border-left-color:#d34235;background:#fff5f3}.dml-safety-result>span{font-size:.78rem;font-weight:900;letter-spacing:.08em;color:#08765a}.dml-safety-result.warning>span{color:#8a5a00}.dml-safety-result.danger>span{color:#a82d24}.dml-safety-result h3{margin:.45rem 0}.dml-safety-result pre{padding:14px;overflow:auto;border-radius:9px;background:#071b2d;color:#d8f5eb;white-space:pre-wrap}.dml-safety-result p,.dml-safety-result li{color:#526b75}
@media(max-width:1100px){.dml-cycle{grid-template-columns:1fr 1fr}.dml-cycle>b{display:none}.insert-patterns,.update-rules,.verification-grid,.delete-workflow{grid-template-columns:1fr 1fr}.dml-lab-shell{grid-template-columns:1fr}.upsert-grid{grid-template-columns:1fr}}
@media(max-width:700px){.dml-cycle,.statement-anatomy,.update-anatomy,.insert-patterns,.update-rules,.verification-grid,.delete-workflow,.dml-field-grid,.dml-safety-lab{grid-template-columns:1fr}.dml-lab-controls,.dml-data-panel{padding:15px}.dml-operation-tabs{grid-template-columns:1fr}.dml-lab-actions{flex-direction:column}.dml-lab-actions button{width:100%}.constraint-path i{display:none}.dml-safety-cases{grid-template-columns:1fr 1fr}}
+
/* Level 12 — Querying Data */
.querying-hero{background:radial-gradient(circle at 84% 10%,rgba(91,149,255,.24),transparent 30%),linear-gradient(135deg,#07172d,#102f5e 58%,#184b79)}
.querying-page .select-anatomy{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1fr);gap:18px}.querying-page .select-anatomy>pre,.querying-page .sorting-demo>pre,.querying-page .case-worked>pre{margin:0;padding:24px;overflow:auto;border-radius:14px;background:#081a31;color:#dcecff;line-height:1.8}.querying-page .select-anatomy pre span{color:#74b7ff;font-weight:900}.querying-page .select-anatomy pre b{color:#ffd45f}.querying-page .select-anatomy>div{display:grid;gap:10px}.querying-page .select-anatomy article{padding:15px 17px;border-left:4px solid #3279d8;border-radius:9px;background:#f2f7ff}.querying-page .select-anatomy article>span,.querying-page .filter-family article>span,.querying-page .null-functions article>span{color:#8a6500;font-size:.78rem;font-weight:900;letter-spacing:.08em}.querying-page .select-anatomy h3{margin:.4rem 0}.querying-page .select-anatomy p{margin:0;color:#526979}.querying-page .projection-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:18px}.querying-page .projection-rules article{padding:18px;border:1px solid #ceddeb;border-radius:12px;background:#fff}.querying-page .projection-rules strong{display:block;color:#0d3d65}.querying-page .projection-rules code{display:block;margin:.6rem 0;color:#1765ad}.querying-page .projection-rules p{margin:.4rem 0 0;color:#526979}
.querying-page .order-dual{display:grid;grid-template-columns:1fr minmax(160px,.45fr) 1fr;gap:16px;align-items:center}.querying-page .order-dual article{padding:22px;border:1px solid #c8d9e8;border-radius:13px;background:#f7faff}.querying-page .order-dual article:last-child{border-color:#9fc6f1;background:#edf6ff}.querying-page .order-dual span{color:#8a6500;font-size:.78rem;font-weight:900}.querying-page .order-dual ol{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0;list-style-position:inside}.querying-page .order-dual li{padding:9px;border-radius:7px;background:#fff;color:#16456d;font-weight:800}.querying-page .order-switch{padding:16px;border-radius:999px;background:#0c3156;color:#fff;text-align:center;font-weight:800}
.querying-page .predicate-grid,.querying-page .filter-family,.querying-page .null-functions{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.querying-page .predicate-grid article,.querying-page .filter-family article,.querying-page .null-functions article{padding:18px;border:1px solid #d0deea;border-radius:12px;background:#fff}.querying-page .predicate-grid span{display:block;color:#1765ad;font-size:.78rem;font-weight:900}.querying-page .predicate-grid code,.querying-page .filter-family code,.querying-page .null-functions code{display:block;margin:.65rem 0;padding:8px;border-radius:7px;background:#eef5fc;color:#124f85;overflow-wrap:anywhere}.querying-page .predicate-grid p,.querying-page .filter-family p,.querying-page .null-functions p{color:#526979}.querying-page .precedence-card{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:18px;padding:18px;border-radius:13px;background:#081a31}.querying-page .precedence-card pre{margin:0;padding:13px;overflow:auto;border:1px solid #335776;border-radius:8px;color:#dcecff;white-space:pre-wrap}.querying-page .precedence-card>b{color:#ffd45f}.querying-page .precedence-card p{grid-column:1/-1;margin:0;color:#d4e1ed}.querying-page .pattern-examples{display:flex;flex-wrap:wrap;gap:10px;margin-top:17px}.querying-page .pattern-examples span{padding:10px 13px;border:1px solid #c7dbec;border-radius:999px;background:#f4f9ff;color:#416072}.querying-page .pattern-examples code{color:#145d9e;font-weight:900}
.querying-page .null-query-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:15px;align-items:center}.querying-page .null-query-compare article{padding:22px;border:1px solid #e8bbb4;border-radius:13px;background:#fff3f1}.querying-page .null-query-compare article.correct{border-color:#9ed8c2;background:#eefaf5}.querying-page .null-query-compare span{color:#ae3328;font-size:.78rem;font-weight:900}.querying-page .null-query-compare .correct span{color:#087252}.querying-page .null-query-compare code,.querying-page .null-query-compare strong{display:block;margin:.65rem 0}.querying-page .null-query-compare>b{color:#2673bb;font-size:1.4rem}.querying-page .null-functions{grid-template-columns:repeat(3,1fr);margin-top:17px}
.querying-page .sorting-demo{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px}.querying-page .sorting-demo>div{display:grid;grid-template-columns:1fr 1fr;gap:11px}.querying-page .sorting-demo article{padding:16px;border:1px solid #d0deea;border-radius:11px;background:#f8fbff}.querying-page .sorting-demo article b{color:#0e487b}.querying-page .sorting-demo article p{margin:.45rem 0 0;color:#526979}.querying-page .case-worked{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.7fr);gap:18px;align-items:center}.querying-page .case-flow{display:grid;gap:10px}.querying-page .case-flow span{padding:15px;border:1px solid #c8dced;border-radius:9px;background:#f3f8ff;color:#164e7d;font-weight:800}.querying-page .case-flow b{color:#3177bb;text-align:center}
.querying-page .query-builder-shell{display:grid;grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);overflow:hidden;border:1px solid #bed3e5;border-radius:16px;background:#fff;box-shadow:0 18px 45px rgba(10,42,78,.09)}.querying-page .query-builder-controls{padding:20px;background:#0a2442;color:#e7f1ff}.querying-page .query-builder-controls fieldset{margin:0 0 13px;padding:14px;border:1px solid #416382;border-radius:10px}.querying-page .query-builder-controls legend{padding:0 6px;color:#ffd45f;font-size:.88rem;font-weight:900}.querying-page .projection-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}.querying-page .projection-options label,.querying-page .distinct-choice{display:flex;gap:7px;align-items:center;min-height:34px}.querying-page .distinct-choice{margin-top:9px;color:#cfe0f0;font-size:.88rem}.querying-page .query-filter-row{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:8px;align-items:end;padding:10px 0;border-top:1px solid #355976}.querying-page .query-filter-row:first-child{border-top:0}.querying-page .query-filter-row label,.querying-page .connector-choice,.querying-page .query-sort-grid label{display:grid;gap:5px;color:#dce9f5;font-size:.82rem;font-weight:800}.querying-page .query-filter-row .filter-enabled{display:flex;align-items:center;align-self:center}.querying-page .query-filter-row select,.querying-page .query-filter-row input,.querying-page .connector-choice select,.querying-page .query-sort-grid select{width:100%;min-height:42px;padding:8px;border:1px solid #557591;border-radius:7px;background:#071a30;color:#fff;font:inherit}.querying-page .connector-choice{margin-top:8px}.querying-page .query-sort-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.querying-page .query-builder-actions{display:flex;gap:8px}.querying-page .query-builder-actions button,.querying-page #copyQueryButton{min-height:43px;padding:9px 14px;border:1px solid #477096;border-radius:8px;background:#16476f;color:#fff;font-weight:900;cursor:pointer}.querying-page .query-builder-actions button:first-child{border-color:#438df0;background:#2675da}.querying-page .query-builder-output{min-width:0;padding:21px}.querying-page .generated-query{border-radius:11px;background:#081a31}.querying-page .generated-query>span{display:block;padding:11px 14px;border-bottom:1px solid #315473;color:#7dbaff;font-size:.78rem;font-weight:900}.querying-page .generated-query pre{margin:0;padding:16px;overflow:auto;color:#dcecff;white-space:pre-wrap}.querying-page .query-stage-summary{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:7px;align-items:center;margin:14px 0}.querying-page .query-stage-summary div{padding:9px;border-radius:8px;background:#eef5fc;text-align:center}.querying-page .query-stage-summary strong,.querying-page .query-stage-summary span{display:block}.querying-page .query-stage-summary strong{color:#0f5591;font-size:1.2rem}.querying-page .query-stage-summary span{color:#587083;font-size:.72rem}.querying-page .query-stage-summary>b{color:#3177bb}.querying-page .query-result-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.querying-page .query-result-head span{color:#8a6500;font-size:.75rem;font-weight:900}.querying-page .query-result-head h3{margin:.25rem 0}.querying-page #copyQueryButton{background:#fff;color:#14598f}.querying-page .query-result-wrap{overflow:auto;border:1px solid #cadae7;border-radius:10px}.querying-page .query-result-wrap table{width:100%;border-collapse:collapse}.querying-page .query-result-wrap th,.querying-page .query-result-wrap td{padding:10px 11px;border-bottom:1px solid #dce6ef;text-align:left;white-space:nowrap}.querying-page .query-result-wrap th{background:#eaf3fb;color:#164a74;font-size:.8rem}.querying-page .query-result-wrap .is-null{color:#986b00;font-style:italic}.querying-page .query-copy-status{min-height:1.4em;margin:.5rem 0 0;color:#416579}
.querying-page .predicate-lab-shell{display:grid;grid-template-columns:270px minmax(0,1fr);gap:17px}.querying-page .predicate-case-list{display:grid;align-content:start;gap:8px}.querying-page .predicate-case-list button{min-height:45px;padding:9px 12px;border:1px solid #c3d7e7;border-radius:8px;background:#f5f9fd;color:#164e7b;text-align:left;font-weight:850;cursor:pointer}.querying-page .predicate-case-list button[aria-selected="true"]{border-color:#174f80;background:#0b3156;color:#fff}.querying-page .predicate-case-result{padding:21px;border:1px solid #c4d8e7;border-radius:13px;background:#fff}.querying-page .predicate-case-result header>span{color:#1765ad;font-size:.8rem;font-weight:900}.querying-page .predicate-case-result h3{margin:.55rem 0}.querying-page .predicate-case-result header p{color:#526979}.querying-page .predicate-table-wrap{overflow:auto}.querying-page .predicate-table-wrap table{width:100%;border-collapse:collapse}.querying-page .predicate-table-wrap th,.querying-page .predicate-table-wrap td{padding:11px;border-bottom:1px solid #dce6ef;text-align:left}.querying-page .predicate-table-wrap th{background:#edf4fb;color:#174c76}.querying-page .outcome-true{background:#e9f9f1}.querying-page .outcome-false{background:#fff4f1}.querying-page .outcome-unknown{background:#fff9df}
@media(max-width:1150px){.querying-page .predicate-grid,.querying-page .filter-family{grid-template-columns:1fr 1fr}.querying-page .query-builder-shell{grid-template-columns:1fr}.querying-page .query-filter-row{grid-template-columns:auto 1fr 1fr 1fr}}
@media(max-width:800px){.querying-page .select-anatomy,.querying-page .sorting-demo,.querying-page .case-worked,.querying-page .predicate-lab-shell{grid-template-columns:1fr}.querying-page .projection-rules,.querying-page .null-functions{grid-template-columns:1fr}.querying-page .order-dual,.querying-page .null-query-compare,.querying-page .precedence-card{grid-template-columns:1fr}.querying-page .null-query-compare>b{justify-self:center;transform:rotate(90deg)}.querying-page .precedence-card p{grid-column:auto}.querying-page .query-stage-summary{grid-template-columns:1fr 1fr}.querying-page .query-stage-summary>b{display:none}}
@media(max-width:600px){.querying-page .predicate-grid,.querying-page .filter-family,.querying-page .sorting-demo>div,.querying-page .projection-options,.querying-page .query-filter-row,.querying-page .query-sort-grid{grid-template-columns:1fr}.querying-page .query-filter-row .filter-enabled{min-height:34px}.querying-page .query-builder-controls,.querying-page .query-builder-output{padding:14px}.querying-page .query-builder-actions{flex-direction:column}.querying-page .query-builder-actions button{width:100%}.querying-page .predicate-case-list{grid-template-columns:1fr 1fr}}
+
/* Level 13 — Functions and Grouping */
.grouping-hero{background:radial-gradient(circle at 85% 11%,rgba(246,190,65,.22),transparent 29%),linear-gradient(135deg,#071827,#14324a 55%,#145d58)}
.grouping-page .function-family-grid,.grouping-page .aggregate-cards,.grouping-page .group-error-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.grouping-page .function-family-grid article,.grouping-page .aggregate-cards article,.grouping-page .group-error-grid article{padding:18px;border:1px solid #cedee4;border-radius:12px;background:#fff}.grouping-page .function-family-grid span,.grouping-page .group-error-grid span{color:#8a6500;font-size:.77rem;font-weight:900;letter-spacing:.08em}.grouping-page .function-family-grid code,.grouping-page .group-error-grid code{display:block;margin:.55rem 0;padding:7px;border-radius:6px;background:#eef8f5;color:#0b6c61;overflow-wrap:anywhere}.grouping-page .function-family-grid p,.grouping-page .aggregate-cards p,.grouping-page .group-error-grid p{color:#526b75}.grouping-page .scalar-row-flow,.grouping-page .count-comparison{display:flex;flex-wrap:wrap;gap:11px;align-items:center;justify-content:center;margin-top:17px;padding:18px;border-radius:12px;background:#09283d;color:#fff}.grouping-page .scalar-row-flow span,.grouping-page .count-comparison>*{padding:10px 13px;border:1px solid #3d6275;border-radius:8px}.grouping-page .scalar-row-flow code{color:#9ce8d8}.grouping-page .scalar-row-flow b{color:#ffd45b}.grouping-page .aggregate-cards{grid-template-columns:repeat(5,1fr)}.grouping-page .aggregate-cards strong,.grouping-page .aggregate-cards span{display:block}.grouping-page .aggregate-cards strong{color:#0d594f;font-size:1.05rem}.grouping-page .aggregate-cards span{margin:.4rem 0;color:#8a6500;font-size:.8rem;font-weight:900}
.grouping-page .grouping-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center}.grouping-page .source-stack{display:grid;gap:7px}.grouping-page .source-stack span{padding:11px;border:1px solid #d0e0e5;border-radius:8px;background:#f5fafb}.grouping-page .grouping-flow>b{color:#0d776d}.grouping-page .group-stack{display:grid;grid-template-columns:1fr 1fr;gap:9px}.grouping-page .group-stack article{padding:16px;border:1px solid #a9d8cc;border-radius:10px;background:#eaf9f5}.grouping-page .group-stack strong,.grouping-page .group-stack span{display:block}.grouping-page .group-stack strong{color:#086157}.grouping-page .group-stack span{margin-top:.3rem;color:#526b75}.grouping-page .group-rule{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:17px}.grouping-page .group-rule pre,.grouping-page .conditional-worked>pre{margin:0;padding:20px;overflow:auto;border-radius:11px;background:#08283d;color:#d9efec;white-space:pre-wrap}.grouping-page .group-rule>div{padding:20px;border:1px solid #d1e0e5;border-radius:11px;background:#fff}.grouping-page .group-rule>div strong{color:#0a6259}.grouping-page .group-rule>div code{display:block;margin-top:1rem;color:#a33f28}
.grouping-page .filter-stage-map{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:9px;align-items:stretch}.grouping-page .filter-stage-map article{padding:17px;border:1px solid #d0dfe4;border-radius:10px;background:#f8fbfc}.grouping-page .filter-stage-map article.row-stage{border-color:#efcf77;background:#fff9e8}.grouping-page .filter-stage-map article.group-stage{border-color:#a8d8cb;background:#effaf7}.grouping-page .filter-stage-map span{font-weight:900;color:#0a5f58}.grouping-page .filter-stage-map p{color:#526b75}.grouping-page .filter-stage-map>b{display:grid;place-items:center;color:#0c8175}.grouping-page .where-having-examples{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:15px}.grouping-page .where-having-examples article{padding:17px;border-left:5px solid #d4af37;background:#fff9e7}.grouping-page .where-having-examples span{font-size:.77rem;font-weight:900;color:#795b00}.grouping-page .where-having-examples code{display:block;margin:.5rem 0;color:#0b645b}.grouping-page .conditional-worked{display:grid;grid-template-columns:1.2fr .8fr;gap:17px}.grouping-page .conditional-worked>div{display:grid;grid-template-columns:1fr 1fr;gap:9px}.grouping-page .conditional-worked article{padding:15px;border:1px solid #cde0dc;border-radius:9px;background:#f1faf7}.grouping-page .conditional-worked span,.grouping-page .conditional-worked strong{display:block}.grouping-page .conditional-worked span{color:#8a6500;font-size:.75rem;font-weight:900}.grouping-page .conditional-worked strong{margin-top:.45rem;color:#0a5e56}
.grouping-page .aggregate-lab-shell{display:grid;grid-template-columns:320px minmax(0,1fr);overflow:hidden;border:1px solid #bdd8d3;border-radius:15px;background:#fff}.grouping-page .aggregate-controls{display:grid;align-content:start;gap:11px;padding:20px;background:#09283d;color:#fff}.grouping-page .aggregate-controls label{display:grid;gap:5px;font-size:.86rem;font-weight:850}.grouping-page .aggregate-controls select,.grouping-page .aggregate-controls input{width:100%;min-height:43px;padding:8px;border:1px solid #557688;border-radius:7px;background:#061a2a;color:#fff;font:inherit}.grouping-page .aggregate-controls .conditional-toggle{display:flex;align-items:flex-start;gap:8px}.grouping-page .aggregate-controls .conditional-toggle input{width:auto;min-height:auto;margin-top:4px}.grouping-page .aggregate-controls button{min-height:44px;border:1px solid #397263;border-radius:8px;background:#137b6a;color:#fff;font-weight:900;cursor:pointer}.grouping-page .aggregate-controls button:last-child{background:#173e53}.grouping-page .aggregate-output{min-width:0;padding:20px}.grouping-page .aggregate-sql{border-radius:10px;background:#071d30}.grouping-page .aggregate-sql>span{display:block;padding:10px 13px;border-bottom:1px solid #35586c;color:#ffd45b;font-size:.75rem;font-weight:900}.grouping-page .aggregate-sql pre{margin:0;padding:15px;overflow:auto;color:#d9efec;white-space:pre-wrap}.grouping-page .aggregate-stage-counts{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:7px;align-items:center;margin:13px 0}.grouping-page .aggregate-stage-counts div{padding:9px;border-radius:7px;background:#edf7f4;text-align:center}.grouping-page .aggregate-stage-counts strong,.grouping-page .aggregate-stage-counts span{display:block}.grouping-page .aggregate-stage-counts strong{color:#0a675c;font-size:1.15rem}.grouping-page .aggregate-stage-counts span{color:#5a716f;font-size:.72rem}.grouping-page .aggregate-stage-counts b{color:#0c8175}.grouping-page .group-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px;margin-bottom:14px}.grouping-page .group-members div{padding:9px;border:1px solid #d1e1de;border-radius:7px;background:#f8fbfa}.grouping-page .group-members strong,.grouping-page .group-members span{display:block}.grouping-page .group-members strong{color:#0a665c}.grouping-page .group-members span{margin-top:.25rem;color:#5a7075;font-size:.76rem}.grouping-page .aggregate-result-head span{color:#8a6500;font-size:.75rem;font-weight:900}.grouping-page .aggregate-result-head h3{margin:.3rem 0}.grouping-page .aggregate-table-wrap{overflow:auto;border:1px solid #cbdeda;border-radius:9px}.grouping-page .aggregate-table-wrap table{width:100%;border-collapse:collapse}.grouping-page .aggregate-table-wrap th,.grouping-page .aggregate-table-wrap td{padding:10px 12px;border-bottom:1px solid #dbe7e4;text-align:left}.grouping-page .aggregate-table-wrap th{background:#eaf6f2;color:#0a554e}.grouping-page .aggregate-table-wrap .is-null{color:#8b6500;font-style:italic}
.grouping-page .count-lab-shell{display:grid;grid-template-columns:240px 1fr;gap:16px}.grouping-page .count-case-list{display:grid;align-content:start;gap:8px}.grouping-page .count-case-list button{min-height:44px;padding:9px 12px;border:1px solid #c5dad5;border-radius:8px;background:#f5faf9;color:#0c5d55;text-align:left;font-weight:850;cursor:pointer}.grouping-page .count-case-list button[aria-selected="true"]{background:#0b554f;color:#fff}.grouping-page .count-case-result{padding:21px;border:1px solid #c8ddd8;border-radius:12px;background:#fff}.grouping-page .count-case-result>span{color:#8a6500;font-size:.76rem;font-weight:900}.grouping-page .count-case-result h3{margin:.5rem 0}.grouping-page .count-inputs{display:flex;flex-wrap:wrap;gap:9px;margin:14px 0}.grouping-page .count-inputs div{display:grid;gap:4px;padding:11px;border-radius:8px;background:#e8f8f3}.grouping-page .count-inputs .excluded{background:#fff0ec;text-decoration:line-through}.grouping-page .count-inputs code{font-weight:900}.grouping-page .count-inputs small{color:#58706e}.grouping-page .empty-aggregate{margin:14px 0;padding:22px;border:2px dashed #c8d9d5;border-radius:9px;color:#647a78;text-align:center}
@media(max-width:1150px){.grouping-page .function-family-grid,.grouping-page .group-error-grid{grid-template-columns:1fr 1fr}.grouping-page .aggregate-cards{grid-template-columns:repeat(3,1fr)}.grouping-page .aggregate-lab-shell{grid-template-columns:1fr}}
@media(max-width:800px){.grouping-page .grouping-flow,.grouping-page .group-rule,.grouping-page .conditional-worked,.grouping-page .count-lab-shell{grid-template-columns:1fr}.grouping-page .grouping-flow>b{text-align:center}.grouping-page .filter-stage-map{grid-template-columns:1fr 1fr}.grouping-page .filter-stage-map>b{display:none}.grouping-page .aggregate-stage-counts{grid-template-columns:1fr 1fr}.grouping-page .aggregate-stage-counts>b{display:none}}
@media(max-width:600px){.grouping-page .function-family-grid,.grouping-page .aggregate-cards,.grouping-page .group-error-grid,.grouping-page .group-stack,.grouping-page .where-having-examples,.grouping-page .conditional-worked>div,.grouping-page .filter-stage-map{grid-template-columns:1fr}.grouping-page .scalar-row-flow,.grouping-page .count-comparison{align-items:stretch;flex-direction:column}.grouping-page .aggregate-controls,.grouping-page .aggregate-output{padding:14px}.grouping-page .count-case-list{grid-template-columns:1fr 1fr}}

/* Level 14 — Joins and Set Operations */
.joins-hero{background:radial-gradient(circle at 84% 12%,rgba(203,103,255,.2),transparent 29%),linear-gradient(135deg,#071627,#22305c 58%,#4b3371)}
.joins-page .join-anatomy,.joins-page .special-joins,.joins-page .on-where-compare{display:grid;grid-template-columns:1fr 1fr;gap:15px}.joins-page .join-anatomy>pre,.joins-page .special-joins pre,.joins-page .on-where-compare pre{margin:0;padding:20px;overflow:auto;border-radius:11px;background:#0a1b32;color:#e5e9ff;white-space:pre-wrap}.joins-page .join-anatomy>div{display:grid;gap:9px}.joins-page .join-anatomy article,.joins-page .join-type-grid article,.joins-page .cardinality-grid article,.joins-page .set-grid article{padding:17px;border:1px solid #d4daec;border-radius:11px;background:#fff}.joins-page .join-anatomy p,.joins-page .join-type-grid p,.joins-page .cardinality-grid p,.joins-page .set-grid p{color:#566878}.joins-page .join-type-grid,.joins-page .cardinality-grid,.joins-page .set-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.joins-page .join-type-grid span,.joins-page .on-where-compare span,.joins-page .special-joins span,.joins-page .set-grid span{color:#8a6500;font-size:.76rem;font-weight:900}.joins-page .join-type-grid strong{display:block;margin:.6rem 0;color:#3d3c79}.joins-page .join-memory,.joins-page .compatibility-rule{display:flex;flex-wrap:wrap;gap:9px;margin-top:15px;padding:15px;border-radius:11px;background:#f1effb}.joins-page .join-memory span,.joins-page .compatibility-rule b{padding:8px 11px;border:1px solid #d3caed;border-radius:999px;background:#fff;color:#443d78}.joins-page .on-where-compare article{padding:19px;border:1px solid #d1daeb;border-radius:12px}.joins-page .on-where-compare article:first-child{border-color:#9bd4c3;background:#effaf6}.joins-page .multiplication-warning{margin-top:15px;padding:17px;border-left:5px solid #d94f42;background:#fff2ef}.joins-page .multiplication-warning p{margin:.4rem 0 0;color:#654e49}.joins-page .special-joins article{padding:19px;border:1px solid #d1d9eb;border-radius:12px}.joins-page .special-joins p{color:#566878}
.joins-page .join-lab-tabs,.joins-page .set-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.joins-page .join-lab-tabs button,.joins-page .set-buttons button{min-height:43px;padding:9px 14px;border:1px solid #bfc9e0;border-radius:8px;background:#fff;color:#414675;font-weight:900;cursor:pointer}.joins-page .join-lab-tabs button[aria-selected="true"],.joins-page .set-buttons button[aria-selected="true"]{background:#343b74;color:#fff}.joins-page .join-lab-layout{display:grid;grid-template-columns:310px 1fr;gap:15px}.joins-page #joinSourceTables{display:grid;align-content:start;gap:12px}.joins-page #joinSourceTables article{overflow:hidden;border:1px solid #cdd7e7;border-radius:10px;background:#fff}.joins-page #joinSourceTables h3{margin:0;padding:10px 12px;background:#413f78;color:#fff}.joins-page .join-result-panel{min-width:0}.joins-page .join-sql{border-radius:10px;background:#091c32}.joins-page .join-sql>span{display:block;padding:9px 13px;border-bottom:1px solid #354b68;color:#d9b7ff;font-size:.75rem;font-weight:900}.joins-page .join-sql pre{margin:0;padding:15px;overflow:auto;color:#e5e9ff;white-space:pre-wrap}.joins-page .join-verdict{display:flex;justify-content:space-between;gap:12px;margin:12px 0;padding:12px;border-radius:8px;background:#efedf9;color:#414675}.joins-page .join-table-wrap{overflow:auto}.joins-page .join-table-wrap table{width:100%;border-collapse:collapse;background:#fff}.joins-page .join-table-wrap th,.joins-page .join-table-wrap td{padding:9px;border:1px solid #dae1eb;text-align:left;white-space:nowrap}.joins-page .join-table-wrap th{background:#f0f2f8;color:#3e4770;font-size:.77rem}.joins-page .join-table-wrap tr.match{background:#eaf8f1}.joins-page .join-table-wrap tr.left-only,.joins-page .join-table-wrap tr.right-only{background:#fff4dc}.joins-page .join-table-wrap .is-null{color:#986b00;font-style:italic}.joins-page .set-lab-layout{display:grid;gap:14px}.joins-page .set-inputs{display:grid;grid-template-columns:1fr 1fr;gap:13px}.joins-page .set-inputs article{padding:17px;border:1px solid #d0d8e8;border-radius:10px}.joins-page .set-inputs span{display:block;margin-bottom:10px;color:#8a6500;font-size:.76rem;font-weight:900}.joins-page .set-inputs code,.joins-page .set-result code{display:inline-block;margin:4px;padding:8px 11px;border-radius:999px;background:#eeeafa;color:#453d78}.joins-page .set-result{padding:20px;border:1px solid #cec7e8;border-radius:11px;background:#f8f6ff}.joins-page .set-result>span{color:#725800;font-size:.76rem;font-weight:900}.joins-page .set-result h3{margin:.5rem 0}
@media(max-width:1000px){.joins-page .join-type-grid,.joins-page .cardinality-grid,.joins-page .set-grid{grid-template-columns:1fr 1fr}.joins-page .join-lab-layout{grid-template-columns:1fr}.joins-page #joinSourceTables{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.joins-page .join-anatomy,.joins-page .special-joins,.joins-page .on-where-compare,.joins-page .join-type-grid,.joins-page .cardinality-grid,.joins-page .set-grid,.joins-page .set-inputs,.joins-page #joinSourceTables{grid-template-columns:1fr}.joins-page .join-verdict{flex-direction:column}}

/* Level 15 — Subqueries and Advanced SQL */
.advanced-sql-hero{background:radial-gradient(circle at 85% 12%,rgba(51,214,184,.2),transparent 30%),linear-gradient(135deg,#061925,#123d4b 55%,#15695f)}
.advanced-sql-page .advanced-sql-page__shape-grid,.advanced-sql-page .advanced-sql-page__operator-grid,.advanced-sql-page .advanced-sql-page__correlation-notes,.advanced-sql-page .advanced-sql-page__rank-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.advanced-sql-page .advanced-sql-page__shape-grid article,.advanced-sql-page .advanced-sql-page__operator-grid article,.advanced-sql-page .advanced-sql-page__correlation-notes article,.advanced-sql-page .advanced-sql-page__rank-grid article{min-width:0;padding:17px;border:1px solid #c9dedc;border-radius:12px;background:#fff}
.advanced-sql-page .advanced-sql-page__shape-grid span,.advanced-sql-page .advanced-sql-page__cte-layout span,.advanced-sql-page .advanced-sql-page__recursive-flow span,.advanced-sql-page .advanced-sql-page__rank-grid span,.advanced-sql-page .advanced-sql-page__group-window span{color:#8a6500;font-size:.75rem;font-weight:900;letter-spacing:.06em}
.advanced-sql-page .advanced-sql-page__shape-grid h3{margin:.55rem 0;color:#0a625b}.advanced-sql-page .advanced-sql-page__shape-grid p,.advanced-sql-page .advanced-sql-page__operator-grid p,.advanced-sql-page .advanced-sql-page__correlation-notes p,.advanced-sql-page .advanced-sql-page__rank-grid p{color:#526b72}
.advanced-sql-page .advanced-sql-page__shape-grid pre{margin:10px 0;padding:13px;overflow:auto;border-radius:8px;background:#072535;color:#d9f4ef;font-size:.8rem;white-space:pre-wrap}
.advanced-sql-page .advanced-sql-page__operator-grid b{display:block;color:#08766d;font-size:1.15rem}.advanced-sql-page .advanced-sql-page__operator-grid code{display:block;padding:8px;border-radius:7px;background:#edf8f6;color:#075b54;overflow-wrap:anywhere}
.advanced-sql-page .advanced-sql-page__null-warning{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.9fr);gap:8px 20px;margin-top:15px;padding:18px;border-left:5px solid #e0a719;background:#fff8df}.advanced-sql-page .advanced-sql-page__null-warning strong{color:#745600}.advanced-sql-page .advanced-sql-page__null-warning p{margin:.45rem 0;color:#655b3d}.advanced-sql-page .advanced-sql-page__null-warning pre{grid-row:1/3;grid-column:2;margin:0;padding:14px;overflow:auto;border-radius:8px;background:#26322e;color:#ecfff9;white-space:pre-wrap}
.advanced-sql-page .advanced-sql-page__truth-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.advanced-sql-page .advanced-sql-page__truth-strip span{padding:9px 12px;border:1px solid #b9dcd6;border-radius:999px;background:#eefaf7;color:#285d58}
.advanced-sql-page .advanced-sql-page__correlation-map{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:11px;align-items:center}.advanced-sql-page .advanced-sql-page__correlation-map>div{padding:18px;border:1px solid #bcdcd6;border-radius:11px;background:#f2fbf9}.advanced-sql-page .advanced-sql-page__correlation-map span{display:block;color:#8a6500;font-size:.75rem;font-weight:900}.advanced-sql-page .advanced-sql-page__correlation-map strong{display:block;margin:.5rem 0;color:#075e56}.advanced-sql-page .advanced-sql-page__correlation-map p{color:#536c6a}.advanced-sql-page .advanced-sql-page__correlation-map>b{color:#119486}.advanced-sql-page .advanced-sql-page__correlation-notes{grid-template-columns:repeat(3,1fr);margin-top:14px}
.advanced-sql-page .advanced-sql-page__cte-layout,.advanced-sql-page .advanced-sql-page__window-anatomy{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.advanced-sql-page .advanced-sql-page__cte-layout>pre,.advanced-sql-page .advanced-sql-page__window-anatomy>pre{margin:0;padding:20px;overflow:auto;border-radius:11px;background:#062536;color:#d9f4ef;white-space:pre-wrap}.advanced-sql-page .advanced-sql-page__cte-layout>div,.advanced-sql-page .advanced-sql-page__window-anatomy>div{display:grid;gap:8px}.advanced-sql-page .advanced-sql-page__cte-layout article,.advanced-sql-page .advanced-sql-page__window-anatomy article{padding:14px;border:1px solid #c9deda;border-radius:9px;background:#fff}.advanced-sql-page .advanced-sql-page__cte-layout p,.advanced-sql-page .advanced-sql-page__window-anatomy p{margin:.35rem 0;color:#526b72}
.advanced-sql-page .advanced-sql-page__subheading{margin:24px 0 12px;color:#0b5f58}.advanced-sql-page .advanced-sql-page__recursive-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:10px;align-items:stretch}.advanced-sql-page .advanced-sql-page__recursive-flow article{padding:16px;border:1px solid #badbd5;border-radius:10px;background:#f2fbf9}.advanced-sql-page .advanced-sql-page__recursive-flow code{display:block;margin:.6rem 0;padding:8px;border-radius:6px;background:#dff3ef;color:#075e56;overflow-wrap:anywhere}.advanced-sql-page .advanced-sql-page__recursive-flow p{color:#526b72}.advanced-sql-page .advanced-sql-page__recursive-flow>b{display:grid;place-items:center;color:#0b8b7f}
.advanced-sql-page .advanced-sql-page__rank-grid{grid-template-columns:repeat(5,1fr);margin-top:16px}.advanced-sql-page .advanced-sql-page__rank-grid strong{display:block;margin:.55rem 0;color:#075f58;font-size:1.05rem}.advanced-sql-page .advanced-sql-page__group-window{display:grid;grid-template-columns:1fr auto 1fr;gap:13px;align-items:center;margin-top:15px}.advanced-sql-page .advanced-sql-page__group-window article{padding:17px;border:1px solid #c9ddda;border-radius:11px;background:#f3fbf9}.advanced-sql-page .advanced-sql-page__group-window h3{margin:.45rem 0;color:#075f58}.advanced-sql-page .advanced-sql-page__group-window p{color:#526b72}.advanced-sql-page .advanced-sql-page__group-window>b{color:#8a6500}
.advanced-sql-page .advanced-sql-page__decision-table,.advanced-sql-page .advanced-sql-page__table-wrap{overflow:auto;border:1px solid #c7deda;border-radius:11px}.advanced-sql-page .advanced-sql-page__decision-table table,.advanced-sql-page .advanced-sql-page__table-wrap table{width:100%;border-collapse:collapse;background:#fff}.advanced-sql-page .advanced-sql-page__decision-table th,.advanced-sql-page .advanced-sql-page__decision-table td,.advanced-sql-page .advanced-sql-page__table-wrap th,.advanced-sql-page .advanced-sql-page__table-wrap td{padding:11px 13px;border-bottom:1px solid #d9e7e4;text-align:left}.advanced-sql-page .advanced-sql-page__decision-table th,.advanced-sql-page .advanced-sql-page__table-wrap th{background:#e8f5f2;color:#075a53;font-size:.8rem}
.advanced-sql-page .advanced-sql-page__trace-shell{display:grid;grid-template-columns:240px minmax(0,1fr);overflow:hidden;border:1px solid #bcd9d4;border-radius:14px;background:#fff}.advanced-sql-page .advanced-sql-page__trace-cases{display:grid;align-content:start;gap:8px;padding:18px;background:#062536}.advanced-sql-page .advanced-sql-page__trace-cases button{min-height:45px;padding:10px 12px;border:1px solid #466b73;border-radius:8px;background:#0c3547;color:#d9f4ef;text-align:left;font-weight:850;cursor:pointer}.advanced-sql-page .advanced-sql-page__trace-cases button[aria-selected="true"]{border-color:#61d9c8;background:#108478;color:#fff}.advanced-sql-page .advanced-sql-page__trace-output{min-width:0;padding:19px}
.advanced-sql-page .advanced-sql-page__sql-panel{overflow:hidden;border-radius:10px;background:#061e30}.advanced-sql-page .advanced-sql-page__sql-panel>span{display:block;padding:10px 13px;border-bottom:1px solid #315766;color:#72e2d2;font-size:.75rem;font-weight:900}.advanced-sql-page .advanced-sql-page__sql-panel pre{margin:0;padding:15px;overflow:auto;color:#def8f4;white-space:pre-wrap}
.advanced-sql-page .advanced-sql-page__trace-stage{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:7px;align-items:stretch;margin:14px 0}.advanced-sql-page .advanced-sql-page__trace-stage div{padding:10px;border-radius:8px;background:#eef8f6;text-align:center}.advanced-sql-page .advanced-sql-page__trace-stage span,.advanced-sql-page .advanced-sql-page__trace-stage strong{display:block}.advanced-sql-page .advanced-sql-page__trace-stage span{color:#607772;font-size:.68rem;font-weight:900}.advanced-sql-page .advanced-sql-page__trace-stage strong{margin-top:.35rem;color:#075c55;font-size:.83rem}.advanced-sql-page .advanced-sql-page__trace-stage>b{display:grid;place-items:center;color:#119386}.advanced-sql-page .advanced-sql-page__trace-stage .is-keep{color:#08734b}.advanced-sql-page .advanced-sql-page__trace-stage .is-filter{color:#b23f32}
.advanced-sql-page .advanced-sql-page__trace-controls{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.advanced-sql-page .advanced-sql-page__trace-controls button{min-height:40px;padding:8px 13px;border:1px solid #75bcb1;border-radius:7px;background:#fff;color:#075e56;font-weight:850;cursor:pointer}.advanced-sql-page .advanced-sql-page__trace-controls button:disabled{opacity:.45;cursor:not-allowed}.advanced-sql-page .advanced-sql-page__trace-controls span{color:#536d69;font-weight:800}.advanced-sql-page .advanced-sql-page__table-wrap tr.is-current{outline:3px solid #e4b52f;outline-offset:-3px}.advanced-sql-page .advanced-sql-page__table-wrap tr.is-filtered{background:#fff3ef}.advanced-sql-page .advanced-sql-page__table-wrap tr.is-kept{background:#ebfaf4}.advanced-sql-page .advanced-sql-page__trace-note{margin-bottom:0;color:#536d69}
.advanced-sql-page .advanced-sql-page__window-lab{display:grid;grid-template-columns:280px minmax(0,1fr);overflow:hidden;border:1px solid #bddbd6;border-radius:14px;background:#fff}.advanced-sql-page .advanced-sql-page__window-controls{display:grid;align-content:start;gap:14px;padding:19px;background:#072536;color:#fff}.advanced-sql-page .advanced-sql-page__window-controls label{display:grid;gap:6px;font-size:.84rem;font-weight:850}.advanced-sql-page .advanced-sql-page__window-controls select{width:100%;min-height:43px;padding:8px;border:1px solid #4d7279;border-radius:7px;background:#051c2b;color:#fff;font:inherit}.advanced-sql-page .advanced-sql-page__window-key{display:grid;gap:9px;padding-top:10px;border-top:1px solid #355967;color:#c8e4df;font-size:.78rem}.advanced-sql-page .advanced-sql-page__window-key span{display:flex;gap:7px;align-items:center}.advanced-sql-page .advanced-sql-page__window-key i{width:11px;height:11px;border-radius:50%;background:#e8b72f}.advanced-sql-page .advanced-sql-page__window-key .partition-dot{background:#53cdbd}.advanced-sql-page .advanced-sql-page__window-output{min-width:0;padding:19px}.advanced-sql-page .advanced-sql-page__window-summary{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin:12px 0;padding:11px;border-radius:8px;background:#edf8f6}.advanced-sql-page .advanced-sql-page__window-summary strong{color:#07645b}.advanced-sql-page .advanced-sql-page__window-summary span{color:#526d68}.advanced-sql-page .advanced-sql-page__table-wrap tr.partition-start td{border-top:4px solid #65c7b9}.advanced-sql-page .advanced-sql-page__table-wrap tr.has-tie{background:#fff8df}.advanced-sql-page .advanced-sql-page__table-wrap td.calculated{color:#07685f;font-weight:900}
@media(max-width:1100px){.advanced-sql-page .advanced-sql-page__shape-grid,.advanced-sql-page .advanced-sql-page__operator-grid{grid-template-columns:1fr 1fr}.advanced-sql-page .advanced-sql-page__rank-grid{grid-template-columns:repeat(3,1fr)}.advanced-sql-page .advanced-sql-page__trace-shell,.advanced-sql-page .advanced-sql-page__window-lab{grid-template-columns:1fr}.advanced-sql-page .advanced-sql-page__trace-cases{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.advanced-sql-page .advanced-sql-page__cte-layout,.advanced-sql-page .advanced-sql-page__window-anatomy,.advanced-sql-page .advanced-sql-page__null-warning{grid-template-columns:1fr}.advanced-sql-page .advanced-sql-page__null-warning pre{grid-row:auto;grid-column:auto}.advanced-sql-page .advanced-sql-page__correlation-map,.advanced-sql-page .advanced-sql-page__recursive-flow{grid-template-columns:1fr}.advanced-sql-page .advanced-sql-page__correlation-map>b,.advanced-sql-page .advanced-sql-page__recursive-flow>b{transform:rotate(90deg)}.advanced-sql-page .advanced-sql-page__correlation-notes{grid-template-columns:1fr}.advanced-sql-page .advanced-sql-page__trace-stage{grid-template-columns:1fr 1fr}.advanced-sql-page .advanced-sql-page__trace-stage>b{display:none}}
@media(max-width:600px){.advanced-sql-page .advanced-sql-page__shape-grid,.advanced-sql-page .advanced-sql-page__operator-grid,.advanced-sql-page .advanced-sql-page__rank-grid{grid-template-columns:1fr}.advanced-sql-page .advanced-sql-page__group-window{grid-template-columns:1fr}.advanced-sql-page .advanced-sql-page__group-window>b{text-align:center}.advanced-sql-page .advanced-sql-page__trace-cases{grid-template-columns:1fr 1fr;padding:13px}.advanced-sql-page .advanced-sql-page__trace-output,.advanced-sql-page .advanced-sql-page__window-controls,.advanced-sql-page .advanced-sql-page__window-output{padding:13px}.advanced-sql-page .advanced-sql-page__trace-controls{align-items:stretch;flex-direction:column}.advanced-sql-page .advanced-sql-page__window-summary{grid-template-columns:1fr}}

/* Level 16 — Views, Indexes and Query Optimization */
.optimization-hero{background:radial-gradient(circle at 84% 12%,rgba(255,192,55,.23),transparent 30%),linear-gradient(135deg,#061725,#16344a 55%,#215d63)}
.optimization-page .optimization-page__view-flow,.optimization-page .optimization-page__correlation-map{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:11px;align-items:center}.optimization-page .optimization-page__view-flow>div{padding:18px;border:1px solid #bfdad9;border-radius:11px;background:#f1faf9}.optimization-page .optimization-page__view-flow span,.optimization-page .optimization-page__view-grid span,.optimization-page .optimization-page__materialized-compare span,.optimization-page .optimization-page__index-types>article>span,.optimization-page .optimization-page__composite-demo span,.optimization-page .optimization-page__scan-grid span,.optimization-page .optimization-page__sargable span{color:#8a6500;font-size:.76rem;font-weight:900;letter-spacing:.06em}.optimization-page .optimization-page__view-flow strong{display:block;margin:.5rem 0;color:#0a625d}.optimization-page .optimization-page__view-flow p{color:#536c6b}.optimization-page .optimization-page__view-flow>b{color:#16958b}
.optimization-page .optimization-page__view-grid,.optimization-page .optimization-page__index-rules,.optimization-page .optimization-page__scan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:15px}.optimization-page .optimization-page__view-grid article,.optimization-page .optimization-page__index-rules article,.optimization-page .optimization-page__scan-grid article{padding:17px;border:1px solid #ccdfde;border-radius:11px;background:#fff}.optimization-page .optimization-page__view-grid h3{margin:.5rem 0;color:#0a625d}.optimization-page .optimization-page__view-grid p,.optimization-page .optimization-page__index-rules p,.optimization-page .optimization-page__scan-grid p{color:#536c6b}
.optimization-page .optimization-page__materialized-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px}.optimization-page .optimization-page__materialized-compare article{padding:20px;border:1px solid #c8dedd;border-radius:12px;background:#fff}.optimization-page .optimization-page__materialized-compare article:last-child{border-color:#ebce75;background:#fff9e7}.optimization-page .optimization-page__materialized-compare strong{display:block;margin:.6rem 0;color:#0a625d}.optimization-page .optimization-page__materialized-compare li{margin:.45rem 0;color:#536c6b}.optimization-page .optimization-page__freshness-line{display:grid;grid-template-columns:1fr minmax(30px,.25fr) 1fr minmax(30px,.25fr) 1fr;align-items:center;margin-top:16px}.optimization-page .optimization-page__freshness-line div{padding:13px;border:1px solid #bcd9d7;border-radius:10px;background:#f1faf9;text-align:center}.optimization-page .optimization-page__freshness-line b,.optimization-page .optimization-page__freshness-line span{display:block}.optimization-page .optimization-page__freshness-line b{color:#0b625c}.optimization-page .optimization-page__freshness-line span{margin-top:.25rem;color:#536c6b}.optimization-page .optimization-page__freshness-line i{height:3px;background:#d4af37}.optimization-page .optimization-page__decision-note{margin-top:14px;padding:15px;border-left:5px solid #d4af37;background:#fff8df;color:#655b3d}
.optimization-page .optimization-page__index-types{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.optimization-page .optimization-page__index-types>article{min-width:0;padding:19px;border:1px solid #c8dddc;border-radius:12px;background:#fff}.optimization-page .optimization-page__index-types h3{margin:.5rem 0;color:#0a625d}.optimization-page .optimization-page__index-types p{color:#536c6b}.optimization-page .optimization-page__mini-tree>b{display:block;width:max-content;margin:10px auto;padding:8px 14px;border-radius:7px;background:#0b625c;color:#fff}.optimization-page .optimization-page__mini-tree>div{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.optimization-page .optimization-page__mini-tree i,.optimization-page .optimization-page__buckets i{padding:7px;border-radius:6px;background:#eaf7f5;color:#195e59;font-style:normal;text-align:center}.optimization-page .optimization-page__buckets{display:grid;gap:5px;margin-top:10px}.optimization-page .optimization-page__index-types code{display:block;padding:9px;border-radius:7px;background:#eaf7f5;color:#075d56;overflow-wrap:anywhere}.optimization-page .optimization-page__tradeoff{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:15px}.optimization-page .optimization-page__tradeoff span{padding:11px;border:1px solid #c8dedb;border-radius:8px;background:#f4faf9;color:#4d6764}.optimization-page .optimization-page__tradeoff b{display:block;margin-bottom:.25rem;color:#0a625b;font-size:.76rem}
.optimization-page .optimization-page__composite-demo{display:grid;grid-template-columns:1fr 1fr;gap:16px}.optimization-page .optimization-page__composite-demo>div{padding:19px;border:1px solid #c8dedc;border-radius:12px;background:#fff}.optimization-page .optimization-page__composite-demo strong{display:block;margin:.6rem 0;color:#0a625d}.optimization-page .optimization-page__key-parts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.optimization-page .optimization-page__key-parts b{padding:13px 8px;border-radius:8px;background:#0b625c;color:#fff;text-align:center}.optimization-page .optimization-page__key-parts b:nth-child(2){background:#147970}.optimization-page .optimization-page__key-parts b:nth-child(3){background:#258d84}.optimization-page .optimization-page__composite-demo h3{color:#0a625d}.optimization-page .optimization-page__composite-demo li{margin:.5rem 0;color:#536c6b}
.optimization-page .optimization-page__sargable{display:grid;grid-template-columns:1fr auto 1fr;gap:13px;align-items:center;margin-top:15px}.optimization-page .optimization-page__sargable article{padding:17px;border:1px solid #c9dedc;border-radius:10px;background:#f3faf9}.optimization-page .optimization-page__sargable article:last-child{border-color:#e8c7bf;background:#fff4f1}.optimization-page .optimization-page__sargable code{display:block;margin:.6rem 0;padding:9px;border-radius:7px;background:#09283a;color:#ddf4f0;overflow-wrap:anywhere}.optimization-page .optimization-page__sargable p{color:#536c6b}.optimization-page .optimization-page__sargable>b{color:#8a6500}
.optimization-page .optimization-page__plan-anatomy{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}.optimization-page .optimization-page__plan-tree{padding:20px;border-radius:12px;background:#072637;color:#fff}.optimization-page .optimization-page__plan-tree article{padding:12px;border:1px solid #47717a;border-radius:8px;background:#0d3949}.optimization-page .optimization-page__plan-tree .root{border-color:#e4b52f}.optimization-page .optimization-page__plan-tree span,.optimization-page .optimization-page__plan-tree b{display:block}.optimization-page .optimization-page__plan-tree span{color:#72dfd1;font-weight:900}.optimization-page .optimization-page__plan-tree b{margin-top:.25rem;color:#d5e8e5;font-size:.78rem}.optimization-page .optimization-page__plan-tree>i{display:block;width:3px;height:18px;margin:auto;background:#e4b52f}.optimization-page .optimization-page__plan-tree>div{display:grid;grid-template-columns:1fr 1fr;gap:9px}.optimization-page .optimization-page__plan-terms{display:grid;grid-template-columns:1fr 1fr;gap:9px}.optimization-page .optimization-page__plan-terms article{padding:14px;border:1px solid #c8dedc;border-radius:9px;background:#fff}.optimization-page .optimization-page__plan-terms b{color:#0a625d}.optimization-page .optimization-page__plan-terms p{color:#536c6b}.optimization-page .optimization-page__explain-warning{margin-top:15px;padding:17px;border-left:5px solid #dd614d;background:#fff2ef}.optimization-page .optimization-page__explain-warning p{color:#674d47}
.optimization-page .optimization-page__workflow{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0;counter-reset:none}.optimization-page .optimization-page__workflow li{display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:start;padding:15px;border:1px solid #cadfdd;border-radius:10px;background:#fff}.optimization-page .optimization-page__workflow li>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#0b625c;color:#fff;font-weight:900}.optimization-page .optimization-page__workflow b{color:#0a625d}.optimization-page .optimization-page__workflow p{margin:.35rem 0;color:#536c6b}
.optimization-page .optimization-page__advisor-shell{display:grid;grid-template-columns:245px minmax(0,1fr);overflow:hidden;border:1px solid #bdd9d7;border-radius:14px;background:#fff}.optimization-page .optimization-page__advisor-cases{display:grid;align-content:start;gap:8px;padding:18px;background:#072637}.optimization-page .optimization-page__advisor-cases button{min-height:46px;padding:10px 12px;border:1px solid #486f77;border-radius:8px;background:#0d3949;color:#d8efeb;text-align:left;font-weight:850;cursor:pointer}.optimization-page .optimization-page__advisor-cases button[aria-selected="true"]{border-color:#efc34a;background:#9c7310;color:#fff}.optimization-page .optimization-page__advisor-output{min-width:0;padding:19px}.optimization-page .optimization-page__query-card{overflow:hidden;border-radius:10px;background:#061e30}.optimization-page .optimization-page__query-card>span{display:block;padding:10px 13px;border-bottom:1px solid #335866;color:#f2c84c;font-size:.75rem;font-weight:900}.optimization-page .optimization-page__query-card pre{margin:0;padding:15px;overflow:auto;color:#def4f0;white-space:pre-wrap}.optimization-page .optimization-page__candidate-list{display:grid;gap:8px;margin:13px 0}.optimization-page .optimization-page__candidate-list button{display:grid;grid-template-columns:minmax(0,1fr) minmax(80px,.35fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid #c9dedc;border-radius:9px;background:#fff;color:#123b3a;text-align:left;cursor:pointer}.optimization-page .optimization-page__candidate-list button.is-selected{border-color:#0d8d82;background:#edf9f7;box-shadow:inset 4px 0 #0d8d82}.optimization-page .optimization-page__candidate-list span b,.optimization-page .optimization-page__candidate-list span small{display:block}.optimization-page .optimization-page__candidate-list span small{margin-top:.25rem;color:#6b7675}.optimization-page .optimization-page__candidate-list meter{width:100%;height:12px}.optimization-page .optimization-page__candidate-list>button>strong{color:#0a625d;font-size:.78rem}.optimization-page .optimization-page__advisor-verdict{padding:16px;border-left:5px solid #d4af37;background:#fff8df}.optimization-page .optimization-page__advisor-verdict>span{color:#7f6000;font-size:.75rem;font-weight:900}.optimization-page .optimization-page__advisor-verdict h3{margin:.45rem 0;color:#0a625d}.optimization-page .optimization-page__advisor-verdict p{color:#5f5944}.optimization-page .optimization-page__advisor-verdict small{color:#6a6656}
.optimization-page .optimization-page__plan-lab{display:grid;grid-template-columns:290px minmax(0,1fr);overflow:hidden;border:1px solid #bddad7;border-radius:14px;background:#fff}.optimization-page .optimization-page__plan-controls{display:grid;align-content:start;gap:17px;padding:19px;background:#072637;color:#fff}.optimization-page .optimization-page__plan-controls label{display:grid;gap:7px;font-weight:850}.optimization-page .optimization-page__plan-controls input[type="range"]{width:100%;accent-color:#e5b82d}.optimization-page .optimization-page__plan-controls output{color:#81e0d4}.optimization-page .optimization-page__plan-controls .optimization-page__toggle{display:flex;gap:9px;align-items:center}.optimization-page .optimization-page__plan-controls .optimization-page__toggle input{width:18px;height:18px;accent-color:#e5b82d}.optimization-page .optimization-page__plan-output{min-width:0;padding:19px}.optimization-page .optimization-page__cost-race{display:grid;grid-template-columns:1fr 1fr;gap:12px}.optimization-page .optimization-page__cost-race article{padding:15px;border:1px solid #c8dedc;border-radius:10px}.optimization-page .optimization-page__cost-race span{color:#8a6500;font-size:.75rem;font-weight:900}.optimization-page .optimization-page__cost-race strong{display:block;margin:.45rem 0;color:#0a625d}.optimization-page .optimization-page__cost-race article>div{height:12px;overflow:hidden;border-radius:999px;background:#e4eeec}.optimization-page .optimization-page__cost-race i{display:block;height:100%;background:#47748c;transition:width .25s}.optimization-page .optimization-page__cost-race article:last-child i{background:#0d998c}.optimization-page .optimization-page__cost-race p{color:#536c6b}.optimization-page .optimization-page__chosen-plan{margin:13px 0;padding:16px;border-left:5px solid #0d998c;background:#edf9f7}.optimization-page .optimization-page__chosen-plan.uses-seq{border-color:#47748c;background:#eef4f7}.optimization-page .optimization-page__chosen-plan span{color:#806100;font-size:.75rem;font-weight:900}.optimization-page .optimization-page__chosen-plan h3{margin:.4rem 0;color:#0a625d}.optimization-page .optimization-page__chosen-plan p{color:#536c6b}.optimization-page .optimization-page__simulated-tree{display:grid;justify-items:center}.optimization-page .optimization-page__simulated-tree article{width:min(100%,480px);padding:12px;border:1px solid #bcd9d6;border-radius:8px;background:#f1faf9;text-align:center}.optimization-page .optimization-page__simulated-tree span,.optimization-page .optimization-page__simulated-tree b{display:block}.optimization-page .optimization-page__simulated-tree span{color:#0a625d;font-weight:900}.optimization-page .optimization-page__simulated-tree b{margin-top:.25rem;color:#536c6b;font-size:.8rem}.optimization-page .optimization-page__simulated-tree i{width:3px;height:17px;background:#d4af37}.optimization-page .optimization-page__model-note{color:#647573;font-size:.8rem}
@media(max-width:1100px){.optimization-page .optimization-page__view-grid,.optimization-page .optimization-page__index-rules,.optimization-page .optimization-page__scan-grid,.optimization-page .optimization-page__tradeoff{grid-template-columns:1fr 1fr}.optimization-page .optimization-page__advisor-shell,.optimization-page .optimization-page__plan-lab{grid-template-columns:1fr}.optimization-page .optimization-page__advisor-cases{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.optimization-page .optimization-page__view-flow,.optimization-page .optimization-page__freshness-line{grid-template-columns:1fr}.optimization-page .optimization-page__view-flow>b{transform:rotate(90deg)}.optimization-page .optimization-page__freshness-line i{width:3px;height:20px;margin:auto}.optimization-page .optimization-page__materialized-compare,.optimization-page .optimization-page__index-types,.optimization-page .optimization-page__composite-demo,.optimization-page .optimization-page__plan-anatomy{grid-template-columns:1fr}.optimization-page .optimization-page__sargable{grid-template-columns:1fr}.optimization-page .optimization-page__sargable>b{text-align:center}.optimization-page .optimization-page__workflow{grid-template-columns:1fr}}
@media(max-width:600px){.optimization-page .optimization-page__view-grid,.optimization-page .optimization-page__index-rules,.optimization-page .optimization-page__scan-grid,.optimization-page .optimization-page__tradeoff,.optimization-page .optimization-page__plan-terms,.optimization-page .optimization-page__cost-race{grid-template-columns:1fr}.optimization-page .optimization-page__advisor-cases{grid-template-columns:1fr 1fr;padding:13px}.optimization-page .optimization-page__advisor-output,.optimization-page .optimization-page__plan-controls,.optimization-page .optimization-page__plan-output{padding:13px}.optimization-page .optimization-page__candidate-list button{grid-template-columns:1fr}.optimization-page .optimization-page__candidate-list meter{width:100%}.optimization-page .optimization-page__key-parts{grid-template-columns:1fr}}

/* Level 17 — Transactions, Concurrency and Recovery */
.transactions-hero{background:radial-gradient(circle at 84% 12%,rgba(255,100,112,.2),transparent 30%),linear-gradient(135deg,#071725,#27344c 55%,#653b50)}
.transactions-page .transactions-page__transfer{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center}.transactions-page .transactions-page__transfer>div{padding:19px;border:1px solid #d7ced8;border-radius:12px;background:#fff}.transactions-page .transactions-page__transfer>div:nth-child(2){display:grid;gap:5px;background:#0a2034}.transactions-page .transactions-page__transfer span,.transactions-page .transactions-page__schedule-types>article>span,.transactions-page .transactions-page__anomaly-grid span,.transactions-page .transactions-page__locking-grid span,.transactions-page .transactions-page__two-phase span,.transactions-page .transactions-page__recovery-grid span{color:#8a6500;font-size:.76rem;font-weight:900;letter-spacing:.06em}.transactions-page .transactions-page__transfer b,.transactions-page .transactions-page__transfer strong{display:block;margin-top:.45rem}.transactions-page .transactions-page__transfer strong{color:#0a625d}.transactions-page .transactions-page__transfer code{color:#e8f0ff}.transactions-page .transactions-page__acid-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:15px}.transactions-page .transactions-page__acid-grid article{padding:18px;border:1px solid #d7ced9;border-radius:12px;background:#fff}.transactions-page .transactions-page__acid-grid span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#62394f;color:#fff;font-weight:900}.transactions-page .transactions-page__acid-grid h3{margin:.55rem 0;color:#513449}.transactions-page .transactions-page__acid-grid p{color:#596a77}
.transactions-page .transactions-page__schedule-types{display:grid;grid-template-columns:1fr 1fr;gap:15px}.transactions-page .transactions-page__schedule-types article{padding:19px;border:1px solid #d8cfd9;border-radius:12px;background:#fff}.transactions-page .transactions-page__schedule-types article>div{display:flex;flex-wrap:wrap;gap:6px;margin:11px 0}.transactions-page .transactions-page__schedule-types i{padding:7px 9px;border-radius:6px;background:#f0eaf0;color:#57374e;font-style:normal}.transactions-page .transactions-page__schedule-types p,.transactions-page .transactions-page__schedule-properties p{color:#596a77}.transactions-page .transactions-page__schedule-properties{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:14px}.transactions-page .transactions-page__schedule-properties article{padding:15px;border-left:5px solid #8f536f;background:#f9f3f6}.transactions-page .transactions-page__schedule-properties b{color:#57374e}
.transactions-page .transactions-page__anomaly-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.transactions-page .transactions-page__anomaly-grid article{padding:17px;border:1px solid #dacfd9;border-radius:11px;background:#fff}.transactions-page .transactions-page__anomaly-grid h3{margin:.5rem 0;color:#57374e}.transactions-page .transactions-page__anomaly-grid p{color:#596a77}
.transactions-page .transactions-page__conflict-rule{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:8px;align-items:center}.transactions-page .transactions-page__conflict-rule div{padding:15px;border:1px solid #d6ced9;border-radius:9px;background:#f8f3f6;text-align:center}.transactions-page .transactions-page__conflict-rule span,.transactions-page .transactions-page__graph-method span{display:block;color:#8a6500;font-size:.73rem;font-weight:900}.transactions-page .transactions-page__conflict-rule strong{display:block;margin-top:.4rem;color:#58374e}.transactions-page .transactions-page__conflict-rule>b{color:#9c5877}.transactions-page .transactions-page__graph-method{display:grid;grid-template-columns:1fr .7fr;gap:15px;margin-top:15px}.transactions-page .transactions-page__graph-method>ol{margin:0;padding:18px 18px 18px 38px;border:1px solid #d7ced8;border-radius:11px;background:#fff}.transactions-page .transactions-page__graph-method li{margin:.55rem 0;color:#526675}.transactions-page .transactions-page__graph-method>div{display:grid;align-content:center;gap:8px;padding:19px;border-radius:11px;background:#0a2034;color:#fff;text-align:center}.transactions-page .transactions-page__graph-method>div b{padding:9px;border:1px solid #53677a;border-radius:7px}.transactions-page .transactions-page__graph-method>div strong{color:#ffcf61}
.transactions-page .transactions-page__lock-table,.transactions-page .transactions-page__isolation-table{overflow:auto;border:1px solid #d7cfd9;border-radius:11px}.transactions-page .transactions-page__lock-table table,.transactions-page .transactions-page__isolation-table table{width:100%;border-collapse:collapse;background:#fff}.transactions-page .transactions-page__lock-table th,.transactions-page .transactions-page__lock-table td,.transactions-page .transactions-page__isolation-table th,.transactions-page .transactions-page__isolation-table td{padding:12px;border-bottom:1px solid #e2dce3;text-align:left}.transactions-page .transactions-page__lock-table th,.transactions-page .transactions-page__isolation-table th{background:#f1ebf1;color:#57374e}.transactions-page .transactions-page__lock-table .compatible{background:#eaf8f1;color:#08734e;font-weight:900}.transactions-page .transactions-page__lock-table .blocked{background:#fff0ed;color:#b34132;font-weight:900}.transactions-page .transactions-page__locking-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-top:14px}.transactions-page .transactions-page__locking-grid article{padding:16px;border:1px solid #d8ced9;border-radius:10px;background:#fff}.transactions-page .transactions-page__locking-grid p{color:#596a77}.transactions-page .transactions-page__two-phase{display:grid;grid-template-columns:1fr auto 1fr;gap:13px;align-items:center;margin-top:14px}.transactions-page .transactions-page__two-phase article{padding:17px;border:1px solid #d6ccd7;border-radius:10px;background:#f8f2f5}.transactions-page .transactions-page__two-phase strong{display:block;margin:.5rem 0;color:#57374e}.transactions-page .transactions-page__two-phase p{color:#596a77}.transactions-page .transactions-page__two-phase>b{padding:8px;border-radius:999px;background:#62394f;color:#fff;font-size:.76rem}.transactions-page .transactions-page__strict-note{padding:15px;border-left:5px solid #d4af37;background:#fff8df;color:#625944}
.transactions-page .transactions-page__mvcc{display:grid;grid-template-columns:1fr auto 1fr 1.5fr;gap:11px;align-items:center;margin-top:15px}.transactions-page .transactions-page__mvcc>div,.transactions-page .transactions-page__mvcc>article{padding:16px;border:1px solid #d6ced8;border-radius:10px;background:#f8f3f6}.transactions-page .transactions-page__mvcc span,.transactions-page .transactions-page__mvcc b,.transactions-page .transactions-page__mvcc small{display:block}.transactions-page .transactions-page__mvcc span{color:#8a6500;font-size:.73rem;font-weight:900}.transactions-page .transactions-page__mvcc b{margin:.4rem 0;color:#57374e}.transactions-page .transactions-page__mvcc>article h3{margin:0;color:#57374e}.transactions-page .transactions-page__mvcc p{color:#596a77}
.transactions-page .transactions-page__wal-flow{display:grid;grid-template-columns:1fr auto 1.25fr auto 1fr auto 1fr;gap:8px;align-items:stretch}.transactions-page .transactions-page__wal-flow article{padding:15px;border:1px solid #d7ced8;border-radius:10px;background:#fff}.transactions-page .transactions-page__wal-flow span{color:#8a6500;font-size:.73rem;font-weight:900}.transactions-page .transactions-page__wal-flow p{color:#596a77}.transactions-page .transactions-page__wal-flow code{display:block;margin:.6rem 0;padding:8px;border-radius:6px;background:#0a2034;color:#e7efff;overflow-wrap:anywhere}.transactions-page .transactions-page__wal-flow>b{display:grid;place-items:center;color:#9a5876}.transactions-page .transactions-page__recovery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-top:14px}.transactions-page .transactions-page__recovery-grid article{padding:16px;border:1px solid #d8ced9;border-radius:10px;background:#fff}.transactions-page .transactions-page__recovery-grid h3{margin:.5rem 0;color:#57374e}.transactions-page .transactions-page__recovery-grid p{color:#596a77}.transactions-page .transactions-page__failure-map{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.transactions-page .transactions-page__failure-map span{padding:10px 12px;border:1px solid #d5cad5;border-radius:999px;background:#f8f2f5;color:#5c5260}
.transactions-page .transactions-page__schedule-lab{display:grid;grid-template-columns:240px minmax(0,1fr);overflow:hidden;border:1px solid #d3c7d2;border-radius:14px;background:#fff}.transactions-page .transactions-page__scenario-list{display:grid;align-content:start;gap:8px;padding:18px;background:#0a2034}.transactions-page .transactions-page__scenario-list button{min-height:45px;padding:10px 12px;border:1px solid #546679;border-radius:8px;background:#112d42;color:#e4edf8;text-align:left;font-weight:850;cursor:pointer}.transactions-page .transactions-page__scenario-list button[aria-selected="true"]{border-color:#f0c45a;background:#79425e;color:#fff}.transactions-page .transactions-page__simulator{min-width:0;padding:18px}.transactions-page .transactions-page__sim-head{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.transactions-page .transactions-page__sim-head div{padding:11px;border-radius:8px;background:#f4eef3;text-align:center}.transactions-page .transactions-page__sim-head span,.transactions-page .transactions-page__sim-head strong{display:block}.transactions-page .transactions-page__sim-head span{color:#806100;font-size:.7rem;font-weight:900}.transactions-page .transactions-page__sim-head strong{margin-top:.3rem;color:#57374e}.transactions-page .transactions-page__timeline{display:flex;gap:7px;margin:13px 0;padding:13px;overflow:auto;border-radius:9px;background:#edf2f7}.transactions-page .transactions-page__timeline div{flex:0 0 145px;padding:10px;border:1px solid #cad4df;border-radius:7px;background:#fff;opacity:.55}.transactions-page .transactions-page__timeline div.is-done{border-color:#71b7a1;background:#eaf8f1;opacity:1}.transactions-page .transactions-page__timeline div.is-next{border-color:#d4af37;box-shadow:0 0 0 2px #f6dc8c;opacity:1}.transactions-page .transactions-page__timeline span,.transactions-page .transactions-page__timeline b{display:block}.transactions-page .transactions-page__timeline span{color:#8a6500;font-size:.7rem}.transactions-page .transactions-page__timeline b{margin-top:.25rem;color:#314c60;font-size:.78rem}.transactions-page .transactions-page__step-detail{padding:16px;border-left:5px solid #8f536f;background:#f8f2f5}.transactions-page .transactions-page__step-detail span{color:#806100;font-size:.74rem;font-weight:900}.transactions-page .transactions-page__step-detail h3{margin:.45rem 0;color:#57374e}.transactions-page .transactions-page__step-detail p{color:#596a77;overflow-wrap:anywhere}.transactions-page .transactions-page__step-controls{display:flex;justify-content:center;gap:8px;margin:13px 0}.transactions-page .transactions-page__step-controls button{min-height:41px;padding:8px 14px;border:1px solid #a98c9f;border-radius:7px;background:#fff;color:#57374e;font-weight:850;cursor:pointer}.transactions-page .transactions-page__step-controls button:last-child{background:#62394f;color:#fff}.transactions-page .transactions-page__step-controls button:disabled{opacity:.45;cursor:not-allowed}.transactions-page .transactions-page__graph-result{display:grid;grid-template-columns:1fr 1fr;gap:11px}.transactions-page .transactions-page__graph-result>div,.transactions-page .transactions-page__graph-result>article{padding:15px;border:1px solid #d7cdd8;border-radius:9px}.transactions-page .transactions-page__graph-result span{color:#806100;font-size:.72rem;font-weight:900}.transactions-page .transactions-page__edge-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.transactions-page .transactions-page__edge-list b{padding:8px;border-radius:7px;background:#0a2034;color:#fff}.transactions-page .transactions-page__edge-list small{color:#bed0df}.transactions-page .transactions-page__graph-result h3{margin:.45rem 0;color:#57374e}.transactions-page .transactions-page__graph-result p{color:#596a77}
.transactions-page .transactions-page__deadlock-lab{display:grid;grid-template-columns:260px minmax(0,1fr);overflow:hidden;border:1px solid #d3c7d2;border-radius:14px;background:#fff}.transactions-page .transactions-page__deadlock-controls{display:grid;align-content:start;gap:10px;padding:18px;background:#0a2034;color:#fff}.transactions-page .transactions-page__deadlock-controls label{display:grid;gap:6px;font-weight:850}.transactions-page .transactions-page__deadlock-controls select{width:100%;min-height:43px;padding:8px;border:1px solid #566b7d;border-radius:7px;background:#081b2c;color:#fff;font:inherit}.transactions-page .transactions-page__deadlock-controls button{min-height:43px;border:1px solid #835973;border-radius:7px;background:#79425e;color:#fff;font-weight:900;cursor:pointer}.transactions-page .transactions-page__deadlock-controls button:last-child{background:#17344a}.transactions-page .transactions-page__deadlock-controls button:disabled{opacity:.5}.transactions-page .transactions-page__deadlock-output{min-width:0;padding:18px}.transactions-page .transactions-page__wait-graph{padding:17px;border-radius:10px;background:#f1ebf0}.transactions-page .transactions-page__wait-graph>span{color:#806100;font-size:.75rem;font-weight:900}.transactions-page .transactions-page__wait-nodes{display:flex;justify-content:center;gap:20px;margin:15px 0}.transactions-page .transactions-page__wait-nodes b{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#62394f;color:#fff}.transactions-page .transactions-page__wait-edges{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.transactions-page .transactions-page__wait-edges p{margin:0;padding:8px 11px;border-radius:7px;background:#fff;color:#57374e;font-weight:900}.transactions-page .transactions-page__wait-edges small{display:block;margin-top:.25rem;color:#68737b;font-weight:500}.transactions-page .transactions-page__deadlock-verdict{margin-top:12px;padding:15px;border-left:5px solid #3b9b7a;background:#eaf8f1}.transactions-page .transactions-page__deadlock-verdict.has-cycle{border-color:#d44b3e;background:#fff0ed}.transactions-page .transactions-page__deadlock-verdict span{color:#806100;font-size:.72rem;font-weight:900}.transactions-page .transactions-page__deadlock-verdict h3{margin:.4rem 0;color:#57374e}.transactions-page .transactions-page__deadlock-verdict p{color:#596a77}.transactions-page .transactions-page__resolution{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.transactions-page .transactions-page__resolution strong,.transactions-page .transactions-page__resolution span{padding:9px 11px;border:1px solid #d6ccd7;border-radius:999px}.transactions-page .transactions-page__resolution strong{background:#62394f;color:#fff}.transactions-page .transactions-page__resolution span{background:#f8f2f5;color:#584e59}
@media(max-width:1100px){.transactions-page .transactions-page__acid-grid,.transactions-page .transactions-page__locking-grid,.transactions-page .transactions-page__recovery-grid{grid-template-columns:1fr 1fr}.transactions-page .transactions-page__schedule-lab,.transactions-page .transactions-page__deadlock-lab{grid-template-columns:1fr}.transactions-page .transactions-page__scenario-list{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.transactions-page .transactions-page__transfer,.transactions-page .transactions-page__conflict-rule,.transactions-page .transactions-page__wal-flow{grid-template-columns:1fr}.transactions-page .transactions-page__conflict-rule>b,.transactions-page .transactions-page__wal-flow>b{text-align:center;transform:rotate(90deg)}.transactions-page .transactions-page__schedule-types,.transactions-page .transactions-page__graph-method{grid-template-columns:1fr}.transactions-page .transactions-page__anomaly-grid{grid-template-columns:1fr 1fr}.transactions-page .transactions-page__mvcc{grid-template-columns:1fr 1fr}.transactions-page .transactions-page__two-phase{grid-template-columns:1fr}.transactions-page .transactions-page__two-phase>b{text-align:center}.transactions-page .transactions-page__graph-result{grid-template-columns:1fr}}
@media(max-width:600px){.transactions-page .transactions-page__acid-grid,.transactions-page .transactions-page__schedule-properties,.transactions-page .transactions-page__anomaly-grid,.transactions-page .transactions-page__locking-grid,.transactions-page .transactions-page__recovery-grid,.transactions-page .transactions-page__mvcc,.transactions-page .transactions-page__sim-head{grid-template-columns:1fr}.transactions-page .transactions-page__scenario-list{grid-template-columns:1fr 1fr;padding:13px}.transactions-page .transactions-page__simulator,.transactions-page .transactions-page__deadlock-controls,.transactions-page .transactions-page__deadlock-output{padding:13px}.transactions-page .transactions-page__step-controls{align-items:stretch;flex-direction:column}.transactions-page .transactions-page__step-controls button{width:100%}}

/* Level 18 — Security, Projects and Placement */
.security-hero{background:radial-gradient(circle at 85% 12%,rgba(54,209,146,.2),transparent 30%),linear-gradient(135deg,#061725,#123a3b 55%,#145b47)}
.security-page .security-page__cia{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.security-page .security-page__cia article{padding:20px;border:1px solid #c8ded5;border-radius:12px;background:#fff}.security-page .security-page__cia span{display:grid;place-items:center;width:45px;height:45px;border-radius:50%;background:#0c6b50;color:#fff;font-weight:900}.security-page .security-page__cia h3{margin:.6rem 0;color:#0a604a}.security-page .security-page__cia p{color:#536b63}.security-page .security-page__cia small{color:#806100}.security-page .security-page__identity-chain{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:8px;align-items:center;margin-top:15px}.security-page .security-page__identity-chain>div{padding:15px;border:1px solid #c9ded5;border-radius:9px;background:#f1faf6}.security-page .security-page__identity-chain span{color:#806100;font-size:.72rem;font-weight:900}.security-page .security-page__identity-chain strong{display:block;margin:.4rem 0;color:#0a604a}.security-page .security-page__identity-chain p{color:#536b63}.security-page .security-page__identity-chain>b{color:#13906d}
.security-page .security-page__rbac-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:10px;align-items:center}.security-page .security-page__rbac-flow>div{display:grid;gap:7px;padding:17px;border:1px solid #c8ded5;border-radius:10px;background:#fff}.security-page .security-page__rbac-flow span,.security-page .security-page__principles span,.security-page .security-page__project-grid>article>span,.security-page .security-page__evidence-grid span,.security-page .security-page__final-revision span{color:#806100;font-size:.75rem;font-weight:900;letter-spacing:.06em}.security-page .security-page__rbac-flow b{padding:8px;border-radius:6px;background:#eaf7f1;color:#0a604a}.security-page .security-page__rbac-flow>strong{color:#13906d;font-size:.76rem}.security-page .security-page__principles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.security-page .security-page__principles article{padding:15px;border:1px solid #c9ded5;border-radius:9px;background:#f5fbf8}.security-page .security-page__principles p{color:#536b63}.security-page .security-page__grant-example{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}.security-page .security-page__grant-example pre{margin:0;padding:19px;overflow:auto;border-radius:10px;background:#072b28;color:#ddf5eb;white-space:pre-wrap}.security-page .security-page__grant-example>div{padding:18px;border:1px solid #c8ded5;border-radius:10px;background:#fff}.security-page .security-page__grant-example h3{margin-top:0;color:#0a604a}.security-page .security-page__grant-example p{color:#536b63}.security-page .security-page__grant-example strong{color:#9a3f32}
.security-page .security-page__injection-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px}.security-page .security-page__injection-compare article{padding:18px;border:1px solid #e3bdb7;border-radius:11px;background:#fff3f0}.security-page .security-page__injection-compare article:last-child{border-color:#add8c4;background:#eefaf4}.security-page .security-page__injection-compare span{color:#806100;font-size:.75rem;font-weight:900}.security-page .security-page__injection-compare pre{margin:10px 0;padding:15px;overflow:auto;border-radius:8px;background:#08283a;color:#e5f1ff;white-space:pre-wrap}.security-page .security-page__injection-compare p{color:#536b63}.security-page .security-page__attack,.security-page .security-page__safe{padding:10px;border-radius:7px;background:#ffe1dc;color:#a23227}.security-page .security-page__safe{background:#dff5e9;color:#08704e}.security-page .security-page__injection-rules{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.security-page .security-page__injection-rules article{padding:15px;border:1px solid #c9ded5;border-radius:9px;background:#fff}.security-page .security-page__injection-rules b{color:#0a604a}.security-page .security-page__injection-rules p{color:#536b63}
.security-page .security-page__protection-grid,.security-page .security-page__evidence-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.security-page .security-page__protection-grid article,.security-page .security-page__evidence-grid article{padding:17px;border:1px solid #c9ded5;border-radius:10px;background:#fff}.security-page .security-page__protection-grid span{color:#806100;font-size:.74rem;font-weight:900}.security-page .security-page__protection-grid h3{margin:.5rem 0;color:#0a604a}.security-page .security-page__protection-grid p,.security-page .security-page__evidence-grid p{color:#536b63}.security-page .security-page__audit-warning{margin-top:14px;padding:16px;border-left:5px solid #d4af37;background:#fff8df}.security-page .security-page__audit-warning p{margin-bottom:0;color:#625944}
.security-page .security-page__recovery-objectives{display:grid;grid-template-columns:1fr 1fr;gap:14px}.security-page .security-page__recovery-objectives article{padding:19px;border:1px solid #c8ded5;border-radius:11px;background:#fff}.security-page .security-page__recovery-objectives span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#0c6b50;color:#fff;font-weight:900}.security-page .security-page__recovery-objectives strong{display:block;margin:.6rem 0;color:#0a604a}.security-page .security-page__recovery-objectives p{color:#536b63}.security-page .security-page__recovery-objectives code{padding:7px;border-radius:6px;background:#e8f6ef;color:#0a604a}.security-page .security-page__backup-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.security-page .security-page__backup-grid article{padding:15px;border:1px solid #c9ded5;border-radius:9px;background:#f4fbf8}.security-page .security-page__backup-grid span{color:#806100;font-size:.74rem;font-weight:900}.security-page .security-page__backup-grid p{color:#536b63}.security-page .security-page__restore-drill{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px;padding:0}.security-page .security-page__restore-drill li{display:grid;grid-template-columns:38px 1fr;gap:9px;padding:14px;border:1px solid #c9ded5;border-radius:9px;background:#fff}.security-page .security-page__restore-drill li>span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#0c6b50;color:#fff;font-weight:900}.security-page .security-page__restore-drill b{color:#0a604a}.security-page .security-page__restore-drill p{color:#536b63}
.security-page .security-page__project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.security-page .security-page__project-grid article{padding:20px;border:1px solid #c7ddd4;border-radius:12px;background:#fff}.security-page .security-page__project-grid article:nth-child(2){border-top:5px solid #d4af37}.security-page .security-page__project-grid article:nth-child(3){border-top:5px solid #0c6b50}.security-page .security-page__project-grid h3{margin:.55rem 0;color:#0a604a}.security-page .security-page__project-grid p,.security-page .security-page__project-grid li{color:#536b63}.security-page .security-page__project-grid li{margin:.45rem 0}.security-page .security-page__project-grid strong{color:#806100}.security-page .security-page__project-phases{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:15px;padding:15px;border-radius:10px;background:#072b28}.security-page .security-page__project-phases span{padding:9px;border:1px solid #426c62;border-radius:7px;color:#e0f4ec}.security-page .security-page__project-phases b{display:grid;place-items:center;color:#efc957}
.security-page .security-page__evidence-grid{grid-template-columns:repeat(4,1fr)}.security-page .security-page__resume-example{display:grid;grid-template-columns:auto 1fr auto auto 1.2fr;gap:10px;align-items:center;margin-top:14px;padding:17px;border-radius:10px;background:#f2f9f6}.security-page .security-page__resume-example p{color:#536b63}.security-page .security-page__resume-example>b{color:#14916d}
.security-page .security-page__privilege-lab{display:grid;grid-template-columns:290px minmax(0,1fr);overflow:hidden;border:1px solid #bfd9cf;border-radius:14px;background:#fff}.security-page .security-page__privilege-controls{display:grid;align-content:start;gap:14px;padding:19px;background:#072b28;color:#fff}.security-page .security-page__privilege-controls label{display:grid;gap:6px;font-weight:850}.security-page .security-page__privilege-controls select{width:100%;min-height:43px;padding:8px;border:1px solid #52766d;border-radius:7px;background:#061f1e;color:#fff;font:inherit}.security-page .security-page__privilege-output{min-width:0;padding:19px}.security-page .security-page__access-verdict{padding:16px;border-left:5px solid #0c8b62;background:#eaf8f1}.security-page .security-page__access-verdict.is-denied{border-color:#d64c3e;background:#fff0ed}.security-page .security-page__access-verdict span{color:#806100;font-size:.75rem;font-weight:900}.security-page .security-page__access-verdict h3{margin:.45rem 0;color:#0a604a}.security-page .security-page__access-verdict p{color:#536b63}.security-page .security-page__policy-path{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:8px;align-items:center;margin:13px 0}.security-page .security-page__policy-path div{padding:12px;border:1px solid #c8ded5;border-radius:8px;background:#f2faf6;text-align:center}.security-page .security-page__policy-path span,.security-page .security-page__policy-path b{display:block}.security-page .security-page__policy-path span{color:#806100;font-size:.7rem}.security-page .security-page__policy-path b{margin-top:.3rem;color:#0a604a;font-size:.8rem;overflow-wrap:anywhere}.security-page .security-page__policy-path>i{color:#14916d}.security-page .security-page__sql-panel{overflow:hidden;border-radius:9px;background:#061f26}.security-page .security-page__sql-panel>span{display:block;padding:9px 12px;border-bottom:1px solid #315c59;color:#efc957;font-size:.74rem;font-weight:900}.security-page .security-page__sql-panel pre{margin:0;padding:14px;overflow:auto;color:#e0f4ec;white-space:pre-wrap}.security-page .security-page__lab-note{color:#64756f;font-size:.8rem}
.security-page .security-page__planner{overflow:hidden;border:1px solid #bfd9cf;border-radius:14px;background:#fff}.security-page .security-page__planner-tabs{display:flex;gap:8px;padding:14px;background:#072b28}.security-page .security-page__planner-tabs button{flex:1;min-height:43px;border:1px solid #52766d;border-radius:7px;background:#0d3b36;color:#dff4ec;font-weight:900;cursor:pointer}.security-page .security-page__planner-tabs button[aria-selected="true"]{border-color:#efc957;background:#a2770c;color:#fff}.security-page .security-page__planner-body{padding:19px}.security-page .security-page__planner-head{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}.security-page .security-page__planner-head>div>span{color:#806100;font-size:.75rem;font-weight:900}.security-page .security-page__planner-head h3{margin:.4rem 0;color:#0a604a}.security-page .security-page__planner-head p{color:#536b63}.security-page .security-page__planner-score{text-align:center}.security-page .security-page__planner-score strong,.security-page .security-page__planner-score span{display:block}.security-page .security-page__planner-score strong{color:#0a6b50;font-size:2rem}.security-page .security-page__planner-score span{color:#61736c;font-size:.76rem}.security-page .security-page__planner-bar{height:10px;overflow:hidden;border-radius:999px;background:#e3eee9}.security-page .security-page__planner-bar i{display:block;height:100%;background:linear-gradient(90deg,#0c6b50,#e4b72f);transition:width .25s}.security-page .security-page__checklist{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.security-page .security-page__checklist label{display:flex;gap:10px;align-items:flex-start;padding:13px;border:1px solid #c9ded5;border-radius:9px;background:#fff;cursor:pointer}.security-page .security-page__checklist label.is-ready{border-color:#78bda2;background:#eaf8f1}.security-page .security-page__checklist input{width:18px;height:18px;accent-color:#0c6b50}.security-page .security-page__checklist span b,.security-page .security-page__checklist span small{display:block}.security-page .security-page__checklist span b{color:#214b3d}.security-page .security-page__checklist span small{margin-top:.3rem;color:#806100}.security-page .security-page__next-evidence{padding:14px;border-left:5px solid #d4af37;background:#fff8df}.security-page .security-page__next-evidence strong{color:#755800}.security-page .security-page__next-evidence p{margin-bottom:0;color:#625944}
.security-page .security-page__final-revision{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:15px}.security-page .security-page__final-revision article{padding:15px;border:1px solid #c9ded5;border-radius:9px;background:#f4fbf8}.security-page .security-page__final-revision p{color:#536b63}.security-page .security-page__course-finish{border-color:#7ebda4;background:linear-gradient(135deg,#f6fffa,#fffaf0)}
@media(max-width:1100px){.security-page .security-page__identity-chain{grid-template-columns:1fr 1fr}.security-page .security-page__identity-chain>b{display:none}.security-page .security-page__principles,.security-page .security-page__backup-grid,.security-page .security-page__restore-drill,.security-page .security-page__evidence-grid,.security-page .security-page__final-revision{grid-template-columns:1fr 1fr}.security-page .security-page__privilege-lab{grid-template-columns:1fr}}
@media(max-width:800px){.security-page .security-page__cia,.security-page .security-page__rbac-flow,.security-page .security-page__grant-example,.security-page .security-page__injection-compare,.security-page .security-page__project-grid{grid-template-columns:1fr}.security-page .security-page__rbac-flow>strong{text-align:center}.security-page .security-page__injection-rules,.security-page .security-page__protection-grid{grid-template-columns:1fr 1fr}.security-page .security-page__resume-example{grid-template-columns:1fr}.security-page .security-page__resume-example>b{text-align:center;transform:rotate(90deg)}.security-page .security-page__policy-path{grid-template-columns:1fr}.security-page .security-page__policy-path>i{text-align:center;transform:rotate(90deg)}}
@media(max-width:600px){.security-page .security-page__identity-chain,.security-page .security-page__principles,.security-page .security-page__injection-rules,.security-page .security-page__protection-grid,.security-page .security-page__recovery-objectives,.security-page .security-page__backup-grid,.security-page .security-page__restore-drill,.security-page .security-page__evidence-grid,.security-page .security-page__final-revision,.security-page .security-page__checklist,.security-page .security-page__planner-head{grid-template-columns:1fr}.security-page .security-page__project-phases{align-items:stretch;flex-direction:column}.security-page .security-page__project-phases b{transform:rotate(90deg)}.security-page .security-page__privilege-controls,.security-page .security-page__privilege-output,.security-page .security-page__planner-body{padding:13px}.security-page .security-page__planner-tabs{align-items:stretch;flex-direction:column}.security-page .security-page__planner-score{text-align:left}}

/* =========================================================
   CodeBhavya DBMS — mobile hardening patch
   Keeps every lesson component inside the viewport.
   ========================================================= */
@media (max-width: 900px) {
    .dbms-page .lesson-main,
    .dbms-page .lesson-hero,
    .dbms-page .lesson-section,
    .dbms-page .lesson-section > *,
    .dbms-page .interactive-section,
    .dbms-page .create-anatomy,
    .dbms-page .query-anatomy,
    .dbms-page .schema-builder,
    .dbms-page .migration-lab {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .dbms-page .lesson-section h2,
    .dbms-page .lesson-section h3,
    .dbms-page .lesson-section p,
    .dbms-page .lesson-heading h2 {
        max-width: 100% !important;
        white-space: normal !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;
    }

    .dbms-page .lesson-section pre,
    .dbms-page .lesson-section .data-table-wrap,
    .dbms-page .lesson-section .difference-table-wrap,
    .dbms-page .lesson-section .destructive-table {
        width: 100%;
        max-width: 100%;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .dbms-page .lesson-section pre {
        white-space: pre;
        overflow-wrap: normal;
    }
}

@media (max-width: 680px) {
    .dbms-page .lesson-main { padding-left: 12px !important; padding-right: 12px !important; }
    .dbms-page .lesson-section { padding: 20px 15px !important; }

    .dbms-page .concept-definition-grid,
    .dbms-page .comparison-grid,
    .dbms-page .role-explorer,
    .dbms-page .summary-section,
    .dbms-page .problem-grid,
    .dbms-page .component-wheel,
    .dbms-page .application-grid,
    .dbms-page .concept-check-list,
    .dbms-page .question-bank-grid,
    .dbms-page .file-copies,
    .dbms-page .ddl-lifecycle,
    .dbms-page .constraint-gallery,
    .dbms-page .constraint-levels,
    .dbms-page .referential-grid,
    .dbms-page .alter-patterns,
    .dbms-page .create-anatomy,
    .dbms-page .declarative-compare,
    .dbms-page .query-anatomy,
    .dbms-page .where-having,
    .dbms-page .order-comparison,
    .dbms-page .language-grid,
    .dbms-page .datatype-grid,
    .dbms-page .null-basics,
    .dbms-page .truth-tables,
    .dbms-page .schema-builder,
    .dbms-page .migration-lab {
        grid-template-columns: minmax(0,1fr) !important;
    }

    .dbms-page .sql-family-grid,
    .dbms-page .type-decisions {
        grid-template-columns: minmax(0,1fr) !important;
    }

    .dbms-page .lesson-jump-bar {
        max-width: 100%;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
    }
}

/* =========================================================
   DBMS LESSON READING PROGRESS — FINAL RESPONSIVE POSITION
   Header height: 72px normally, 64px on phones.
   ========================================================= */
@media (max-width: 680px) {
     .lesson-reading-progress{
        top:64px;
    }

    .lesson-jump-bar{
        position:static;
        justify-content:flex-start;
        overflow-x:auto;
        white-space:nowrap;
    }
    .dbms-page .lesson-reading-progress {
        position: fixed !important;
        top: 64px !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        height: 4px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        z-index: 99999 !important;
        overflow: hidden !important;
        pointer-events: none !important;
    }
}
