/* Vazir 30.1.0, SIL OFL; self-hosted, no runtime CDN dependency. */
@font-face{font-family:Vazir;src:url('/fonts/vazir/Vazir-Regular.woff2') format('woff2');font-weight:100 500;font-style:normal;font-display:swap}
@font-face{font-family:Vazir;src:url('/fonts/vazir/Vazir-Bold.woff2') format('woff2');font-weight:600 900;font-style:normal;font-display:swap}
body.login-page{margin:0;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px;font-family:Tahoma,"Segoe UI",Arial,sans-serif;font-size:15px}
body.login-page>.login-card{width:100%;max-width:440px;margin:0;padding:36px 32px;overflow:visible;border-top:4px solid var(--teal)}
.login-brand{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 16px;border-radius:16px;background:var(--teal);color:white;font-size:24px;font-weight:700}
body.login-page>.login-card>h1{margin:0;text-align:center;border:0;padding:0;font-size:24px}
.login-intro{margin:10px 0 26px;text-align:center;color:var(--muted);font-size:14px}
.login-card #login{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.login-card #login>label{font-size:14px;font-weight:700;color:var(--ink)}
.login-card #login>input{width:100%;min-width:0;min-height:48px;font-size:16px;margin:0 0 12px;text-align:left}
.login-card #message{min-height:24px;margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:13px}
.login-card #submit{width:100%;min-height:48px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer}
@media(max-width:480px){body.login-page>.login-card{padding:28px 20px}body.login-page>.login-card>h1{font-size:22px}}
:root{--font-ui:Tahoma,Arial,sans-serif;--ink:#183044;--muted:#526579;--line:#dce6ed;--blue:#175c9b;--teal:#087f78;--violet:#7045aa;--paper:#fff;--shadow:0 6px 24px #17384f0b}
*,*::before,*::after{box-sizing:border-box}
html{font-family:var(--font-ui);color-scheme:light}
body{font-family:var(--font-ui);font-size:14px;line-height:1.85;color:var(--ink);background:linear-gradient(135deg,#edf5fa 0%,#f6f8fc 48%,#eef7f3 100%);min-height:100vh}
button,input,select,textarea,optgroup,option,dialog,table{font-family:var(--font-ui)!important}
button,input,select,textarea{font-size:14px;line-height:1.6}
button,a.button{min-height:42px;transition:background-color .15s,box-shadow .15s;border:1px solid transparent}
button{background:#edf3f8;color:var(--ink)}
button:hover:not(:disabled),a.button:hover{box-shadow:0 3px 10px #17384f20;background:#deebf6}
button.primary,button.active,a.button,.quick{background:var(--blue);color:white}
button.primary:hover:not(:disabled),button.active:hover:not(:disabled),a.button:hover,.quick:hover{background:#124978;color:white}
button:disabled{opacity:.5;cursor:not-allowed}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #1686bd;outline-offset:3px}
input,select,textarea{border:1px solid #bfceda;border-radius:9px;background:#fff;color:var(--ink);padding:10px;max-width:100%}
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #175c9b12}
input[type=checkbox],input[type=radio]{accent-color:var(--teal);width:auto;min-height:auto}
input:disabled,select:disabled,textarea:disabled{background:#edf1f5;color:#526579}
input::placeholder,textarea::placeholder{color:#637488;opacity:1}
label,.field label{color:var(--muted);font-size:13px}
a{color:var(--blue);text-underline-offset:4px}
h1,h2,h3{color:var(--ink);line-height:1.65}h1{font-size:23px}h2{font-size:20px}
.muted{color:var(--muted)}
body>header{background:linear-gradient(110deg,#174568,#126960);color:white;padding:22px 28px;border-bottom:4px solid #59c1b0;box-shadow:var(--shadow)}
.wrap{width:100%;max-width:1450px}
.head,.panel,.card,body>main{border:1px solid var(--line);box-shadow:var(--shadow);background:var(--paper);border-radius:16px}
body>main{max-width:1450px;margin:0 auto;padding:24px;overflow-x:auto}
.head{border-top:4px solid var(--teal)}
body>main>h1{border-right:4px solid var(--teal);padding-right:12px}
.card{border-top:4px solid var(--blue);min-width:0}
.card:nth-child(4n+2){border-top-color:var(--teal);background:#f4fcf9}
.card:nth-child(4n+3){border-top-color:var(--violet);background:#faf7ff}
.card:nth-child(4n+4){border-top-color:#b36a16;background:#fffbf2}
.n{font-size:clamp(18px,1.7vw,24px);line-height:1.8;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.cards{gap:16px}.panel{padding:22px}
.tabs{gap:9px}.wrap>.tabs{background:#f1f6fa;padding:12px;border-radius:14px;border:1px solid var(--line)}
.menu-main{border:1px solid #c9d9e5;color:#214f75}
.menu-group.open>.menu-main{background:#e0effb;border-color:var(--blue)}
.submenu{border:1px solid var(--line);box-shadow:0 12px 30px #17384f24}
.submenu button:hover{background:#eaf4fc}
.quick:nth-child(3n+1){background:#087269;color:#fff}.quick:nth-child(3n+2){background:#654391;color:#fff}
.quick:hover:not(:disabled){filter:brightness(.92);color:white}
.summary>div,.total{background:#eff6fb;border:1px solid #dce8f0;border-radius:12px}
.summary>div:nth-child(3n+2),.total:nth-child(3n+2){background:#eef9f4;border-color:#d3eadd}
.summary>div:nth-child(3n+3),.total:nth-child(3n+3){background:#f7f2fc;border-color:#e5dcf0}
.summary b,.total b{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
table{font-size:14px}th,table.list th,.invoice-table th{background:#edf4f9;color:#294f6a;font-weight:700;border-bottom:2px solid #d7e4ee}
td,table.list td,.invoice-table td{border-bottom:1px solid #e4ecf2;line-height:1.85}
tbody tr:nth-child(even){background:#f8fafc}tbody tr:hover{background:#eff7fc}
.scroll{border:1px solid var(--line);border-radius:12px;overflow:auto}
.in,.success{color:#07694b}.out,.error,.err{color:#ae2435}
.status{border:1px solid #dce6ee}.status.voided{background:#fff0f1;color:#a72033;border-color:#f3c4cb}.status.settled{background:#e5f6eb;color:#16633f;border-color:#b6dfc6}
.notice{background:#fff6e6;color:#78420b;border:1px solid #f0d49f;border-right:4px solid #c28327}
.danger{background:#b42338!important;color:#fff!important}
dialog{font-family:var(--font-ui);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 70px #142e4540;max-width:calc(100vw - 24px)}
dialog::backdrop{background:#102e4a88}
.empty{color:var(--muted);padding:32px}
@media(max-width:700px){body{font-size:14px}body:has(>main){margin:12px}body>main,.panel{padding:16px}.wrap{padding:0 10px}body>header{padding:18px;font-size:15px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.card{padding:12px}.tabs{position:static}.wrap>.tabs{padding:10px}.menu-group{position:static}.submenu{right:10px;left:10px;top:auto;min-width:0}.head{gap:12px}body>main form{gap:12px}body>main form>label{min-width:0;flex:1 1 200px}body>main form>label input:not([type=checkbox]),body>main form>label select,body>main form>label textarea{width:100%}.summary{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{body{background:white!important;color:black}body>header,.head,.panel,.card,body>main{box-shadow:none;background:white;color:black}.tabs,.actions{display:none!important}th,td{color:black}.scroll{overflow:visible}}

/* Keep dashboard cards balanced instead of leaving a single card on a new row. */
.session-bar.actions{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1414px;margin:16px auto;padding:14px 20px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);direction:rtl}
.session-identity{display:flex;align-items:center;gap:12px;min-width:0}
.session-avatar{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:13px;background:#e7f4f1;color:var(--teal);font-size:21px;font-weight:700}
.session-profile{min-width:0}.session-caption{display:block;color:var(--muted);font-size:11px;line-height:1.7;margin-bottom:3px}
.session-name-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.session-name{font-size:15px;font-weight:700;overflow-wrap:anywhere}
.session-role{display:inline-flex;align-items:center;padding:2px 9px;border:1px solid #cde6df;border-radius:20px;background:#f0f9f5;color:#17634e;font-size:11px;white-space:nowrap}
.session-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}
.session-manage,.session-logout{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 15px;border-radius:9px;font-size:13px;font-weight:500;white-space:nowrap;text-decoration:none;cursor:pointer}
.session-manage{background:#edf4fc;border:1px solid #d7e5f3;color:var(--blue)}.session-manage:hover{background:#e0edfa}
button.session-logout{background:#fff;border:1px solid #ebd4d8;color:#a22c3d}button.session-logout:hover:not(:disabled){background:#fff1f3;border-color:#d7a8b1;box-shadow:none}
@media(max-width:1450px){.session-bar.actions{margin:14px 18px}}
@media(max-width:600px){.session-bar.actions{align-items:stretch;flex-direction:column;gap:14px;padding:14px;margin:12px 10px}.session-controls{border-top:1px solid var(--line);padding-top:12px}.session-controls>*{flex:1}.session-name-line{gap:6px}.session-name{font-size:14px}}
#cards{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){#cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tabs button.active,#financialFilters button[type=submit],.back,body>main form>#save{background:var(--blue);color:#fff;border-radius:9px}
.tabs button.active:hover,#financialFilters button[type=submit]:hover,.back:hover,body>main form>#save:hover{background:#124978;color:white}
.persian-date-field{display:grid;grid-template-columns:minmax(100px,1fr) auto;gap:6px;align-items:start;min-width:0}.persian-date-field>input{width:100%;min-width:0}.persian-date-error{grid-column:1/-1;color:#ae2435;font-size:12px}.persian-date-error:empty{display:none}.persian-calendar{width:min(360px,calc(100vw - 24px));padding:18px}.calendar-header{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:14px}.calendar-header button{padding:7px;font-size:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.calendar-grid button{padding:6px;min-height:36px}.calendar-grid [aria-current=date]{outline:2px solid var(--teal);outline-offset:-2px}.calendar-grid button.active{background:var(--blue);color:white}
/* Live stock stays inside the product cell on both sales entry screens. */
.sale-product-inline{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.sale-product-inline .sprod{flex:1 1 auto;min-width:0;width:0}
.sale-product-inline .sale-stock{flex:0 0 auto;font-size:12px;color:#526579;white-space:nowrap;font-variant-numeric:tabular-nums}

/* Unified application finish, including page-local styles and dynamic forms. */
:root{--font-ui:Vazir,Tahoma,sans-serif;--ink:#193448;--muted:#586e7b;--line:#dce7e9;--blue:#185875;--teal:#087c77;--violet:#685c8e;--shadow:0 8px 28px #183c4810}
body,body *{font-family:var(--font-ui)!important}
body{background:radial-gradient(ellipse at top right,#e5f3f0,transparent 55%),#f3f6f8;color:var(--ink)}
button,a.button,.back{border-radius:10px;padding:10px 16px;font-weight:500;text-decoration:none}
button.primary,button[type=submit]:not(.danger),button.active,.tabs button.active{background:var(--blue);color:white}
button.primary:hover:not(:disabled),button[type=submit]:not(.danger):hover:not(:disabled){background:#10445c}
button:disabled{box-shadow:none}
input,select,textarea{min-height:43px;border-color:#c8d8dd;border-radius:10px}
input[type=checkbox],input[type=radio]{min-height:initial}
label{font-weight:500}
.head,.panel,body>main{border-radius:18px}
.head{border-top:0;border-inline-start:4px solid var(--teal);background:linear-gradient(105deg,#fff,#f0f8f6)}
body>header{background:linear-gradient(110deg,#19394e,#126c68);border-bottom:0;font-size:17px;letter-spacing:0}
.card{border-top-width:3px;border-radius:14px}.card:nth-child(4n+3){background:#f8f7fb}.card:nth-child(4n+4){background:#fcfaf4}
th,table.list th,.invoice-table th{background:#edf4f5;color:#234b5e;border-bottom:1px solid #cddfe2;padding-top:13px;padding-bottom:13px}
td{vertical-align:middle}tbody tr:nth-child(even){background:#f8fafb}tbody tr:hover{background:#edf6f5}
summary{cursor:pointer;font-weight:500;padding-block:8px}details[open]>summary{color:var(--teal)}
dialog{padding:24px;max-height:90dvh;overflow:auto}dialog::backdrop{background:#16344877;backdrop-filter:blur(3px)}
.session-bar.actions{border-radius:16px;border-top:3px solid var(--teal);box-shadow:0 5px 22px #163b4710}
.app-navigation{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:1414px;margin:0 auto 18px;padding:0 4px}
.app-navigation a,.app-navigation button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;background:white;border:1px solid #cbdde1;color:var(--blue);padding:8px 16px;border-radius:10px;text-decoration:none}
.app-navigation .app-home{background:var(--blue);color:white;border-color:var(--blue)}
.app-navigation .app-location{margin-inline-start:auto;font-size:13px;color:var(--muted)}
.nav-duplicate,[hidden]{display:none!important}
.quick:nth-child(n){background:#e8f2f2;color:#185875;border:1px solid #cce0df}
.quick:hover:not(:disabled){background:#d8ebe8;color:#154f4c;filter:none}
.menu-main{background:white;border:1px solid #d6e1e5}.menu-group.open>.menu-main{background:#e2efed;border-color:var(--teal)}
.wrap>.tabs{background:#ffffffbf;border-color:#d6e3e6;box-shadow:0 3px 14px #183c4808}
@media(max-width:1450px){.app-navigation{margin-inline:18px}}
@media(max-width:600px){.app-navigation{margin-inline:10px;gap:7px}.app-navigation .app-location{flex-basis:100%;margin:0}.session-controls{flex-wrap:wrap}body>main{padding:16px}h1{font-size:21px}button{min-height:44px}dialog{padding:16px}.head{flex-wrap:wrap}}
@media print{.session-bar,.app-navigation,.nav-duplicate{display:none!important}body{background:white!important}body,body *{font-family:var(--font-ui)!important}}
