.viewer-page{min-height:100vh;background:linear-gradient(180deg,#070b13 0%,#05080e 100%);color:#fff;padding-bottom:48px}.viewer-hero{max-width:1440px;margin:0 auto;padding:54px 28px 30px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.viewer-hero h1{font-size:clamp(36px,5vw,68px);line-height:1;margin:10px 0 16px}.viewer-hero p{max-width:720px;color:#b7c7da;font-size:18px;line-height:1.55}.upload-big{display:inline-flex;align-items:center;justify-content:center;padding:18px 28px;border-radius:16px;background:linear-gradient(135deg,#1098ff,#2f6bed);font-weight:900;cursor:pointer;box-shadow:0 20px 50px rgba(15,147,255,.25);white-space:nowrap}.viewer-workspace{max-width:1440px;margin:0 auto;padding:0 28px;display:grid;grid-template-columns:360px minmax(0,1fr);gap:24px}.drop-zone{border:1px dashed rgba(21,156,255,.55);background:rgba(15,23,42,.72);border-radius:16px;padding:22px;text-align:center;color:#cfe2ff;display:flex;flex-direction:column;gap:8px}.drop-zone.drag{background:rgba(21,156,255,.12);border-color:#159cff}.viewer-file{margin:12px 0 8px;color:#9fb4cc;font-size:14px;word-break:break-all}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat-grid div{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);border-radius:12px;padding:12px}.stat-grid span{display:block;color:#8ea6bf;font-size:12px}.stat-grid strong{display:block;margin-top:6px;font-size:16px}.viewer-canvas-wrap{min-height:680px}#stlCanvas{width:100%;height:640px;min-height:520px;position:relative}.viewer-panel{position:sticky;top:112px}.viewer-panel input[type=color]{height:42px;padding:4px}.viewer-panel label{display:grid;gap:8px;color:#dcecff;font-weight:800;margin:12px 0}.viewer-panel label input{width:100%;border:1px solid rgba(255,255,255,.12);background:#0b1220;color:#fff;border-radius:12px;padding:12px}.viewer-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#7e93aa;text-align:center;pointer-events:none}.viewer-error{position:absolute;left:18px;right:18px;bottom:18px;background:#2a1115;border:1px solid #ef4444;color:#fff;padding:14px;border-radius:12px;z-index:4}@media(max-width:980px){.viewer-hero{display:block;padding:34px 16px 20px}.upload-big{margin-top:18px;width:100%}.viewer-workspace{grid-template-columns:1fr;padding:0 16px}.viewer-panel{position:static}.viewer-canvas-wrap{min-height:480px}#stlCanvas{height:460px;min-height:420px}}
.estimate-grid strong{color:#dbeafe}.viewer-panel .primary.full{margin-top:8px}.viewer-panel button.full{transition:.18s transform,.18s border-color,.18s background}.viewer-panel button.full:hover{transform:translateY(-1px);border-color:rgba(21,156,255,.55)}

/* v5.0 embed/product viewer fixes */
.embed-viewer{background:#070b13;overflow:hidden}
.viewer-page.embed{padding:0;margin:0;min-height:100vh}
.viewer-page.embed .viewer-workspace{grid-template-columns:310px 1fr;margin:0;border-radius:0;min-height:100vh}
.viewer-page.embed .viewer-panel{border-radius:0;max-height:100vh;overflow:auto}
.product-stl-frame{width:100%;height:520px;border:1px solid rgba(255,255,255,.12);border-radius:22px;overflow:hidden;background:#070b13;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.product-stl-frame iframe{width:100%;height:100%;border:0;display:block}
.file-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.file-info-grid div{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px}
.file-info-grid span{display:block;color:#8da2c0;font-size:12px}.file-info-grid strong{display:block;color:white;margin-top:4px}
.empty-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px}.pagination{display:flex;gap:8px;justify-content:center;margin:28px 0}.pagination a{padding:10px 14px;border-radius:12px;background:rgba(255,255,255,.06);color:#dbeafe;text-decoration:none}.pagination a.active{background:#159cff;color:white}
@media(max-width:900px){.viewer-page.embed .viewer-workspace{grid-template-columns:1fr}.viewer-page.embed .viewer-panel{max-height:none}.product-stl-frame{height:700px}.file-info-grid{grid-template-columns:1fr}}
