:root{--ink:#243633;--muted:#6d7974;--green:#315f50;--paper:#f5f4ee;--line:#dedfd5;--orange:#b57427;--missing:#b65345;--sidebar:#172927;--sidebar-muted:#a3b5ae;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ba8d44;outline-offset:3px}button,input,select{border-radius:7px}button{border:0;background:transparent}h1,h2,h3,p{margin:0}small{display:block}button,a{ -webkit-tap-highlight-color:transparent }[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;left:18px;top:-60px;z-index:100;background:#fff;padding:12px}.skip:focus{top:12px}
.sidebar{position:fixed;inset:0 auto 0 0;width:244px;background:var(--sidebar);color:#edf1e9;padding:28px 18px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:11px;align-items:center;font-size:17px;font-weight:650;margin:0 4px 32px}.brand-mark{height:40px;width:40px;display:grid;place-items:center;background:#d8c891;color:#253b30;border-radius:12px;font-family:serif;font-size:23px}.brand small{font-size:9px;font-weight:450;color:var(--sidebar-muted);letter-spacing:1.1px;margin-top:7px}.sidebar-heading{display:flex;align-items:center;gap:8px;font-size:12px;margin:0 4px 14px;color:#ccd6cb}.sidebar-heading #nav-count{color:#8fa19b;font-size:11px}.sidebar-heading button{margin-left:auto;color:#ccd6cb;font-size:20px;display:none}.search{display:flex;align-items:center;gap:7px;background:#243a35;border:1px solid #385047;padding:10px 9px;border-radius:7px}.search>span{font-size:21px;line-height:16px;color:#b5c6bc}.search input{width:100%;min-width:0;color:#fff;background:none;border:0;outline:0;font-size:12px}.search input::placeholder{color:#9aafa5}.search kbd{font:11px monospace;color:#9eaea4;border:1px solid #56675d;padding:1px 4px;border-radius:3px}.filter-label{font-size:10px;color:#99aea4;margin:16px 2px 6px}#status-filter{width:100%;background:#20362f;border:1px solid #385047;color:#d5e0d5;font-size:12px;padding:9px}.gap-toggle{display:flex;align-items:center;gap:6px;font-size:11px;color:#bdcbbf;margin:12px 0 16px;cursor:pointer}.gap-toggle input{accent-color:#d1bd82}#directory{flex:1;overflow:auto;margin:0 -7px;padding:0 7px;scrollbar-width:thin;scrollbar-color:#486354 transparent}.nav-group{margin-bottom:19px}.nav-group h2{font-size:10px;letter-spacing:1px;color:#8da397;font-weight:500;margin:7px 10px 9px}.nav-item{display:flex;align-items:center;width:100%;gap:9px;text-align:left;padding:10px 9px;margin:3px 0;font-size:12px;color:#ccdacb;line-height:1.4;border:1px solid transparent}.nav-item:hover{background:#263e34}.nav-item.active{background:#e6e6d4;color:#233c30;border-color:#eeeacb}.nav-item .item-number{font-family:monospace;font-size:10px;opacity:.6;min-width:15px}.nav-item .item-title{flex:1}.nav-status{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:#d2a256}.nav-status.missing{background:#df9281}.nav-status.reference{background:#9aa7b4}.sidebar-bottom{padding:17px 5px 0;border-top:1px solid #345043;margin-top:10px;font-size:10px;color:#c4d0c4;line-height:1.8}.sidebar-bottom small{font-size:10px;color:#8fa798;margin:5px 0 0 12px}.signal{display:inline-block;width:5px;height:5px;background:#92b9a1;border-radius:50%;margin-right:6px}
.main{margin-left:244px;padding:0 38px;max-width:1800px}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.topbar-left{display:flex;align-items:center;gap:12px}.breadcrumb{font-size:11px;color:var(--muted)}.breadcrumb span{padding:0 12px;color:#9ba49c}.top-links{display:flex;gap:22px;align-items:center;font-size:11px}.link-btn{font-size:11px;padding:0}.top-links a:hover,.link-btn:hover{color:var(--green);text-decoration:underline}.intro{display:flex;justify-content:space-between;align-items:center;margin:32px 0 27px;gap:15px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:650;color:#688272;margin-bottom:10px}.intro h1{font-size:34px;letter-spacing:-1px;line-height:1.3;font-weight:650}.intro h1 span{font-size:27px;font-weight:400;color:#a3aa95;padding:0 9px}.intro-copy{font-size:12px;color:var(--muted);margin-top:9px}.outline-btn{border:1px solid #c9cfc1;border-radius:6px;padding:11px 15px;font-size:11px;white-space:nowrap;background:#fafbf6}.outline-btn:hover,.small-btn:hover{border-color:#799780;background:#edf1e6}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:26px}.metric{border:1px solid var(--line);background:#fcfcf8;border-radius:8px;padding:17px 18px;text-align:left}.metric-label{font-size:11px;color:#65776b}.metric-value{font-size:28px;line-height:1.4;margin-top:5px;letter-spacing:-1px;display:block;font-weight:600}.metric-value small{display:inline;font-size:10px;font-weight:400;letter-spacing:0;color:var(--muted);padding-left:7px}.metric-note{display:block;margin-top:4px;color:#929889;font-size:10px}.metric.missing .metric-value{color:var(--missing)}.metric.gaps .metric-value{color:var(--orange)}.metric:hover{border-color:#90a28a}.workspace-tabs{display:flex;gap:25px;align-items:center;border-bottom:1px solid var(--line);min-height:47px}.workspace-tabs>button{font-size:12px;align-self:stretch;border-bottom:2px solid transparent;border-radius:0;padding:0 0 13px}.workspace-tabs>button[aria-selected="true"]{font-weight:650;border-color:var(--green);color:var(--green)}.workspace-tabs>button span{background:#e8e9de;border-radius:5px;font-size:10px;padding:2px 5px;margin-left:5px}.snapshot-note{font-size:10px;color:#8b9386;margin-left:auto}.detail-top{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin:24px 0 17px}.detail-title-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.detail-top h2{font-size:20px;font-weight:650}.detail-id{font:10px monospace;color:#94a08f;margin-bottom:7px}.detail-summary{font-size:12px;line-height:1.85;color:#6b796d;margin-top:8px;max-width:760px}.status-badge{display:inline-flex;align-items:center;gap:5px;border-radius:4px;padding:4px 7px;font-size:10px;white-space:nowrap;background:#f2e9d7;color:#92621f}.status-badge.missing{background:#f4e4df;color:#a85141}.status-badge.reference{background:#e7edf0;color:#617486}.small-btn{border:1px solid var(--line);padding:6px 9px;border-radius:5px;background:#fafbf7;font-size:11px;white-space:nowrap}.page-switch{display:flex;gap:6px;align-items:center;flex-shrink:0;padding-top:3px}.page-switch>span{font:10px monospace;color:#82907f;padding:0 4px}.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.image-panel{border:1px solid #d9ded2;background:#fff;border-radius:10px;overflow:hidden;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:13px 16px;border-bottom:1px solid #e7e9e0;min-height:51px}.panel-label{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:600}.panel-label b{display:grid;place-items:center;width:21px;height:21px;font:10px monospace;border:1px solid #d7dbd0;border-radius:5px;color:#798975}.panel-tools{display:flex;gap:7px;font-size:10px;align-items:center}.panel-tools a,.panel-tools button{color:#6b7b64;font-size:10px;white-space:nowrap;padding:3px}.panel-tools .active{background:#e9eee0;border-radius:4px;font-weight:650}.panel-kicker{padding:9px 16px;font-size:10px;color:#7c8875;border-bottom:1px solid #eceee7;background:#fcfcf8;white-space:normal;min-height:35px;line-height:1.6}.art-stage{height:clamp(350px,53vh,590px);padding:18px 12px;display:flex;align-items:center;justify-content:center;background-color:#eaece4;background-image:radial-gradient(#cbd2c2 .65px,transparent .65px);background-size:11px 11px;overflow:hidden}.art-stage.implementation{background-color:#e4e9df}.image-button{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0;cursor:zoom-in;border-radius:0}.image-button img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 4px 16px #21362718}.image-button:hover img{box-shadow:0 4px 19px #21362730}.panel-caption{padding:11px 16px 13px;border-top:1px solid #e4e8dd;font-size:10px;line-height:1.8;color:#7d8876;min-height:57px}.panel-caption strong{font-size:10px;color:#67765e;font-weight:500}.panel-caption a{color:#53764f;text-decoration:underline}.empty-implementation{max-width:255px;text-align:center;padding:24px 18px}.empty-symbol{height:60px;width:45px;border:2px dashed #b6bca9;border-radius:8px;margin:0 auto 19px;display:grid;place-items:center;color:#b4b99f;font-size:23px}.empty-implementation h3{font-size:15px;font-weight:600;color:#7d8973;margin-bottom:11px}.empty-implementation p{font-size:11px;color:#89927e;line-height:1.85}.empty-implementation button{font-size:10px;line-height:1.7;margin-top:20px;color:#527452;border-bottom:1px solid #9aa98b;border-radius:0}.source-text{padding:23px;max-width:320px;background:#fafbf6;border:1px solid #d5dccd;box-shadow:0 4px 12px #33442912}.source-text h3{font-size:14px;margin-bottom:15px}.source-text p{font-size:12px;line-height:1.9;padding:5px 0;border-top:1px solid #e9eddf}.live-box{aspect-ratio:393/852;max-width:100%;height:100%;position:relative;background:#141a20;overflow:hidden}.live-box iframe{position:absolute;left:0;top:0;width:393px;height:852px;transform-origin:0 0;border:0;transform:scale(var(--scale,1))}.notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.note-box{padding:18px 20px 20px;border:1px solid var(--line);border-radius:8px;background:#fdfdf9}.note-box h3{font-size:12px;margin-bottom:13px}.note-box.done h3{color:#4a6d52}.note-box.gaps{background:#fcfaf4}.note-box.gaps h3{color:#98722d}.done-line{display:flex;gap:8px;font-size:11px;line-height:1.8;margin:8px 0;color:#697765}.done-line>span:first-child{color:#6c906e}.gap-line{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.75;margin:10px 0;color:#6f7667}.priority{font:9px monospace;background:#f0e6d1;color:#a0762a;border:1px solid #e3d5b9;padding:2px 4px;border-radius:3px;flex-shrink:0;margin-top:1px}.priority.p2{background:#eef0e8;color:#829276;border-color:#dce3d3}.gap-type{color:#9b8a69;font-size:10px;margin-right:5px}.entry-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 1px;font-size:11px;color:#839078;line-height:1.8}.entry-link a{font-size:11px;color:#4d7051;white-space:nowrap}.foot-switch{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:15px;margin-top:4px;color:#829077;font-size:10px}.page-footer{border-top:1px solid var(--line);padding:21px 0;margin-top:26px;font-size:10px;line-height:1.8;color:#939c87;display:flex;gap:10px;justify-content:space-between}.empty-results{text-align:center;padding:80px 20px;color:#849178;line-height:2}.empty-results h2{font-size:18px}.empty-results p{font-size:12px;margin:8px}.backlog-heading{display:flex;justify-content:space-between;gap:15px;margin:24px 0 22px;align-items:center}.backlog-heading h2{font-size:20px;margin-bottom:7px}.backlog-heading p{font-size:11px;color:#7d8c74;line-height:1.8}.backlog-heading>span{font-size:11px;color:#8c967d;white-space:nowrap}.backlog-card{border:1px solid var(--line);border-radius:8px;background:#fff;margin-bottom:12px;padding:17px 20px}.backlog-card>button{width:100%;display:flex;justify-content:space-between;gap:15px;text-align:left;padding:0;align-items:center}.backlog-card h3{font-size:13px}.backlog-card small{font-size:10px;font-weight:400;color:#88977e;margin-bottom:5px}.backlog-card .gap-line{margin-bottom:0}.backlog-card:hover{border-color:#a7b29b}.mobile-menu,.drawer-shade{display:none}
#zoom-dialog{border:1px solid #d7dfcf;border-radius:11px;padding:0;max-width:calc(100vw - 38px);width:1200px;height:calc(100dvh - 38px);max-height:1100px;background:#f2f4ec;color:var(--ink);overflow:hidden}#zoom-dialog::backdrop{background:#12251ee3;backdrop-filter:blur(5px)}.zoom-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 19px;background:#fafcf6;border-bottom:1px solid #dbe2d0;min-height:62px}.zoom-bar h2{font-size:13px}.zoom-bar>div{display:flex;gap:15px;align-items:center;font-size:11px}.zoom-stage{height:calc(100% - 95px);overflow:auto;padding:20px;display:flex;align-items:flex-start;justify-content:center}.zoom-stage img{display:block;max-width:100%;max-height:100%;object-fit:contain;width:auto;height:auto;margin:auto}.zoom-stage.original{display:block}.zoom-stage.original img{max-width:none;max-height:none;margin:0 auto}.zoom-caption{padding:4px 16px 10px;text-align:center;color:#89957c;font-size:10px}
@media(min-width:1600px){.main{padding:0 55px}.art-stage{height:580px}}
@media(max-width:1190px){.main{padding:0 24px}.sidebar{width:224px;padding-left:14px;padding-right:14px}.main{margin-left:224px}.snapshot-note{display:none}.metric{padding:14px 12px}.pair,.notes-grid{gap:12px}.panel-heading{padding:12px}.panel-kicker,.panel-caption{padding-left:12px;padding-right:12px}}
@media(max-width:960px){.sidebar{transform:translateX(-100%);width:264px;transition:transform .18s ease}.sidebar.open{transform:none}.sidebar-heading button{display:block}.drawer-shade:not([hidden]){display:block;position:fixed;inset:0;background:#10201888;z-index:19;border-radius:0}.main{margin-left:0;padding:0 24px}.mobile-menu{display:inline-block}.topbar{height:64px}.intro{margin-top:26px}.art-stage{height:490px}.top-links{gap:18px}.page-footer{flex-wrap:wrap}}
@media(max-width:600px){.main{padding:0 14px}.breadcrumb{display:none}.top-links{gap:13px;font-size:10px}.link-btn{font-size:10px}.intro{margin-top:24px;align-items:flex-start}.intro h1{font-size:28px}.intro h1 span{font-size:23px;padding:0 4px}.eyebrow{font-size:8px;letter-spacing:1px}.intro-copy{font-size:11px;max-width:200px;line-height:1.8}.outline-btn{font-size:10px;padding:9px 10px;margin-top:23px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:15px}.metric{padding:11px 13px}.metric-value{font-size:24px;margin-top:3px}.metric-note{font-size:9px}.metric-label{font-size:10px}.workspace-tabs{gap:24px}.detail-top h2{font-size:17px}.detail-top{margin:20px 0 14px;gap:7px}.detail-summary{font-size:11px}.detail-title-row{gap:7px}.status-badge{font-size:9px;padding:3px 5px}.page-switch{gap:3px}.page-switch .small-btn{padding:6px}.page-switch>span{font-size:9px;padding:0}.pair{gap:8px}.panel-heading{padding:9px 8px;min-height:44px;flex-wrap:wrap}.panel-label{font-size:11px;gap:5px}.panel-label b{width:18px;height:18px;font-size:9px}.panel-tools{gap:3px}.panel-tools a,.panel-tools button{font-size:9px;padding:2px}.panel-kicker{padding:7px 8px;min-height:47px;font-size:9px}.art-stage{height:355px;padding:10px 6px}.panel-caption{padding:8px;min-height:74px;font-size:9px}.panel-caption strong{font-size:9px}.notes-grid{grid-template-columns:1fr;gap:9px;margin-top:12px}.note-box{padding:15px}.entry-link{align-items:flex-start;font-size:10px}.entry-link a{font-size:10px}.empty-implementation{padding:10px 6px}.empty-symbol{margin-bottom:13px;width:33px;height:45px;font-size:17px}.empty-implementation h3{font-size:12px}.empty-implementation p{font-size:10px}.empty-implementation button{font-size:9px}.source-text{padding:12px}.source-text h3{font-size:12px;margin-bottom:8px}.source-text p{font-size:10px}.backlog-heading{display:block}.backlog-heading>span{display:block;margin-top:8px}.backlog-card{padding:15px}.zoom-bar{padding:10px;gap:7px;align-items:flex-start}.zoom-bar>div{gap:6px}.zoom-bar h2{font-size:11px;line-height:1.7}.zoom-bar a{display:none}.zoom-bar .small-btn{font-size:10px;padding:5px}.zoom-stage{padding:9px}#zoom-dialog{max-width:calc(100vw - 14px);height:calc(100dvh - 20px)}.page-footer{font-size:9px}.foot-switch>span{max-width:165px;line-height:1.8}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.status-badge.implemented{background:#e2eee5;color:#365f46;border-color:#b8cfbd}.nav-status.implemented{background:#83b08b}
