/* Shared visual tokens and readable controls. Geometry is owned by the catalogue. */
:root{--ink:#172638;--muted:#506176;--line:#c5cfd9;--soft:#edf1f5;--red:#be1930;--nav:#131f2d;background:#edf1f5;color:var(--ink)}
body{background:#edf1f5}
button{border-color:#a6b4c2;font-weight:600;box-shadow:0 1px 2px #1726380a}
button:hover:not(:disabled){background:#e7eef5;border-color:#637d96}
button:disabled{cursor:not-allowed;opacity:1;color:#7b8796;background:#edf1f5;border-color:#d5dde5;box-shadow:none}
button.primary,.primary,.basket-trigger{background:#be1930;border-color:#be1930;color:#fff}
button.primary:hover:not(:disabled),.primary:hover,.basket-trigger:hover{background:#a41227;border-color:#a41227}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #1670b7;outline-offset:3px}
input:not([type=checkbox]),select,textarea,.order-form input:not([type=checkbox]),.order-form select,.order-form textarea{background:#fff;color:#172638;border:1.5px solid #889bad;border-radius:7px;min-height:44px;box-shadow:inset 0 1px 2px #17263808}
input::placeholder,textarea::placeholder{color:#65778b;opacity:1}
input:not([type=checkbox]):focus,select:focus,textarea:focus{border-color:#1670b7;box-shadow:0 0 0 3px #1670b71c}
input[type=checkbox]{accent-color:#be1930;width:18px;height:18px;flex:none}
.order-form label,.login-card label,.quantity-label{color:#273b50;font-weight:650;line-height:1.45}
.order-form{gap:20px}.order-form label.check{font-weight:450}.order-form textarea{resize:vertical}
.topbar{border-bottom:1px solid #314356;box-shadow:0 2px 8px #101d2b10}
.topbar .nav-tab{color:#c2cfdd;border:0;border-bottom:3px solid transparent;background:transparent;box-shadow:none}
.topbar .nav-tab.active{color:#fff;background:#233447;border-bottom-color:#f24c63}
.topbar .nav-tab:hover{color:#fff;background:#233447}
.topbar .text-button{color:#d0dbe5;background:transparent;border:none;box-shadow:none}
.topbar .text-button:hover{color:#fff;background:#233447}
.brand-mark{background:#be1930}.top-actions .admin-link{color:#c4d3e2}
.drafts-view{max-width:1140px;margin:0 auto;padding:36px 26px}
.drafts-view>p,.draft-heading>p{color:#506176;line-height:1.65}
.draft-card,.user-list-card,.user-create-card{background:#fff;border:1px solid #bdcbd8;border-radius:12px;box-shadow:0 4px 16px #17263808;padding:24px}
.users-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,1fr);gap:24px;align-items:start;margin-top:26px}
.user-list-card h2,.user-create-card h2{font-size:18px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #d5dee7}
#users-list .user-line{display:grid;grid-template-columns:1fr auto;gap:12px;padding:18px;background:#f5f8fb;border:1px solid #ccd7e2;border-radius:9px;margin-bottom:12px}
#users-list .user-line>div{grid-column:1/-1}
#users-list .user-line strong{font-size:16px;color:#172638}
#users-list .user-line small{font-size:13px;color:#506176;display:block;margin-top:7px}
#users-list .user-line button{border:1px solid #9eafc0;border-radius:6px;background:#fff;color:#233e58;padding:10px 14px;min-height:42px;font-size:13px;justify-self:start}
#users-list .user-line button:disabled{color:#8491a0;background:#edf1f5;border-color:#d2dce5}
#users-list .user-line button:hover:not(:disabled){background:#e7eef5;border-color:#637d96}
.account-status{display:inline-block;padding:2px 7px;margin-left:7px;border:1px solid #9cc6b4;border-radius:4px;background:#e7f3ec;color:#216043;font-weight:650;font-size:11px}
.account-status.inactive{background:#f0f2f5;border-color:#c2cbd4;color:#596776}
.user-create-card .primary{min-height:46px}.error:not(:empty){color:#a11228;line-height:1.5}
.dialog-heading{border-bottom-color:#c5d0dc}.dialog-heading .close-dialog{border:1px solid #a6b4c2;background:#f2f5f8;color:#243c53;border-radius:6px;min-height:40px;padding:8px 12px;font-size:14px}
dialog{border:1px solid #b9c7d5;box-shadow:0 24px 80px #101d2b4d;border-radius:12px}
dialog::backdrop{background:#101d2ba6;backdrop-filter:blur(3px)}
.basket-line{border-bottom-color:#cbd6e0}.basket-line button{border:1px solid #b2c0ce;background:#f5f7fa;color:#263e56;border-radius:6px}
.parts-table th{color:#42586f;background:#eaf0f5;font-weight:700;border-color:#c2ceda}
.parts-table td{border-bottom-color:#dce4ec}.part-description{color:#506176;line-height:1.5}
.parts-table tbody tr:hover td{background:#f0f5fa}.parts-table tr.selected td{background:#fce8ed}
.part-link{color:#173f64;box-shadow:none}.part-link:hover{color:#a41227;border:0;background:none}
.type-chip{color:#40566c;background:#e9eff5;border-color:#bdcbd8}
.parts-header{background:#f4f7fa;border-bottom:1px solid #c5cfd9;padding-block:16px}
.assemblies{background:#f4f7fa}.assembly-button{box-shadow:none;font-weight:500}.assembly-button .code{color:#536b83}
.assembly-button.active{background:#dce7f1;color:#172e45;box-shadow:inset 3px 0 #be1930;font-weight:750}
.rail-title,.rail-footer,.parts-header span,.diagram-caption{color:#53677c}
.diagram-navigation{background:#e9eff5;border-color:#b9c8d7}
.diagram-header{background:#fff}.diagram-tools{flex-wrap:wrap}.diagram-tools #diagram-ink-toggle{font-size:12px;white-space:nowrap;width:auto;padding-inline:10px}
#diagram-ink-toggle[aria-pressed=true]{background:#203f5a;color:#fff;border-color:#203f5a}
.diagram-viewport{background:#dce4ec;background-image:radial-gradient(#b8c7d4 .7px,transparent .7px);background-size:12px 12px}
#diagram-stage{box-shadow:0 3px 18px #20354f24;outline:1px solid #aebdcb}
.diagram-page img{image-rendering:auto}.diagram-page.ink-enhanced img{filter:brightness(.8) contrast(1.666667)}
.hotspot{background:#fff;color:#123c61;border-color:#365f82;box-shadow:0 1px 3px #17385435;font-weight:800}
.hotspot:hover,.hotspot.selected{color:#fff;background:#be1930;border-color:#a51228;box-shadow:0 0 0 3px #be19302b}
.class-card{background:#eef4f9;border-color:#b6c8d9}.class-card p,.detail-facts dt,.detail-footer,.price-block small{color:#506176}
.warning{background:#fff5df;border-color:#dcb76b;color:#714a0d}
.search-wrap{border-color:#98adbf;background:#f5f8fb}.search-wrap input{border:0!important;box-shadow:none!important;background:transparent!important}
@media(max-width:1000px){.users-layout{grid-template-columns:1fr}.drafts-view{max-width:820px}}
@media(max-width:600px){.drafts-view{padding:24px 16px}.draft-card,.user-list-card,.user-create-card{padding:18px;border-radius:9px}.users-layout{gap:18px;margin-top:20px}.diagram-header{align-items:flex-start}.diagram-tools{gap:5px}.diagram-tools button{min-height:40px}.order-form input,.order-form select,.order-form textarea{font-size:16px}.topbar .nav-tab{min-height:44px;padding-inline:12px}.part-dialog{border-radius:12px 12px 0 0}}
.diagram-page .hotspot:hover:not(:disabled),.diagram-page .hotspot.selected{color:#fff;background:#be1930;border-color:#a51228;box-shadow:0 0 0 3px #be19302b}
button.part-link:hover:not(:disabled){color:#a41227;background:transparent;border-color:transparent}
.delete-draft-button{color:#a41227;border-color:#c8929c;background:#fff}.delete-draft-button:hover:not(:disabled){background:#fff0f3;border-color:#a41227}#delete-draft-name{font-weight:750;font-size:18px}#delete-draft-dialog>.close-dialog{font-size:14px;padding:10px 14px;min-height:42px}
@media(max-width:760px){
  #expand-diagram{background:#203f5a;color:#fff;border-color:#203f5a;font-weight:750}
  .hotspot{width:22px;height:22px;font-size:10px;border-width:1px}
  .diagram-expanded .hotspot{width:26px;height:26px;font-size:11px}
  .diagram-expanded .centre-panel{height:100dvh;max-height:100dvh;inset:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  .diagram-expanded .diagram-navigation{padding:6px;gap:4px}
  .diagram-expanded .diagram-navigation button{min-height:36px;padding:6px;font-size:11px}
  .diagram-expanded #diagram-basket,.diagram-expanded #page-position{display:none}
  .diagram-expanded .diagram-header{padding:6px 8px;gap:5px;min-height:44px;flex-wrap:wrap}
  .diagram-expanded .diagram-header h2{font-size:13px}
  .diagram-expanded .diagram-tools{margin-left:auto}
  .diagram-expanded .diagram-tools button{min-width:34px;min-height:36px;height:36px;padding:4px 7px;font-size:12px}
  .diagram-expanded .diagram-caption{display:none}
  .diagram-expanded .diagram-viewport{padding:8px;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
  .draft-actions{flex-wrap:wrap}
}
/* Catalogue part list: three columns; type belongs with the description. */
.parts-rail .parts-header{padding:18px 16px;gap:12px}.parts-rail .parts-header h2{font-size:17px;color:#1b3148}.parts-rail .parts-header>span{padding:4px 8px;background:#e3ebf3;border:1px solid #bfcdda;border-radius:5px;white-space:nowrap;font-weight:600}
.parts-rail .parts-table{table-layout:fixed;width:100%;font-size:14px}
.parts-rail .parts-table th{font-size:12px;padding:12px 10px;background:#e7eef5;font-weight:700;color:#3b5269}
.parts-rail .parts-table th:first-child,.parts-rail .parts-table td:first-child{width:44px;text-align:center;padding-left:8px;padding-right:6px}
.parts-rail .parts-table th:last-child,.parts-rail .parts-table td:last-child{width:112px;padding-right:14px;padding-left:6px}
.parts-rail .parts-table td{padding:15px 10px;vertical-align:top;border-bottom:1px solid #cad6e1;line-height:1.45}
.parts-rail .parts-table td:nth-child(2){max-width:none;min-width:0}
.parts-rail .parts-table tbody tr{cursor:pointer}
.parts-rail .parts-table tbody tr:nth-child(even) td{background:#f5f8fb}
.parts-rail .parts-table tbody tr:hover td{background:#eaf2f9}
.parts-rail .parts-table tbody tr.selected td{background:#fce9ee;border-bottom-color:#e5bac4}
.parts-rail .parts-table tbody tr:focus-within td{background:#eaf2f9}
.parts-rail .part-link{font-size:16px;line-height:1.35;letter-spacing:.1px;color:#183f64;min-height:30px;width:100%;white-space:normal;overflow-wrap:anywhere}
.parts-rail .part-description{font-size:13px;line-height:1.5;color:#415a72;margin:5px 0 9px;overflow-wrap:anywhere}
.parts-rail .part-type{display:inline-block;font-size:10px;font-weight:600;padding:3px 6px;color:#53677b;background:#eef3f7;border-color:#c4d0dc;max-width:100%;white-space:normal}
.parts-rail .part-unit-price{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;padding-top:19px!important;color:#243d54;white-space:normal!important}
.swipe-hint{display:none}
@media(min-width:1301px){.workspace-grid{grid-template-columns:190px minmax(0,1fr) 420px}}
@media(min-width:1700px){.workspace-grid{grid-template-columns:220px minmax(0,1fr) 460px}}
@media(max-width:1100px){.swipe-hint{display:block;flex-basis:100%;font-size:11px;color:#506176;line-height:1.4;padding:3px 2px}.diagram-expanded .swipe-hint{font-size:10px;padding:0 2px}.rail-dialog .parts-rail .part-link{min-height:44px}.rail-dialog .parts-rail .parts-table td{padding-top:10px;padding-bottom:10px}.rail-dialog .parts-rail .parts-table th:last-child,.rail-dialog .parts-rail .parts-table td:last-child{width:103px}}

.drawing-status{padding:10px 14px;background:#fff5df;color:#654509;font-size:13px;line-height:1.5;border-bottom:1px solid #d6bd83}.drawing-status button{margin-left:8px;font-size:12px;padding:6px 10px}.drawing-status a{margin-left:10px;text-decoration:underline}.drawing-status[hidden]{display:none}

/* Official team branding and shared draft destination. */
.team-logo{display:block;width:168px;height:auto;max-width:100%;background:#fff;padding:7px 9px;border-radius:4px;box-sizing:content-box;object-fit:contain}
.login-brand .team-logo{width:200px}
#draft-target{width:100%;min-height:44px;margin:6px 0 12px;padding:10px;background:#fff;color:#142033;border:1px solid #77869a;border-radius:5px}
#draft-save-review p{line-height:1.5}
#draft-save-review input[type=checkbox]{width:18px;height:18px;min-height:0;margin-right:8px}
@media(max-width:700px){.brand .team-logo{width:112px;padding:6px}.brand-sub{display:none}.brand{gap:8px}}

.save-draft-form>#draft-save-review{display:block}

.login-brand{flex-wrap:wrap}.team-logo{flex-shrink:0}

.team-logo{background:transparent;filter:brightness(0) invert(1);padding:0;border-radius:0}
.login-brand{background:var(--nav,#111b26);padding:16px;border-radius:6px;color:white}
#part-detail .classification-type-1{color:#c51e32}
#part-detail .classification-type-2{color:#ffd000;text-shadow:0 1px 1px #564600}
#part-detail .classification-type-3{color:#18723b}
.classification-help{margin:12px 0}.classification-help summary{cursor:pointer;font-weight:650}.classification-help p{margin-top:12px}
#empty-basket{margin-bottom:16px;border-color:#a51b30;color:#a51b30}
.admin-settings{margin-top:24px;padding:24px;background:white;border:1px solid #b8c5d7;border-radius:10px}
.permission-label{grid-column:1/-1;display:flex;align-items:center;gap:8px}.permission-label input{width:18px;height:18px;min-height:0}

.source-preview-callout{position:absolute;transform:translate(-50%,-50%);border:1px solid #a51b30;background:#fff;color:#a51b30;font-size:12px;border-radius:50%;padding:2px;min-width:18px;text-align:center}

.staff-label-select{grid-column:1/-1;display:grid;gap:6px;font-size:13px;color:#31465e}.staff-label-select select{width:100%;min-height:42px}

.admin-sections{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px;padding:12px;background:#e5edf5;border:1px solid #b9c8d8;border-radius:8px}
.admin-sections button{font-weight:700;min-height:44px;padding:10px 18px}.admin-sections button.active{background:#a51b30;border-color:#a51b30;color:white}
#users-view>.admin-settings{margin-top:0}.users-layout{align-items:start}
.account-row{border-bottom:1px solid #cbd6e2}.account-row>summary{padding:14px 12px;font-size:16px;font-weight:650;cursor:pointer;color:#18334c;overflow-wrap:anywhere}
.account-row>summary:hover{background:#edf3f9}.account-row[open]>summary{background:#edf3f9}
.account-row .user-line{margin:0 0 12px;border-radius:0 0 8px 8px}.user-create-card>summary{font-weight:700;font-size:18px;cursor:pointer;padding:4px}
.user-create-card form{margin-top:18px}.account-name-form{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:end}.account-name-form label{flex:1;display:grid;gap:5px;font-size:13px}.account-name-form .name-error{width:100%;margin:0}
.smtp-help{padding:16px;background:#eef3f9;border:1px solid #c6d2df;border-radius:6px}.smtp-help p:last-child{margin-bottom:0}
@media(max-width:700px){.admin-sections{gap:6px;padding:8px}.admin-sections button{flex:1;padding:8px;font-size:13px}.account-row>summary{min-height:48px}}

#stock-view {max-width:1150px;margin:32px auto;padding:0 20px;}
#stock-dialog {width:min(560px,94vw);max-height:90dvh;overflow:auto;}
#stock-form {padding:20px;} #stock-form label {display:block;margin:16px 0;}
#stock-form input:not([type=checkbox]) {display:block;width:100%;padding:12px;border:1px solid #8394ac;border-radius:5px;margin-top:8px;}
#stock-error {color:#b4182b;} .stock-record {padding:16px 0;border-top:1px solid #c9d3e1;}
#stock-coverage {padding:8px;border:1px solid #8394ac;border-radius:5px;}
#stock-content .parts-table {min-width:650px;}

#record-stock-taken {display:block;width:100%;min-height:52px;padding:14px 18px;font-size:18px;font-weight:700;text-align:center;color:#fff;background:#245c87;border:1px solid #245c87;border-radius:6px;}
#record-stock-taken:hover {background:#194766;border-color:#194766;}
#record-stock-taken:focus-visible {outline:3px solid #418ac0;outline-offset:3px;}
.account-presence {display:inline-block;margin-left:12px;font-size:12px;font-weight:600;color:#4b596c;background:#e8edf3;padding:4px 8px;border-radius:12px;}
.account-presence.online {color:#135235;background:#d9f0e3;}
[data-activity-user] {font-size:13px;padding:0 14px;color:#43556f;}
.stock-filters {display:flex;flex-wrap:wrap;gap:14px;align-items:end;}
.stock-filters label {display:flex;flex-direction:column;gap:6px;flex:1 1 160px;}
.stock-filters input,.stock-filters select {padding:10px;border:1px solid #8394ac;border-radius:5px;background:white;min-width:0;}
.stock-record>button {margin:6px 8px 6px 0;}

.catalogue-selector{display:flex;gap:8px;align-items:center;margin-top:8px;font-size:14px}.catalogue-selector select{max-width:260px;padding:8px;border:1px solid #aab7ce;border-radius:6px;background:#fff;color:#173252}

/* Search result drawing context and independent mobile preview. */
.search-drawing-label{display:block;margin:8px 0 5px;font-size:12px;line-height:1.5;color:inherit;opacity:.85;font-weight:600}
.drawing-preview-button{display:block;margin:7px 0;padding:10px 14px;min-height:44px;border:1px solid currentColor;border-radius:7px;font-weight:650;touch-action:manipulation}
#parts-rows tr{-webkit-touch-callout:none}
#search-drawing-preview{box-sizing:border-box;width:min(1080px,96vw);max-width:96vw;height:94dvh;max-height:94dvh;padding:0;border:1px solid #627083;border-radius:12px;background:#fff;color:#172535;overflow:hidden}
#search-drawing-preview[open]{display:flex;flex-direction:column}
#search-drawing-preview::backdrop{background:rgba(0,0,0,.65)}
.preview-heading{flex:none;padding:12px 16px;border-bottom:1px solid #ccd2da;background:#f2f5f8}
.preview-heading h2{font-size:18px;margin:10px 0 4px}.preview-heading p{margin:5px 0;font-size:13px;line-height:1.4}
.preview-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.preview-tools button,.preview-tools select,#preview-back{min-height:44px;padding:8px 12px;border:1px solid #69798b;border-radius:6px;background:white;color:#172535;font-weight:600}
.preview-tools a{color:#164c8c;text-decoration:underline;padding:8px}
#preview-back{font-size:15px}#preview-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;background:#e2e7ec;padding:10px}
#preview-canvas{position:relative;line-height:0;margin:0 auto;background:white;min-width:100%}
#preview-canvas img{display:block;width:100%;height:auto;max-width:none}
.preview-callout{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;min-width:28px;height:28px;padding:2px;border:3px solid #ae3100;border-radius:50%;background:#fff1ae;color:#601900;font:bold 14px/1 sans-serif;box-shadow:0 0 0 3px white;pointer-events:none}
@media(max-width:760px){#search-drawing-preview{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0}.preview-heading{padding:10px 12px}#preview-back{width:100%}.preview-tools{gap:6px}#preview-scroll{padding:5px}}
