:root{--paper:#f5f4ee;--sheet:#fbfaf6;--inset:#eeede5;--ink:#262b27;--soft:#535b54;--muted:#85877e;--line:#dcdcd1;--line-soft:#e8e7df;--moss:#566c4d;--moss-light:#e5eadf;--amber:#a56f37;--amber-light:#f0e8d8;--error:#9d4a40;--error-light:#f3e5e1;--success:#3f6a4e;--radius-sm:5px;--radius:9px;--space:8px;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--paper)}button,a,input,textarea{font:inherit}button{color:inherit}.desk{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr);max-width:1600px;margin:auto}.rail{border-right:1px solid var(--line);padding:28px 18px 18px 24px;display:flex;flex-direction:column;min-height:100vh;background:var(--paper)}.identity{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}.seal{width:38px;height:38px;border:1px solid var(--moss);color:var(--moss);border-radius:50%;display:grid;place-items:center;font:500 12px 'DM Mono',monospace;letter-spacing:-.06em}.identity strong{display:block;font:500 18px 'Newsreader',Georgia,serif;letter-spacing:-.02em}.identity small{display:block;margin-top:3px;font:9px 'DM Mono',monospace;letter-spacing:.12em;color:var(--muted)}.course-label{margin:42px 0 13px;font:9px 'DM Mono',monospace;letter-spacing:.09em;line-height:1.8;color:var(--muted)}.course-label span{color:var(--amber)}.tabs{display:grid;gap:3px}.tab{border:0;background:transparent;text-align:left;padding:12px 10px;border-radius:var(--radius-sm);font-size:13px;color:var(--soft);cursor:pointer;display:flex;align-items:center;gap:13px;transition:background .16s,color .16s}.tab span{font:10px 'DM Mono',monospace;color:#a2a397}.tab:hover{background:#ecebe3;color:var(--ink)}.tab.active{background:var(--moss-light);color:#33442d;font-weight:700}.tab.active span{color:var(--moss)}.tab:focus-visible,.text-button:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.rail-note{margin-top:auto;padding:13px 11px;background:var(--amber-light);display:flex;gap:10px;align-items:flex-start;border-radius:var(--radius-sm)}.note-mark{color:var(--amber);font-size:15px}.rail-note p{margin:0;color:#74654d;font-size:11px;line-height:1.6}.rail-note b{color:#544b39}.rail-foot{font:8px/1.8 'DM Mono',monospace;letter-spacing:.08em;color:#99998e;margin:19px 2px 0}.workarea{min-width:0;display:flex;flex-direction:column}.topline{min-height:59px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 clamp(22px,5vw,70px);font:9px 'DM Mono',monospace;letter-spacing:.1em;color:var(--muted)}.crumb{color:var(--soft)}.slash{padding:0 10px;color:#b5b4a9}.connection{display:flex;align-items:center;gap:8px;letter-spacing:.03em;text-transform:none;font:11px 'DM Sans',sans-serif;color:var(--soft)}.connection i{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px var(--amber-light)}.connection[data-state=ready] i{background:var(--success);box-shadow:0 0 0 3px var(--moss-light)}.connection[data-state=error] i{background:var(--error);box-shadow:0 0 0 3px var(--error-light)}main{flex:1;padding:46px clamp(22px,5vw,70px) 30px;width:100%;max-width:1240px;margin:0 auto}.page[hidden]{display:none}.page-kicker,.section-cap,.journey-title,.brief-head,.results-head,.schema-head,.margin-label{font:9px 'DM Mono',monospace;letter-spacing:.12em;color:var(--muted)}.page-kicker{color:var(--moss);margin-bottom:19px}.overview-heading{display:grid;grid-template-columns:minmax(0,1fr) 140px;align-items:end;gap:30px;border-bottom:1px solid var(--line);padding-bottom:27px}.overview-heading h1,.page-title{font:400 clamp(39px,5vw,61px)/.99 'Newsreader',Georgia,serif;letter-spacing:-.035em;margin:0;max-width:780px}.overview-heading h1 em,.page-title em{font-weight:400;color:var(--moss)}.intro,.page-deck{max-width:620px;color:var(--soft);font-size:14px;line-height:1.75;margin:20px 0 0}.folio{border-left:1px solid var(--line);padding:2px 0 2px 18px;font:9px/1.8 'DM Mono',monospace;color:var(--muted);letter-spacing:.08em}.folio b{font-size:15px;color:var(--amber);font-weight:500}.overview-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:clamp(25px,6vw,83px);padding:29px 0 31px;border-bottom:1px solid var(--line)}.section-cap{display:flex;justify-content:space-between;gap:15px}.main-note h2{font:400 25px/1.18 'Newsreader',Georgia,serif;max-width:490px;letter-spacing:-.012em;margin:20px 0 12px}.main-note p,.brief dd,.flow-list p,.two-notes p{color:var(--soft);font-size:12px;line-height:1.8}.main-note p{max-width:555px}.text-button{border:0;background:transparent;padding:9px 0;color:var(--moss);font-size:12px;font-weight:700;cursor:pointer}.text-button span{padding-left:8px}.brief{border-left:1px solid var(--line);padding-left:23px}.brief-head{padding-bottom:11px;border-bottom:1px solid var(--line-soft)}.brief dl{margin:0}.brief dl div{padding:8px 0;border-bottom:1px solid var(--line-soft);display:grid;grid-template-columns:93px 1fr;gap:8px}.brief dt{font:9px 'DM Mono',monospace;color:var(--muted);padding-top:2px}.brief dd{margin:0;font-size:11px;line-height:1.5}.scope{font:8px/1.7 'DM Mono',monospace;letter-spacing:.08em;color:var(--amber);padding-top:13px}.scope b{font:11px/1.5 'DM Sans',sans-serif;letter-spacing:0;color:var(--soft);display:block;margin-top:4px}.journey-title{display:flex;justify-content:space-between;padding:20px 0 14px}.journey{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.journey>div{padding:16px 14px 17px 0;display:grid;grid-template-columns:34px 1fr;align-items:baseline;border-right:1px solid var(--line);margin-right:15px}.journey>div:last-child{border:0;margin:0}.step-no{font:10px 'DM Mono',monospace;color:var(--amber);grid-row:span 2}.journey b{font:500 16px 'Newsreader',Georgia,serif}.journey small{grid-column:2;font:9px 'DM Mono',monospace;color:var(--muted);margin-top:6px}.footnote{margin-top:20px;display:flex;gap:18px;color:var(--soft);font-size:10px;line-height:1.7}.footnote span{font:9px 'DM Mono',monospace;color:var(--amber);white-space:nowrap}.page-title{font-size:48px}.page-deck{margin:13px 0 25px}.lab-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.72fr);gap:24px;align-items:stretch}.composer{background:var(--sheet);border:1px solid var(--line);padding:22px}.chip{background:var(--moss-light);color:var(--moss);padding:4px 7px;border-radius:3px;font:8px 'DM Mono',monospace;letter-spacing:.08em}.composer label{display:block;font-weight:700;font-size:12px;margin:22px 0 8px}.composer textarea{width:100%;resize:vertical;min-height:140px;padding:13px;border:1px solid #d6d6ca;border-radius:var(--radius-sm);background:var(--inset);color:var(--ink);font:13px/1.7 'DM Sans',sans-serif}.composer textarea:focus{outline:2px solid var(--moss);outline-offset:1px}.composer-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:11px}.composer-foot>span{color:var(--muted);font-size:10px}.composer-foot button{background:var(--moss);color:white;border:0;border-radius:var(--radius-sm);padding:11px 14px;font-weight:700;font-size:11px;cursor:pointer}.composer-foot button:hover{background:#40553a}.composer-foot button:disabled{opacity:.55;cursor:wait}.composer-foot button span{padding-left:15px}.status-line{margin:12px 0 0;color:var(--muted);font-size:10px;min-height:16px}.lab-aside{padding:12px 4px}.margin-label{color:var(--amber)}.lab-aside ol{counter-reset:item;list-style:none;padding:0;margin:13px 0 21px}.lab-aside li{counter-increment:item;border-top:1px solid var(--line);padding:10px 0 10px 26px;position:relative;color:var(--soft);font-size:11px;line-height:1.6}.lab-aside li:before{content:'0' counter(item);position:absolute;left:0;top:11px;color:var(--moss);font:9px 'DM Mono',monospace}.warning-note{background:var(--amber-light);padding:12px;color:#6d5a3f;font-size:10px;line-height:1.7;border-left:2px solid var(--amber)}.results-head{display:flex;justify-content:space-between;margin:29px 0 10px;padding-bottom:9px;border-bottom:1px solid var(--line);color:var(--soft)}.results-head span:last-child{color:var(--muted)}.results{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.results[hidden]{display:none}.result{padding:16px 18px 18px;background:var(--sheet);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.result.protected{background:#f0f1e9}.result.restored{background:#eef0e9}.result-label{display:flex;gap:9px;align-items:center}.result-label span{color:var(--amber);font:10px 'DM Mono',monospace}.result-label small{color:var(--muted);font:8px 'DM Mono',monospace;letter-spacing:.1em}.result h2{font:500 17px 'Newsreader',Georgia,serif;margin:10px 0}.result p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--soft);font:12px/1.7 'DM Sans',sans-serif;min-height:38px}.proof{font:9px 'DM Mono',monospace;color:var(--success);margin-top:10px}.error-box{margin-top:12px;background:var(--error-light);border-left:3px solid var(--error);padding:15px 17px;color:#713e38;font-size:12px;line-height:1.65}.error-box[hidden]{display:none}.error-box b{display:block;margin-bottom:4px}.flow-list{border-top:1px solid var(--line);margin-top:26px}.flow-list article{display:grid;grid-template-columns:43px 1fr 94px;gap:12px;padding:17px 8px;border-bottom:1px solid var(--line);align-items:start}.flow-no{font:17px 'Newsreader',Georgia,serif;color:var(--amber)}.flow-list h2{font:500 17px 'Newsreader',Georgia,serif;margin:0 0 4px}.flow-list p{margin:0;max-width:690px}.flow-list code,.two-notes code{background:var(--inset);padding:2px 4px;color:var(--moss);font:10px 'DM Mono',monospace}.flow-tag{font:8px 'DM Mono',monospace;color:var(--moss);text-align:right;letter-spacing:.09em;padding-top:4px}.flow-list article>div>code{display:inline-block;margin-top:5px}.two-notes{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:24px 0}.two-notes>div{border-top:1px solid var(--line);padding-top:13px}.two-notes h2{font:500 17px 'Newsreader',Georgia,serif;margin:10px 0 4px}.two-notes p{margin:0}.collection-strip{display:flex;align-items:center;gap:22px;background:var(--moss-light);padding:18px 22px;margin:28px 0 17px}.collection-strip>div{display:grid;gap:7px}.collection-strip .margin-label{color:#64715b;font-size:8px}.collection-strip b{font:500 17px 'Newsreader',Georgia,serif}.collection-arrow{color:var(--moss)}.collection-strip a{margin-left:auto;color:var(--moss);font-size:10px;font-weight:700;text-decoration:none}.collection-strip a:hover{text-decoration:underline}.schema{max-width:720px;background:#292d29;color:#eae9dd;padding:17px 21px 14px;border-radius:var(--radius-sm)}.schema-head{display:flex;justify-content:space-between;color:#a8ac9e;font-size:8px}.schema pre{margin:15px 0 0;white-space:pre-wrap;font:12px/1.7 'DM Mono',monospace}.schema i{color:#c2be92;font-style:normal}.schema b{font-weight:400;color:#e2d7a5}.storage-notes{max-width:720px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-top:18px}.storage-notes p{margin:0;border-top:1px solid var(--line);padding-top:9px;color:var(--soft);font-size:10px;line-height:1.7}.storage-notes p span{display:block;color:var(--amber);font:9px 'DM Mono',monospace;margin-bottom:4px}.storage-notes code{font:9px 'DM Mono',monospace;color:var(--moss)}.deliver-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.72fr);gap:26px;margin-top:27px}.checklist,.rubric{background:var(--sheet);border:1px solid var(--line);padding:20px}.checklist .section-cap,.rubric .section-cap{margin-bottom:12px}.checklist label{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line-soft);cursor:pointer;align-items:flex-start}.checklist input{appearance:none;width:15px;height:15px;border:1px solid #a9aa9e;border-radius:2px;margin:1px 0 0;flex:none;background:var(--paper)}.checklist input:checked{background:var(--moss);border-color:var(--moss);box-shadow:inset 0 0 0 3px var(--sheet)}.checklist label span{display:grid;gap:3px}.checklist b{font-size:11px}.checklist small{font-size:10px;color:var(--muted)}.rubric>div:not(.section-cap){display:grid;grid-template-columns:39px 1fr;align-items:center;border-top:1px solid var(--line-soft);padding:10px 0}.rubric>div b{font:500 17px 'Newsreader',Georgia,serif;color:var(--amber)}.rubric>div span{font-size:10px;color:var(--soft)}.rubric>a{display:inline-block;margin:12px 12px 0 0;color:var(--moss);font-size:10px;font-weight:700;text-decoration:none}.rubric>a:hover{text-decoration:underline}.submission-note{margin-top:18px;background:var(--amber-light);border-left:2px solid var(--amber);padding:13px 16px}.submission-note b{font:8px 'DM Mono',monospace;letter-spacing:.1em;color:var(--amber)}.submission-note p{margin:5px 0 0;color:#665941;font-size:11px;line-height:1.7}.page-footer{border-top:1px solid var(--line);padding:15px clamp(22px,5vw,70px);display:flex;justify-content:space-between;color:var(--muted);font:8px 'DM Mono',monospace;letter-spacing:.09em}.page-footer i{font-style:normal;color:var(--amber)}
@media(max-width:950px){.desk{grid-template-columns:212px minmax(0,1fr)}.rail{padding-left:16px;padding-right:13px}.course-label{font-size:8px}.overview-grid{gap:28px}.brief dl div{grid-template-columns:76px 1fr}.page-title{font-size:43px}}
@media(max-width:720px){.desk{display:block}.rail{min-height:0;padding:14px 16px 0;border-right:0;border-bottom:1px solid var(--line)}.identity{width:max-content}.course-label{margin:13px 0 7px}.tabs{display:flex;overflow:auto;gap:4px;padding-bottom:9px;scrollbar-width:thin}.tab{white-space:nowrap;padding:9px 10px;font-size:11px;gap:7px}.tab span{font-size:8px}.rail-note,.rail-foot{display:none}.topline{min-height:45px;padding:0 17px;font-size:8px}.connection{font-size:10px}main{padding:32px 17px 23px}.overview-heading{grid-template-columns:1fr 75px;gap:12px}.overview-heading h1{font-size:43px}.folio{font-size:8px;padding-left:10px}.intro{font-size:12px}.overview-grid{grid-template-columns:1fr;gap:22px;padding:22px 0}.brief{border-left:0;border-top:1px solid var(--line);padding:15px 0 0}.brief dl div{grid-template-columns:100px 1fr}.journey-title span:last-child{display:none}.journey{grid-template-columns:1fr 1fr}.journey>div:nth-child(2){border-right:0}.journey>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.journey>div{margin:0;padding:12px 8px}.footnote{display:block}.footnote span{display:block;margin-bottom:4px}.page-title{font-size:41px}.lab-layout,.deliver-grid{grid-template-columns:1fr;gap:15px}.lab-aside{padding:5px 0}.lab-aside ol{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.results{grid-template-columns:1fr}.flow-list article{grid-template-columns:28px 1fr;gap:9px}.flow-tag{grid-column:2;text-align:left}.two-notes{grid-template-columns:1fr;gap:15px}.collection-strip{gap:12px;padding:15px 12px;flex-wrap:wrap}.collection-strip b{font-size:14px}.collection-strip a{width:100%;margin:5px 0 0}.storage-notes{grid-template-columns:1fr;gap:10px}.schema{padding:15px}.schema pre{font-size:10px}.page-footer{padding:12px 17px;gap:10px;font-size:7px}.page-footer span:last-child{text-align:right}}

.flow-list article{grid-template-columns:40px 1fr}
.collection-strip{flex-wrap:wrap}
.db-state{margin-left:auto;color:var(--soft);font-size:10px}
.code-inline{background:var(--inset);padding:2px 4px;color:var(--moss);font:10px 'DM Mono',monospace}
.mapping-table-wrap{overflow-x:auto;border:1px solid var(--line);background:var(--sheet)}
.mapping-table{width:100%;min-width:620px;border-collapse:collapse;text-align:left}
.mapping-table th,.mapping-table td{padding:12px 14px;border-bottom:1px solid var(--line-soft);font-size:11px}
.mapping-table th{color:var(--muted);font:9px 'DM Mono',monospace;font-weight:500}
.mapping-table td{color:var(--soft);overflow-wrap:anywhere}
.mapping-table tbody tr:last-child td{border-bottom:0}
.mapping-table td:nth-child(2){color:var(--moss);font:10px 'DM Mono',monospace}
.empty-row{color:var(--muted)!important;font:11px 'DM Sans',sans-serif!important;padding:20px!important}
.storage-notes{grid-template-columns:1fr 1fr;max-width:none}
.storage-notes p{font-size:10px}
@media(max-width:720px){.flow-list article{grid-template-columns:28px 1fr}.db-state{width:100%;margin-left:0}.mapping-table-wrap{margin-inline:-1px}.storage-notes{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
