@import url('https://fonts.googleapis.com/css2?family=Cairo:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700;800&display=swap');
:root{--navy:#082e52;--navy2:#0c416e;--cyan:#12a8df;--blue:#2389c8;--red:#ed1c2e;--ink:#172b3d;--muted:#718096;--line:#dce5ee;--bg:#f3f6fa;--white:#fff;--shadow:0 12px 35px rgba(8,46,82,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Cairo',Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{height:74px;background:linear-gradient(105deg,#072847,#0b4774);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;box-shadow:0 4px 18px rgba(0,0,0,.12)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#16b9e9,#0a3157);border:2px solid rgba(255,255,255,.65);font-weight:800;font-size:24px;color:#fff}.brand b{display:block;font-size:18px;letter-spacing:.7px}.brand small{display:block;color:#9fe6ff;font-size:11px;margin-top:-3px}.top-actions{display:flex;align-items:center;gap:12px}.top-actions .user-pill{background:rgba(255,255,255,.1);padding:8px 14px;border-radius:24px}.layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:calc(100vh - 74px)}.sidebar{background:#fff;border-left:1px solid var(--line);padding:22px 16px}.sidebar-title{font-size:11px;color:#91a0ae;font-weight:700;margin:5px 12px 14px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:11px;color:#536577;margin-bottom:5px;font-weight:600}.nav-link.active,.nav-link:hover{background:#eaf6fc;color:var(--navy)}.nav-icon{width:24px;text-align:center;font-size:17px}.main{padding:28px;min-width:0}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:24px}.page-head h1{font-size:25px;margin:0 0 5px;color:var(--navy)}.page-head p{margin:0;color:var(--muted)}.btn{border:0;border-radius:9px;padding:10px 16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--navy);color:#fff}.btn.cyan{background:var(--cyan);color:#fff}.btn.outline{background:#fff;border:1px solid var(--line);color:var(--navy)}.btn.danger{background:#fff1f2;color:#c62836}.btn.small{padding:7px 10px;font-size:12px}.btn.full{width:100%}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;align-items:center;gap:14px}.stat-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#eaf6fc;color:var(--cyan);font-size:22px}.stat strong{display:block;font-size:24px;color:var(--navy);line-height:1.2}.stat small{color:var(--muted)}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:700px}.data-table th,.data-table td{padding:13px 12px;border-bottom:1px solid #edf1f5;text-align:right}.data-table th{font-size:12px;color:#6c7e90;background:#f8fafc}.data-table tr:last-child td{border-bottom:0}.badge{display:inline-block;padding:4px 9px;border-radius:30px;font-size:11px;font-weight:700;background:#e9f6fc;color:#0877a7}.muted{color:var(--muted)}.empty{text-align:center;padding:50px 20px;color:var(--muted)}.empty .empty-icon{font-size:44px;color:#a9c8d8;margin-bottom:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label,.field-label{font-weight:700;color:#42586c;font-size:12px}.field input,.field select,.field textarea{width:100%;border:1px solid #d8e2eb;border-radius:9px;background:#fff;padding:10px 12px;outline:none;color:var(--ink);min-height:42px}.field textarea{min-height:90px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#40a9d8;box-shadow:0 0 0 3px rgba(18,168,223,.12)}.field .hint{font-size:11px;color:#8795a3}.section-title{font-size:16px;color:var(--navy);font-weight:800;margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--line)}.section-block{margin-bottom:24px}.section-block:last-child{margin-bottom:0}.type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.type-option{border:2px solid var(--line);border-radius:13px;padding:10px;background:#fff;cursor:pointer;transition:.15s;display:flex;flex-direction:column;gap:8px}.type-option.selected{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(18,168,223,.12)}.type-option img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;background:#f2f6f9}.type-option strong{text-align:center;color:var(--navy)}.type-option input{display:none}.lang-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lang-pair .field label span{font-size:10px;color:#8a9baa;font-weight:500;margin-right:4px}.repeat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.repeat-card{background:#f8fafc;border:1px solid var(--line);padding:13px;border-radius:12px}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.gallery-card{border:1px dashed #b9c9d7;border-radius:12px;padding:12px;background:#fbfdff}.gallery-card img{width:100%;height:100px;object-fit:cover;border-radius:8px;background:#edf2f6;margin-bottom:8px}.gallery-card input[type=file]{font-size:11px;width:100%}.form-actions{display:flex;gap:10px;justify-content:flex-start;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.helper-panel{border:1px solid #cbe7f4;background:#f0faff;border-radius:12px;padding:14px;margin-top:14px}.helper-panel h4{margin:0 0 7px;color:#07577e}.helper-panel p{margin:0;color:#526b7c;font-size:12px;line-height:1.8}.notice{padding:12px 14px;border-radius:10px;margin:0 0 16px;font-size:13px}.notice.success{background:#eaf8f0;color:#17663c;border:1px solid #c5ecd5}.notice.danger{background:#fff0f1;color:#9f2530;border:1px solid #ffd0d4}.notice.info{background:#edf8fd;color:#155c7a;border:1px solid #c9eaf7}.login-body,.install-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top left,#dff6ff,#f4f7fa 45%,#e6edf5)}.login-card,.install-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 20px 70px rgba(8,46,82,.13)}.brand-mini{display:flex;align-items:center;gap:10px;margin-bottom:24px;color:var(--navy)}.brand-mini b{display:block;font-size:17px;letter-spacing:.5px}.brand-mini small{display:block;color:var(--cyan);font-size:11px}.login-card h1,.install-card h1{font-size:23px;color:var(--navy);margin:0 0 8px}.login-card form,.install-card form{display:grid;gap:14px;margin-top:20px}.login-card label,.install-card label{display:grid;gap:6px;font-weight:700;font-size:12px;color:#42586c}.login-card input,.install-card input{border:1px solid #d8e2eb;border-radius:9px;padding:11px 12px}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.toolbar .btn{padding:8px 12px}.subhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0 12px}.subhead h3{margin:0;color:var(--navy)}
/* proposal preview */
.preview-body{background:#dce4ec;padding:24px 12px 60px;font-family:'Cairo',Arial,sans-serif}.preview-toolbar{position:sticky;top:10px;z-index:50;max-width:1100px;margin:0 auto 18px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px;box-shadow:var(--shadow)}.preview-toolbar .left,.preview-toolbar .right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.preview-toolbar select{padding:8px;border:1px solid var(--line);border-radius:8px}.document{width:210mm;margin:0 auto}.page{position:relative;width:210mm;height:297mm;background:#fff;overflow:hidden;margin:0 auto 18px;box-shadow:0 6px 28px rgba(0,0,0,.18);page-break-after:always;break-after:page}.cover-page>img{width:100%;height:100%;object-fit:cover;display:block}.framed-page{position:relative;background:#fff}.frame-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:1;pointer-events:none}.page-content{position:absolute;z-index:2;top:24mm;left:15mm;right:15mm;bottom:25mm;overflow:hidden}.page-heading{color:var(--navy);font-size:22px;font-weight:800;border-bottom:3px solid var(--cyan);padding-bottom:7px;margin:0 0 14px}.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin-bottom:14px}.meta-item{border-bottom:1px solid #d9e2ea;padding:6px 2px;display:flex;gap:8px}.meta-item b{color:#476176;min-width:92px}.proposal-description{line-height:1.85;text-align:justify;margin:10px 0 14px;font-size:12px}.spec-table{width:100%;border-collapse:collapse;font-size:11px}.spec-table th{background:var(--navy);color:#fff;padding:8px;text-align:right}.spec-table td{border:1px solid #dce5ed;padding:6px 8px}.spec-table tr:nth-child(even) td{background:#f5f9fc}.price-box{margin-top:12px;border:2px solid var(--cyan);border-radius:10px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;background:#f2faff}.price-box strong{font-size:20px;color:var(--navy)}.terms-list{line-height:2;font-size:12px;margin:8px 0;padding-right:18px}.contact-footer{position:absolute;z-index:3;bottom:6mm;left:10mm;right:10mm;height:10mm;background:rgba(255,255,255,.96);border:1px solid #182e54;border-radius:3mm;display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;padding:1mm 2mm;color:#172c54;font-size:8px;direction:ltr}.contact-footer .center{text-align:center;font-weight:800;background:#14284d;color:#fff;border-radius:4px;padding:1px 5px;justify-self:center;line-height:1.05}.contact-footer .center small{display:block;font-size:6px;font-weight:500;margin-top:1px;white-space:nowrap}.contact-footer .right{text-align:right}.datasheet-page{background:#fff}.datasheet-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:1}.ds-overlay{position:absolute;z-index:2;inset:0;color:#102b47}.ds-title{position:absolute;left:3%;top:10.2%;width:43%;height:6.5%;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;font-size:17px;font-weight:800;line-height:1.2;padding:0 8px}.ds-feature{position:absolute;top:29.0%;width:13.2%;height:3.2%;color:#fff;text-align:center;font-size:8px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1.1}.ds-feature.f1{left:2.3%}.ds-feature.f2{left:16.7%}.ds-feature.f3{left:31.1%}.ds-specs{position:absolute;left:4%;top:36.1%;width:46.5%;height:38.5%;display:grid;grid-template-rows:repeat(18,1fr);font-size:8px;line-height:1.05}.ds-row{display:grid;grid-template-columns:48% 52%;align-items:center;min-height:0}.ds-row .label{color:#fff;padding-left:42px;padding-right:5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:right}.ds-row .value{padding-left:8px;padding-right:4px;color:#102b47;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:ltr;text-align:left}.ds-dim{position:absolute;left:54%;top:37.5%;width:41%;height:25%;font-size:10px;font-weight:800;color:#e31b2b}.ds-dim .dim-l{position:absolute;left:14%;bottom:2%}.ds-dim .dim-w{position:absolute;right:30%;bottom:2%}.ds-dim .dim-h{position:absolute;right:3%;top:22%;writing-mode:vertical-rl}.ds-callouts{position:absolute;left:84.8%;top:66.2%;width:11.2%;height:23.6%;display:grid;grid-template-rows:repeat(6,1fr);font-size:7px;color:#fff;font-weight:700}.ds-callout{display:flex;align-items:center;justify-content:center;padding:1px 2px;text-align:center;line-height:1.05;overflow:hidden}.ds-callout-left{position:absolute;left:52.4%;top:67.4%;width:10.2%;height:4.2%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:7px;font-weight:700;text-align:center;line-height:1.05;padding:1px 2px;overflow:hidden}.ds-gallery{position:absolute;left:3%;top:77.9%;width:47%;height:11.5%;display:grid;grid-template-columns:repeat(4,1fr);gap:1.2%}.ds-gallery .gallery-slot{overflow:hidden;border-radius:5px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1)}.ds-gallery img{width:100%;height:100%;object-fit:cover}.ds-gallery span{font-size:7px;color:#18436a;text-align:center;padding:2px}.extra-page .page-content{bottom:24mm}.gallery-report{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gallery-report-card{border:1px solid #d8e4ec;border-radius:9px;padding:8px;break-inside:avoid}.gallery-report-card img{width:100%;height:48mm;object-fit:contain;background:#f5f8fa;border-radius:6px}.gallery-report-card h4{margin:7px 0 3px;color:var(--navy);font-size:12px}.gallery-report-card p{margin:0;font-size:10px;line-height:1.6}.component-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.component-item{border:1px solid #dce5ed;border-radius:8px;padding:8px;font-size:11px;background:#f9fbfd}.component-item b{color:var(--navy);display:block;margin-bottom:3px}.helper-note{font-size:10px;color:#667b8e;line-height:1.7}.ltr{direction:ltr;text-align:left;font-family:Inter,Arial,sans-serif}.print-only{display:none}
@media(max-width:1000px){.layout{grid-template-columns:1fr}.sidebar{display:none}.main{padding:18px}.stats{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.topbar{padding:0 14px}.main{padding:14px}.page-head{flex-direction:column}.stats,.form-grid,.form-grid.three,.type-grid,.repeat-grid,.gallery-grid{grid-template-columns:1fr}.lang-pair{grid-template-columns:1fr}.card{padding:15px}.preview-body{padding:8px 0}.preview-toolbar{position:static;border-radius:0}.document{transform-origin:top left;width:210mm}.preview-toolbar{flex-direction:column;align-items:stretch}}
@page{size:A4;margin:0}
@media print{html,body{background:#fff!important;margin:0!important;padding:0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.preview-toolbar{display:none!important}.preview-body{padding:0!important}.document{width:210mm;margin:0}.page{margin:0!important;box-shadow:none!important;page-break-after:always;break-after:page}.page:last-child{page-break-after:auto}.print-only{display:block}.no-print{display:none!important}}
