@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-vietnamese-600-normal-b1FQiZcx.woff2) format("woff2"),url(/assets/barlow-semi-condensed-vietnamese-600-normal-DzVrjA0Q.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-latin-ext-600-normal-BkQ9hN72.woff2) format("woff2"),url(/assets/barlow-semi-condensed-latin-ext-600-normal-BuP8AaxH.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-latin-600-normal-BkLiAYu4.woff2) format("woff2"),url(/assets/barlow-semi-condensed-latin-600-normal-DyOfdMBA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink: #1c2430;--slate: #5b6573;--rule: #d5dae1;--paper: #f3f5f7;--white: #ffffff;--primary: #1d5c96;--primary-hover: #174a79;--primary-tint: #e6eef6;--amber: #b7791f;--amber-tint: #fbf2e3;--green: #2e7d4f;--green-tint: #e6f2eb;--red: #b42318;--red-tint: #fbeae8;--s1: 4px;--s2: 8px;--s3: 16px;--s4: 24px;--s5: 32px;--s6: 48px;--s7: 64px;--radius: 4px;--pill: 999px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--control: 44px;--heading: "Barlow Semi Condensed", "Arial Narrow", sans-serif;--body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--body);font-size:16px;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--heading);line-height:1.2;margin:0;font-weight:600}h1{font-size:32px}h2{font-size:24px}h3{font-size:20px}p{margin:0}a{color:var(--primary);text-decoration:none;transition:color .15s ease}a:hover{color:var(--primary-hover);text-decoration:underline}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.muted{color:var(--slate)}.small{font-size:14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:var(--control);padding:0 var(--s3);border:1px solid var(--primary);border-radius:var(--radius);background:var(--primary);color:var(--white);font:500 16px var(--body);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap}.button:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--white);text-decoration:none}.button.secondary{background:var(--white);color:var(--ink);border-color:var(--rule)}.button.secondary:hover{border-color:var(--slate);background:var(--paper)}.button.danger{background:var(--white);color:var(--red);border-color:var(--rule)}.button.danger:hover{border-color:var(--red);background:var(--red-tint)}.button:disabled{opacity:.55;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:var(--s1)}.field label{font-size:14px;font-weight:500}.field .hint{font-size:14px;color:var(--slate)}input,select,textarea{min-height:var(--control);padding:0 var(--s2);border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);color:var(--ink);font:16px var(--body);transition:border-color .15s ease}textarea{padding:var(--s2);min-height:96px;resize:vertical}input:hover,select:hover,textarea:hover{border-color:var(--slate)}.form{display:grid;gap:var(--s3)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s3)}.actions{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}.shell{display:grid;grid-template-columns:248px 1fr;min-height:100%}.sidebar{background:var(--white);border-right:1px solid var(--rule);display:flex;flex-direction:column;padding:var(--s4) var(--s3);gap:var(--s4)}.brand{display:flex;flex-direction:column;gap:var(--s1);padding:0 var(--s2)}.brand-name{font-family:var(--heading);font-size:20px;font-weight:600}.nav{display:flex;flex-direction:column;gap:var(--s1)}.nav a,.nav span.locked{display:flex;align-items:center;justify-content:space-between;min-height:var(--control);padding:0 var(--s2);border-radius:var(--radius);color:var(--ink);transition:background-color .15s ease,color .15s ease}.nav a:hover{background:var(--paper);text-decoration:none}.nav a.active{background:var(--primary-tint);color:var(--primary);font-weight:500}.nav span.locked{color:var(--slate)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:var(--s2);padding:0 var(--s2)}.main{display:flex;flex-direction:column;min-width:0}.content{width:100%;max-width:1200px;padding:var(--s5) var(--s5) var(--s6);display:flex;flex-direction:column;gap:var(--s4)}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s3)}.page-head p{margin-top:var(--s1)}.topbar{display:none}@media(max-width:900px){.shell{grid-template-columns:1fr;grid-template-rows:auto auto 1fr}.sidebar{display:none;border-right:0;border-bottom:1px solid var(--rule)}.shell.nav-open .sidebar{display:flex}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--s2) var(--s3);background:var(--white);border-bottom:1px solid var(--rule)}.content{padding:var(--s4) var(--s3) var(--s6)}}.panel{background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3)}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--s4)}.banner{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;padding:var(--s3) var(--s5);border-bottom:1px solid var(--rule);background:var(--amber-tint);color:var(--ink)}.banner.info{background:var(--primary-tint)}.notice{padding:var(--s3);border:1px solid var(--rule);border-left:4px solid var(--primary);border-radius:var(--radius);background:var(--white)}.notice.error{border-left-color:var(--red)}.notice.warning{border-left-color:var(--amber)}.register{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);font-size:15px}.register th{text-align:left;font-weight:500;font-size:14px;color:var(--slate);padding:var(--s2) var(--s3);border-bottom:1px solid var(--rule);background:var(--paper)}.register td{padding:var(--s2) var(--s3);border-bottom:1px solid var(--rule);height:52px;vertical-align:middle}.register tr:last-child td{border-bottom:0}.register tbody tr.link-row{cursor:pointer;transition:background-color .15s ease}.register tbody tr.link-row:hover{background:var(--paper)}.register .nowrap{white-space:nowrap}.register .code{font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap}.table-wrap{overflow-x:auto}@media(max-width:700px){.register .hide-narrow{display:none}}.badge{display:inline-flex;align-items:center;min-height:24px;padding:0 var(--s2);border-radius:var(--pill);font-size:13px;font-weight:500;background:var(--paper);color:var(--slate);border:1px solid var(--rule);white-space:nowrap}.badge.ok{background:var(--green-tint);color:var(--green);border-color:transparent}.badge.warn{background:var(--amber-tint);color:var(--amber);border-color:transparent}.badge.bad{background:var(--red-tint);color:var(--red);border-color:transparent}.badge.info{background:var(--primary-tint);color:var(--primary);border-color:transparent}.title-block{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;border:2px solid var(--ink);border-radius:var(--radius);background:var(--white)}.title-block>div{padding:var(--s2) var(--s3);border-right:1px solid var(--ink);display:flex;flex-direction:column;gap:var(--s1);min-width:0}.title-block>div:last-child{border-right:0}.title-block .tb-name{grid-row:span 2;justify-content:center}.title-block .tb-row2{border-top:1px solid var(--ink)}.title-block .tb-label{font-size:13px;color:var(--slate)}.title-block .tb-value{font-family:var(--heading);font-size:20px;font-weight:600;overflow-wrap:anywhere}.title-block h1{font-size:32px;overflow-wrap:anywhere}@media(max-width:800px){.title-block{grid-template-columns:1fr 1fr}.title-block .tb-name{grid-column:span 2;grid-row:auto;border-right:0;border-bottom:1px solid var(--ink)}.title-block .tb-row2{border-top:0}.title-block>div:nth-child(odd):not(.tb-name){border-right:0}}.state{padding:var(--s6) var(--s4);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--s2);background:var(--white);border:1px dashed var(--rule);border-radius:var(--radius)}.skeleton{height:52px;border-radius:var(--radius);background:var(--white);border:1px solid var(--rule)}.progress{height:8px;width:96px;background:var(--paper);border-radius:var(--pill);overflow:hidden;border:1px solid var(--rule)}.progress span{display:block;height:100%;background:var(--primary)}.auth-page{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,480px)}.auth-aside{background:var(--primary);color:var(--white);padding:var(--s6);display:flex;flex-direction:column;justify-content:space-between;gap:var(--s4);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M0 0.5H32M0.5 0V32' stroke='%23ffffff' stroke-opacity='0.12' fill='none'/%3E%3C/svg%3E");background-size:32px 32px}.auth-aside h1{font-size:48px;max-width:12ch}.auth-aside p{max-width:48ch;font-size:18px}.auth-main{background:var(--white);padding:var(--s6) var(--s5);display:flex;flex-direction:column;justify-content:center;gap:var(--s4)}@media(max-width:800px){.auth-page{grid-template-columns:1fr}.auth-aside{padding:var(--s5) var(--s3)}.auth-aside h1{font-size:32px}.auth-main{padding:var(--s5) var(--s3)}}.tree{list-style:none;margin:0;padding-left:var(--s3);border-left:1px solid var(--rule);display:flex;flex-direction:column;gap:var(--s1)}.tree.root{padding-left:0;border-left:0}.tree-node{display:flex;gap:var(--s2);align-items:center;min-height:32px}.kv{display:grid;grid-template-columns:max-content 1fr;gap:var(--s2) var(--s3);margin:0}.kv dt{color:var(--slate);font-size:14px}.kv dd{margin:0;overflow-wrap:anywhere}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s3)}.stat{background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s3)}.stat strong{display:block;font-family:var(--heading);font-size:32px;font-weight:600}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.row-actions{display:flex;justify-content:flex-end;gap:var(--s1)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:var(--control);height:var(--control);border:1px solid var(--rule);border-radius:var(--radius);background:var(--white);color:var(--ink);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.icon-button:hover{border-color:var(--slate);background:var(--paper);color:var(--ink);text-decoration:none}.icon-button.danger{color:var(--red)}.icon-button.danger:hover{border-color:var(--red);background:var(--red-tint)}.icon-button:disabled{opacity:.55;cursor:not-allowed}.tabs{display:flex;gap:var(--s1);border-bottom:1px solid var(--rule)}.tab{display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--control);padding:0 var(--s3);border:0;border-bottom:2px solid transparent;background:none;color:var(--slate);font:500 16px var(--body);cursor:pointer;transition:color .15s ease,border-color .15s ease}.tab:hover{color:var(--ink)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.dialog{border:1px solid var(--rule);border-radius:var(--radius);padding:0;width:min(480px,calc(100vw - 32px));box-shadow:var(--shadow);color:var(--ink)}.dialog.wide{width:min(960px,calc(100vw - 32px))}.dialog::backdrop{background:#1c243073}.dialog-body{padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3)}.preview-text{margin:0;max-height:60vh;overflow:auto;padding:var(--s3);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);font-size:14px}.preview-image{max-width:100%;max-height:60vh;object-fit:contain;border:1px solid var(--rule)}.preview-frame{width:100%;height:60vh;border:1px solid var(--rule)}.job-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s2)}.job{border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s2) var(--s3);display:flex;flex-direction:column;gap:var(--s1)}.job-head,.job-progress{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.job-head{justify-content:space-between}.job .small a+a{margin-left:var(--s2)}.badge.with-icon{display:inline-flex;align-items:center;gap:var(--s1)}.conversion-progress{min-width:160px}.conversion-progress .progress{margin:var(--s1) 0}.bad-text{color:var(--red)}.ok-text{color:var(--green)}.form.inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s3);margin:var(--s3) 0}.facts{display:grid;grid-template-columns:minmax(96px,max-content) 1fr;gap:var(--s2) var(--s3);margin:0 0 var(--s3)}.facts dt{color:var(--slate)}.facts dd{margin:0}.details h3,.review h3{margin:var(--s4) 0 var(--s2)}.checks,.artifact-list,.issue-list{list-style:none;margin:0;padding:0}.checks li{padding:var(--s1) 0}.artifact-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--rule)}.register.compact td,.register.compact th{padding:var(--s1) var(--s2)}.calibrate-page{position:relative;max-height:60vh;overflow:auto;border:1px solid var(--rule);border-radius:var(--radius);cursor:crosshair}.calibrate-page img{display:block;width:100%;height:auto}.calibrate-mark{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid var(--primary);border-radius:var(--pill);background:var(--white);pointer-events:none}.issue{padding:var(--s3);margin-bottom:var(--s2);border:1px solid var(--rule);border-radius:var(--radius);background:var(--white)}.issue.settled{background:var(--paper)}.issue-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}.issue-text{margin:var(--s2) 0}.issue-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}.button.small-button{min-height:36px;padding:0 var(--s3);font-size:14px}.issue-review{margin-top:var(--s2);padding-top:var(--s2);border-top:1px solid var(--rule)}.issue-review textarea{width:100%}.technical{margin-top:var(--s2)}.technical summary{cursor:pointer;color:var(--primary)}.technical pre{max-height:200px;overflow:auto}.viewer{position:relative;overflow:hidden;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white)}.viewer-canvas{position:relative;transition:transform .18s ease}.viewer-canvas img{display:block;width:100%;height:auto}.viewer-mark{position:absolute;border:2px solid var(--red);border-radius:var(--radius);pointer-events:none}@media(prefers-reduced-motion:reduce){.viewer-canvas{transition:none}}.file-conversion{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin-top:var(--s1)}.viewer-mark.part{border-width:1px}.link-button{display:inline-flex;align-items:center;gap:var(--s1);background:none;border:0;padding:0;font:inherit;color:var(--primary);cursor:pointer;text-align:left}.link-button:hover{color:var(--primary-hover);text-decoration:underline}.warn-text{color:var(--amber)}.notice.info{background:var(--primary-tint);border-color:var(--primary)}.notice.ok{background:var(--green-tint);border-color:var(--green)}.editor{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--paper);overflow:hidden}.editor-strip{display:flex;align-items:stretch;flex-wrap:wrap;background:var(--white);border-bottom:2px solid var(--ink)}.strip-cell{display:flex;flex-direction:column;justify-content:center;gap:0;min-width:0;padding:var(--s1) var(--s3);border-right:1px solid var(--rule);font-size:14px;line-height:1.3}.strip-cell strong{font-weight:600}.strip-title{flex:1 1 240px}.strip-title h1{font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.strip-label{font-size:12px;color:var(--slate)}.strip-actions{display:flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s3);margin-left:auto}.editor-notice{margin:var(--s2) var(--s3) 0}.editor-body{flex:1;display:grid;grid-template-columns:auto 1fr;min-height:0}.editor-body.with-panel{grid-template-columns:auto 1fr 360px}.tool-rail{display:flex;flex-direction:column;gap:var(--s1);padding:var(--s2);background:var(--white);border-right:1px solid var(--rule);overflow-y:auto;width:176px}.tool{display:flex;align-items:center;gap:var(--s2);min-height:var(--control);padding:0 var(--s2);border:1px solid transparent;border-radius:var(--radius);background:none;color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.tool:hover{background:var(--paper)}.tool.active{background:var(--primary-tint);border-color:var(--primary);color:var(--primary-hover)}.tool:disabled{color:var(--slate);opacity:.5;cursor:not-allowed}.tool.danger{color:var(--red)}.rail-rule{border-top:1px solid var(--rule);margin:var(--s1) 0}.canvas-column{display:flex;flex-direction:column;min-width:0;min-height:0}.tool-options{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2) var(--s3);min-height:48px;padding:var(--s1) var(--s3);background:var(--white);border-bottom:1px solid var(--rule);font-size:14px}.tool-options .hint{color:var(--slate)}.inline-field{display:inline-flex;align-items:center;gap:var(--s2)}.inline-field input{width:96px;min-height:36px}.segmented{display:inline-flex;border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden}.segmented button{min-height:36px;padding:0 var(--s3);border:0;background:var(--white);font:inherit;cursor:pointer}.segmented button.active{background:var(--primary);color:var(--white)}.canvas-wrap{position:relative;flex:1;min-height:0;margin:var(--s2);border:1px solid var(--rule);background:var(--white);overflow:hidden}.plan,.plan-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.plan{touch-action:none;cursor:crosshair}.plan-overlay{pointer-events:none}.side-panel{display:flex;flex-direction:column;min-height:0;background:var(--white);border-left:1px solid var(--rule)}.side-panel .tabs{padding:0 var(--s2);flex-wrap:wrap}.panel-body{flex:1;overflow-y:auto;padding:var(--s3);font-size:14px}.panel-title{font-size:20px;margin-bottom:var(--s1)}.panel-section{margin-top:var(--s3);padding-top:var(--s2);border-top:1px solid var(--rule)}.panel-section h3{font-size:16px;margin-bottom:var(--s2)}.panel-actions,.classify{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}.field-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--s2);margin-top:var(--s2)}.field-row.stacked{grid-template-columns:1fr;gap:var(--s1)}.field-input{display:inline-flex;align-items:center;gap:var(--s1)}.field-row input,.field-row select,.field-row textarea{min-height:36px;font:inherit}.field-input input{width:112px}.unit{color:var(--slate);font-size:12px}.pair{display:grid;grid-template-columns:1fr}.search-input{display:flex;align-items:center;gap:var(--s2);border:1px solid var(--rule);border-radius:var(--radius);padding:0 var(--s2)}.search-input input{border:0;flex:1;min-height:36px;outline-offset:2px}.element-list{list-style:none;padding:0;margin:var(--s2) 0}.element-list li{padding:var(--s1) 0;border-bottom:1px solid var(--rule)}.layer-list{list-style:none;padding:0;margin:var(--s2) 0}.layer-list label,.toggle-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s2);min-height:var(--control);border-bottom:1px solid var(--rule)}.toggle-row{grid-template-columns:auto 1fr;margin-bottom:var(--s2)}.stepper{display:flex;align-items:center;gap:var(--s2);margin:var(--s2) 0}.place{padding:var(--s2);border:1px solid var(--amber);border-radius:var(--radius);background:var(--amber-tint)}.issue-list.compact .issue{padding:var(--s2) 0}.revision-list{list-style:none;padding:0;margin:0}.revision{padding:var(--s2) 0;border-bottom:1px solid var(--rule)}.revision.viewing{border-left:4px solid var(--primary);padding-left:var(--s2)}.revision-head{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.revision .row-actions{flex-wrap:wrap;margin-top:var(--s1)}@media(max-width:1100px){.tool-rail{width:auto}.tool span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.tool{justify-content:center;width:var(--control);padding:0}}@media(max-width:900px){.editor-body.with-panel{grid-template-columns:auto 1fr;grid-template-rows:minmax(0,1fr) minmax(0,42vh)}.side-panel{grid-column:1 / -1;border-left:0;border-top:2px solid var(--ink)}.strip-cell{padding:var(--s1) var(--s2)}}.project-links{display:flex;flex-wrap:wrap;gap:var(--s2)}.field>span{font-size:14px;font-weight:500}.takeoff-strip .strip-cells{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5)}.takeoff-strip .strip-cells>div{display:flex;flex-direction:column;gap:var(--s1);min-width:0}.filter-row{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:flex-end}.filter-row .field{min-width:160px}.register .num,.register td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.register tr.group-row th{background:var(--white);color:var(--ink);font-family:var(--heading);font-size:16px;font-weight:600;padding-top:var(--s3)}.register tr.subtotal td{font-weight:500;border-top:1px solid var(--rule)}.register tr.superseded td{color:var(--slate);text-decoration:line-through}.missing-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s2)}.missing-list li{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);align-items:center;justify-content:space-between;padding:var(--s2) 0;border-bottom:1px solid var(--rule)}.assumptions summary{cursor:pointer;font-weight:500}.reasons{margin:0;padding-left:var(--s3);display:flex;flex-direction:column;gap:var(--s1)}.item-tags{display:flex;flex-wrap:wrap;gap:var(--s1);margin-top:var(--s1)}.item-tags:empty{display:none}.row-actions.wrap{flex-wrap:wrap}.tab-body{display:flex;flex-direction:column;gap:var(--s3);padding-top:var(--s3)}.calc-sheet{border:1px solid var(--rule);border-radius:var(--radius);overflow-x:auto;background:var(--white)}.calc-sheet table{width:100%;border-collapse:collapse;font-size:14px}.calc-sheet th{text-align:left;font-weight:500;color:var(--slate);padding:var(--s2);border-bottom:2px solid var(--ink)}.calc-sheet td{padding:var(--s2);vertical-align:top;border-bottom:1px solid var(--rule)}.calc-sheet .cs-times,.calc-sheet .cs-dims,.calc-sheet .cs-squared{width:1%;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;border-right:1px solid var(--rule)}.calc-sheet .cs-dims div+div{border-top:1px solid var(--rule)}.calc-sheet tr.cs-ddt td{color:var(--slate)}.calc-sheet tr.cs-total td{border-top:2px solid var(--ink);border-bottom:0}.calc-sheet .cs-name{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}.calc-sheet .cs-lines{margin:var(--s1) 0 0;padding-left:var(--s3);color:var(--slate)}.calc-sheet .cs-input{margin-top:var(--s1)}.boq-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--s3);align-items:start}.boq-layout .boq-main{grid-column:1;grid-row:1}.boq-layout .totals{grid-column:2;grid-row:1}.money-list{margin:0;display:flex;flex-direction:column}.money-list>div{display:flex;justify-content:space-between;gap:var(--s3);padding:var(--s1) 0;border-bottom:1px solid var(--rule)}.money-list dt{color:var(--slate)}.money-list dd{margin:0;font-variant-numeric:tabular-nums}.money-list .sum dt,.money-list .grand dt{color:var(--ink);font-weight:500}.money-list .grand{border-bottom:2px solid var(--ink)}.money-list .grand dd{font-family:var(--heading);font-size:20px;font-weight:600}.price-history{display:flex;flex-direction:column;gap:var(--s3)}.price-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3);margin:0}.price-stats dt{font-size:14px;color:var(--slate)}.price-stats dd{margin:0;font-family:var(--heading);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.price-stats p{grid-column:1 / -1}.price-chart{position:relative;margin:0}.price-chart svg{width:100%;height:auto;display:block}.price-chart .grid{stroke:var(--rule);stroke-width:1}.price-chart .axis{fill:var(--slate);font:12px var(--body)}.price-chart .step{fill:none;stroke:var(--primary);stroke-width:2;stroke-linejoin:round}.price-chart .dot{fill:var(--primary);stroke:var(--white);stroke-width:2}.price-chart .hit{fill:transparent;cursor:pointer}.price-chart g:focus-visible .dot{stroke:var(--ink)}.chart-tip{position:absolute;top:var(--s2);right:var(--s2);max-width:320px;padding:var(--s2);background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);box-shadow:var(--shadow);font-size:14px}@media(max-width:1500px){.boq-layout{grid-template-columns:minmax(0,1fr)}.boq-layout .boq-main,.boq-layout .totals{grid-column:1;grid-row:auto}}@media(max-width:700px){.price-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.calc-sheet tr.cs-net td{font-weight:500}.section-rename{margin-left:var(--s3);font-family:var(--body);font-weight:400}.plain-list{margin:0;padding-left:var(--s3)}.weekdays{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s2) var(--s3)}.weekdays legend{padding:0 var(--s1);font-size:14px;color:var(--slate)}.field-input.narrow,input.narrow{width:88px}.register tr.critical-row td:first-child{box-shadow:inset 3px 0 0 var(--red)}.register tr.behind-row td{background:var(--red-tint)}.activity-detail{display:grid;gap:var(--s3)}.conflict{border:1px solid var(--rule);border-left:3px solid var(--amber);border-radius:var(--radius);padding:var(--s2) var(--s3);margin-bottom:var(--s3);display:grid;gap:var(--s1)}.conflict h3{font-size:18px}.priority-list{margin:0;padding-left:var(--s4);display:grid;gap:var(--s1)}.resources-tab{display:grid;gap:var(--s3)}.gantt{display:grid;gap:var(--s2)}.gantt-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2)}.gantt-key{display:flex;flex-wrap:wrap;gap:var(--s3);list-style:none;margin:0;padding:0;font-size:14px;color:var(--slate)}.gantt-key li{display:flex;align-items:center;gap:var(--s1)}.key-bar{display:inline-block;width:24px;height:8px;background:var(--primary);border-radius:2px}.key-bar.critical{background:var(--red)}.key-bar.done{background:var(--ink);height:4px}.key-bar.baseline{background:var(--slate);height:4px}.key-bar.h-skilled{background:var(--primary)}.key-bar.h-semi_skilled{background:#6f9cc6}.key-bar.h-workers{background:#a9c3dc}.key-line{display:inline-block;width:2px;height:16px;background:var(--amber)}.key-line.status{background:var(--slate)}.gantt-scroll,.histogram{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white)}.histogram{padding:var(--s2);margin-bottom:var(--s2)}.gantt svg,.histogram svg{display:block;font-family:var(--body)}.g-off{fill:var(--paper)}.g-grid{stroke:var(--rule);stroke-width:1}.g-rule{stroke:var(--slate);stroke-width:1}.g-head{fill:var(--slate);font-size:12px}.g-group{fill:var(--primary-tint)}.g-group-text{fill:var(--ink);font-size:14px;font-weight:600;font-family:var(--heading)}.g-hit{fill:transparent}.g-row{cursor:pointer}.g-row:hover .g-hit,.g-row:focus .g-hit{fill:var(--primary-tint)}.g-row:focus{outline:none}.g-label{fill:var(--ink);font-size:13px}.g-code{font-weight:600}.g-bar{fill:var(--primary)}.g-bar.critical{fill:var(--red)}.g-done{fill:var(--ink);opacity:.6}.g-float{stroke:var(--primary);stroke-width:2;stroke-dasharray:2 3}.g-ms{fill:var(--primary)}.g-ms.critical{fill:var(--red)}.g-baseline{fill:var(--slate);opacity:.55}.g-link{fill:none;stroke:var(--slate);stroke-width:1.25}.g-link.critical{stroke:var(--red)}.g-arrow{fill:var(--slate)}.g-today{stroke:var(--amber);stroke-width:2}.g-status{stroke:var(--slate);stroke-width:1.5;stroke-dasharray:4 3}.h-skilled{fill:var(--primary)}.h-semi_skilled{fill:#6f9cc6}.h-workers{fill:#a9c3dc}.evidence-filter{margin-bottom:var(--s3);flex-wrap:wrap}.evidence-phase{margin-bottom:var(--s3)}.evidence-phase-head h2{margin:0 0 var(--s1)}.evidence-phase-head p{margin:0 0 var(--s3)}.evidence-table td{vertical-align:top}.evidence-table tr.selected td{background:var(--primary-tint)}.evidence-player{margin-bottom:var(--s4)}.evidence-player-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3)}.evidence-player-head h2{margin:0 0 var(--s3)}.evidence-player-head p{margin:0}.evidence-video{display:block;width:100%;max-height:72vh;background:var(--ink);border-radius:var(--radius)}.evidence-facts{display:grid;grid-template-columns:max-content 1fr;gap:var(--s2) var(--s3);margin:var(--s3) 0}.evidence-facts dt{color:var(--slate)}.evidence-facts dd{margin:0;overflow-wrap:anywhere}.evidence-actions{flex-wrap:wrap}.evidence-summary summary{cursor:pointer;font-weight:500}.evidence-summary pre{white-space:pre-wrap;font-size:13px;max-height:60vh;overflow:auto}@media(max-width:720px){.evidence-facts{grid-template-columns:1fr;gap:var(--s1)}.evidence-facts dd{margin-bottom:var(--s2)}.evidence-player-head{flex-direction:column}.evidence-table th:nth-child(2),.evidence-table td:nth-child(2){display:none}}.interpretation{margin:0 0 var(--s3)}.interpretation summary{cursor:pointer;font-weight:600}.interpretation img{display:block;width:100%;max-height:55vh;object-fit:contain;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white)}.compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s3);margin:0 0 var(--s4)}.compare figure{margin:0;display:flex;flex-direction:column;gap:var(--s2)}.compare img{display:block;width:100%;aspect-ratio:3 / 4;object-fit:contain;border:1px solid var(--rule);border-radius:var(--radius);background:var(--white)}.compare a:hover img,.compare a:focus-visible img{border-color:var(--primary)}.compare figcaption{display:flex;flex-direction:column;gap:var(--s1)}.view-mode{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin:0 0 var(--s2)}.provenance-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2, 8px);margin:var(--space-2, 8px) 0 var(--space-3, 12px)}.defaults-list{list-style:none;padding:0;margin:0}.defaults-list li{padding:var(--space-2, 8px) 0;border-bottom:1px solid var(--border, #e3e7ec)}.defaults-list li:last-child{border-bottom:0}.default-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2, 8px);flex-wrap:wrap}.default-head .badge{margin-left:var(--space-1, 4px)}.facts .fact-row{display:contents}.form.compact .field-row{margin-bottom:var(--space-1, 4px)}.scene-rail{width:220px}.rail-heading{font-size:14px;font-weight:600;margin:var(--s2) 0 var(--s1);color:var(--slate)}.scene-check{display:flex;align-items:flex-start;gap:var(--s2);min-height:36px;padding:var(--s1) var(--s2);border-radius:var(--radius);font-size:14px;cursor:pointer;transition:background-color .15s ease}.scene-check:hover{background:var(--paper)}.scene-check input{margin-top:3px}.scene-check span span{display:block}.scene-legend{list-style:none;padding:0 var(--s2);margin:0;font-size:13px}.scene-legend li{display:flex;align-items:center;gap:var(--s2);min-height:24px}.scene-swatch{width:14px;height:14px;border:1px solid var(--rule);border-radius:2px;flex:none}.scene-canvas-wrap{position:relative;min-width:0;min-height:0;background:var(--paper);overflow:hidden;touch-action:none}.scene-canvas-wrap canvas{display:block;width:100%;height:100%;outline:none}.scene-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--s4);pointer-events:none}.scene-overlay .notice{pointer-events:auto;max-width:480px}.scene-objects{list-style:none;padding:0;margin:0}.scene-object{display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:36px;padding:var(--s1) var(--s2);border:1px solid transparent;border-radius:var(--radius);background:none;color:var(--ink);font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.scene-object:hover{background:var(--paper)}.scene-object.active{background:var(--primary-tint);border-color:var(--primary);color:var(--primary-hover)}.impact-details{margin-top:var(--s2)}.impact-details summary{cursor:pointer;font-weight:600}.impact-summary{margin:var(--s2) 0 var(--s1)}.impact-list{list-style:none;padding:0;margin:0}.impact-row{display:grid;grid-template-columns:110px 1fr auto;gap:var(--s2);align-items:baseline;padding:var(--s1) 0;border-top:1px solid var(--rule);font-size:14px}.impact.compact .impact-row{grid-template-columns:90px 1fr auto;font-size:13px}.impact-kind{color:var(--slate);font-size:12px;text-transform:uppercase;letter-spacing:.02em}@media(max-width:640px){.impact-row,.impact.compact .impact-row{grid-template-columns:1fr}}
