/* فونت: فایل Vazirmatn.woff2 را در assets/fonts بگذارید؛ اگر نبود از فونت سیستم استفاده می‌شود. */
@font-face{font-family:"Vazirmatn";src:url("fonts/Vazirmatn.woff2") format("woff2");font-display:swap}
:root{--bg:#e9edf0;--surface:#fff;--ink:#14202b;--muted:#5a6772;--line:#d3dae0;--accent:#0a6e63;--accent-d:#085a51;--accent-s:#ddefeb;
--warn:#8a5200;--warn-s:#fff3dc;--err:#b42318;--err-s:#fde9e7;--nav-h:64px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{font-size:16px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Vazirmatn",Tahoma,"Segoe UI",system-ui,sans-serif;line-height:1.8}
body.has-nav{padding-bottom:calc(var(--nav-h) + 28px + env(safe-area-inset-bottom))}
a{color:var(--accent)}
.ic{flex:none;display:block}
.app{max-width:560px;margin:0 auto;min-height:100vh;background:#f4f6f8;box-shadow:0 0 0 1px var(--line)}
.app.wide{max-width:1000px}
main{padding:1rem 1rem 1.5rem}
.brandbar{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:2rem 1rem 0;font-weight:700;font-size:1.15rem}

/* نوار بالا */
.appbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:.75rem;background:var(--surface);border-bottom:1px solid var(--line);padding:.55rem 1rem;padding-top:calc(.55rem + env(safe-area-inset-top))}
.appbar h1{flex:1;margin:0;font-size:1.05rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appbar .back{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:var(--ink);background:#eef1f3}
.tokens{display:flex;align-items:center;gap:.35rem;background:var(--accent-s);color:var(--accent-d);padding:.1rem .8rem;border-radius:99px;text-decoration:none;font-size:.95rem}

/* منوی پایین */
.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:center;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.bottomnav{display:grid;grid-template-columns:1fr 84px 1fr;max-width:560px;margin:0 auto;height:calc(var(--nav-h) + env(safe-area-inset-bottom))}
.bottomnav .ni{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:var(--nav-h);color:var(--muted);text-decoration:none;font-size:.78rem}
.bottomnav .ni.on{color:var(--accent)}
.bottomnav .fab{display:grid;place-items:center;width:60px;height:60px;margin:-24px auto 0;border-radius:50%;background:var(--accent);color:#fff;box-shadow:0 6px 16px rgba(10,110,99,.4);border:4px solid #f4f6f8}
.bottomnav .fab:active{background:var(--accent-d)}

/* فرم و دکمه */
input[type=text],input[type=tel],input[type=password],input[type=url],textarea,select{width:100%;font:inherit;padding:.6rem .8rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,.drop:focus-visible{outline:3px solid #7fc7bd;outline-offset:2px}
textarea{resize:vertical}
label.f{display:block;margin-bottom:1rem;font-weight:600}
label.f span{display:block;margin-bottom:.25rem}
.ltr{direction:ltr;text-align:left}
button.primary,a.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:10px;padding:.65rem 1.4rem;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;text-align:center}
button.primary:hover,a.btn:hover{background:var(--accent-d)}
button.primary:disabled{background:#9fb8b4;cursor:not-allowed}
button.ghost{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.4rem .9rem;font:inherit;cursor:pointer;color:var(--ink)}
.wide-btn{width:100%;padding:.7rem;margin-top:1rem;color:var(--err)}
.error{background:var(--err-s);color:var(--err);padding:.6rem .9rem;border-radius:10px;margin:1rem 0}
.note{background:var(--warn-s);color:var(--warn);padding:.6rem .9rem;border-radius:10px;margin:1rem 0}
.okmsg{background:var(--accent-s);color:var(--accent-d);padding:.6rem .9rem;border-radius:10px;margin:1rem 0}
.hint{color:var(--muted);font-size:.9rem}
.hint.bad{color:var(--err)}
.auth{margin:1.25rem 0;background:var(--surface);padding:1.5rem;border-radius:16px;border:1px solid var(--line)}
.auth h1{margin-top:0;font-size:1.4rem}

/* صفحه‌ی انتخاب سبک */
.lead{font-size:1.15rem;font-weight:700;margin:.5rem 0 1rem}
.styles{display:grid;gap:.8rem}
.style,.hrow,.rowlink{display:flex;align-items:center;gap:.9rem;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:.8rem;color:var(--ink);text-decoration:none}
.style:active,.hrow:active{background:#f0f6f5}
.ico{display:grid;place-items:center;flex:none;width:64px;height:64px;border-radius:14px;background:var(--accent-s);color:var(--accent);overflow:hidden}
.ico img{width:100%;height:100%;object-fit:cover}
.tx{flex:1;display:flex;flex-direction:column;line-height:1.6}
.tx b{font-size:1.02rem}
.tx small{color:var(--muted);font-size:.86rem}
.go{color:#9aa7b0}

/* صفحه‌ی هر سبک */
.hero{display:flex;align-items:center;gap:.9rem;margin-bottom:1rem}
.hero .ico{width:56px;height:56px}
.hero p{margin:0;color:var(--muted)}
.block{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1rem;margin-bottom:1rem}
.block h2{font-size:1rem;margin:0 0 .7rem}
.colorrow{display:flex;gap:1rem;align-items:flex-start}
.swatch{flex:none;width:92px;height:116px;border-radius:12px;border:1px solid var(--line)}
.colorctl{flex:1;display:grid;gap:.6rem}
.colors{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.colors input[type=color]{width:46px;height:42px;padding:2px;border:1px solid var(--line);border-radius:10px;background:#fff;flex:none}
.colors input[type=text]{flex:1;min-width:0}
.colors button{width:30px;height:30px;border-radius:50%;border:2px solid #fff;outline:1px solid var(--line);cursor:pointer}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem}
.chipbtn{background:#eef3f2;border:1px solid var(--line);border-radius:99px;padding:.15rem .8rem;font:inherit;font-size:.88rem;cursor:pointer;color:var(--ink)}
.seg{display:grid;grid-template-columns:1fr 1fr;background:#eef1f3;border-radius:10px;padding:3px;margin-bottom:.8rem}
.seg button{border:0;background:none;border-radius:8px;padding:.4rem;font:inherit;cursor:pointer;color:var(--muted)}
.seg button.on{background:#fff;color:var(--ink);font-weight:700;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.presets{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.preset{position:relative;padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;cursor:pointer;background:#ddd;aspect-ratio:1/1}
.preset img{width:100%;height:100%;object-fit:cover;display:block}
.preset span{position:absolute;inset:auto 0 0 0;background:rgba(0,0,0,.55);color:#fff;font-size:.75rem;padding:.1rem .3rem;line-height:1.5}
.preset[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-s)}
.filebtn{display:inline-flex;align-items:center;gap:.5rem;border:1px dashed #93a3ad;border-radius:10px;padding:.55rem 1rem;cursor:pointer;background:#fff}
.bgprev{display:block;max-width:100%;max-height:180px;border-radius:10px;margin-top:.7rem}
.drop{display:flex;flex-direction:column;align-items:center;gap:.3rem;border:2px dashed #93a3ad;border-radius:14px;background:#fafcfc;padding:1.4rem 1rem;text-align:center;cursor:pointer;color:var(--accent)}
.drop strong{color:var(--ink)}
.drop.over{border-color:var(--accent);background:#f2faf8}
.files{list-style:none;margin:.8rem 0 0;padding:0;max-height:300px;overflow:auto;border-radius:10px;border:1px solid var(--line)}
.files:empty{display:none}
.files li{display:flex;align-items:center;gap:.6rem;padding:.4rem .6rem;border-bottom:1px solid var(--line);background:#fff}
.files li:last-child{border-bottom:0}
.files img{width:40px;height:40px;object-fit:cover;border-radius:6px;background:#eee}
.files .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:ltr;text-align:right;font-size:.88rem}
.files .st{font-size:.8rem;color:var(--muted)}
.files .st.err{color:var(--err)}.files .st.ok{color:var(--accent)}
.actionbar{position:sticky;bottom:calc(var(--nav-h) + 12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:.8rem;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:.6rem .8rem;box-shadow:0 6px 18px rgba(20,32,43,.12)}
.actionbar .hint{flex:1;line-height:1.5}
.bar{height:8px;background:#d5dde3;border-radius:99px;overflow:hidden;margin-top:1rem}
.bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}

/* نتیجه */
.head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.3rem}
.counts{color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin-top:1rem}
.job{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.7rem}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.pair figure{margin:0;aspect-ratio:1/1;background:#eef1f3;border-radius:8px;overflow:hidden;display:grid;place-items:center;color:var(--muted);font-size:.82rem;text-align:center}
.pair img{width:100%;height:100%;object-fit:contain}
.job .meta{display:flex;justify-content:space-between;gap:.5rem;align-items:center;margin-top:.5rem;font-size:.9rem}
.chip{padding:0 .6rem;border-radius:99px;background:#e3e8ec;color:var(--muted);font-size:.85rem}
.chip.processing{background:#e3ecfb;color:#1f4aa8}.chip.done{background:var(--accent-s);color:var(--accent-d)}.chip.failed{background:var(--err-s);color:var(--err)}
.job .w{color:var(--warn);font-size:.85rem;margin-top:.3rem}
.job .e{color:var(--err);font-size:.85rem;margin-top:.3rem;word-break:break-word}
.job .nm{direction:ltr;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:.4rem;font-size:.85rem;color:var(--muted)}

/* تاریخچه و تنظیمات */
.hist{display:grid;gap:.7rem;margin-top:.6rem}
.hrow .ico{width:48px;height:48px;border-radius:12px}
.empty{text-align:center;color:var(--muted);padding:2.5rem 0}
.profile{display:flex;align-items:center;gap:1rem}
.profile .ico{border-radius:50%}
.balance{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.big{font-size:2rem;font-weight:700;line-height:1.3}.big small{font-size:1rem;font-weight:400;color:var(--muted)}
.ledger{list-style:none;margin:0;padding:0}
.ledger li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line)}
.ledger li:last-child{border-bottom:0}
.ledger small{display:block;color:var(--muted);font-size:.8rem}
.plus{color:var(--accent)}.minus{color:var(--err)}
.rowlink{justify-content:space-between;margin-bottom:.8rem;font-weight:700}

/* مدیریت */
table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:10px;overflow:hidden;border:1px solid var(--line)}
th,td{padding:.6rem .75rem;text-align:right;border-bottom:1px solid var(--line);vertical-align:middle}
th{background:#f4f6f8;font-weight:700;font-size:.9rem}
tr:last-child td{border-bottom:0}
.tw{overflow-x:auto}
.adj{display:flex;gap:.4rem;align-items:center}
.adj input[type=number]{width:90px;padding:.4rem;border:1px solid var(--line);border-radius:8px;font:inherit}
.adj input[type=text]{width:140px}

@media (min-width:600px){body{background:#dfe5e9}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
