:root{--primary:#2563eb;--primary-dark:#1d4ed8;--bg:#f4f7fb;--panel:#fff;--text:#172033;--muted:#667085;--line:#e4e9f1;--danger:#dc2626;--radius:14px;font-family:Tahoma,"Segoe UI",sans-serif;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 80% 20%,#dbeafe,transparent 30%),var(--bg)}.login-card{width:min(420px,calc(100% - 32px));background:#fff;padding:36px;border-radius:20px;box-shadow:0 20px 70px #1e3a8a1c;text-align:center}.brand-mark,.brand span{display:inline-grid;place-items:center;background:linear-gradient(145deg,#2563eb,#06b6d4);color:#fff;font-weight:800}.brand-mark{width:58px;height:58px;border-radius:18px;font-size:28px}.login-card label{text-align:right}.muted,.page-head p{color:var(--muted)}label{display:grid;gap:7px;color:#344054;font-weight:600}input,select,textarea{width:100%;border:1px solid #d7deea;border-radius:9px;padding:10px 12px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb18}textarea{min-height:76px;resize:vertical}.login-card input{margin-block:6px 15px;padding:13px}.btn{border:1px solid #d7deea;background:#fff;padding:10px 16px;border-radius:9px;color:var(--text)}.btn:hover{border-color:#aeb9ca}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark)}.btn.small{padding:7px 11px}.btn.wide{width:100%}.form-message{min-height:22px;color:var(--danger)}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#111b2e;color:#d6deec;padding:22px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font-size:17px;padding:0 8px 22px}.brand span{width:37px;height:37px;border-radius:11px}.sidebar nav{display:grid;gap:5px}.sidebar nav button{border:0;text-align:right;color:#b9c5d8;background:transparent;padding:12px 13px;border-radius:9px}.sidebar nav button:hover,.sidebar nav button.active{background:#ffffff12;color:#fff}.logout{margin-top:auto;color:#fda4af;padding:12px;text-decoration:none}.content{min-width:0;padding:0 26px 40px}.topbar{height:72px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);margin-bottom:25px}.topbar select{width:auto;min-width:210px}.topbar #menu{display:none}.user-mobile{margin-inline-start:auto;direction:ltr}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-head h1{margin:0 0 5px;font-size:24px}.page-head p{margin:0}.actions{display:flex;gap:8px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:18px;box-shadow:0 3px 14px #17203308}.panel h2{font-size:16px;margin:0 0 17px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.span-2{grid-column:span 2}.upload-row{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.table-wrap{overflow:auto}.data-table,.items-table{border-collapse:collapse;width:100%;min-width:780px}.data-table th,.data-table td,.items-table th,.items-table td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:right}.data-table th,.items-table th{background:#f8fafc;color:#475467;font-size:12px}.items-table input,.items-table select{padding:8px;min-width:75px}.items-table .item-name{min-width:200px}.items-table .line-total{white-space:nowrap}.section-head{display:flex;justify-content:space-between;align-items:center}.section-head h2{margin:0}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}.summary{position:sticky;top:90px}.summary dl{margin:0}.summary dl div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px dashed var(--line)}.summary .total{font-size:17px;font-weight:800;color:var(--primary)}.icon-btn{border:0;background:#fee2e2;color:#b91c1c;width:30px;height:30px;border-radius:8px}.autocomplete{position:relative}.results{position:absolute;z-index:20;inset-inline:0;top:100%;background:#fff;border:1px solid var(--line);box-shadow:0 14px 30px #17203320;border-radius:10px;max-height:260px;overflow:auto;display:none}.results.open{display:block}.result{padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer}.result:hover{background:#eff6ff}.result small{display:block;color:var(--muted);margin-top:4px}.toast{position:fixed;z-index:100;inset-inline-end:25px;top:20px;background:#172033;color:#fff;padding:12px 18px;border-radius:10px;opacity:0;transform:translateY(-10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}dialog{border:0;padding:0;background:#e8edf4;width:100vw;max-width:none;height:100vh;max-height:none}dialog::backdrop{background:#0008}.preview-tools{position:sticky;top:0;z-index:10;background:#fff;padding:10px;display:flex;gap:8px;justify-content:center;box-shadow:0 2px 8px #0002}.a4-sheet{background:#fff;width:210mm;min-height:297mm;margin:18px auto;padding:12mm;color:#111;box-shadow:0 8px 30px #0002}.doc-header{display:grid;grid-template-columns:35mm 1fr 45mm;gap:8mm;align-items:center;border-bottom:2px solid var(--primary);padding-bottom:5mm}.doc-logo{max-width:32mm;max-height:25mm}.doc-company h2{margin:0 0 2mm}.doc-meta{font-size:12px}.doc-box{border:1px solid #9ca3af;padding:3mm;margin-top:4mm}.doc-items{width:100%;border-collapse:collapse;margin-top:4mm}.doc-items th,.doc-items td{border:1px solid #9ca3af;padding:2.2mm;font-size:11px}.doc-items th{background:#eef2f7}.doc-totals{width:80mm;margin:4mm 0 0 auto}.doc-totals div{display:flex;justify-content:space-between;padding:1.8mm;border-bottom:1px solid #ddd}.doc-signatures{display:grid;grid-template-columns:1fr 1fr;gap:25mm;text-align:center;margin-top:15mm}.doc-signatures img{max-width:35mm;max-height:25mm;object-fit:contain}.empty{text-align:center;color:var(--muted);padding:35px}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:60;inset-block:0;inset-inline-start:0;width:250px;transform:translateX(110%);transition:.2s}.sidebar.open{transform:none}.content{padding-inline:14px}.topbar #menu{display:block}.editor-grid{grid-template-columns:1fr}.summary{position:static}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.upload-row{grid-template-columns:1fr}.page-head{align-items:flex-start;gap:12px}.a4-sheet{transform-origin:top center;zoom:.55}}
@media print{body{background:#fff}.app-shell,.preview-tools{display:none!important}dialog[open]{position:static;width:auto;height:auto}.a4-sheet{box-shadow:none;margin:0;width:210mm;min-height:297mm}@page{size:A4 portrait;margin:0}}
.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#eef2f7;padding:4px;border-radius:10px;margin:20px 0}.login-tabs button{border:0;background:transparent;padding:10px;border-radius:8px;color:#667085}.login-tabs button.active{background:#fff;color:#1d4ed8;box-shadow:0 2px 7px #17203315}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px}.kpi span{display:block;color:var(--muted);margin-bottom:10px}.kpi strong{font-size:25px}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-badge{font-size:11px;background:#fef3c7;color:#92400e;padding:3px 7px;border-radius:20px}.admin-toolbar{display:flex;gap:10px;margin-bottom:15px}.admin-toolbar input{max-width:360px}.inline-actions{display:flex;gap:6px;align-items:center}.inline-actions select{min-width:90px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.secret-note{font-size:12px;color:var(--muted)}@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.profile-grid,.settings-grid{grid-template-columns:1fr}}@media(max-width:520px){.kpi-grid{grid-template-columns:1fr}}

/* قالب رسمی پیش‌فاکتور A4 افقی */
.a4-sheet{width:297mm;min-height:210mm;padding:10mm 11mm;font-family:Tahoma,"Segoe UI",sans-serif;font-size:10px;direction:rtl}.formal-header{display:grid;grid-template-columns:58mm 1fr 58mm;align-items:center;min-height:28mm;margin-bottom:2.5mm}.formal-logo{text-align:right}.formal-logo strong{font-size:19px;color:#26723d}.formal-logo .doc-logo{max-width:50mm;max-height:24mm}.formal-title{text-align:center}.formal-title h1{font-size:17px;margin:0 0 2mm;text-decoration:underline;text-underline-offset:2mm}.formal-title span{font-size:11px}.formal-meta{direction:rtl;line-height:2.1;font-size:11px}.formal-party{border:1px solid #111;border-radius:2.2mm;margin-top:2.5mm;overflow:hidden}.formal-party h2{font-size:11px;text-align:center;margin:0;padding:1mm;background:#f5f5f5;border-bottom:1px solid #111}.party-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:0}.party-grid>div{padding:1.6mm 2mm;min-height:7mm}.party-grid>div:nth-child(n+4){border-top:1px dotted #aaa}.formal-table-title{border:1px solid #111;border-radius:2mm;padding:1.2mm 3mm;margin-top:2.5mm;text-align:center;position:relative;font-size:11px}.formal-table-title span{position:absolute;left:3mm;font-size:9px}.formal-items{margin-top:1.5mm;table-layout:fixed}.formal-items th,.formal-items td{border:1px solid #111;padding:1.25mm .7mm;text-align:center;font-size:8.5px;line-height:1.35}.formal-items th{background:#f3f3f3;color:#111}.formal-items th:nth-child(1){width:7mm}.formal-items th:nth-child(2){width:18mm}.formal-items th:nth-child(3){width:45mm}.formal-items th:nth-child(4){width:14mm}.formal-items th:nth-child(5){width:12mm}.formal-items .description{text-align:right}.formal-items .blank-row td{height:7mm}.formal-items .grand-total th{font-weight:800;background:#eee}.formal-notes{border:1px solid #111;border-radius:2mm;margin-top:2.5mm;padding:2mm 3mm;min-height:9mm;display:grid;grid-template-columns:2fr 1.4fr 1fr;gap:4mm}.formal-notes span:last-child{text-align:left;font-size:10px}.formal-signatures{border:1px solid #111;border-radius:2mm;margin-top:2.5mm;gap:0;min-height:25mm}.formal-signatures>div{padding:3mm;border-left:1px solid #111}.formal-signatures>div:last-child{border-left:0}.signature-assets{height:17mm;display:flex;justify-content:center;align-items:center;gap:3mm}.formal-signatures img{max-width:30mm;max-height:16mm}.formal-footer{text-align:center;font-size:8px;margin-top:2mm}.doc-signatures{margin-top:2.5mm}
@media(max-width:900px){.a4-sheet{zoom:.38}}
@media print{.a4-sheet{width:297mm;min-height:210mm;margin:0;padding:10mm 11mm;zoom:1}@page{size:A4 landscape;margin:0}}

.preview-tools{flex-wrap:wrap}.preview-tools select{width:auto;min-width:145px;padding:8px}.a4-sheet[data-format="a4-portrait"]{width:210mm;min-height:297mm;padding:9mm}.a4-sheet[data-format="a5-landscape"]{width:210mm;min-height:148mm;padding:6mm;font-size:8px}.a4-sheet[data-format="a5-portrait"]{width:148mm;min-height:210mm;padding:6mm;font-size:7px}.a4-sheet[data-format="letter-portrait"]{width:216mm;min-height:279mm;padding:9mm}.a4-sheet[data-format$="portrait"] .formal-header{grid-template-columns:40mm 1fr 40mm}.a4-sheet[data-format$="portrait"] .formal-logo .doc-logo{max-width:36mm}.a4-sheet[data-format$="portrait"] .party-grid{grid-template-columns:1fr 1fr}.a4-sheet[data-format$="portrait"] .formal-items th,.a4-sheet[data-format$="portrait"] .formal-items td{font-size:7px;padding:1mm .4mm}.a4-sheet[data-format^="a5"] .formal-header{min-height:20mm;margin-bottom:1.5mm}.a4-sheet[data-format^="a5"] .formal-title h1{font-size:12px}.a4-sheet[data-format^="a5"] .formal-logo .doc-logo{max-height:17mm}.a4-sheet[data-format^="a5"] .formal-party{margin-top:1.5mm}.a4-sheet[data-format^="a5"] .party-grid>div{padding:1mm}.a4-sheet[data-format^="a5"] .formal-items th,.a4-sheet[data-format^="a5"] .formal-items td{font-size:6.5px;padding:.65mm .3mm}.a4-sheet[data-format^="a5"] .formal-items .blank-row td{height:4mm}.a4-sheet[data-template="modern"]{--doc-accent:#2563eb;border-top:5mm solid var(--doc-accent)}.a4-sheet[data-template="modern"] .formal-title h1{color:var(--doc-accent);text-decoration:none}.a4-sheet[data-template="modern"] .formal-party h2,.a4-sheet[data-template="modern"] .formal-items th,.a4-sheet[data-template="modern"] .grand-total th{background:#eaf2ff;color:#173b78}.a4-sheet[data-template="modern"] .formal-party,.a4-sheet[data-template="modern"] .formal-items th,.a4-sheet[data-template="modern"] .formal-items td,.a4-sheet[data-template="modern"] .formal-notes,.a4-sheet[data-template="modern"] .formal-signatures{border-color:#7595c7}.a4-sheet[data-template="minimal"] .formal-party h2,.a4-sheet[data-template="minimal"] .formal-items th,.a4-sheet[data-template="minimal"] .grand-total th{background:#fff}.a4-sheet[data-template="minimal"] .formal-party,.a4-sheet[data-template="minimal"] .formal-notes,.a4-sheet[data-template="minimal"] .formal-signatures{border-radius:0}.share-dialog{background:#0007}.share-card{background:#fff;width:min(680px,calc(100% - 24px));margin:7vh auto;padding:24px;border-radius:16px;box-shadow:0 20px 70px #0004}.share-card .check{display:flex;grid-auto-flow:column;justify-content:start;align-items:center}.share-card .check input{width:auto}.share-result{margin-top:18px;padding:16px;background:#f0f7ff;border:1px solid #bfd8ff;border-radius:10px}.share-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.share-actions a{text-decoration:none}
@media print{.a4-sheet[data-format="a4-portrait"]{width:210mm;min-height:297mm}.a4-sheet[data-format="a5-landscape"]{width:210mm;min-height:148mm}.a4-sheet[data-format="a5-portrait"]{width:148mm;min-height:210mm}.a4-sheet[data-format="letter-portrait"]{width:216mm;min-height:279mm}}
.formal-items .blank-row{display:none!important}.output-center{display:grid;grid-template-columns:1.4fr .8fr .8fr auto;gap:14px;align-items:end}.output-center h2{margin-bottom:5px}.output-center p{margin:0}.output-center .actions{flex-wrap:wrap}@media(max-width:1100px){.output-center{grid-template-columns:1fr 1fr}.output-center>div:first-child,.output-center>.actions{grid-column:1/-1}}@media(max-width:650px){.output-center{grid-template-columns:1fr}.output-center>div:first-child,.output-center>.actions{grid-column:auto}}
.a4-sheet[data-format="a3-landscape"]{width:420mm;min-height:297mm}.a4-sheet[data-format="a3-portrait"]{width:297mm;min-height:420mm}.a4-sheet[data-format="a6-landscape"]{width:148mm;min-height:105mm;padding:5mm;font-size:6.5px}.a4-sheet[data-format="a6-portrait"]{width:105mm;min-height:148mm;padding:4mm;font-size:6px}.a4-sheet[data-format="legal-landscape"]{width:356mm;min-height:216mm}.a4-sheet[data-format="legal-portrait"]{width:216mm;min-height:356mm}.a4-sheet[data-format^="a6"] .formal-header{min-height:17mm}.a4-sheet[data-format^="a6"] .formal-title h1{font-size:10px}.a4-sheet[data-format^="a6"] .formal-items th,.a4-sheet[data-format^="a6"] .formal-items td{font-size:5.5px;padding:.45mm .2mm}.a4-sheet[data-format^="a6"] .party-grid>div{padding:.7mm;min-height:4mm}
.output-designer{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;align-items:start}.designer-template{display:block;width:100%;border:1px solid var(--line);background:#fff;text-align:right;padding:12px;border-radius:9px;margin-bottom:8px}.designer-template:hover,.designer-template.default{border-color:#2563eb;background:#eff6ff}.designer-template small{display:block;color:var(--muted);margin-top:5px}.designer-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}.designer-checks label,.output-designer .check{display:flex;flex-direction:row;align-items:center;gap:7px;border:1px solid var(--line);padding:9px;border-radius:8px}.designer-checks input,.output-designer .check input{width:auto}.section-order{display:grid;gap:7px;margin-bottom:20px}.section-order>div{display:flex;align-items:center;gap:6px;border:1px solid var(--line);padding:8px;border-radius:8px;background:#f8fafc}.section-order span{margin-left:auto}@media(max-width:1000px){.output-designer{grid-template-columns:1fr}.designer-checks{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.designer-checks{grid-template-columns:1fr}}
