:root{--navy:#0d2744;--navy2:#173b61;--gold:#b6975a;--bg:#eef2f6;--green:#147a43;--red:#b3261e;--blue:#315f9b;--text:#1d2735;--muted:#6b7787}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px/1.45 Arial,Helvetica,sans-serif;color:var(--text)}.shell{max-width:1240px;margin:auto;padding-left:18px;padding-right:18px}.topbar{background:#fff;border-top:4px solid var(--gold);box-shadow:0 2px 14px #10263f14;position:sticky;top:0;z-index:20}.topbar-inner{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:18px}.brand-text{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:var(--navy);color:white;font-size:22px;font-weight:800}.brand-text b{font-size:20px;color:var(--navy);letter-spacing:.2px}.brand-text small{display:block;color:var(--muted)}nav{display:flex;gap:6px;flex-wrap:wrap}nav a{text-decoration:none;color:var(--navy);padding:10px 12px;border-radius:9px;font-weight:700}nav a:hover{background:#edf3f8}main{padding-top:24px;padding-bottom:28px}.card{background:#fff;border:1px solid #dce4ec;border-radius:16px;padding:22px;margin-bottom:18px;box-shadow:0 8px 30px #173b6110}.page-title{margin:0 0 5px;font-size:27px;color:var(--navy)}.page-subtitle{margin:0;color:var(--muted)}.dashboard-hero{background:linear-gradient(135deg,var(--navy),var(--navy2));color:white;border:0}.dashboard-hero .page-title,.dashboard-hero .page-subtitle{color:white}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:18px}.stat{background:#ffffff14;border:1px solid #ffffff24;border-radius:12px;padding:14px}.stat strong{display:block;font-size:24px}.stat span{font-size:12px;color:#ffffffc7}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.full{grid-column:1/-1}label{font-weight:700;display:block;margin-bottom:6px;color:#334155}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #c9d4df;border-radius:9px;font:inherit;background:#fff}input:focus,select:focus,textarea:focus{outline:3px solid #315f9b1f;border-color:#315f9b}textarea{min-height:90px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:10px 15px;text-decoration:none;font-weight:800;cursor:pointer;white-space:nowrap}.btn-primary{background:var(--navy);color:#fff}.btn-success{background:var(--green);color:#fff}.btn-danger{background:var(--red);color:#fff}.btn-info{background:var(--blue);color:#fff}.btn-light{background:#e8eef4;color:#172033}.btn-outline{background:white;color:var(--navy);border:1px solid #cbd5e1}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:15px}.table-wrap{overflow:auto;border:1px solid #e2e8f0;border-radius:12px}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid #e2e8f0;text-align:left;white-space:nowrap}th{background:#f6f8fb;color:#596577;font-size:12px;text-transform:uppercase;letter-spacing:.35px}tr:last-child td{border-bottom:0}.badge{display:inline-block;padding:5px 10px;border-radius:99px;font-size:11px;font-weight:800}.bg-warning{background:#fff1bf;color:#8a5b00}.bg-success{background:#dff5e7;color:#126637}.bg-danger{background:#fde3e1;color:#8d1e18}.bg-info{background:#e1ebfa;color:#294e80}.bg-secondary{background:#e8edf2}.notice{padding:12px;border-radius:9px;background:#fff3cd;margin:10px 0}.ok{background:#dcfce7}.bad{background:#fee2e2}.muted{color:var(--muted)}.doc-frame{width:100%;height:720px;border:1px solid #cbd5e1;border-radius:10px;background:#fff}.items th,.items td{padding:8px}.num{text-align:right}.quotation{position:relative;background:white;max-width:930px;margin:auto;padding:38px;border:1px solid #d8e0e8;border-radius:12px;overflow:hidden}.q-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:3px solid var(--gold);padding-bottom:15px}.q-company{font-size:21px;font-weight:900;color:var(--navy)}.q-company small{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-top:3px}.q-title{text-align:right}.q-title h2{margin:0 0 6px;font-size:23px;color:#1b2837}.summary{margin-left:auto;width:380px}.summary td:last-child{text-align:right}.decision-stamp{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%) rotate(-10deg);border:8px double var(--green);color:var(--green);font-size:40px;font-weight:900;padding:18px 28px;text-align:center;opacity:.16;z-index:1;letter-spacing:2px;pointer-events:none}.decision-stamp.rejected{border-color:var(--red);color:var(--red)}.decision-stamp.returned{border-color:var(--blue);color:var(--blue)}.quotation>*:not(.decision-stamp){position:relative;z-index:2}.review-shell{max-width:980px;padding-top:18px}.public-review{background:#f3f5f8}.review-header{background:#fff;border-radius:16px;border:1px solid #dbe3eb;padding:18px 20px;margin-bottom:14px;box-shadow:0 8px 28px #173b610c}.review-header h1{margin:0;color:var(--navy);font-size:23px}.review-header p{margin:5px 0 0;color:var(--muted)}.decision-panel{position:sticky;top:10px;z-index:15;background:#fff;border:1px solid #dbe3eb;border-radius:16px;padding:18px;margin-bottom:14px;box-shadow:0 10px 32px #173b6118}.decision-panel h2{margin:0 0 4px;color:var(--navy)}.decision-panel textarea{margin-top:10px}.original-intro{padding:4px 2px 14px}.original-intro h3{margin:0;color:var(--navy)}.original-intro p{margin:5px 0 0;color:var(--muted)}.dropdown{position:relative}.dropdown-menu{display:none;position:absolute;right:0;top:100%;background:#fff;border:1px solid #d9e1e8;border-radius:10px;padding:7px;min-width:180px;box-shadow:0 12px 28px #10263f22;z-index:10}.dropdown:hover .dropdown-menu{display:block}.dropdown-menu a{display:block;padding:8px;text-decoration:none;color:var(--text);border-radius:6px}.dropdown-menu a:hover{background:#eef3f7}footer{text-align:center;padding:25px;color:var(--muted)}@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.topbar{position:static}.topbar-inner{display:block;padding-top:12px;padding-bottom:12px}.brand-text{margin-bottom:10px}nav{gap:3px}.grid{grid-template-columns:1fr}.full{grid-column:auto}.doc-frame{height:560px}.quotation{padding:20px;border-radius:10px}.summary{width:100%}.decision-stamp{font-size:25px}.q-head{display:block}.q-title{text-align:left;margin-top:15px}.toolbar{display:block}.toolbar .actions{margin-top:10px}.decision-panel{position:static}.review-header h1{font-size:20px}.stats{grid-template-columns:1fr 1fr}.actions .btn{flex:1}}@media print{.topbar,footer,.no-print,.decision-panel,.review-header{display:none!important}body,main{background:#fff;margin:0;padding:0}.card{box-shadow:none;border:0}.quotation{border:0;max-width:none}.decision-stamp{opacity:.22}}
.final-document-only{max-width:930px;margin:8px auto 30px}.final-document-only .quotation{box-shadow:0 12px 38px #173b6114}.decision-meta{font-weight:800;color:var(--green);margin:2px 0 6px}.final-rejected .decision-meta{color:var(--red)}.final-returned .decision-meta{color:var(--blue)}
@media(max-width:760px){.final-document-only{margin:0 -8px 20px}.final-document-only .quotation{padding:18px 14px}.q-title h2{font-size:18px;line-height:1.25}.q-info{grid-template-columns:1fr 1fr!important;gap:13px}.quotation th,.quotation td{padding:9px 7px;font-size:12px}.quotation .summary td{font-size:13px}.decision-stamp{top:49%;opacity:.13}}
/* v5 CEO mobile review layout */
.ceo-review-sheet{max-width:900px;margin:0 auto;background:#fff;padding:34px 36px;border-radius:16px;box-shadow:0 10px 35px rgba(15,23,42,.08)}
.review-summary h1{font-size:34px;line-height:1.15;margin:0 0 18px;color:#111827}
.review-ref{font-size:17px;line-height:1.4;margin-bottom:26px}
.review-meta{display:grid;grid-template-columns:1fr 1fr;gap:22px 50px;font-size:18px;line-height:1.35}
.decision-panel.embedded{margin:8px 0 42px;background:#f4f5f7;border:0;border-radius:0;padding:18px 14px 22px}
.decision-panel.embedded h2{font-size:30px;margin:0 0 18px}
.decision-panel.embedded textarea{width:100%;min-height:112px;border:1px solid #d4d9e1;border-radius:12px;background:#fff;padding:16px;font-size:16px;box-sizing:border-box}
.decision-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:14px}
.decision-actions .btn{min-height:62px;white-space:normal;line-height:1.15}
.original-intro.clean{text-align:center;margin:0 0 16px}.original-intro.clean h3{font-size:25px;margin-bottom:8px}.original-intro.clean p{color:#667085}
.ceo-review-sheet .doc-frame{width:100%;min-height:850px;border:1px solid #d7dce3;border-radius:14px;background:#fff}
@media(max-width:700px){
 .ceo-review-sheet{padding:24px 18px;border-radius:0;box-shadow:none}
 .review-summary h1{font-size:31px}
 .review-meta{grid-template-columns:1fr;gap:18px;font-size:19px}
 .decision-panel.embedded{margin-left:-6px;margin-right:-6px;padding:18px 12px}
 .decision-actions{grid-template-columns:1fr 1fr 1fr;gap:10px}
 .decision-actions .btn{font-size:13px;padding:10px 6px}
 .ceo-review-sheet .doc-frame{min-height:720px}
}

/* v6: full original quotation review */
.original-open-btn{margin-top:12px}
.original-image-link{display:block;width:100%;background:#fff;border:1px solid #d7dce3;border-radius:14px;overflow:auto;touch-action:pinch-zoom}
.original-image-full{display:block;width:100%;height:auto;max-width:none;cursor:zoom-in}
.ceo-review-sheet .doc-frame-full{display:block;width:100%;height:88vh;min-height:1000px;border:1px solid #d7dce3;border-radius:14px;background:#fff}
@media(max-width:760px){.ceo-review-sheet .doc-frame-full{height:82vh;min-height:760px;border-radius:10px}.original-open-btn{display:flex;width:100%}.original-image-link{border-radius:10px}}

/* v7: CEO link opens as a complete request sheet followed by the full original quotation */
.v7-review{max-width:980px;padding:38px 42px}
.request-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,42%);align-items:start;gap:30px;margin-bottom:58px}
.request-title-block h1{font-size:36px;line-height:1.12;margin:0 0 20px;color:#111827;font-weight:800}
.request-ref{font-size:17px;line-height:1.45}
.request-brand{text-align:right;min-height:90px;display:flex;align-items:flex-start;justify-content:flex-end}
.request-brand img{display:block;max-width:100%;max-height:110px;width:auto;height:auto;object-fit:contain}
.request-brand strong{font-size:28px;color:var(--navy);padding-top:5px}
.request-meta-simple{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin:0 16px 22px;font-size:15px}
.request-items-table{overflow-x:auto}
.request-items-table table{min-width:680px}
.review-summary-total{margin-top:0;margin-bottom:24px}
.v7-review .decision-panel.embedded{margin-top:8px;margin-bottom:44px}
.v7-original-heading{margin-top:0;text-align:center}
.v7-original-heading h3{font-size:30px;line-height:1.2}
.v7-original-document{overflow:visible;background:#fff}
.v7-original-document .original-image-full{width:100%;max-width:100%;height:auto;object-fit:contain}
.pdf-review-wrap{width:100%}
.pdf-review-wrap .original-open-btn{margin:14px auto 0;max-width:330px}
@media(max-width:760px){
 .review-shell{padding-left:0;padding-right:0}
 .v7-review{padding:28px 18px;max-width:none}
 .request-overview{grid-template-columns:minmax(0,1fr) minmax(140px,44%);gap:14px;margin-bottom:60px}
 .request-title-block h1{font-size:31px;margin-bottom:18px}
 .request-brand img{max-height:78px}
 .request-brand strong{font-size:20px}
 .request-meta-simple{grid-template-columns:1fr 1fr;gap:20px;margin:0 12px 18px;font-size:14px}
 .request-items-table{margin-left:0;margin-right:0}
 .request-items-table table{min-width:660px}
 .review-summary-total{width:100%;font-size:14px}
 .v7-review .decision-panel.embedded{margin-left:-4px;margin-right:-4px}
 .v7-original-heading h3{font-size:27px}
 .v7-original-document{border-left:0;border-right:0;border-radius:0;margin-left:-18px;width:calc(100% + 36px)}
 .v7-original-document .original-image-full{width:100%;max-width:100%}
 .ceo-review-sheet .doc-frame-full{height:84vh;min-height:820px;border-radius:8px}
}

/* v8: reliable uploaded logo and professional mobile final document */
.logo-preview{margin-top:10px;padding:12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;max-width:420px}.logo-preview img{display:block;max-width:100%;max-height:110px;object-fit:contain}.q-company-wrap{display:flex;align-items:center;gap:14px;min-width:0}.q-logo{display:block;max-width:230px;max-height:82px;width:auto;height:auto;object-fit:contain}.mobile-status-banner{display:none}.final-items{border-color:#aebccc}.final-items th,.final-items td{border-bottom-color:#b8c4d0}.final-items th+th,.final-items td+td{border-left:1px solid #c2ccd6}.summary td{border-bottom-color:#c0cad5}.purpose-block,.ceo-comment-block{margin-top:22px;padding-top:16px;border-top:1px solid #c4ced8}
@media(max-width:760px){
 body.public-review{background:#e9eef3}.final-document-only{margin:8px auto 24px;padding:0 10px;max-width:100%}.final-document-only .quotation{padding:0 14px 22px;border:1px solid #cbd5df;border-radius:16px;box-shadow:0 10px 30px rgba(13,39,68,.12);overflow:hidden;background:#fff}
 .mobile-status-banner{display:block;margin:0 -14px 18px;padding:16px 15px;text-align:center;color:#fff;background:var(--navy)}.mobile-status-banner strong{display:block;font-size:17px;line-height:1.25}.mobile-status-banner span{display:block;margin-top:5px;font-size:12px;opacity:.9}.mobile-status-banner.approved{background:#147a43}.mobile-status-banner.rejected{background:#a9221b}.mobile-status-banner.returned{background:#315f9b}
 .q-head{display:flex;flex-direction:column;border-bottom:2px solid var(--gold);padding-bottom:14px;gap:12px}.q-company-wrap{width:100%;justify-content:center;flex-direction:column;gap:6px;text-align:center}.q-logo{max-width:88%;max-height:82px}.q-company{font-size:17px}.q-company small{font-size:11px}.q-title{text-align:center;margin:0;width:100%}.q-title h2{display:none}.q-title .decision-meta{display:none}.q-title b{font-size:14px}
 .q-info{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;margin:16px 0!important;border:1px solid #b9c5d1;border-radius:11px;overflow:hidden}.q-info>div{padding:12px 10px;border-bottom:1px solid #c1cbd5;min-width:0;word-break:break-word}.q-info>div:nth-child(odd){border-right:1px solid #c1cbd5}.q-info>div:nth-last-child(-n+2){border-bottom:0}.q-info b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.35px;color:#526170;margin-bottom:3px}
 .final-items{overflow:visible;border:0;border-radius:0}.final-items table,.final-items tbody,.final-items tr,.final-items td{display:block;width:100%}.final-items thead{display:none}.final-items tr{margin:0 0 12px;border:1px solid #aebbc8;border-radius:11px;overflow:hidden;background:#fff;box-shadow:0 2px 8px rgba(13,39,68,.05)}.final-items td{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;padding:9px 11px!important;border:0!important;border-bottom:1px solid #c3ccd5!important;text-align:right!important;white-space:normal!important;font-size:13px!important;word-break:break-word}.final-items td:last-child{border-bottom:0!important;font-weight:800;background:#f5f8fb}.final-items td::before{content:attr(data-label);text-align:left;font-weight:800;color:#4b5b6c;text-transform:uppercase;font-size:10px;letter-spacing:.35px}.final-items td[data-label="#"]{display:none}
 .summary{width:100%;margin:14px 0 0;border:1px solid #aebbc8;border-radius:11px;overflow:hidden;border-collapse:separate;border-spacing:0}.summary td{padding:12px 11px!important;border-bottom:1px solid #b9c5d0!important;font-size:14px!important}.summary tr:last-child td{border-bottom:0!important;background:#eef3f7;font-size:15px!important}.summary td:last-child{text-align:right}
 .purpose-block,.ceo-comment-block{margin-top:16px;padding:14px;border:1px solid #bdc8d3;border-radius:10px;background:#f8fafc;word-break:break-word}.purpose-block b,.ceo-comment-block b{display:block;margin-bottom:4px;color:var(--navy)}
 .decision-stamp{display:block!important;top:52%;left:50%;font-size:27px;padding:14px 18px;border-width:6px;opacity:.20;z-index:1;max-width:86%;white-space:nowrap}.quotation>*:not(.decision-stamp){position:relative;z-index:2}
}


/* v9: force correct first-open scale inside iPhone / WhatsApp browsers */
html{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:hidden;
}
body.public-review main,
body.public-review .shell,
body.public-review .final-document-only,
body.public-review .quotation{
  width:100%;
  max-width:100%;
  min-width:0;
}
body.public-review .shell{
  padding-left:12px;
  padding-right:12px;
}
.final-document-only *{min-width:0}
.final-document-only img{max-width:100%;height:auto}

@media(max-width:760px){
  body.public-review main{padding-top:10px;padding-bottom:18px}
  body.public-review .shell{padding-left:8px;padding-right:8px}
  .final-document-only{width:100%;margin:0 auto 20px;padding:0;}
  .final-document-only .quotation{
    width:100%;
    max-width:100%;
    margin:0;
    padding:0 14px 20px;
  }
  .q-company-wrap,.q-head,.q-title,.q-info,.final-items,.summary,.purpose-block,.ceo-comment-block{max-width:100%}
  .q-logo{width:auto!important;max-width:min(100%,520px)!important;height:auto!important;max-height:78px!important}
  .mobile-status-banner{width:auto;max-width:none}
  .final-items table{table-layout:fixed}
  .final-items td{max-width:100%;overflow-wrap:anywhere}
}

@media(max-width:430px){
  .final-document-only .quotation{padding-left:12px;padding-right:12px;border-radius:13px}
  .mobile-status-banner{margin-left:-12px;margin-right:-12px;padding:14px 12px}
  .mobile-status-banner strong{font-size:15px}
  .q-logo{max-height:66px!important}
  .q-company{font-size:15px}
  .q-info>div{padding:10px 8px;font-size:12px}
  .final-items td{grid-template-columns:92px minmax(0,1fr);font-size:12px!important}
  .summary td{font-size:13px!important}
}
