:root{
  --bg:#eef3f8;--ink:#111827;--muted:#5f6f86;--card:#ffffff;--line:#d8e2ee;
  --blue:#0f66b3;--blue2:#2d84c8;--navy:#061a33;--navy2:#09264b;--green:#118c4f;--soft:#f8fbff;
  --shadow:0 18px 48px rgba(15,35,64,.10);--radius:20px
}
*{box-sizing:border-box}html{min-height:100%}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at top right,#ffffff 0,#f3f7fb 38%,#e9f0f7 100%);color:var(--ink);letter-spacing:.01em}
a{color:#0a5ea8;text-decoration:none}a:hover{text-decoration:underline}
.brandbar{background:linear-gradient(105deg,var(--navy),#063f78 70%,#0f66b3);color:#fff;position:relative;overflow:hidden;box-shadow:0 12px 30px rgba(4,20,38,.20)}
.brandbar:after{content:"";position:absolute;right:-110px;top:-130px;width:560px;height:260px;border:1px solid rgba(255,255,255,.13);border-radius:50%;box-shadow:0 0 0 12px rgba(255,255,255,.025),0 0 0 26px rgba(255,255,255,.025);transform:rotate(-8deg)}
.brand-inner{position:relative;z-index:1;max-width:1260px;margin:0 auto;min-height:112px;padding:25px 30px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.boldon-logo{display:grid;gap:2px;color:#fff;text-decoration:none}.boldon-main{font-size:32px;font-weight:900;letter-spacing:.18em}.boldon-dot{font-size:28px;font-weight:300;letter-spacing:.03em;margin-left:3px;color:#dbeafe}.boldon-sub{grid-column:1/3;color:rgba(255,255,255,.70);font-size:15px;letter-spacing:.16em;text-transform:lowercase}.brand-divider{height:54px;width:1px;background:rgba(255,255,255,.35)}.app-pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.55);border-radius:999px;padding:10px 18px;font-size:12px;font-weight:900;letter-spacing:.13em;color:#fff;background:rgba(255,255,255,.06);white-space:nowrap}.app-pill.dark{color:#104b82;border-color:#c9d8ea;background:#f6faff;margin-bottom:10px}.topnav{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.topnav a{color:#eaf4ff;border:1px solid rgba(255,255,255,.20);padding:8px 10px;border-radius:999px;font-weight:700;font-size:13px;background:rgba(255,255,255,.06)}.topnav a:hover{background:rgba(255,255,255,.15);text-decoration:none}
.page-shell{max-width:1260px;margin:0 auto;padding:30px}.flashes{margin-bottom:18px}.hero{display:flex;gap:28px;align-items:center;padding:18px 0 30px}.hero.compact{padding-bottom:20px}.hero-icon{width:82px;height:82px;border-radius:26px;background:linear-gradient(135deg,#006fc9,#0b4e94);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;color:#fff;font-size:38px;font-weight:900;flex:0 0 auto}.hero h1{font-size:42px;line-height:1.05;margin:0 0 12px;letter-spacing:.045em}.hero p{font-size:18px;line-height:1.45;margin:0;max-width:860px;color:#4b5d75}.tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:8px 0 26px}.tool-card,.card,.progress-card{background:rgba(255,255,255,.86);backdrop-filter:blur(3px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.tool-card{padding:24px;display:flex;flex-direction:column;min-height:360px}.tool-card h2{font-size:22px;line-height:1.25;margin:14px 0 12px}.tool-card p{color:#5b6b82;line-height:1.45;flex:1}.tool-icon{width:54px;height:54px;border-radius:18px;background:#e8f1fb;color:#0d64b3;display:flex;align-items:center;justify-content:center;font-size:25px;font-weight:900}.button,button{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#2f83c7,#1165ad);color:white;border:none;border-radius:12px;padding:13px 18px;text-decoration:none;font-weight:900;letter-spacing:.02em;box-shadow:0 10px 24px rgba(16,98,173,.26);cursor:pointer}.button:hover,button:hover{text-decoration:none;filter:brightness(1.04)}.secondary{background:#eaf1f9;color:#174670;box-shadow:none;border:1px solid #d8e4f0}.disabled{background:#e9eef5;color:#8a9aab;box-shadow:none;cursor:not-allowed}.button.danger{background:#8a1f11;color:#fff}.progress-card{padding:22px 24px;margin:24px 0}.progress-head{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:18px}.progress-head h2,.section-title h2{margin:0}.status-chip{border-radius:999px;background:#e7f6ee;color:#057346;border:1px solid #a7dec3;font-size:12px;font-weight:900;letter-spacing:.08em;padding:8px 15px}.progress-bar{height:16px;background:#dce9f5;border-radius:999px;overflow:hidden;margin-bottom:16px}.progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0e66b5,#43a9e5)}.step-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.step{border:1px solid var(--line);border-radius:14px;background:#fbfdff;padding:14px}.step b{display:block;font-size:14px}.step span{display:block;font-size:12px;color:var(--muted);margin-top:5px}.four-steps{grid-template-columns:repeat(4,minmax(0,1fr))}.console-line,pre{white-space:pre-wrap;background:#05142a;color:#ecf7ff;padding:18px;border-radius:14px;overflow:auto;font-family:ui-monospace,Consolas,monospace;margin:18px 0 0;border:1px solid rgba(255,255,255,.08)}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin:24px 0}.card{padding:22px;margin:18px 0}.stat{margin:0}.stats b{display:block;font-size:36px;color:#1068b4;line-height:1}.stats span{color:var(--muted);font-weight:700}.section-title{display:flex;align-items:end;justify-content:space-between;gap:14px}.muted{color:var(--muted)}.small{font-size:13px}.narrow{max-width:450px;margin:40px auto}.login-hero{min-height:calc(100vh - 250px);display:flex;align-items:center;justify-content:center}.login-card{padding:30px}.actions{display:flex;gap:12px;margin:18px 0}.form{display:grid;gap:14px}.form.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form.four{grid-template-columns:repeat(5,minmax(0,1fr));align-items:end}.form.inline{grid-template-columns:1fr auto;align-items:end}.vault-form{margin-top:22px}.full{grid-column:1/-1}label{font-weight:800;color:#21324a}input,select{width:100%;padding:12px 13px;border:1px dashed #bcd0e4;border-radius:12px;background:#fff;margin-top:7px;color:#16243a}input:focus,select:focus{outline:3px solid rgba(39,132,202,.16);border-color:#4b9bd4}table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:#607086;text-transform:uppercase;letter-spacing:.08em;background:#f7faff}.pill{padding:5px 10px;border-radius:999px;background:#edf2f7;font-size:12px;font-weight:900}.pill.accepted{background:#def7ec;color:#03543f}.pill.needs_review{background:#fef3c7;color:#92400e}.flash{padding:12px 14px;border-radius:12px;margin:10px 0;background:#edf2f7}.flash.error{background:#fde8e8;color:#9b1c1c}.flash.success{background:#def7ec;color:#03543f}.flash.info{background:#e1effe;color:#1e429f}.search{display:flex;gap:10px;margin:16px 0}.hash{font-family:ui-monospace,Consolas,monospace;font-size:12px;word-break:break-all}dl{display:grid;grid-template-columns:180px 1fr;gap:10px}dt{font-weight:800;color:#44546a}dd{margin:0}.inline-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.inline-form input{min-width:220px}.footerbar{max-width:1260px;margin:10px auto 30px;padding:0 30px;display:flex;justify-content:space-between;color:#62728a;font-size:14px}.footer-logo{font-weight:900;color:#0d5ca4;font-size:22px;letter-spacing:.08em}.footer-logo span{font-weight:300}.footer-sub{margin-left:18px;color:#607086}
@media(max-width:1050px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.step-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.topnav{margin-left:0}.hero h1{font-size:34px}}
@media(max-width:800px){.stats,.form.two,.form.four,.tool-grid,.step-grid,.four-steps{grid-template-columns:1fr}.brand-inner{align-items:flex-start}.brand-divider{display:none}.hero{align-items:flex-start}.hero-icon{width:60px;height:60px;border-radius:20px;font-size:26px}.hero h1{font-size:30px}.footerbar{display:block}.topnav{width:100%}}

/* Simple two-mode engineer UI */
.simple-hero{max-width:960px;margin:4px auto 28px;text-align:center;padding:18px 10px}.simple-hero h1{font-size:48px;letter-spacing:.035em;margin:10px 0 12px;line-height:1.05}.simple-hero p{font-size:19px;line-height:1.45;color:#4e6078;margin:0 auto;max-width:880px}.compact-centre h1{font-size:42px}.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:8px auto 28px;max-width:980px}.mode-card{display:block;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:34px;color:var(--ink);min-height:330px;text-decoration:none;transition:transform .15s ease, box-shadow .15s ease}.mode-card:hover{text-decoration:none;transform:translateY(-3px);box-shadow:0 24px 58px rgba(15,35,64,.16)}.mode-card h2{font-size:34px;margin:18px 0 12px}.mode-card p{font-size:17px;line-height:1.5;color:#53657d;min-height:105px}.primary-mode{background:linear-gradient(180deg,#fff,#f6fbff)}.mode-icon{width:72px;height:72px;border-radius:24px;background:linear-gradient(135deg,#0c70c8,#064b91);display:flex;align-items:center;justify-content:center;color:#fff;font-size:38px;font-weight:900;box-shadow:0 16px 34px rgba(12,103,181,.25)}.mode-button{margin-top:8px}.slim-progress{max-width:1100px;margin-left:auto;margin-right:auto}.transfer-card{max-width:920px;margin:0 auto 30px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow);padding:30px}.drop-form{display:grid;gap:18px}.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:330px;border:2px dashed #aac7e4;border-radius:26px;background:linear-gradient(180deg,#fbfdff,#f3f8fd);cursor:pointer;padding:32px;transition:border-color .15s ease, background .15s ease, transform .15s ease}.drop-zone.dragging{border-color:#0f66b3;background:#edf7ff;transform:scale(1.01)}.drop-zone input[type=file]{display:none}.drop-symbol{width:92px;height:92px;border-radius:32px;background:linear-gradient(135deg,#0c70c8,#064b91);display:flex;align-items:center;justify-content:center;color:#fff;font-size:52px;font-weight:900;box-shadow:0 18px 40px rgba(12,103,181,.26);margin-bottom:22px}.drop-zone strong{font-size:30px;letter-spacing:.02em}.drop-zone em{font-style:normal;color:#61738a;margin-top:10px}.selected-file{margin-top:22px;display:inline-flex;padding:10px 16px;border-radius:999px;background:#eaf2fb;color:#194b76;font-weight:800}.big-action{font-size:18px;padding:17px 22px;border-radius:16px;width:100%}.advanced-details{border:1px solid var(--line);border-radius:18px;background:#fbfdff;padding:15px}.advanced-details summary{font-weight:900;color:#174670;cursor:pointer}.advanced-details .form{margin-top:14px}.transfer-notes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0 10px}.transfer-notes div{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fbfdff}.transfer-notes b{display:block}.transfer-notes span{display:block;color:var(--muted);font-size:12px;margin-top:5px}.site-search{display:grid;grid-template-columns:1fr auto;gap:12px;margin-bottom:24px}.site-search input{font-size:18px;padding:16px 18px;border-style:solid}.download-empty{text-align:center;padding:40px 20px;color:#53657d}.download-empty .mode-icon{margin:0 auto 18px}.download-table .button{white-space:nowrap}.topnav a.engineer-primary{background:rgba(255,255,255,.18)}
@media(max-width:850px){.mode-grid,.transfer-notes,.site-search{grid-template-columns:1fr}.simple-hero h1{font-size:36px}.compact-centre h1{font-size:32px}.mode-card{min-height:auto}.mode-card p{min-height:auto}.drop-zone strong{font-size:24px}}

/* Engineer simplified dashboard */
.engineer-clean p{display:none}.engineer-clean{margin-top:28px;margin-bottom:58px}.engineer-clean h1{margin-bottom:0}.engineer-modes{max-width:980px;align-items:stretch}.engineer-modes .mode-card{min-height:430px}.upload-mode-card{cursor:default}.upload-mode-card:hover{transform:none;box-shadow:var(--shadow)}.download-mode-card{display:flex;flex-direction:column}.download-mode-card .big-find-button{margin-top:auto;width:100%;min-height:112px;font-size:28px;border-radius:18px}.dashboard-drop-form{margin-top:92px}.mini-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:220px;border:2px dashed #aac7e4;border-radius:22px;background:linear-gradient(180deg,#fbfdff,#f3f8fd);cursor:pointer;padding:26px;transition:border-color .15s ease, background .15s ease, transform .15s ease}.mini-drop-zone.dragging{border-color:#0f66b3;background:#edf7ff;transform:scale(1.01)}.mini-drop-zone input[type=file]{display:none}.mini-drop-symbol{font-size:62px;line-height:1;color:#0b65b4;margin-bottom:18px}.mini-drop-zone strong{font-size:20px;color:#0d5ca4}.mini-drop-zone em{font-style:normal;color:#61738a;margin-top:10px}.simple-upload-card .drop-zone{min-height:460px}.visually-secondary-fallback{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.admin-only-panel{max-width:1100px}.topnav a[href$='catalogue'],.topnav a[href$='review'],.topnav a[href$='admin/users'],.topnav a[href$='admin/sites']{display:inline-flex}

/* Engineer upload confirmation modal */
.no-description p,.confirmation-hero p{display:none!important}.confirmation-hero{margin-bottom:18px}
.confirm-overlay-page{min-height:430px;display:flex;align-items:flex-start;justify-content:center;padding:20px 0 60px}
.upload-confirm-modal{width:min(620px,94vw);background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:24px;box-shadow:0 28px 80px rgba(4,20,38,.22);padding:34px 34px 28px;text-align:center}.confirm-tick{width:58px;height:58px;border-radius:999px;border:3px solid #17a35b;color:#17a35b;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:34px;font-weight:700}.upload-confirm-modal h2{font-size:28px;margin:0 0 24px}.confirm-form{text-align:left}.confirm-details{display:grid;grid-template-columns:150px 1fr;gap:16px 18px;margin:0}.confirm-details dt{font-weight:900;color:#26384f}.confirm-details dd{margin:0;color:#16243a}.confirm-details textarea{width:100%;min-height:104px;resize:vertical;padding:14px 16px;border:1px solid #cbd8e6;border-radius:12px;font:inherit;color:#16243a;background:#fff}.confirm-details textarea:focus{outline:3px solid rgba(39,132,202,.16);border-color:#4b9bd4}.confirm-actions{display:flex;gap:14px;align-items:center;border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.confirm-actions .secondary{background:#f3f7fb}.link-button{background:transparent;color:#0a5ea8;box-shadow:none;border:none}.link-button:hover{text-decoration:underline;filter:none}.mode-card.download-mode-card{cursor:pointer}.download-mode-card .big-find-button{margin-top:auto;width:100%;min-height:120px;font-size:30px;border-radius:18px}.download-mode-card .big-find-button:hover{text-decoration:none}
@media(max-width:700px){.confirm-details{grid-template-columns:1fr;gap:8px}.confirm-actions{display:grid;grid-template-columns:1fr}.upload-confirm-modal{text-align:left}.confirm-tick{margin-left:0}.upload-confirm-modal h2{text-align:left}}

/* Admin dashboard refinements */
.admin-status-card,.admin-history-card{max-width:1100px;margin-left:auto;margin-right:auto}.admin-history-card{padding:22px 24px;margin-top:22px}.admin-status-card .step-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-history-card table{margin-top:14px}

/* Download results with full version history */
.download-hero p{display:none}.download-results-stack{display:grid;gap:18px;margin-top:16px}.download-result-card{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden}.download-latest-row{display:grid;grid-template-columns:1.4fr .6fr auto;gap:22px;align-items:center;padding:22px}.download-latest-row h3{margin:0 0 8px;font-size:22px}.download-latest-row p{margin:0}.latest-meta{display:grid;gap:4px}.latest-meta strong{font-size:24px}.download-main-button{min-width:220px}.version-history-panel{border-top:1px solid var(--line);padding:18px 22px 22px;background:#fbfdff}.version-history-panel h4{margin:0 0 12px;font-size:18px}.version-history-table th,.version-history-table td{padding:11px 12px}.small-button{display:inline-flex;padding:8px 12px;border-radius:10px;font-size:13px;font-weight:900}.compact-empty{padding:30px 20px}
@media(max-width:850px){.download-latest-row{grid-template-columns:1fr}.download-main-button{width:100%}.admin-status-card .step-grid{grid-template-columns:1fr}.version-history-table{font-size:13px}}

/* Download results: engineer-facing identity is site + manufacturer only. */
.download-identity h3 { margin-bottom: 0.35rem; }
.manufacturer-only { text-transform: none; font-weight: 600; }

/* Admin consolidation amendments */
.admin-button-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1100px;margin:0 auto 34px}.admin-action-card{display:block;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:30px;color:var(--ink);min-height:220px;text-decoration:none;transition:transform .15s ease, box-shadow .15s ease}.admin-action-card:hover{text-decoration:none;transform:translateY(-3px);box-shadow:0 24px 58px rgba(15,35,64,.16)}.admin-action-card h2{font-size:28px;margin:18px 0 8px}.admin-action-card p{color:var(--muted);font-weight:800}.form.three{grid-template-columns:1fr 220px auto;align-items:end}.small-button{margin:3px 0}.pill.error{background:#fde8e8;color:#9b1c1c}.pill.needs_review:hover{text-decoration:none;filter:brightness(.98)}
@media(max-width:900px){.admin-button-grid,.form.three{grid-template-columns:1fr}.admin-action-card{min-height:auto}}
.break-text{word-break:break-word;overflow-wrap:anywhere}.button-row{display:flex;gap:1rem;align-items:center;margin-top:1.5rem;flex-wrap:wrap}.detail-grid{display:grid;grid-template-columns:220px 1fr;gap:.8rem 1.2rem;align-items:start}.wide-card{max-width:1180px;margin:1.5rem auto}.status-pill.accepted{background:#dff7eb;color:#006b3a}.status-pill.needs_review{background:#fff1c9;color:#8a4b00}
