:root{--color-primary:#4caf50;--color-primary-hover:#45a049;--color-primary-active:#388e3c;--color-accent:#1565c0;--color-accent-hover:#0d47a1;--color-danger:#c62828;--color-danger-hover:#b71c1c;--color-warning:#f57f17;--color-warning-light:#fff8e1;--portal-bg:#f5f0e6;--portal-surface:#fbf8f2;--portal-border:#e4dccd;--portal-text:#1f2933;--portal-text-muted:#52606d;--portal-accent:#1565c0;--portal-accent-hover:#0d47a1;--portal-on-accent:#fff;--portal-badge-bg:#e3f0fc;--portal-badge-text:#0d3c75;--portal-focus:#1565c0;--portal-danger:#b3261e;--portal-topbar-h:56px;--portal-page-max:960px;--portal-page-pad:var(--space-md);--portal-rail-w:300px;--portal-live:#2e7d4f;--text-primary:#333;--text-secondary:#666;--text-muted:#999;--text-white:#fff;--bg-dark:#282c34;--bg-page:#f5f5f5;--bg-card:#fff;--bg-alt:#f9f9f9;--bg-input:#fff;--border:#ddd;--border-alt:#dee2e6;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 2px 10px #0000001a;--shadow-lg:0 4px 8px #00000026;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:20px;--space-xl:32px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:16px;--font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-sm:12px;--font-base:14px;--font-md:16px;--font-lg:18px;--font-xl:24px}*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#282c34;background-color:var(--bg-dark);color:#333;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);font-size:14px;font-size:var(--font-base);margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}button{border:none;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family);outline:none}.about-content{align-items:center;display:flex;flex-direction:column;min-height:100vh;padding:var(--space-lg);position:relative}.text-content{margin-bottom:var(--space-xl);max-width:800px;text-align:center}.bullet-points,.text-content h2,.text-content p{color:var(--text-white)}.image-gallery{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:space-around;width:80%}.image-gallery img{border-radius:var(--radius-sm);height:auto;object-fit:cover;width:calc(50% - 10px)}@media (max-width:500px){.image-gallery{align-items:center;flex-direction:column;width:100%}.image-gallery img{max-width:300px;width:100%}}.Home{text-align:center}.Home-logo{filter:brightness(0) invert(1);height:auto;margin-bottom:3vh;max-width:100%;pointer-events:none;width:60vh}.Home-header{font-size:calc(10px + 2vmin);min-height:100vh}.Home-header,.center{align-items:center;display:flex;flex-direction:column;justify-content:center}.center{max-width:100%;width:60vh}.center .Home-logo{max-width:60vh}.Home-link{color:#61dafb}.industrial-button{background-color:#4a4a4a;border:2px solid #333;border-radius:var(--radius-sm);box-shadow:0 4px 6px #0006;color:var(--text-white);cursor:pointer;font-size:var(--font-md);font-weight:700;letter-spacing:1px;margin:var(--space-sm);padding:var(--space-sm) 12px;transition:background-color .2s ease,transform .2s ease;width:100%}.industrial-button:hover{background-color:#5c5c5c;transform:translateY(-2px)}.industrial-button:active{background-color:#333;box-shadow:0 2px 4px #0009;transform:translateY(0)}@media (max-width:500px){.Home-logo{width:150px}.industrial-button{max-width:200px}}.request-details{background-color:var(--bg-alt);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin:10vh auto var(--space-lg);max-width:800px;padding:var(--space-lg)}.request-details p{font-size:var(--font-md);margin:10px 0}.request-details p,.request-details strong{color:var(--text-primary)}.request-details h2{color:var(--color-primary);margin-top:0}.request-details h3{color:var(--color-primary);font-size:var(--font-lg);margin-top:var(--space-lg)}.request-details ul{list-style-type:none;padding:0}.request-details li{margin:10px 0}.request-details button{background-color:var(--color-primary);border:none;border-radius:var(--radius-sm);color:var(--text-white);cursor:pointer;font-size:var(--font-base);padding:10px 15px;transition:background-color .2s ease}.request-details button:hover{background-color:var(--color-primary-hover)}.no-files{color:var(--text-muted);font-size:var(--font-base)}@media screen and (max-width:768px){.request-details{margin:var(--space-lg) var(--space-sm);padding:var(--space-md)}.request-details h2,.request-details h3{font-size:var(--font-lg)}.request-details p{font-size:var(--font-base)}.request-details button{padding:8px 12px;width:100%}}.admin-shell{--bg:#25272d;--rail:#1b1d21;--rail2:#2a2d33;--green:#5da34d;--green-d:#1f3a1f;--on-dark:#e9ebee;--on-dark2:#a3a9b3;--on-dark3:#8f96a0;--card:#fff;--ink:#171b22;--ink3:#6f7885;background:var(--bg);color:var(--on-dark);display:grid;font:13px/1.4 -apple-system,Inter,Helvetica Neue,Arial,sans-serif;grid-template-columns:216px 1fr;min-height:100vh}.admin-shell a{text-decoration:none}.admin-rail{background:var(--rail);border-right:1px solid #111316;box-sizing:border-box;display:flex;flex-direction:column;height:100vh;padding:14px 10px 12px;position:-webkit-sticky;position:sticky;top:0}.admin-brand{align-items:center;color:#fff;display:flex;font-size:15px;font-weight:700;gap:10px;padding:2px 8px 14px}.admin-brand img{background:var(--card);border-radius:4px;height:30px;padding:1px;width:34px}.admin-brand small{color:var(--green);display:block;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.admin-rail nav{flex:1 1;overflow-y:auto}.admin-newjob{align-items:center;background:var(--green);border-radius:6px;color:#0d1a0b;display:flex;font-weight:700;height:34px;justify-content:center;margin:0 4px 12px}.admin-grp{margin-top:10px}.admin-grp h6{color:var(--on-dark3);font-size:10px;font-weight:700;letter-spacing:.1em;margin:0 0 4px;padding:0 10px;text-transform:uppercase}.admin-grp h6 span{font-weight:500;letter-spacing:0;margin-left:4px}.admin-ra{align-items:center;border-radius:6px;color:var(--on-dark2);display:flex;font-weight:500;gap:10px;height:30px;padding:0 10px}.admin-ra:hover{background:var(--rail2);color:#fff}.admin-ra[aria-current=page]{background:#26372a;box-shadow:inset 3px 0 0 var(--green);color:#fff}.admin-ko{color:var(--on-dark3);font-size:11px}.admin-badge{background:var(--rail2);border-radius:9px;box-sizing:border-box;color:var(--on-dark);display:grid;font-size:11px;font-weight:700;height:18px;margin-left:auto;min-width:20px;padding:0 6px;place-items:center}.admin-badge.hot{background:var(--green);color:#0d1a0b}.admin-me{align-items:center;border-top:1px solid var(--rail2);display:flex;gap:10px;padding:10px 8px 0}.admin-me b{color:#fff;display:block;font-size:12px;max-width:110px;overflow:hidden;text-overflow:ellipsis}.admin-me small,.admin-out{color:var(--on-dark3);font-size:11px}.admin-out{background:none;border:0;cursor:pointer;margin-left:auto}.admin-main{display:flex;flex-direction:column;min-width:0}.admin-top{align-items:center;background:var(--bg);border-bottom:1px solid #1c1e22;display:flex;gap:12px;height:52px;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:40}.admin-crumb{color:var(--on-dark2);font-size:13px;white-space:nowrap}.admin-search{flex:0 1 520px;margin-left:auto;position:relative}.admin-search input{background:#1e2024;border:1px solid #3a3e46;border-radius:7px;box-sizing:border-box;color:#fff;font:inherit;height:34px;padding:0 70px 0 12px;width:100%}.admin-search kbd{border:1px solid #3a3e46;border-radius:4px;color:var(--on-dark3);font:600 11px ui-monospace,Menlo,monospace;padding:1px 5px;position:absolute;right:9px;top:8px}.admin-search-results{background:var(--card);border-radius:9px;box-shadow:0 18px 50px #00000073;color:var(--ink);padding:6px;position:absolute;right:0;top:40px;width:520px;z-index:60}.admin-search-results h6{color:var(--ink3);font-size:10px;letter-spacing:.1em;margin:8px 10px 4px;text-transform:uppercase}.admin-search-res{border-radius:6px;cursor:pointer;overflow:hidden;padding:6px 10px;text-overflow:ellipsis;white-space:nowrap}.admin-search-res.hl{background:#e7edfb}.admin-search-res small{color:var(--ink3)}@media (max-width:600px){.admin-shell{display:block}.admin-rail{display:none}}.admin-shell .jh-hero{padding:14px 18px 0}.admin-shell .jh-h1row{align-items:center;display:flex;flex-wrap:wrap;gap:14px}.admin-shell .jh-jn{color:#2b55c0;font:700 30px ui-monospace,Menlo,monospace;letter-spacing:-.02em}.admin-shell .jh-co b{display:block;font-size:16px}.admin-shell .jh-co span{color:#6f7885}.admin-shell .jh-pill{background:#e8f4e4;border-radius:11px;color:#2f7d21;font-size:12px;font-weight:600;margin-left:8px;padding:2px 10px}.admin-shell .jh-right{display:flex;gap:6px;margin-left:auto;position:relative}.admin-shell .jh-btn{background:#fff;border:1px solid #dde1e6;border-radius:6px;color:#171b22;cursor:pointer;font-size:12px;font-weight:600;height:30px;padding:0 12px}.admin-shell .jh-btn:disabled{cursor:default;opacity:.6}.admin-shell .jh-menu-wrap{position:relative}.admin-shell .jh-menu{background:#fff;border:1px solid #dde1e6;border-radius:9px;box-shadow:0 14px 40px #00000047;margin-top:4px;min-width:200px;padding:6px;position:absolute;right:0;top:100%;z-index:50}.admin-shell .jh-menu button{background:none;border:0;border-radius:5px;color:#171b22;cursor:pointer;display:block;font-size:12px;font-weight:600;height:28px;padding:0 8px;text-align:left;width:100%}.admin-shell .jh-menu button:hover{background:#f6f7f9}.admin-shell .jh-facts{grid-gap:20px;border-top:1px solid #eceef1;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(90px,auto));justify-content:space-between;margin-top:12px;padding:12px 0}.admin-shell .jh-kv small{color:#6f7885;display:block;font-size:11px}.admin-shell .jh-kv b{font-size:13px}.admin-shell .jh-kv b.mono{font-family:ui-monospace,Menlo,monospace}.admin-shell .jh-prog{align-items:center;background:#f6f7f9;border-top:1px solid #eceef1;display:flex;gap:12px;padding:10px 18px}.admin-shell .jh-cap{color:#6f7885;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.admin-shell .jh-bar,.admin-shell .jh-bars{display:flex;flex:1 1;gap:3px}.admin-shell .jh-bar{color:#4d5562;flex-direction:column;font-size:11px;font-weight:600}.admin-shell .jh-bar i{background:#dde1e6;background:var(--sc,#dde1e6);border-radius:3px;height:6px}.admin-shell .jh-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.admin-shell .jh-modal{background:#fff;border-radius:8px;color:#171b22;max-height:85vh;max-width:520px;overflow:auto;padding:20px;position:relative;width:90%}.admin-shell .jh-modal h3{margin:0 0 16px}.admin-shell .jh-close{background:#c63a2b;border:0;border-radius:50%;color:#fff;cursor:pointer;font-size:16px;height:30px;position:absolute;right:10px;top:10px;width:30px}.admin-shell .jh-form{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr}.admin-shell .jh-field{color:#6f7885;display:flex;flex-direction:column;font-size:12px;gap:3px}.admin-shell .jh-field input,.admin-shell .jh-field select{font-size:13px;padding:6px 8px}.admin-shell .jh-save{background:#2f7d21;border:0;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;margin-top:18px;padding:9px 22px}.admin-shell .jh-hero{border-left:4px solid var(--bill)}.admin-shell .jh-hero.bill-no_po{--bill:#d9822b}.admin-shell .jh-hero.bill-po{--bill:#2b55c0}.admin-shell .jh-hero.bill-invoiced{--bill:#2e8b57}.admin-shell .jh-bill{border-radius:10px;font-size:11px;font-weight:600;padding:2px 8px;white-space:nowrap}.admin-shell .bill-no_po .jh-bill{background:#fdeccf;color:#8a4b00}.admin-shell .bill-po .jh-bill{background:#dde6fa;color:#1f3f94}.admin-shell .bill-invoiced .jh-bill{background:#d6f0e0;color:#17613a}.sheet-backdrop{align-items:flex-end;background:#00000080;display:flex;inset:0;position:fixed;z-index:200}.sheet{background:#fff;border-radius:16px 16px 0 0;color:#171b22;max-height:85vh;overflow-y:auto;padding:14px 14px 24px;width:100%}.sheet-flags{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-bottom:10px}.sheet .flag{background:#fff;border:1px dashed #dde1e6;border-radius:10px;color:#6f7885;font-size:15px;font-weight:700;height:48px}.sheet .flag.on.urgent{background:#fdecea;border:1px solid #c63a2b;color:#c63a2b}.sheet .flag.on.waiting{background:#fff4dc;border:1px solid #c27a00;color:#c27a00}.sheet h6{color:#6f7885;font-size:11px;letter-spacing:.09em;margin:12px 4px 6px;text-transform:uppercase}.sheet .sub{align-items:center;background:#fff;border:1px solid #dde1e6;border-radius:10px;color:#171b22;display:flex;font-size:16px;font-weight:600;gap:10px;margin-bottom:4px;min-height:48px;padding:0 14px;text-align:left;width:100%}.sheet .sub:before{background:var(--sc);border-radius:50%;content:"";flex:none;height:10px;width:10px}.sheet .sub.on{background:#f1f5ff;border-color:var(--sc)}.sheet .sub.on:after{color:#5da34d;content:"✓";margin-left:auto}.admin-shell .stage-control .stagebar{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(11,1fr);position:relative}.admin-shell .stage-control .stagebar>button{background:#eceef1;border:0;color:#9aa1ab;cursor:pointer;font-size:10px;font-weight:700;height:24px;letter-spacing:.02em;padding:0;position:relative}.admin-shell .stage-control .stagebar>button:first-of-type{border-radius:5px 0 0 5px}.admin-shell .stage-control .stagebar>button:last-of-type{border-radius:0 5px 5px 0}.admin-shell .stage-control .stagebar>button.past{background:#c9ced6;color:#4d5562}.admin-shell .stage-control .stagebar>button.cur{background:var(--sc);color:#fff}.admin-shell .stage-control .stagebar>button:hover:not(:disabled){outline:2px solid #2b55c0;outline-offset:-2px;z-index:2}.admin-shell .stage-control button:disabled{cursor:default;opacity:.6}.admin-shell .stage-control .stage-line{align-items:center;display:flex;gap:6px;margin-top:6px;min-height:22px}.admin-shell .stage-control .stage-chip-wrap{position:relative}.admin-shell .stage-control .chip{align-items:center;background:#fff;border:1px solid #dde1e6;border-radius:11px;color:#171b22;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:6px;height:22px;padding:0 8px 0 7px;white-space:nowrap}.admin-shell .stage-control .chip:before{background:#8a929c;background:var(--sc,#8a929c);border-radius:50%;content:"";height:8px;width:8px}.admin-shell .stage-control .chip .car{color:#6f7885;font-size:9px}.admin-shell .stage-control .flag{background:#fff;border:1px dashed #dde1e6;border-radius:11px;color:#6f7885;cursor:pointer;font-size:11px;font-weight:700;height:22px;padding:0 8px}.admin-shell .stage-control .flag.on.urgent{background:#fdecea;border:1px solid #c63a2b;color:#c63a2b}.admin-shell .stage-control .flag.on.waiting{background:#fff4dc;border:1px solid #c27a00;color:#c27a00}.admin-shell .stage-control .seen{color:#6f7885;font-size:11px;margin-left:auto;white-space:nowrap}.admin-shell .stage-control .seen svg{stroke:currentColor;fill:none;stroke-width:2;height:11px;vertical-align:-1px;width:11px}.admin-shell .stage-control .menu{background:#fff;border:1px solid #dde1e6;border-radius:9px;box-shadow:0 14px 40px #00000047;color:#171b22;margin-top:4px;min-width:190px;padding:6px;position:absolute;top:100%;z-index:50}.admin-shell .stage-control .menu h6{color:#6f7885;font-size:10px;letter-spacing:.09em;margin:4px 8px;text-transform:uppercase}.admin-shell .stage-control .menu button{align-items:center;background:none;border:0;border-radius:5px;color:#171b22;cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:8px;height:28px;padding:0 8px;text-align:left;width:100%}.admin-shell .stage-control .menu button.on,.admin-shell .stage-control .menu button:hover{background:#f6f7f9}.admin-shell .stage-control .menu button.on:after{color:#5da34d;content:"✓";margin-left:auto}.admin-shell .stage-control .menu button i{background:var(--sc);border-radius:50%;flex:none;height:8px;width:8px}.admin-shell .stage-control .menu .k{color:#6f7885;font:600 10px ui-monospace,Menlo,monospace;margin-left:auto}.admin-shell .stage-control .menu.wide{grid-gap:0 6px;display:grid;gap:0 6px;grid-template-columns:1fr 1fr 1fr;left:0;top:100%;width:540px}.ov-prow .acts .nfc-err,.ov-prow .acts .nfc-na,.ov-prow .acts .nfc-ok,.ov-prow .acts .nfc-scan{align-self:center;color:#4d5562;font-size:11px;font-weight:600}.ov-prow .acts .nfc-err{color:#c63a2b;grid-column:1/-1}.ov-prow .acts .nfc-ok{color:#2f7d21}.ov-prow .pnotes{display:flex;flex-direction:column;gap:4px;grid-column:1/-1;order:3}.ov-prow .pnote{background:#f6f7f9;border-radius:6px;color:var(--ink);font-size:12px;padding:6px 8px}.ov-prow .pnote .meta{color:var(--ink3);font-size:11px;margin-bottom:2px}.ov-prow .pnote .tag{font-weight:700;margin-right:6px}.ov-prow .pnote .tag.pv{color:#c27a00}.ov-prow .pnote .tag.sh{color:#2b55c0}.ov-prow .pnote button{font-size:11px;height:auto;margin-top:4px;padding:2px 6px}.ov-prow .pcompose textarea{box-sizing:border-box;min-height:56px;width:100%}.ov-prow .pcompose .row{display:flex;gap:4px}.ov-prow .pcompose .row button{flex:1 1;height:30px}.ov-prow .pcompose .row button.on{background:#f1f5ff;border-color:#2b55c0}.requests{background-color:var(--bg-alt);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin:var(--space-lg);padding:var(--space-lg)}.requests h2{color:var(--color-primary);font-size:var(--font-xl);margin-bottom:var(--space-lg);margin-top:0}.search-container{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-lg)}.search-input{background-color:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);flex:1 1 180px;font-size:var(--font-base);padding:9px 12px;transition:border-color .2s ease}.search-input:focus{border-color:var(--color-primary);outline:none}.search-button{background-color:var(--color-primary);border:none;border-radius:var(--radius-sm);color:var(--text-white);cursor:pointer;font-size:var(--font-base);font-weight:600;padding:9px 16px;transition:background-color .2s ease;white-space:nowrap}.search-button:hover{background-color:var(--color-primary-hover)}.search-button:active{background-color:var(--color-primary-active)}.requests-table{border-collapse:collapse;color:var(--text-primary);font-family:var(--font-family);margin-top:var(--space-sm);width:100%}.requests-table thead{background-color:var(--color-primary);color:var(--text-white)}.requests-table td,.requests-table th{border-bottom:1px solid var(--border);padding:12px 15px;text-align:left}.requests-table th{font-size:var(--font-base);font-weight:600}.requests-table tbody{background-color:var(--bg-card)}.requests-table tbody tr,.table-row{cursor:pointer;transition:background-color .2s ease}.requests-table tbody tr:hover,.table-row:hover{background-color:#f1f1f1}.requests-table td{font-size:var(--font-base)}.sortable{cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.sortable:after{content:"⬍";font-size:var(--font-sm);opacity:.7;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.filterable{cursor:pointer}.filtered{color:var(--color-primary);font-weight:700}.star-button{background-color:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;font-size:var(--font-sm);font-weight:600;padding:5px 12px;transition:background-color .2s ease,border-color .2s ease;white-space:nowrap}.star-button:hover{background-color:var(--border)}@media screen and (max-width:768px){.requests{margin:var(--space-sm);padding:var(--space-md)}.requests-table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.requests-table td,.requests-table th{font-size:var(--font-sm);padding:10px 8px}.search-container{align-items:stretch;flex-direction:column}.search-input{flex:1 1 auto;width:100%}.search-button{width:100%}}.admin-shell{--s-quoted:#5c6bc0;--s-material:#00838f;--s-preparing:#1565c0;--s-machining:#2e7d32;--s-outside:#7b3fa8;--s-finishing:#6f8a1f;--s-inspection:#c27a00;--s-packing:#4b5b66;--s-done:#3d4552;--s-delivered:#1b6b35;--s-invoiced:#8a929c}.ov-page{display:flex;flex-direction:column;gap:12px;padding:16px 20px}.ov-band{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(5,1fr)}.ov-tile{align-items:baseline;background:#fff;border-radius:8px;color:var(--ink);display:flex;gap:10px;padding:10px 14px}.ov-tile b{font:700 24px ui-monospace,Menlo,monospace;letter-spacing:-.02em}.ov-tile .l{color:#4d5562;display:flex;flex-direction:column;font-size:12px;font-weight:600;line-height:1.25}.ov-tile .l small{color:var(--ink3);font-weight:500}.ov-tile.g b{color:#2f7d21}.ov-tile.b b{color:#2b55c0}.ov-tile.r b{color:#c63a2b}.ov-tile.a b{color:#c27a00}.ov-contacts{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.ov-contacts .lbl{color:var(--on-dark3);font-size:10px;font-weight:700;letter-spacing:.1em;margin-right:4px;text-transform:uppercase}.ov-contacts .cf{align-items:center;background:#fff;border-radius:13px;color:var(--ink);display:inline-flex;font-size:12px;font-weight:600;gap:6px;height:26px;padding:0 10px}.ov-contacts .cf i{color:#2b55c0;font-style:normal;font-weight:700}.ov-strip{background:#fff;border-radius:8px;display:grid;grid-template-columns:repeat(11,1fr);overflow:hidden}.ov-strip button{background:#fff;border:0;border-right:1px solid #eceef1;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:7px 10px 8px;text-align:left}.ov-strip button:last-child{border-right:0}.ov-strip button span{align-items:center;color:#4d5562;display:flex;font-size:11px;font-weight:700;gap:5px;white-space:nowrap}.ov-strip button span:before{background:var(--sc);border-radius:50%;content:"";height:7px;width:7px}.ov-strip button b{font:700 18px ui-monospace,Menlo,monospace}.ov-strip button b small{color:var(--ink3);font:500 11px -apple-system,sans-serif;margin-left:4px}.ov-strip button.zero b{color:#c3c8cf}.ov-strip button.on{background:#f1f5ff;box-shadow:inset 0 -3px 0 #2b55c0}.ov-job{background:#fff;border-radius:8px;color:var(--ink);overflow:hidden}.ov-job>header{align-items:center;background:#f6f7f9;border-bottom:1px solid #eceef1;display:flex;gap:12px;padding:9px 14px}.ov-job .no{color:#2b55c0;font:700 16px ui-monospace,Menlo,monospace}.ov-job .who span{color:var(--ink3)}.ov-job{border-left:4px solid var(--bill)}.ov-job.bill-no_po{--bill:#d9822b}.ov-job.bill-po{--bill:#2b55c0}.ov-job.bill-invoiced{--bill:#2e8b57}.ov-job>header{cursor:pointer}.ov-bill{border-radius:10px;font-size:11px;font-weight:600;margin-left:auto;padding:2px 8px;white-space:nowrap}.bill-no_po .ov-bill{background:#fdeccf;color:#8a4b00}.bill-po .ov-bill{background:#dde6fa;color:#1f3f94}.bill-invoiced .ov-bill{background:#d6f0e0;color:#17613a}.ov-job .po{color:var(--ink3);font-size:12px}.ov-prow{grid-gap:16px;align-items:start;border-bottom:1px solid #eceef1;display:grid;gap:16px;grid-template-columns:132px 230px minmax(0,1fr) 200px;padding:10px 14px}.ov-prow:last-child{border-bottom:0}.ov-prow .pn{color:#1d2c5c;font:700 14px ui-monospace,Menlo,monospace}.ov-prow .pn small{background:#f6f7f9;border-radius:3px;color:var(--ink3);font:600 11px ui-monospace,Menlo,monospace;margin-left:6px;padding:1px 5px}.ov-prow .ds{font-weight:600;margin:2px 0 1px}.ov-prow .mt{color:var(--ink3);font-size:12px}.ov-prow .px{color:#4d5562}.ov-prow .links,.ov-prow .px{font-size:12px;margin-top:6px}.ov-prow .links{display:flex;gap:10px}.ov-prow .links button{background:none;border:0;color:#c63a2b;cursor:pointer;font:inherit;padding:0}.ov-prow .stage{padding-top:2px}.ov-prow .acts{grid-gap:4px;display:grid;gap:4px;grid-template-columns:1fr 1fr 1fr}.ov-prow .acts button{background:#fff;border:1px solid #dde1e6;border-radius:6px;color:#4d5562;cursor:pointer;font-size:11px;font-weight:600;height:44px}.ov-prow .acts button.fin{background:var(--green-d);border-color:var(--green-d);color:#fff}.ov-toast{align-items:center;background:#1b1d21;border-radius:8px;bottom:24px;box-shadow:0 12px 30px #0006;color:#fff;display:flex;font-size:13px;gap:10px;left:50%;padding:10px 16px;position:fixed;transform:translateX(-50%);z-index:100}.ov-toast.error{background:#c63a2b}.ov-toast button{background:none;border:0;color:var(--green);cursor:pointer;font-size:13px;font-weight:700}.ov-toast.error button{color:#fff}.ov-error{color:#c63a2b}.ov-tabbar{display:none}@media (max-width:600px){.ov-page{padding:12px 12px 84px}.ov-band{grid-template-columns:1fr 1fr}.ov-strip{display:flex;overflow-x:auto}.ov-strip button{flex:none}.ov-job{max-width:100%}.ov-prow{display:flex;flex-direction:column;gap:10px;min-width:0}.ov-prow>*{max-width:100%;min-width:0}.ov-prow .acts{grid-template-columns:1fr 1fr}.admin-shell .stage-control .chip.big{border-radius:10px;font-size:16px;height:48px;justify-content:center;width:100%}.ov-tabbar{align-items:center;background:#1b1d21;border-top:1px solid #2a2d33;bottom:0;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;height:64px;left:0;position:fixed;right:0;z-index:90}.ov-tabbar a{color:#c3c8cf;font-size:12px;font-weight:600;padding:8px 0;text-align:center;text-decoration:none}.ov-tabbar a.scan{align-items:center;background:var(--green-d);border-radius:50%;color:#fff;display:flex;height:56px;justify-content:center;justify-self:center;margin-top:-20px;width:56px}}.admin-shell .jp-card{background:#fff;border:1px solid #dde1e6;border-radius:10px;color:var(--ink);margin:14px 18px}.admin-shell .jp-head{align-items:center;border-bottom:1px solid #eceef1;display:flex;padding:12px 16px}.admin-shell .jp-head h2{font-size:15px;margin:0}.admin-shell .jp-tools{display:flex;gap:6px;margin-left:auto}.admin-shell .jp-card button{background:#fff;border:1px solid #dde1e6;border-radius:6px;color:#171b22;cursor:pointer;font-size:12px;font-weight:600;height:28px;padding:0 10px}.admin-shell .jp-card button.primary{background:#2a6b2a;border-color:#2a6b2a;color:#fff}.admin-shell .jp-card button.danger{color:#c62828}.admin-shell .jp-card button:disabled{cursor:default;opacity:.5}.admin-shell .jp-result{font-size:13px;padding:10px 16px}.admin-shell .jp-result .bad{color:#c62828}.admin-shell .jp-part{grid-gap:14px;align-items:start;border-bottom:1px solid #eceef1;display:grid;gap:14px;grid-template-columns:90px 1fr minmax(260px,1.2fr) auto;padding:14px 16px}.admin-shell .jp-part.failed{border:1px solid #c62828}.admin-shell .jp-facts .pn{font:700 15px ui-monospace,Menlo,monospace}.admin-shell .jp-facts .pn small{color:#6f7885;font-size:11px;margin-left:6px}.admin-shell .jp-facts .ds,.admin-shell .jp-facts .mt{color:#6f7885;font-size:12px}.admin-shell .jp-facts .px{font-size:13px;font-weight:600;margin-top:4px}.admin-shell .jp-unstarred{color:#6f7885;font-size:12px;font-style:italic}.admin-shell .jp-acts{display:flex;flex-direction:column;gap:6px}.admin-shell .jp-edit{grid-gap:8px;border-top:1px dashed #dde1e6;display:grid;gap:8px;grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));padding-top:10px}.admin-shell .jp-edit label{color:#6f7885;display:flex;flex-direction:column;font-size:11px;gap:3px}.admin-shell .jp-edit label.wide{grid-column:1/-1}.admin-shell .jp-edit input,.admin-shell .jp-edit textarea{border:1px solid #dde1e6;border-radius:4px;font-size:12px;padding:4px 6px}.admin-shell .jp-tot{display:flex;font-size:13px;gap:24px;justify-content:flex-end;padding:12px 16px}.admin-shell .jp-tot b{margin-left:6px}.admin-shell .jp-modal{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.admin-shell .jp-modal-box{background:#fff;border-radius:8px;max-height:80vh;max-width:600px;overflow:auto;padding:20px;position:relative}.admin-shell .jp-card .jp-x{background:#f44336;border:0;border-radius:50%;color:#fff;font-size:16px;height:30px;padding:0;position:absolute;right:10px;top:10px;width:30px}.admin-shell .jb-card{background:#fff;border:1px solid #dde1e6;border-radius:10px;color:var(--ink);margin:14px 18px}.admin-shell .jb-head{align-items:center;border-bottom:1px solid #eceef1;display:flex;padding:12px 16px}.admin-shell .jb-head h2{font-size:15px;margin:0}.admin-shell .jb-tools{margin-left:auto}.admin-shell .jb-card button{background:#fff;border:1px solid #dde1e6;border-radius:6px;color:#171b22;cursor:pointer;font-size:12px;font-weight:600;height:28px;padding:0 10px}.admin-shell .jb-card button.primary{background:#2a6b2a;border-color:#2a6b2a;color:#fff}.admin-shell .jb-card button.danger{color:#c62828;margin-left:6px}.admin-shell .jb-form{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);padding:14px 16px}.admin-shell .jb-field{color:#6f7885;display:flex;flex-direction:column;font-size:11px;gap:4px}.admin-shell .jb-card input{border:1px solid #dde1e6;border-radius:6px;font-size:13px;height:30px;padding:0 8px}.admin-shell .jb-table{border-collapse:collapse;font-size:13px;width:100%}.admin-shell .jb-table td,.admin-shell .jb-table th{border-bottom:1px solid #eceef1;padding:8px 16px;text-align:left}.admin-shell .jb-table th{color:#6f7885;font-size:11px;text-transform:uppercase}.admin-shell .jb-table tfoot td{font-weight:700}.admin-shell .jb-empty{color:#6f7885;font-size:13px;margin:0;padding:14px 16px}.admin-shell .js-card{background:#fff;border:1px solid #dde1e6;border-radius:10px;color:var(--ink);margin:14px 18px}.admin-shell .js-head{align-items:center;border-bottom:1px solid #eceef1;display:flex;gap:8px;padding:12px 16px}.admin-shell .js-head h3{font-size:15px;margin:0}.admin-shell .js-head h3 span{color:#6f7885;font-size:11px;margin-left:6px}.admin-shell .js-head>button:last-of-type{margin-left:auto}.admin-shell .js-card button{background:#fff;border:1px solid #dde1e6;border-radius:6px;color:#171b22;cursor:pointer;font-size:12px;font-weight:600;height:26px;padding:0 10px}.admin-shell .js-card button.primary{background:#2a6b2a;border-color:#2a6b2a;color:#fff}.admin-shell .js-card button.danger{color:#c62828}.admin-shell .js-tabs{display:flex;gap:2px;margin-left:auto}.admin-shell .js-tabs button.on{background:#171b22;border-color:#171b22;color:#fff}.admin-shell .jn-list{display:flex;flex-direction:column;gap:12px;padding:12px 14px}.admin-shell .jn-note{grid-gap:4px 10px;display:grid;font-size:13px;gap:4px 10px;grid-template-columns:auto 1fr auto}.admin-shell .jn-note small{color:#6f7885;grid-column:2}.admin-shell .jn-actions{display:flex;gap:4px;grid-column:3;grid-row:1/3}.admin-shell .jn-file{grid-column:2;justify-self:start}.admin-shell .jn-vis{align-self:start;background:#eceef1;border-radius:3px;color:#6f7885;font:700 9px monospace;padding:2px 5px}.admin-shell .jn-vis.shared{background:#e3f1e3;color:#2a6b2a}.admin-shell .jn-part{color:#1d2c5c;font-size:11px}.admin-shell .jn-compose{border-top:1px solid #eceef1;display:flex;flex-direction:column;gap:8px;padding:10px 14px 14px}.admin-shell .jn-compose textarea{border:1px solid #dde1e6;border-radius:6px;font:inherit;height:56px;padding:8px;resize:none}.admin-shell .jn-row{align-items:center;display:flex;font-size:12px;gap:8px}.admin-shell .jn-row .primary{margin-left:auto}.admin-shell .jn-attached{font-size:12px;list-style:none;margin:0;padding:0}.admin-shell .jf-list{display:flex;flex-direction:column}.admin-shell .jf-item{grid-gap:10px;align-items:center;border-bottom:1px solid #eceef1;display:grid;font-size:12px;gap:10px;grid-template-columns:40px 1fr auto;padding:7px 14px}.admin-shell .jf-item:last-child{border-bottom:0}.admin-shell .jf-item small{color:#6f7885;display:block}.admin-shell .jf-type{background:#2a2d33;border-radius:3px;color:#fff;font:700 9px monospace;padding:2px 0;text-align:center}.admin-shell .jp-grid{grid-gap:0 4px;align-items:start;display:grid;gap:0 4px;grid-template-columns:minmax(0,1fr) 340px}.admin-shell .jp-main,.admin-shell .jp-side{min-width:0}@media (max-width:900px){.admin-shell .jp-grid{grid-template-columns:1fr}}.container{background-color:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-md);margin:40px auto;max-width:420px;padding:var(--space-xl);text-align:center}.header{color:var(--text-primary);font-size:var(--font-xl);font-weight:600;margin-bottom:var(--space-lg)}.container-form{display:flex;flex-direction:column;gap:var(--space-md)}.container-form input,.container-form textarea{background-color:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);box-sizing:border-box;color:var(--text-primary);font-size:var(--font-md);padding:12px var(--space-md);transition:border-color .2s ease;width:100%}.container-form input:focus,.container-form textarea:focus{border-color:var(--color-accent);outline:none}.container-form button{background-color:var(--color-accent);border:none;border-radius:var(--radius-sm);color:var(--text-white);cursor:pointer;font-size:var(--font-md);font-weight:600;padding:12px var(--space-md);transition:background-color .2s ease}.container-form button:hover{background-color:var(--color-accent-hover)}.container-form a{color:var(--color-accent);font-size:var(--font-base);margin-top:var(--space-sm);text-decoration:none}.container-form a:hover{text-decoration:underline}.container .error-message,.container p{color:var(--color-danger);font-size:var(--font-base);margin-top:var(--space-sm)}@media screen and (max-width:480px){.container{margin:var(--space-lg) var(--space-md);padding:var(--space-lg)}}.part-preview{max-width:600px;width:100%}.part-preview .part-preview-toggle{-webkit-appearance:none;appearance:none;cursor:pointer;font:inherit;min-height:44px;min-width:44px;padding:0 16px;touch-action:manipulation}.part-preview .portal-drawing,.part-preview .portal-drawing-empty{align-items:center;aspect-ratio:3/2;background:#fff;border:1px solid #ccc;border-radius:8px;box-sizing:border-box;color:#555;display:flex;font-size:.875rem;height:auto;justify-content:center;margin-top:8px;padding:0;width:100%}.part-preview .portal-drawing img{display:block;height:100%;object-fit:contain;width:100%}.part-preview .part-preview-note{color:#555;font-size:.875rem;margin:4px 0 0}.admin-shell .request-inbox-wrap{grid-gap:14px;align-items:start;display:grid;gap:14px;grid-template-columns:286px minmax(0,1fr)}.admin-shell .request-inbox{background:#fff;border:1px solid #ddd;border:1px solid var(--line,#ddd);border-radius:8px;position:-webkit-sticky;position:sticky;top:66px}.admin-shell .request-inbox header{padding:10px 12px}.admin-shell .request-inbox h3{font-size:13px;margin:0}.admin-shell .request-inbox-msg{color:#777;color:var(--ink3,#777);font-size:12px;padding:12px}.admin-shell .request-inbox .tabs{border-bottom:1px solid #eee;border-bottom:1px solid var(--line2,#eee);display:flex;gap:2px;padding:8px 10px}.admin-shell .request-inbox .tabs button{background:none;border:0;border-radius:5px;color:#777;color:var(--ink3,#777);cursor:pointer;font-size:11px;font-weight:700;height:24px;padding:0 8px}.admin-shell .request-inbox .tabs button.on{background:#f3f4f6;background:var(--card2,#f3f4f6);color:#111;color:var(--ink,#111)}.admin-shell .request-inbox .rq{border-bottom:1px solid #eee;border-bottom:1px solid var(--line2,#eee);cursor:pointer;font-size:12px;padding:9px 12px}.admin-shell .request-inbox .rq.cur{background:#f1f5ff;box-shadow:inset 3px 0 0 #2563eb;box-shadow:inset 3px 0 0 var(--blue,#2563eb)}.admin-shell .request-inbox .rq.done{opacity:.6}.admin-shell .request-inbox .rq .top1{display:flex;justify-content:space-between}.admin-shell .request-inbox .rq b.mono{color:#2563eb;color:var(--blue,#2563eb);font-family:monospace}.admin-shell .request-inbox .rq small{color:#777;color:var(--ink3,#777);display:block}.admin-shell .request-pick{background:#fff;border:1px solid #ddd;border:1px solid var(--line,#ddd);border-radius:8px;color:#777;color:var(--ink3,#777);padding:40px;text-align:center}.review-line{grid-gap:8px;border-bottom:1px solid #ddd;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));padding:12px 0}.review-field{display:flex;flex-direction:column}.review-hint{color:#555;font-size:.8em}.review-hint button{margin-left:6px}.review-error,.review-files,.review-matches{grid-column:1/-1}.review-matches{margin:0;padding-left:16px}.review-error{color:#b00020}.review-warning{color:#8a5a00;grid-column:1/-1}.review-match-label{font-weight:700;margin-right:6px}.review-match-job{color:#555;font-size:.85em;margin-left:12px}.review-match-part,button.review-match-job{background:none;border:none;cursor:pointer;padding:0;text-align:left}.review-match-open{font-size:.8em}.review-preview{display:flex;flex-direction:column;gap:4px;height:200px;width:160px}.review-preview-name{font-size:.8em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-shell .price-sheet{background:#fff;border:1px solid #ddd;border:1px solid var(--line,#ddd);border-radius:8px}.admin-shell .price-sheet header{align-items:center;display:flex;justify-content:space-between;padding:10px 12px}.admin-shell .price-sheet h3{font-size:13px;margin:0}.admin-shell .price-sheet header button{cursor:pointer;font-size:11px;font-weight:700;height:26px;padding:0 10px}.admin-shell .price-sheet .ps{grid-gap:8px;align-items:center;border-top:1px solid #eee;border-top:1px solid var(--line2,#eee);display:grid;font-size:12px;gap:8px;grid-template-columns:1fr 34px 76px;padding:5px 12px}.admin-shell .price-sheet .ps>span{color:#777;color:var(--ink3,#777)}.admin-shell .price-sheet .ps .field{font:700 12px monospace;height:26px;padding:0 6px;text-align:right}.admin-shell .price-sheet .ps .field.empty{background:#fffdf5;border:2px solid #d97706;border:2px solid var(--amber,#d97706)}.admin-shell .price-sheet .ps-foot{border-top:1px solid #eee;border-top:1px solid var(--line2,#eee);font-size:12px;font-weight:700;padding:8px 12px}.admin-shell .request-review-head{background:#fff;border:1px solid #ddd;border:1px solid var(--line,#ddd);border-radius:8px;margin-bottom:14px;padding:14px 16px}.admin-shell .request-review-head .id{color:#2563eb;color:var(--blue,#2563eb);font:700 26px monospace;margin-right:18px}.admin-shell .request-review-head .facts{border-top:1px solid #eee;border-top:1px solid var(--line2,#eee);display:flex;flex-wrap:wrap;font-size:12px;gap:8px 26px;margin-top:8px;padding-top:10px}.admin-shell .request-review-head .facts small{color:#777;color:var(--ink3,#777);display:block}.admin-shell .request-review-body{grid-gap:14px;align-items:start;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) 300px;margin-bottom:14px}.admin-shell .sb-board{align-items:flex-start;display:flex;gap:10px;overflow-x:auto}.admin-shell .sb-col{background:#fff;border-top:3px solid var(--sc);flex:1 0 190px;flex-direction:column;gap:8px}.admin-shell .sb-col,.admin-shell .sb-stack{border-radius:8px;color:var(--ink);display:flex;padding:8px}.admin-shell .sb-stack{background:#e9ebef;flex:0 0 110px;flex-direction:column;gap:4px}.admin-shell .sb-board h3{align-items:baseline;display:flex;font-size:12px;gap:6px;margin:0 0 4px}.admin-shell .sb-board h3 span{color:var(--ink3);font-weight:500}.admin-shell .sb-board h3 i{font:700 14px ui-monospace,Menlo,monospace;font-style:normal;margin-left:auto}.admin-shell .sb-stack>button{background:none;border:0;color:#1d2c5c;cursor:pointer;font:600 12px ui-monospace,Menlo,monospace;padding:2px 0;text-align:left}.admin-shell .sb-card{background:#fff;border:1px solid #eceef1;border-radius:6px;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:8px;text-align:left}.admin-shell .sb-card:hover{background:#f1f5ff}.admin-shell .sb-card .pn{color:#1d2c5c;font:700 13px ui-monospace,Menlo,monospace}.admin-shell .sb-card .chip,.admin-shell .sb-card .jb{color:var(--ink3);font-size:11px}.admin-shell .sb-card .marks{display:flex;gap:4px}.admin-shell .sb-card em{border-radius:8px;font-size:10px;font-style:normal;font-weight:700;padding:1px 6px}.admin-shell .sb-card em.urgent{background:#fde7e4;color:#c63a2b}.admin-shell .sb-card em.waiting{background:#fff1d6;color:#c27a00}.admin-shell .ov-toggle{display:inline-flex;gap:2px}.admin-shell .ov-toggle button{background:#0000;border:0;border-radius:6px;color:inherit;cursor:pointer;font-weight:600;height:28px;padding:0 12px}.admin-shell .ov-toggle button.on{background:#fff;color:var(--ink)}.admin-shell .sb-card .draw{display:flex;gap:4px}.admin-shell .sb-card .draw:empty{display:none}.admin-shell .sb-card .draw canvas,.admin-shell .sb-card .draw img{max-height:56px;max-width:56px}.portal-shell{background:var(--portal-bg);color:var(--portal-text);min-height:100vh;overflow-wrap:anywhere}.portal-shell,.portal-shell *{box-sizing:border-box}.portal-shell .portal-topbar{align-items:center;background:var(--portal-surface);border-bottom:1px solid var(--portal-border);display:flex;flex-direction:row;height:var(--portal-topbar-h);justify-content:space-between;padding:0 var(--space-sm);position:-webkit-sticky;position:sticky;top:0;z-index:20}.portal-shell .portal-logo-link{align-items:center;display:inline-flex;min-height:44px;text-decoration:none}.portal-shell .portal-logo{height:32px;max-width:100%}.portal-shell .portal-wordmark{color:var(--portal-text);font-weight:700;margin-left:var(--space-xs)}.portal-shell nav{display:flex;flex-wrap:nowrap}.portal-shell .portal-nav-link{align-items:center;background:none;border:none;color:var(--portal-text-muted);cursor:pointer;display:inline-flex;font:inherit;min-height:44px;padding:0 var(--space-sm);text-decoration:none}.portal-shell .portal-nav-link:hover{color:var(--portal-text);text-decoration:underline}.portal-shell a:focus-visible,.portal-shell button:focus-visible{outline:3px solid var(--portal-focus);outline-offset:2px}.portal-shell .portal{margin:0 auto;max-width:var(--portal-page-max);padding:var(--space-md)}.portal-shell .portal--wide{max-width:none;padding:var(--space-md) var(--portal-page-pad) 0}.portal-shell .portal-visually-hidden{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.portal-shell h1{color:var(--portal-text);margin:0 0 var(--space-md)}.portal-shell .portal-card{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:8px;display:block;margin-bottom:var(--space-md);padding:var(--space-md)}.portal-shell a.portal-card{color:inherit;text-decoration:none}.portal-shell a.portal-card:focus-visible,.portal-shell a.portal-card:hover{border-color:var(--portal-accent)}.portal-shell .portal-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.portal-shell .portal-title-row h1{margin:0}.portal-shell .portal-back-link{align-items:center;color:var(--portal-accent);display:inline-flex;min-height:44px;text-decoration:none}.portal-shell .portal-back-link:hover{text-decoration:underline}.portal-shell .portal-back-link:before{content:"\2190";margin-right:var(--space-xs)}.portal-shell .portal-part-toggle{margin-top:var(--space-md)}.portal-shell .portal-job-fields{margin-bottom:var(--space-lg)}.portal-shell .portal-card-row,.portal-shell .portal-stack{display:flex;flex-direction:column;gap:var(--space-sm)}.portal-shell .portal-meta{color:var(--portal-text-muted);display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md)}.portal-shell .portal-badge{align-self:flex-start;background:var(--portal-badge-bg);border-radius:12px;color:var(--portal-badge-text);display:inline-block;padding:var(--space-xs) var(--space-sm)}.portal-shell .portal-badge--shipped{background:var(--portal-accent);color:var(--portal-on-accent)}.portal-shell .portal-fields{grid-gap:var(--space-sm);display:grid;gap:var(--space-sm);grid-template-columns:1fr;margin:0}.portal-shell .portal-field{margin:0}.portal-shell .portal-field-label{color:var(--portal-text-muted)}.portal-shell .portal-field-value{color:var(--portal-text);margin:0}.portal-shell .portal-parts{list-style:none;margin:0;padding:0}.portal-shell .portal-part{border-bottom:1px solid var(--portal-border);margin-bottom:var(--space-sm)}.portal-shell .portal-part-desc{color:var(--portal-text-muted)}.portal-shell .portal-button{align-items:center;background:var(--portal-accent);border:none;border-radius:6px;color:var(--portal-on-accent);cursor:pointer;display:flex;justify-content:center;min-height:44px;padding:0 var(--space-md);text-decoration:none;width:100%}.portal-shell .portal-button:hover{background:var(--portal-accent-hover)}.portal-shell .portal-file{border-bottom:1px solid var(--portal-border);display:flex;flex-direction:column;padding:var(--space-sm) 0}.portal-shell .portal-file-kind{color:var(--portal-text-muted);font-size:.8em;text-transform:uppercase}.portal-shell .portal-message{padding:var(--space-lg);text-align:center}.portal-shell .portal-form{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:8px;display:flex;flex-direction:column;gap:var(--space-md);margin:0 auto var(--space-md);max-width:420px;padding:var(--space-md)}.portal-shell .portal-form h2{font-size:1.25rem;margin:0}.portal-shell .portal-input,.portal-shell .portal-label{color:var(--portal-text);display:block}.portal-shell .portal-input{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:6px;font:inherit;font-size:16px;margin-top:var(--space-xs);min-height:44px;padding:0 var(--space-sm);width:100%}.portal-shell .portal-input:focus{outline:3px solid var(--portal-focus);outline-offset:1px}.portal-shell .portal-error{color:var(--portal-danger);margin:0}.portal-shell .portal-form a,.portal-shell .portal-link{align-items:center;color:var(--portal-accent);display:inline-flex;min-height:44px}.portal-shell .portal-drawing{-webkit-appearance:none;appearance:none;background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:4px;box-sizing:border-box;cursor:pointer;display:block;min-height:44px;min-width:44px;padding:0}.portal-shell .portal-drawing img{display:block;height:100%;object-fit:contain;width:100%}.portal-shell .portal-drawing--small{height:96px;width:72px}.portal-shell .portal-drawing--large{aspect-ratio:3/4;width:100%}.portal-shell .portal-drawing-empty{align-items:center;background:var(--portal-bg);border:1px dashed var(--portal-border);border-radius:4px;box-sizing:border-box;color:var(--portal-text-muted);display:flex;font-size:.875rem;justify-content:center}.portal-shell .portal-drawing--landscape{aspect-ratio:3/2;border-radius:12px;height:auto;width:100%}.portal-shell .portal-drawings{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.portal-shell .portal-drawings--large{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.portal-shell .portal-part-body{display:flex;flex-direction:column;gap:var(--space-md)}.portal-shell .portal-job-card:focus-within{border-color:var(--portal-accent)}.portal-shell .portal-job-link{color:inherit;display:block;text-decoration:none}.portal-shell .portal-job-parts{border-top:1px solid var(--portal-border);display:flex;flex-direction:column;gap:var(--space-sm);list-style:none;margin:0;margin-top:var(--space-md);padding:0}.portal-shell .portal-home-part{grid-gap:var(--space-md);display:grid;gap:var(--space-md);grid-template-columns:1fr;padding:var(--space-md) 0}.portal-shell .portal-home-part+.portal-home-part{border-top:1px solid var(--portal-border)}.portal-shell .portal-home-part-info{display:flex;flex-direction:column;gap:var(--space-sm)}.portal-shell .portal-home-part-preview{position:relative}.portal-shell .portal-more-drawings{align-items:center;background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:12px;bottom:var(--space-xs);box-sizing:border-box;color:var(--portal-accent);display:inline-flex;justify-content:center;min-height:44px;min-width:44px;position:absolute;right:var(--space-xs);text-decoration:none}@media (min-width:640px){.portal-shell .portal-home-part{align-items:start;grid-template-columns:2fr 1fr}.portal-shell .portal-topbar{padding:0 var(--space-lg)}.portal-shell .portal-logo{height:40px}.portal-shell .portal-nav-link{padding:0 var(--space-md)}.portal-shell .portal-card-row,.portal-shell .portal-file{align-items:center;flex-direction:row;justify-content:space-between}.portal-shell .portal-fields{grid-template-columns:repeat(2,1fr)}.portal-shell .portal-button{display:inline-flex;width:auto}.portal-shell .portal-part-body{flex-direction:row}.portal-shell .portal-part-preview{flex:0 0 240px}}.portal-shell .portal-search{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.portal-shell .portal-part-row:hover{border-color:var(--portal-accent)}.portal-shell .portal-part-jobs{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.portal-shell .portal-part-job-link,.portal-shell .portal-part-more{align-items:center;display:inline-flex;justify-content:center;min-height:44px;min-width:44px}.portal-shell .portal-section-title{margin:var(--space-lg) 0 var(--space-sm)}.portal-shell .portal-button--quiet{background:var(--portal-surface);border:1px solid var(--portal-border);color:var(--portal-accent);min-height:44px}.portal-shell .portal-button--quiet:hover{background:var(--portal-surface);border-color:var(--portal-accent)}.portal-shell .part-preview .portal-button--quiet{background:var(--portal-surface);border:1px solid var(--portal-border);color:var(--portal-accent)}.portal-shell .portal-search-row{align-items:center;display:flex;flex-wrap:nowrap;gap:var(--space-sm)}.portal-shell .portal-search-row .portal-input{flex:1 1 auto;margin-top:0;min-width:0}.portal-shell .portal-search-row .portal-button{flex:0 0 auto;width:auto}.portal-shell .portal-part-job-link{color:var(--portal-accent);text-decoration:none}.portal-shell .portal-part-job-link:hover{text-decoration:underline}.portal-shell .portal-request-grid{display:flex;flex-direction:column;gap:var(--space-md)}.portal-shell .portal-request-head{display:none}.portal-shell .portal-request-row{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:8px;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md)}.portal-shell .portal-request-label{color:var(--portal-text-muted);display:block}.portal-shell .portal-request-files{list-style:none;margin:var(--space-xs) 0 0;overflow-wrap:anywhere;padding:0}.portal-shell .portal-request-drop{align-items:center;border:2px dashed var(--portal-border);border-radius:6px;color:var(--portal-text-muted);cursor:pointer;display:flex;justify-content:center;min-height:44px;padding:var(--space-sm);text-align:center}.portal-shell .portal-request-remove{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:6px;color:var(--portal-accent);cursor:pointer;font:inherit;min-height:44px;padding:0 var(--space-sm)}.portal-shell .portal-request-warning{background:var(--portal-badge-bg);border-radius:6px;color:var(--portal-badge-text);margin:0;padding:var(--space-xs) var(--space-sm)}@media (min-width:768px){.portal-shell .portal-request-row .portal-input::placeholder{color:var(--portal-text-muted);opacity:1}.portal-shell .portal-request-head,.portal-shell .portal-request-row{grid-gap:var(--space-sm);align-items:start;display:grid;gap:var(--space-sm);grid-template-columns:1.2fr 2fr 1.2fr .6fr}.portal-shell .portal-request-head{color:var(--portal-text-muted);padding:0 var(--space-md)}.portal-shell .portal-request-row .portal-request-label{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;width:1px}.portal-shell .portal-request-row .portal-error,.portal-shell .portal-request-warning{grid-column:1/-1}}.portal-shell .portal-request-title{background:#0000;border:1px solid #0000;border-radius:6px;color:var(--portal-text);font:inherit;min-width:12ch;padding:var(--space-xs)}.portal-shell .portal-request-title:focus{background:var(--portal-surface);border-color:var(--portal-border)}.portal-shell .portal-request-header{margin-left:auto}.portal-shell .portal-request-header-field{display:flex;flex-direction:column;font-size:.8em}.portal-shell .portal-request-actions{align-items:center;display:flex;gap:var(--space-sm)}@media (max-width:640px){.portal-shell .portal-request-header{margin-left:0;width:100%}.portal-shell .portal-request-header-field{flex:1 1 40%}.portal-shell .portal-request-actions{flex-basis:100%}}.portal-shell .portal-request-card .portal-badge,.portal-shell .portal-request-file-remove{margin-left:var(--space-sm)}.portal-shell .portal-part-row--selected{border-color:var(--portal-accent)}.portal-shell .portal-list-request-row{border:1px solid var(--portal-border);border-radius:12px;display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md);padding:var(--space-md)}.portal-shell .portal-list-request-footer{align-items:center;color:var(--portal-text-muted);display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-sm)}.portal-shell .portal-nav-account{align-items:center;display:flex;margin-left:var(--space-md)}.portal-shell .portal-nav-link[aria-current=page]{box-shadow:inset 0 -3px 0 var(--portal-accent);color:var(--portal-text);font-weight:700}.portal-shell .portal-avatar{background:var(--portal-accent);border-radius:50%;color:var(--portal-on-accent);display:inline-grid;font-weight:700;height:32px;place-items:center;text-decoration:none;width:32px}.portal-shell .portal-tabbar{display:none}.portal-shell .portal-tabbar a{color:var(--portal-text-muted);display:grid;flex:1 1;font-weight:700;min-height:44px;place-items:center;text-decoration:none}.portal-shell .portal-tabbar a[aria-current=page]{box-shadow:inset 0 3px 0 var(--portal-accent);color:var(--portal-accent)}@media (max-width:599px){.portal-shell nav[aria-label=Portal]{display:none}.portal-shell .portal-tabbar{background:var(--portal-surface);border-top:1px solid var(--portal-border);bottom:0;display:flex;height:64px;left:0;position:fixed;right:0;z-index:20}.portal-shell .portal{padding-bottom:calc(64px + var(--space-md))}}.portal-shell .portal-live{align-items:center;color:var(--portal-live);display:inline-flex;font-size:.8rem;gap:6px;gap:var(--space-xs,6px);margin-left:auto}.portal-shell .portal-live:before{animation:portal-live-pulse 2s ease-in-out infinite;background:var(--portal-live);border-radius:50%;content:"";height:8px;width:8px}.admin-shell .fh{background:#1b1f26;color:#fff;padding:14px 18px}.admin-shell .fh-head{align-items:center;display:flex;gap:14px;margin-bottom:12px}.admin-shell .fh-head h1{color:#5da34d;font-size:24px;margin:0}.admin-shell .fh-head h1 span{margin-left:8px}.admin-shell .fh-seg{background:#2a2f38;border-radius:7px;display:flex;gap:2px;padding:2px}.admin-shell .fh-seg button{background:none;border:0;border-radius:5px;color:#aab1bc;cursor:pointer;font-size:12px;font-weight:700;height:26px;padding:0 12px}.admin-shell .fh-seg button.on{background:#fff;color:#171b22}.admin-shell .fh-seg button:disabled{cursor:default;opacity:.4}.admin-shell .fh-band{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(5,1fr) 1.5fr}.admin-shell .fh-tile{background:#fff;border-radius:8px;color:#171b22;display:flex;flex-direction:column;gap:2px;padding:10px 14px}.admin-shell .fh-tile small{color:#6f7885;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.admin-shell .fh-tile b{font:700 22px ui-monospace,Menlo,monospace;letter-spacing:-.02em}.admin-shell .fh-tile>span{color:#6f7885;font-size:11px}.admin-shell .fh-tile.g b{color:#2f7d21}.admin-shell .fh-tile.a b{color:#c27a00}.admin-shell .fh-tile.r b{color:#c62828}.admin-shell .fh-tile .inv-key,.admin-shell .fh-tile.b b{color:#2a5bd7}.admin-shell .fh-tile .exp-key{color:#c27a00}.admin-shell .fh-months{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);height:40px;margin:6px 0 14px}.admin-shell .fh-months div{align-items:flex-end;display:flex;gap:3px;height:100%;position:relative}.admin-shell .fh-months i{border-radius:2px 2px 0 0;flex:1 1}.admin-shell .fh-months i.inv{background:#2a5bd7}.admin-shell .fh-months i.exp{background:#e6a23c}.admin-shell .fh-months em{bottom:-15px;color:#6f7885;font-size:10px;font-style:normal;font-weight:700;left:0;position:absolute}.admin-shell .fl{background:#fff;border-radius:8px;color:#171b22;margin:16px 18px;padding:14px 18px}.admin-shell .fl-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.admin-shell .fl-head h2{font-size:16px;margin:0}.admin-shell .fl-tabs{background:#eef0f3;border-radius:7px;display:flex;gap:2px;padding:2px}.admin-shell .fl-tabs button{background:none;border:0;border-radius:5px;color:#6f7885;cursor:pointer;font-size:12px;font-weight:700;height:26px;padding:0 12px}.admin-shell .fl-tabs button.on{background:#1b1f26;color:#fff}.admin-shell .fl-create{background:#2f7d21;border:0;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:700;height:28px;padding:0 12px}.admin-shell .fl-empty{color:#6f7885;font-size:13px;margin:12px 0}.admin-shell .fl-group{margin-bottom:12px}.admin-shell .fl-group h3{color:#6f7885;font-size:12px;letter-spacing:.06em;margin:0 0 4px;text-transform:uppercase}.admin-shell .fl table{border-collapse:collapse;font-size:13px;width:100%}.admin-shell .fl th{color:#6f7885;font-size:10px;letter-spacing:.08em;padding:4px 8px;text-align:left;text-transform:uppercase}.admin-shell .fl td{border-top:1px solid #eef0f3;padding:6px 8px}.admin-shell .fl td a{color:#2a5bd7;margin-right:6px}.admin-shell .fl tfoot td{font-weight:700}.admin-shell .fl-actions{text-align:right;white-space:nowrap}.admin-shell .fl-actions button{background:#fff;border:1px solid #cfd4db;border-radius:5px;cursor:pointer;font-size:11px;font-weight:700;height:24px;margin-left:6px;padding:0 10px}.admin-shell .fl-actions button.danger{color:#c62828}.admin-shell .fin-actions{display:flex;gap:8px;margin-left:auto}.admin-shell .fin-actions button{background:none;border:1px solid #3a414c;border-radius:6px;color:inherit;cursor:pointer;font-size:12px;font-weight:700;height:28px;padding:0 12px}.admin-shell .fin-actions button.danger{color:#ff8a80}.admin-shell .fin-actions button:disabled{cursor:default;opacity:.5}.admin-shell .fin-empty{color:#6f7885;margin:40px 18px;text-align:center}.admin-shell .fin-grid{grid-gap:14px;align-items:start;display:grid;gap:14px;grid-template-columns:minmax(0,1fr) 400px;margin:0 18px}.admin-shell .fin-grid .fl{margin:0}@media (max-width:1100px){.admin-shell .fin-grid{grid-template-columns:minmax(0,1fr)}}.portal-shell{--portal-stage-machining:#1d6fd8;--portal-stage-inspection:#7c3aed;--portal-stage-ready:#1f8a4c;--portal-stage-scheduled:#6b7280;--portal-stage-flag:#b45309;--portal-tile-skeleton:#eceff3;--portal-tile-skeleton-shine:#f7f8fa}.portal-shell .portal-tile{align-items:center;background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:12px;container-type:inline-size;display:flex;justify-content:center;overflow:hidden;padding:0;width:100%}.portal-shell .portal-tile--ready{cursor:pointer}.portal-shell .portal-tile--ready img{display:block;height:100%;object-fit:contain;width:100%}.portal-shell .portal-tile--empty{background:var(--portal-bg);color:var(--portal-text-muted);font-size:clamp(10px,2.5cqw,12px);overflow:hidden;padding:var(--space-xs);text-align:center}@media (max-width:599px){.portal-shell .portal-tile--empty{aspect-ratio:auto;height:56px}}.portal-shell .portal-tile--skeleton{animation:portal-tile-sweep 1.4s ease-in-out infinite;background:linear-gradient(100deg,var(--portal-tile-skeleton) 30%,var(--portal-tile-skeleton-shine) 50%,var(--portal-tile-skeleton) 70%) var(--portal-tile-skeleton);background-size:200% 100%;border-color:#0000}@keyframes portal-tile-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.portal-shell .portal-stage{align-items:center;background:var(--portal-stage-scheduled);border-radius:12px;color:var(--portal-on-accent);display:inline-flex;font-size:12px;font-weight:600;gap:var(--space-xs);padding:2px var(--space-sm)}.portal-shell .portal-stage--machining{background:var(--portal-stage-machining)}.portal-shell .portal-stage--inspection{background:var(--portal-stage-inspection)}.portal-shell .portal-stage--done,.portal-shell .portal-stage--packing{background:var(--portal-stage-ready)}.portal-shell .portal-stage-flag{background:var(--portal-surface);border-radius:8px;color:var(--portal-stage-flag);padding:0 var(--space-xs)}.portal-shell .portal-job-dot{align-items:center;display:inline-flex;font-size:13px;gap:var(--space-xs)}.portal-shell .portal-job-dot:before{background:var(--portal-seg-none);border-radius:50%;content:"";height:8px;width:8px}.portal-shell .portal-job-dot--in_shop:before{background:var(--portal-accent)}.portal-shell .portal-job-dot--machining:before{background:var(--portal-stage-machining)}.portal-shell .portal-job-dot--inspection:before{background:var(--portal-stage-inspection)}.portal-shell .portal-job-dot--done:before,.portal-shell .portal-job-dot--packing:before{background:var(--portal-stage-ready)}@keyframes portal-live-pulse{0%,to{opacity:1}50%{opacity:.35}}.portal-shell .portal-pin-target{position:relative}.portal-shell .portal-pin-target--hot{box-shadow:inset 3px 0 0 var(--portal-accent)}.portal-shell .portal-pin{align-items:center;background:var(--portal-badge-bg);border:0;border-radius:10px;color:var(--portal-badge-text);cursor:default;display:inline-flex;font-size:11px;font-weight:700;height:20px;padding:0 var(--space-xs);position:absolute;right:var(--space-xs);top:var(--space-xs)}.portal-shell .portal-pin--leemac{background:var(--portal-text);color:var(--portal-on-accent)}.portal-shell .portal-pin--empty{background:#0000;border:1px solid var(--portal-border);border-radius:50%;color:var(--portal-text-muted);font-size:14px;height:24px;justify-content:center;padding:0;width:24px}.portal-shell .portal-pin:focus-visible{outline:2px solid var(--portal-focus)}.portal-shell .portal-pin-card{background:var(--portal-surface);border:1px solid var(--portal-border);border-left:3px solid var(--portal-text);border-radius:8px;box-shadow:0 12px 32px #11161d2e;color:var(--portal-text);display:flex;flex-direction:column;gap:var(--space-sm);left:calc(100% + 10px);padding:12px 14px;position:absolute;text-align:left;top:-8px;white-space:normal;width:300px;z-index:30}.portal-shell .portal-pin-card[data-side=left]{left:auto;right:calc(100% + 10px)}.portal-shell .portal-pin-thread{display:flex;flex-direction:column;gap:var(--space-sm);list-style:none;margin:0;padding:0}.portal-shell .portal-pin-note+.portal-pin-note{border-top:1px solid var(--portal-border);padding-top:var(--space-sm)}.portal-shell .portal-pin-by{align-items:center;display:flex;font-size:12px;gap:8px}.portal-shell .portal-pin-by em{font-style:normal;font-weight:600}.portal-shell .portal-pin-by time{color:var(--portal-text-muted);margin-left:auto}.portal-shell .portal-pin-note-tag{background:var(--portal-badge-bg);border-radius:4px;color:var(--portal-badge-text);font-size:10px;font-weight:800;letter-spacing:.06em;padding:2px 6px}.portal-shell .portal-pin-note-tag--leemac{background:var(--portal-text);color:var(--portal-on-accent)}.portal-shell .portal-pin-text{font-size:13px;line-height:1.45;margin:0}.portal-shell .portal-pin-reply{display:flex;flex-direction:column;gap:6px}.portal-shell .portal-pin-reply textarea{border:1px solid var(--portal-border);border-radius:6px;font:inherit;font-size:12px;padding:6px 10px;resize:vertical}.portal-shell .portal-pin-reply button{align-self:flex-end;background:var(--portal-accent);border:0;border-radius:6px;color:var(--portal-on-accent);padding:4px 12px}.portal-shell .portal-pin-reply button:disabled{opacity:.5}.portal-shell .portal-pin-error{color:var(--portal-danger);font-size:12px;margin:0}.portal-shell .portal-pin-sheet{background:var(--portal-surface);border-radius:12px 12px 0 0;border-top:1px solid var(--portal-border);bottom:0;box-shadow:0 -12px 32px #11161d2e;color:var(--portal-text);display:flex;flex-direction:column;gap:var(--space-sm);left:0;max-height:70vh;overflow-y:auto;padding:16px;position:fixed;right:0;z-index:40}.portal-shell .portal-pin-close{align-self:flex-end;background:none;border:0;color:var(--portal-accent);font:inherit}.portal-shell .portal-pin-backdrop{background:#11161d73;inset:0;position:fixed;z-index:39}.portal-shell .portal-pin-sheet-title{font-size:15px;margin:0}.portal-shell .portal-pin-empty{color:var(--portal-text-muted);font-size:13px;margin:0}.portal-shell .portal-job-notes .portal-pin-reply{margin-top:var(--space-sm)}.portal-shell{--portal-seg-none:#d9d6cf}.portal-shell .portal-job-row{align-items:center;border-bottom:1px solid var(--portal-border);color:var(--portal-text);display:flex;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-sm) var(--space-md);text-decoration:none}.portal-shell .portal-job-row:hover{background:var(--portal-bg)}.portal-shell .portal-job-row--faded{opacity:.55}.portal-shell .portal-job-row--compact{grid-gap:var(--space-xs) var(--space-sm);align-items:center;display:grid;gap:var(--space-xs) var(--space-sm);grid-template-areas:"num stage due" "po bar parts";grid-template-columns:auto 1fr auto;padding:var(--space-xs) var(--space-sm)}.portal-shell .portal-job-row--compact .portal-job-num{font-size:16px;grid-area:num}.portal-shell .portal-job-row--compact .portal-job-dot{grid-area:stage}.portal-shell .portal-job-row--compact .portal-job-bar{grid-area:bar}.portal-shell .portal-job-row--compact .portal-job-po{grid-area:po}.portal-shell .portal-job-row--compact .portal-job-due{grid-area:due;justify-self:end}.portal-shell .portal-job-row--compact .portal-job-parts{color:var(--portal-text-muted);font-size:13px;grid-area:parts;justify-self:end}.portal-shell .portal-job-num{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}.portal-shell .portal-job-bar{display:flex;flex:1 1;gap:2px;min-width:60px}.portal-shell .portal-job-seg{background:var(--portal-seg-none);border-radius:3px;flex:1 1;height:6px}.portal-shell .portal-job-seg--machining{background:var(--portal-stage-machining)}.portal-shell .portal-job-seg--inspection{background:var(--portal-stage-inspection)}.portal-shell .portal-job-seg--delivered,.portal-shell .portal-job-seg--done,.portal-shell .portal-job-seg--invoiced,.portal-shell .portal-job-seg--packing{background:var(--portal-stage-ready)}.portal-shell .portal-job-due,.portal-shell .portal-job-po{color:var(--portal-text-muted);font-size:13px}.portal-shell .portal-joblist-head{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:space-between;margin-bottom:var(--space-sm)}.portal-shell .portal-joblist-head h2{margin:0}.portal-shell .portal-joblist-head .portal-input{flex:0 1 320px;margin-top:0}.portal-shell .portal-joblist-head--compact h2{color:var(--portal-text-muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.portal-shell .portal-joblist-head--compact .portal-input{font-size:13px;height:32px;min-height:0}.portal-shell .portal-job-row:not(.portal-job-row--compact){grid-gap:var(--space-md);align-items:center;display:grid;gap:var(--space-md);grid-template-columns:120px 160px 1fr 140px 120px}.portal-shell .portal-job-row:not(.portal-job-row--compact) .portal-job-po{grid-column:4}.portal-shell .portal-job-row:not(.portal-job-row--compact) .portal-job-due{grid-column:5;text-align:right}@media (max-width:599px){.portal-shell .portal-job-row:not(.portal-job-row--compact){gap:var(--space-xs) var(--space-sm);grid-template-areas:"num stage" "bar bar" "po due";grid-template-columns:1fr auto}.portal-shell .portal-job-row:not(.portal-job-row--compact) .portal-job-num{grid-area:num}.portal-shell .portal-job-row:not(.portal-job-row--compact) .portal-job-dot{grid-area:stage;justify-self:end}.portal-shell .portal-job-row:not(.portal-job-row--compact) .portal-job-bar{grid-area:bar}.portal-shell .portal-job-row:not(.portal-job-row--compact) .portal-job-po{grid-area:po}.portal-shell .portal-job-row:not(.portal-job-row--compact) .portal-job-due{grid-area:due;grid-column:auto;text-align:right}}.portal-shell .portal-req-page{grid-gap:var(--space-md);display:grid;gap:var(--space-md);grid-template-columns:minmax(0,1fr)}.portal-shell .portal-req-rail{display:flex;flex-direction:column;gap:var(--space-sm)}.portal-shell .portal-req-heading{align-items:center;color:var(--portal-text-muted);display:flex;font-size:14px;gap:var(--space-xs);margin:var(--space-sm) 0 0}.portal-shell .portal-req-count{color:var(--portal-text);font-weight:600}.portal-shell .portal-req-list,.portal-shell .portal-req-row{background:#0000;border:0;border-bottom:1px solid var(--portal-border);border-radius:0;color:inherit;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);text-decoration:none}.portal-shell .portal-req-row:hover{background:var(--portal-badge-bg)}.portal-shell .portal-req-row--current{background:var(--portal-badge-bg);border-left:3px solid var(--portal-accent)}.portal-shell .portal-req-row:focus-visible{outline:2px solid var(--portal-focus)}.portal-shell .portal-req-list-top,.portal-shell .portal-req-top{display:flex;gap:var(--space-xs);justify-content:space-between}.portal-shell .portal-req-list-top{align-items:baseline}.portal-shell .portal-req-list-top a{color:var(--portal-accent);text-decoration:none}.portal-shell .portal-req-strip{border:2px dashed var(--portal-border);border-radius:6px;box-sizing:border-box;color:var(--portal-text-muted);display:block;padding:var(--space-md);text-align:center;text-decoration:none;width:100%}.portal-shell .portal-req-id{font-family:ui-monospace,Menlo,Consolas,monospace}.portal-shell .portal-req-meta,.portal-shell .portal-req-note,.portal-shell .portal-req-status{color:var(--portal-text-muted);font-size:13px}.portal-shell .portal-req-note{margin:0}.portal-shell .portal-req-status--draft{color:var(--portal-text-muted)}.portal-shell .portal-req-status--sent{color:var(--portal-stage-flag)}.portal-shell .portal-req-status--in_review{color:var(--portal-accent)}.portal-shell .portal-req-status--job_created{color:var(--portal-stage-ready)}.portal-shell .portal-req-empty{align-items:center;color:var(--portal-text-muted);display:flex;flex-direction:column;gap:var(--space-sm);justify-content:center;min-height:240px}.portal-shell .portal-req-empty p{margin:0}.portal-shell .portal-req-drawing{max-width:172px;width:100%}.portal-shell .portal-req-drophere{border:2px dashed var(--portal-border);border-radius:6px;color:var(--portal-text-muted);display:grid;font-size:12px;font-weight:600;overflow-wrap:anywhere;padding:var(--space-xs);place-items:center;text-align:center}.portal-shell .portal-req-part{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.portal-shell .portal-req-source{color:var(--portal-text-muted);font-size:12px}.portal-shell .portal-req-match{color:var(--portal-stage-ready);font-size:12px}.portal-shell .portal-request-row .portal-input.portal-req-field--warn{background:var(--portal-badge-bg);border-color:var(--portal-stage-flag)}.portal-shell .portal-req-warning{align-items:center;color:var(--portal-stage-flag);display:flex;font-size:12px;font-weight:600;gap:var(--space-xs);margin:var(--space-xs) 0 0}.portal-shell .portal-req-warning:before{content:"!";font-weight:800}.portal-shell .portal-req-main{display:flex;flex-direction:column;gap:var(--space-md);min-width:0}.portal-shell .portal-req-tag{background:var(--portal-badge-bg);border-radius:999px;color:var(--portal-text-muted);display:inline-block;font-size:12px;font-weight:600;padding:2px var(--space-sm);width:auto}.portal-shell .portal-req-drop{border:2px dashed var(--portal-border);border-radius:6px;color:var(--portal-text-muted);justify-content:space-between}.portal-shell .portal-req-drop,.portal-shell .portal-req-footer{align-items:center;display:flex;font-size:14px;gap:var(--space-sm);padding:var(--space-sm) var(--space-md)}.portal-shell .portal-req-footer{background:var(--portal-surface);border-top:1px solid var(--portal-border);bottom:0;flex-wrap:wrap;position:-webkit-sticky;position:sticky;z-index:1}.portal-shell .portal-req-footer .portal-button{margin-left:auto}.portal-shell .portal-req-footer-warn{color:var(--portal-stage-flag);font-weight:700}.portal-shell .portal-req-drop-phone{display:none}@media (max-width:599px){.portal-shell .portal-req-footer{align-items:center;bottom:64px;flex-direction:row;flex-wrap:nowrap}.portal-shell .portal-req-footer-detail,.portal-shell .portal-req-footer-warn{display:none}.portal-shell .portal-req-footer .portal-button{margin-left:auto;width:auto}.portal-shell .portal-req-drop .portal-button,.portal-shell .portal-req-drop-desk,.portal-shell .portal-req-page--list .portal-req-empty{display:none}.portal-shell .portal-req-drop-phone{display:inline}.portal-shell .portal-req-drop{background:var(--portal-accent);border:0;color:var(--portal-on-accent);cursor:pointer;font-weight:700;justify-content:center;width:100%}}@media (min-width:768px){.portal-shell .portal-request-head,.portal-shell .portal-request-row{align-items:center;grid-template-columns:var(--portal-req-cols)}}@media (min-width:601px){.portal-shell .portal-req-page--list,.portal-shell .portal-req-page--request{align-items:start;grid-template-columns:260px minmax(0,1fr)}.portal-shell .portal-req-page--list .portal-req-rail{align-self:stretch;border-right:1px solid var(--portal-border)}}@media (max-width:600px){.portal-shell .portal-req-page--request .portal-req-rail{display:none}.portal-shell .portal-request-row{grid-gap:var(--space-xs);display:grid;gap:var(--space-xs);grid-template-areas:"dwg part part" "dwg rev qty" "files mat fin";grid-template-columns:132px 1fr 1fr;padding:var(--space-sm)}.portal-shell .portal-req-drawing{grid-area:dwg;width:132px}.portal-shell .portal-req-part{grid-area:part}.portal-shell .portal-req-rev{grid-area:rev}.portal-shell .portal-req-material{grid-area:mat}.portal-shell .portal-req-finish{grid-area:fin}.portal-shell .portal-req-qty{grid-area:qty}.portal-shell .portal-request-cell-files{grid-area:files}.portal-shell .portal-request-row .portal-error{grid-column:1/-1}}.portal-shell .portal-request-cell-files{min-width:0;overflow-wrap:anywhere}.portal-shell .portal-request-kicker{color:var(--portal-text-muted);flex-basis:100%;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.portal-shell .portal-request-header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--space-sm)}.portal-shell .portal-request-header>.portal-field,.portal-shell .portal-request-header>.portal-request-header-field{flex:1 1}.portal-shell .portal-request-titleblock{display:flex;flex-direction:column;gap:var(--space-xs)}.portal-shell .portal-request-titlerow{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-sm)}.portal-shell .portal-request-header .portal-field-label,.portal-shell .portal-request-header-field{color:var(--portal-text-muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}@media (min-width:601px){.portal-shell .portal-req-back{display:none}}@media (min-width:600px){.portal-shell .portal-request-header{align-items:end;display:grid;grid-template-columns:180px 1fr auto}}@media (max-width:599px){.portal-shell .portal-request-header{display:grid;grid-template-columns:1fr 1fr}.portal-shell .portal-request-header .portal-request-header-field--notes{grid-column:1/-1}}.portal-shell .portal-input.portal-req-partno{font-family:ui-monospace,Menlo,Consolas,monospace}.portal-shell .portal-req-qty .portal-input{font-weight:700;text-align:right}.portal-shell .portal-req-file--ok:before{color:var(--portal-stage-ready);content:"\2713 ";font-weight:800}.portal-shell .portal-req-file--warn:before{color:var(--portal-stage-flag);content:"! ";font-weight:800}.portal-shell .portal-request-add{background:none;border:1px dashed var(--portal-border);border-radius:6px;color:var(--portal-text-muted);cursor:pointer;font:inherit;padding:var(--space-sm) var(--space-md);width:100%}.portal-shell .portal-request-head{border:1px solid var(--portal-border);border-bottom:0;border-radius:6px 6px 0 0;font-size:11px;letter-spacing:.08em;padding:var(--space-sm) var(--space-md);text-transform:uppercase}.portal-shell .portal-overview-panel{--portal-sched-label-w:260px;background:var(--portal-surface);border-radius:var(--space-sm);color:var(--portal-text);padding:var(--space-md)}.portal-shell .portal-sched-title{color:var(--portal-text);font-size:12px;font-weight:700;padding:var(--space-xs)}.portal-shell .portal-sched-days{color:var(--portal-text);display:grid;font-size:9px;grid-template-columns:repeat(28,1fr)}.portal-shell .portal-sched-day{border-left:1px solid var(--portal-border);padding:2px 0;text-align:center;white-space:nowrap}.portal-shell .portal-sched-days{margin-left:var(--portal-sched-label-w)}.portal-shell .portal-sched-track{align-self:stretch;background-image:linear-gradient(to right,var(--portal-border) 1px,#0000 1px);background-size:3.57143% 100%;flex:1 1;min-height:26px;position:relative}.portal-shell .portal-sched-bar{background:var(--portal-stage-scheduled);border-radius:var(--space-xs);box-sizing:border-box;height:20px;position:absolute;top:3px}.portal-shell .portal-sched-bar--machining{background:var(--portal-stage-machining)}.portal-shell .portal-sched-bar--inspection{background:var(--portal-stage-inspection)}.portal-shell .portal-sched-bar--delivered,.portal-shell .portal-sched-bar--done,.portal-shell .portal-sched-bar--packing{background:var(--portal-stage-ready)}.portal-shell .portal-sched-bar--open{border-right:3px dashed var(--portal-surface)}.portal-shell .portal-sched-now-lane{bottom:0;left:var(--portal-sched-label-w);pointer-events:none;position:absolute;right:0;top:0}.portal-shell .portal-sched-now{border-left:2px solid var(--portal-danger);bottom:0;position:absolute;top:0}.portal-shell .portal-sched-now b{color:var(--portal-danger);font-size:10px;left:var(--space-xs);position:absolute;top:0;white-space:nowrap}.portal-shell .portal-board{margin-top:var(--space-xs);position:relative}.portal-shell .portal-board-label{align-items:center;display:flex;flex:none;gap:var(--space-sm);width:var(--portal-sched-label-w)}.portal-shell .portal-board-group{border-top:1px solid var(--portal-border);padding:var(--space-xs) 0}.portal-shell .portal-board-row{align-items:center;color:inherit;display:flex;font-size:13px;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);text-decoration:none}.portal-shell a.portal-board-row:hover{background:var(--portal-border)}.portal-shell .portal-board-count{margin-left:auto}.portal-shell .portal-ticker{align-items:center;background:var(--portal-surface);color:var(--portal-text);display:flex;font-size:12.5px;gap:var(--space-lg);height:32px;overflow:hidden;padding:0 var(--space-md);white-space:nowrap}.portal-shell .portal-ticker-live{align-items:center;color:var(--portal-live);display:flex;font-weight:600;gap:var(--space-sm)}.portal-shell .portal-ticker-live:before{animation:portal-ticker-pulse 2s infinite;background:var(--portal-live);border-radius:50%;content:"";height:8px;width:8px}.portal-shell .portal-ticker-item{display:inline-flex;gap:var(--space-sm)}.portal-shell .portal-ticker-time{color:var(--portal-accent);font:700 12px ui-monospace,Menlo,Consolas,monospace}.portal-shell .portal-ticker-job,.portal-shell .portal-ticker-part{color:var(--portal-text);font-weight:700}@keyframes portal-ticker-pulse{0%{box-shadow:0 0 0 0 #3ccf8e99}70%{box-shadow:0 0 0 8px #3ccf8e00}to{box-shadow:0 0 0 0 #3ccf8e00}}.portal-shell .portal-overview{grid-gap:var(--space-md);display:grid;gap:var(--space-md);grid-template-columns:1fr}.portal-shell .portal-overview-centre,.portal-shell .portal-overview-left{display:flex;flex-direction:column;gap:var(--space-md);min-height:0}.portal-shell .portal-overview-headline{display:flex;flex-wrap:wrap;gap:var(--space-md)}.portal-shell .portal-overview-stat{background:var(--portal-bg);border:1px solid var(--portal-border);border-radius:var(--space-sm);display:flex;flex:1 1 96px;flex-direction:column;padding:var(--space-md)}.portal-shell .portal-overview-stat b{font-size:28px}.portal-shell .portal-overview-stat span{font-size:11px;letter-spacing:.08em;text-transform:uppercase}.portal-shell .portal-overview-requests header,.portal-shell .portal-parts-head{align-items:baseline;display:flex;gap:var(--space-sm);justify-content:space-between}.portal-shell .portal-overview-requests header a{color:var(--portal-accent);text-decoration:none}.portal-shell .portal-overview-request{grid-gap:0 var(--space-sm);color:inherit;display:grid;gap:0 var(--space-sm);grid-template-columns:auto 1fr auto;padding:var(--space-xs) 0;text-decoration:none}.portal-shell .portal-overview-request code{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}.portal-shell .portal-overview-request small{grid-column:2/-1}.portal-shell .portal-overview-status--draft{color:var(--portal-text-muted)}.portal-shell .portal-overview-status--sent{color:var(--portal-accent)}.portal-shell .portal-overview-status--accepted,.portal-shell .portal-overview-status--quoted{color:var(--portal-live)}.portal-shell .portal-overview-parts{grid-gap:var(--space-sm);display:grid;gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.portal-shell .portal-parts-head{grid-column:1/-1}.portal-shell .portal-parts-caption{font-family:ui-monospace,Menlo,Consolas,monospace;padding-top:var(--space-xs)}@media (min-width:1200px){.portal-shell .portal-overview{grid-template-columns:400px 1fr var(--portal-rail-w);grid-template-rows:1fr auto;height:calc(100vh - var(--portal-topbar-h));overflow:hidden}.portal-shell .portal-overview-centre,.portal-shell .portal-overview-left,.portal-shell .portal-overview-right{overflow-y:auto}.portal-shell .portal-overview-bottom{grid-column:1/-1}}.portal-shell .portal-overview-rail{background:var(--portal-surface);border-radius:var(--space-sm);color:var(--portal-text);display:flex;flex-direction:column;gap:var(--space-sm);min-height:0;padding:var(--space-md)}.portal-shell .portal-overview-list{align-items:baseline;background:var(--portal-bg);border:1px solid var(--portal-border);border-radius:var(--space-xs);color:var(--portal-text);cursor:pointer;display:flex;justify-content:space-between;padding:var(--space-sm);text-align:left}.portal-shell .portal-overview-list:hover,.portal-shell .portal-overview-list[aria-pressed=true]{border-color:var(--portal-accent)}.portal-shell .portal-overview-newlist{display:flex;gap:var(--space-xs)}.portal-shell .portal-overview-bottom{align-items:center;background:var(--portal-surface);display:flex;gap:var(--space-md)}.portal-shell .portal-overview-bottom .portal-ticker{flex:1 1;min-width:0}.portal-shell .portal-job-page{grid-gap:var(--space-md);align-items:start;display:grid;gap:var(--space-md);grid-template-columns:232px minmax(0,1fr) 316px}.portal-shell .portal-job-list{align-self:stretch;background:var(--portal-surface);border-right:1px solid var(--portal-border);min-height:calc(100vh - var(--portal-topbar-h))}.portal-shell .portal-job-row[aria-current]{background:var(--portal-badge-bg);box-shadow:inset 3px 0 0 var(--portal-accent)}.portal-shell .portal-job-band{grid-gap:var(--space-sm);display:grid;gap:var(--space-sm)}.portal-shell .portal-job-headline{align-items:center;display:flex;gap:var(--space-md)}.portal-shell .portal-job-headline h1{font:700 44px/1 ui-monospace,Menlo,Consolas,monospace;margin:0}.portal-shell .portal-job-facts{border-bottom:1px solid var(--portal-border);border-top:1px solid var(--portal-border);display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-xl);padding:var(--space-sm) 0}.portal-shell .portal-job-fact em{color:var(--portal-text-muted);display:block;font-size:12px;font-style:normal}.portal-shell .portal-job-fact--due b{color:var(--portal-accent)}.portal-shell .portal-job-band .portal-job-seg{height:8px}.portal-shell .portal-job-parts-head{align-items:center;display:flex;gap:var(--space-md);margin:var(--space-lg) 0 var(--space-sm)}.portal-shell .portal-job-parts-head h2{font-size:18px;margin:0}.portal-shell .portal-view-switch{border:1px solid var(--portal-border);border-radius:6px;display:flex;margin-left:auto;overflow:hidden}.portal-shell .portal-view-switch button{background:var(--portal-surface);border:0;color:var(--portal-text-muted);font-weight:600;padding:6px 12px}.portal-shell .portal-view-switch button[aria-pressed=true]{background:var(--portal-text);color:var(--portal-surface)}.portal-shell .portal-part-cards{grid-gap:var(--space-md);display:grid;gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr))}.portal-shell .portal-part-card{border-radius:8px;gap:var(--space-sm)}.portal-shell .portal-part-line{align-items:center;display:flex;gap:var(--space-sm)}.portal-shell .portal-part-line .portal-stage{margin-left:auto}.portal-shell .portal-part-rev{color:var(--portal-text-muted);font:600 12px ui-monospace,Menlo,Consolas,monospace}.portal-shell .portal-part-desc{flex:1 1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-shell .portal-part-qty{font-family:ui-monospace,Menlo,Consolas,monospace}.portal-shell .portal-part-meta>*{min-width:0;white-space:nowrap}.portal-shell .portal-part-material{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-shell .portal-part-meta .portal-file-chip{flex:none}.portal-shell .portal-file-chip{border:1px solid var(--portal-border);border-radius:4px;color:var(--portal-text-muted);font:700 10px ui-monospace,Menlo,Consolas,monospace;padding:1px var(--space-xs)}.portal-shell .portal-part-rev{background:var(--portal-badge-bg);border-radius:4px;padding:1px var(--space-xs)}.portal-shell .portal-job-parts-hint{color:var(--portal-text-muted);font-size:12px}.portal-shell .portal-part-meta{color:var(--portal-text-muted);font-size:13px;justify-content:space-between}.portal-shell .portal-part-table{background:var(--portal-surface);border-collapse:collapse;width:100%}.portal-shell .portal-part-table td,.portal-shell .portal-part-table th{border-bottom:1px solid var(--portal-border);padding:var(--space-sm);text-align:left}.portal-shell .portal-part-table tbody tr{cursor:pointer}.portal-shell .portal-part-table tbody tr:hover{background:var(--portal-bg)}.portal-shell .portal-job-side{align-self:stretch;background:var(--portal-surface);border-left:1px solid var(--portal-border);min-height:calc(100vh - var(--portal-topbar-h));padding:var(--space-md)}.portal-shell .portal-job-side section+section{margin-top:var(--space-lg)}.portal-shell .portal-job-side h2{color:var(--portal-text-muted);font-size:14px;margin:0 0 var(--space-sm);text-transform:uppercase}.portal-shell .portal-steps{list-style:none;margin:0;padding:0}.portal-shell .portal-steps li{color:var(--portal-text-muted);display:flex;gap:var(--space-sm);justify-content:space-between;padding:var(--space-xs) 0 var(--space-xs) var(--space-lg);position:relative}.portal-shell .portal-steps li:before{border:2px solid var(--portal-border);border-radius:50%;box-sizing:border-box;content:"";height:10px;left:0;margin-top:-5px;position:absolute;top:50%;width:10px}.portal-shell .portal-steps li.portal-step--done:before{background:var(--portal-stage-ready);border-color:var(--portal-stage-ready)}.portal-shell .portal-steps li[aria-current=step]:before{background:var(--portal-accent);border-color:var(--portal-accent)}.portal-shell .portal-steps li[aria-current=step]{color:var(--portal-text);font-weight:700}.portal-shell .portal-steps small{font-size:12px;font-weight:400}.portal-shell .portal-file{grid-gap:var(--space-sm);align-items:center;display:grid;font-size:13px;gap:var(--space-sm);grid-template-columns:auto 1fr auto;padding:var(--space-xs) 0}.portal-shell .portal-file-kind{background:var(--portal-text);border-radius:4px;color:var(--portal-surface);font:700 10px ui-monospace,Menlo,Consolas,monospace;padding:1px var(--space-xs)}.portal-shell .portal-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-shell .portal-file .portal-link{background:none}@media (max-width:899px){.portal-shell .portal-job-page{grid-template-columns:minmax(0,1fr)}.portal-shell .portal-part-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:599px){.portal-shell .portal-job-list{border:0;min-height:0;padding:var(--space-sm)}.portal-shell .portal-job-list .portal-joblist{display:flex;gap:var(--space-sm);overflow-x:auto}.portal-shell .portal-job-list .portal-job-parts,.portal-shell .portal-job-list .portal-joblist-head{display:none}.portal-shell .portal-job-list .portal-pin-target{flex:none}.portal-shell .portal-job-list .portal-job-row{border:1px solid var(--portal-border);border-radius:18px;box-shadow:none;flex:none}.portal-shell .portal-job-list .portal-job-row[aria-current]{border-color:var(--portal-accent)}.portal-shell .portal-job-list .portal-job-bar,.portal-shell .portal-job-list .portal-job-due,.portal-shell .portal-job-list .portal-job-po,.portal-shell .portal-job-list .portal-stage{display:none}.portal-shell .portal-job-list .portal-job-dot{display:inline-block}.portal-shell .portal-job-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.portal-shell .portal-job-headline h1{font-size:36px}.portal-shell .portal-view-switch{display:none}.portal-shell .portal-part-cards{grid-template-columns:minmax(0,1fr)}}.portal-shell .portal-job-actions{display:flex;gap:var(--space-sm);margin-left:auto}@media (max-width:599px){.portal-shell .portal-job-headline{flex-wrap:wrap}.portal-shell .portal-job-actions{flex-direction:row;margin-left:0;width:100%}.portal-shell .portal-job-actions>*{flex:1 1}}.portal-shell .portal-parts-grid{grid-gap:var(--space-md);display:grid;gap:var(--space-md);grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:599px){.portal-shell .portal-parts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.portal-shell .portal-part-card{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);position:relative}.portal-shell .portal-part-card:hover{border-color:var(--portal-accent)}.portal-shell .portal-part-card--selected{background:var(--portal-badge-bg);border-color:var(--portal-accent)}.portal-shell .portal-part-head{align-items:center;display:flex;flex-wrap:nowrap;gap:var(--space-xs);min-width:0}.portal-shell .portal-part-head .portal-part-rev{border:1px solid var(--portal-border);border-radius:4px;flex:0 0 auto;padding:0 var(--space-xs);white-space:nowrap}.portal-shell .portal-part-head .portal-part-job{color:var(--portal-accent);margin-left:auto;white-space:nowrap}.portal-shell .portal-part-card .portal-part-desc{color:var(--portal-text);font-weight:700;min-width:0}.portal-shell .portal-part-facts{color:var(--portal-text-muted);display:flex;flex-wrap:wrap;font-size:13px;gap:var(--space-xs) var(--space-sm);min-width:0}.portal-shell .portal-part-job,.portal-shell .portal-part-num{font-family:ui-monospace,Menlo,Consolas,monospace}.portal-shell .portal-part-desc,.portal-shell .portal-part-job,.portal-shell .portal-part-rev{color:var(--portal-text-muted);font-size:13px;margin:0}.portal-shell .portal-part-card .portal-part-check{left:var(--space-xs);position:absolute;top:var(--space-xs)}.portal-shell .portal-parts-table{background:var(--portal-surface);border:1px solid var(--portal-border)}.portal-shell .portal-part-row{grid-gap:var(--space-sm);align-items:center;border-bottom:1px solid var(--portal-border);cursor:pointer;display:grid;gap:var(--space-sm);grid-template-columns:24px 24px 1fr 60px 2fr 120px 100px 60px;padding:var(--space-xs) var(--space-sm)}.portal-shell .portal-part-row:hover{background:var(--portal-bg)}.portal-shell .portal-rail{gap:var(--space-md)}.portal-shell .portal-rail,.portal-shell .portal-rail-list,.portal-shell .portal-rail-unlisted{display:flex;flex-direction:column}.portal-shell .portal-rail-head{align-items:baseline;border-bottom:1px solid var(--portal-border);display:flex;gap:var(--space-sm);padding-bottom:var(--space-xs)}.portal-shell .portal-rail-count{color:var(--portal-text-muted);font-size:13px;margin:0}.portal-shell .portal-rail-head .portal-link{background:#0000;margin-left:auto}.portal-shell .portal-rail-head .portal-link+.portal-rail-request{margin-left:0}.portal-shell .portal-rail-link{background:#0000}.portal-shell .portal-rail-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-xs) 0}.portal-shell .portal-rail-row{align-items:baseline;background:#0000;border:0;border-bottom:1px solid var(--portal-border);color:inherit;cursor:pointer;display:flex;font:inherit;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);text-align:left;width:100%}.portal-shell .portal-rail-row:hover{background:var(--portal-bg)}.portal-shell .portal-rail-part{font-family:ui-monospace,Menlo,Consolas,monospace}.portal-shell .portal-rail-desc{color:var(--portal-text-muted);font-size:13px}.portal-shell .portal-rail-job{color:var(--portal-text-muted);font-size:12px;margin-left:auto}.portal-shell .portal-button--small{font-size:12px;padding:2px var(--space-sm)}.portal-shell .portal-rail-tabs{border-bottom:1px solid var(--portal-border);display:flex;gap:var(--space-xs)}.portal-shell .portal-rail-tabs button{background:#0000;border:0;border-bottom:2px solid #0000;color:var(--portal-text-muted);cursor:pointer;font:inherit;padding:var(--space-xs) var(--space-sm)}.portal-shell .portal-rail-tabs button[aria-selected=true]{border-bottom-color:var(--portal-accent);color:var(--portal-text)}.portal-shell .portal-rail-new{background:none;border:0;display:flex;gap:var(--space-xs)}.portal-shell .portal-rail-name{overflow-wrap:anywhere}.portal-shell .portal-parts-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.portal-shell .portal-parts-toolbar .portal-input[type=text]{flex:1 1 12rem}.portal-shell .portal-parts-toolbar select.portal-input{flex:0 1 auto}.portal-shell .portal-parts-title{align-items:baseline;display:inline-flex;font-size:20px;font-weight:600;gap:var(--space-xs)}.portal-shell .portal-parts-count{color:var(--portal-text-muted);font-size:inherit;font-weight:600}.portal-shell .portal-menu-button{appearance:none;-webkit-appearance:none;background-color:var(--portal-surface);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%23888'/%3E%3C/svg%3E");background-position:right .6rem center;background-repeat:no-repeat;border:1px solid var(--portal-border);border-radius:6px;padding:var(--space-xs) 1.75rem var(--space-xs) var(--space-sm);width:auto}@media (min-width:1200px){.portal-shell .portal-parts-toolbar{flex-wrap:nowrap}.portal-shell .portal-parts-toolbar .portal-input[type=text]{flex:1 1;min-width:240px}.portal-shell .portal-parts-toolbar select.portal-input{width:auto}}@media (max-width:599px){.portal-shell .portal-parts-toolbar{flex-wrap:wrap}.portal-shell .portal-parts-toolbar .portal-input[type=text]{flex:1 1 100%}}.portal-shell .portal-parts-filters{display:contents}@media (max-width:599px){.portal-shell .portal-parts-toolbar .portal-parts-title{order:1}.portal-shell .portal-parts-switch{margin-left:auto;order:2}.portal-shell .portal-parts-toolbar .portal-input[type=text]{order:3}.portal-shell .portal-parts-filters{display:flex;flex:1 1 100%;flex-wrap:nowrap;gap:8px;min-width:0;order:4;overflow-x:auto}.portal-shell .portal-parts-filters select.portal-input,.portal-shell .portal-parts-filters>button{flex:none;width:auto}.portal-shell .portal-part-facts,.portal-shell .portal-part-job{display:none}.portal-shell .portal-part-num{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.portal-shell .portal-parts-selection{align-items:center;background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:8px;color:var(--portal-text);display:flex;font-weight:600;gap:var(--space-sm);margin-bottom:var(--space-md);padding:var(--space-xs) var(--space-md)}.portal-shell .portal-parts-selection span{margin-right:auto}.portal-shell .portal-parts-selection .portal-button--quiet{background:#0000;border-color:var(--portal-border);color:var(--portal-text)}.portal-shell .portal-parts-menu-wrap{position:relative}.portal-shell .portal-parts-menu{background:var(--portal-surface);border:1px solid var(--portal-border);border-radius:8px;list-style:none;margin:var(--space-xs) 0 0;min-width:180px;padding:var(--space-xs) 0;position:absolute;right:0;top:100%;z-index:10}.portal-shell .portal-parts-menu button{background:#0000;border:0;color:var(--portal-text);cursor:pointer;padding:var(--space-xs) var(--space-md);text-align:left;width:100%}.portal-shell .portal-parts-menu button:hover{background:var(--portal-bg)}.portal-shell .portal-parts-split{grid-gap:var(--space-md);align-items:start;display:grid;gap:var(--space-md);grid-template-columns:minmax(0,1fr) var(--portal-rail-w)}.portal-shell .portal-parts-main{min-width:0}.portal-shell .portal-parts-rail{background:var(--portal-surface);border-left:1px solid var(--portal-border);height:calc(100vh - var(--portal-topbar-h));overflow-y:auto;position:-webkit-sticky;position:sticky;top:var(--portal-topbar-h)}@media (max-width:599px){.portal-shell .portal-parts-split{grid-template-columns:minmax(0,1fr)}.portal-shell .portal-parts-rail{border-left:0;height:auto;position:static}}.portal-shell .portal-parts-switch{border:1px solid var(--portal-border);border-radius:8px;display:inline-flex;flex-wrap:nowrap;overflow:hidden}.portal-shell .portal-parts-switch button{background:var(--portal-surface);border:0;color:var(--portal-text);cursor:pointer;font:inherit;padding:var(--space-xs) var(--space-sm);white-space:nowrap}.portal-shell .portal-parts-switch button+button{border-left:1px solid var(--portal-border)}.portal-shell .portal-parts-switch button[aria-pressed=true]{background:var(--portal-text);color:var(--portal-surface)}.portal-shell .portal-part-orders{grid-gap:var(--space-xs);display:grid;gap:var(--space-xs)}.portal-shell .portal-part-orders .portal-part-order{grid-gap:12px;grid-gap:var(--space-sm,12px);align-items:baseline;display:grid;gap:12px;gap:var(--space-sm,12px);grid-template-columns:minmax(0,1fr) auto auto}.portal-shell .portal-part-orders .portal-part-job-link{font-family:ui-monospace,Menlo,Consolas,monospace}