@font-face{font-family:Dana;src:url(/fonts/DanaFaNum-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Dana;src:url(/fonts/DanaFaNum-Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:Dana;src:url(/fonts/DanaFaNum-Bold.woff2) format("woff2");font-weight:600 700;font-display:swap}
@font-face{font-family:Dana;src:url(/fonts/DanaFaNum-Black.woff2) format("woff2");font-weight:800 900;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Medium.ttf) format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Bold.ttf) format("truetype");font-weight:700;font-display:swap}
:root{--bg:#f6f7fb;--card:#fff;--fg:#141824;--muted:#6b7280;--line:#e5e7eb;--pri:#6d28d9;--pri2:#ede9fe;--ok:#047857;--okbg:#d1fae5;--warn:#b45309;--warnbg:#fef3c7;--err:#b91c1c;--errbg:#fee2e2;--r:14px}
*{box-sizing:border-box}
body{margin:0;font-family:Dana,Vazirmatn,Tahoma,sans-serif;background:var(--bg);color:var(--fg);font-size:15px;line-height:1.7}
a{color:var(--pri)}
button,input,select,textarea{font:inherit}
.top{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:10px 20px;flex-wrap:wrap}
.brand{font-weight:700;font-size:18px;display:flex;align-items:center;gap:8px}
.brand i{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#7c3aed,#db2777);display:inline-block}
nav.tabs{display:flex;gap:4px;flex:1;overflow-x:auto}
nav.tabs a{padding:7px 14px;border-radius:999px;text-decoration:none;color:var(--muted);white-space:nowrap;font-weight:500}
nav.tabs a.on{background:var(--pri2);color:var(--pri)}
nav.tabs a small{font-size:11px;background:#f3f4f6;color:#9ca3af;border-radius:999px;padding:1px 7px;margin-inline-start:4px}
.wrap{max-width:1240px;margin:0 auto;padding:20px;display:grid;grid-template-columns:260px 1fr;gap:20px}
.side{display:flex;flex-direction:column;gap:8px}
.side .item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;text-decoration:none;color:inherit;display:block}
.side .item.on{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri2)}
.side .item b{display:block;font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .item span{font-size:12px;color:var(--muted)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:16px}
h1{font-size:22px;margin:0 0 4px}h2{font-size:18px;margin:0 0 12px}h3{font-size:15px;margin:0 0 8px}
.muted{color:var(--muted)}.small{font-size:13px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
label.f{display:flex;flex-direction:column;gap:5px;font-weight:500;font-size:14px}
input[type=text],input[type=password],select,textarea{border:1px solid #d1d5db;border-radius:10px;padding:9px 11px;background:#fff;width:100%;color:inherit}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--pri2);border-color:var(--pri)}
.ltr{direction:ltr;text-align:left;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.btn{border:0;border-radius:10px;padding:10px 18px;background:var(--pri);color:#fff;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.sec{background:#fff;color:var(--fg);border:1px solid #d1d5db}
.btn.ghost{background:transparent;color:var(--pri);padding:6px 10px}
.btn.sm{padding:6px 12px;font-size:13px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sp{flex:1}
.preset{border:1.5px solid var(--line);border-radius:12px;padding:12px;cursor:pointer;position:relative;background:#fff}
.preset.on{border-color:var(--pri);background:#faf8ff}
.preset b{display:block}.preset .price{font-size:18px;font-weight:700;color:var(--pri);margin:4px 0}
.preset .tag{position:absolute;top:-10px;left:10px;background:var(--pri);color:#fff;font-size:11px;padding:1px 8px;border-radius:999px}
.preset ul{margin:6px 0 0;padding-inline-start:16px;font-size:12px;color:var(--muted)}
.chip{display:inline-block;font-size:12px;padding:2px 10px;border-radius:999px;background:#f3f4f6;color:#374151;font-weight:500}
.chip.ok{background:var(--okbg);color:var(--ok)}.chip.warn{background:var(--warnbg);color:var(--warn)}.chip.err{background:var(--errbg);color:var(--err)}.chip.pri{background:var(--pri2);color:var(--pri)}
.bar{height:10px;background:#eef0f5;border-radius:999px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,#7c3aed,#db2777);transition:width .5s}
.cost{display:flex;gap:18px;flex-wrap:wrap}
.cost div{background:#f9fafb;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.cost b{display:block;font-size:17px}
.charcard{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}
.seq{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px}
.seq .hd{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.num{background:var(--pri);color:#fff;border-radius:8px;min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.dl{display:flex;gap:6px;margin-bottom:6px}.dl select{max-width:150px}
.checks{display:flex;gap:10px;flex-wrap:wrap;font-size:13px}
img.full{width:100%;border-radius:10px;border:1px solid var(--line);display:block;background:#f3f4f6}
pre.prompt{white-space:pre-wrap;direction:ltr;text-align:left;background:#0f172a;color:#e2e8f0;border-radius:10px;padding:14px;font-size:12.5px;line-height:1.65;max-height:420px;overflow:auto;unicode-bidi:plaintext}
.out{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}
.err{background:var(--errbg);color:var(--err);border-radius:10px;padding:10px 14px;margin-bottom:12px}
.notice{background:var(--warnbg);color:var(--warn);border-radius:10px;padding:8px 12px;font-size:13px}
.login{max-width:380px;margin:12vh auto;padding:28px}
.center{text-align:center}
.soon{text-align:center;padding:60px 20px}
.soon .ic{font-size:44px}
details summary{cursor:pointer;font-weight:600}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.types{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.type{border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;background:#fff;display:flex;flex-direction:column;gap:2px}
.type b{font-size:14px}.type span{font-size:12px;color:var(--muted);line-height:1.6}
.type.on{border-color:var(--pri);background:#faf8ff;box-shadow:0 0 0 3px var(--pri2)}
.upbox{border:1.5px dashed #d1d5db;border-radius:12px;padding:10px 12px;background:#fcfcfd}
.thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.thumb{position:relative;width:110px;display:flex;flex-direction:column;gap:4px}
.thumb img{width:110px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:#f3f4f6}
.thumb.face{width:150px}.thumb.face img{width:150px;height:150px}
.thumb.sm{width:72px}.thumb.sm img{width:72px;height:72px}
.thumb .cap{font-size:11px;color:var(--muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thumb .x{position:absolute;top:4px;left:4px;border:0;border-radius:999px;width:24px;height:24px;background:rgba(0,0,0,.6);color:#fff;cursor:pointer}
.thumb .busy{position:absolute;top:40px;left:0;right:0;text-align:center}
.thumb input{padding:5px 8px;font-size:13px}
.checkline{display:flex;gap:8px;align-items:center;margin-top:14px;font-size:14px}
.concept{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:4px}
.concept p{margin:0}.concept .btn{margin-top:auto;align-self:flex-start}
.ov{display:grid;grid-template-columns:110px 1fr 70px 70px 120px 90px auto auto auto;gap:6px;align-items:center;margin-bottom:6px}
.ov input[type=number]{border:1px solid #d1d5db;border-radius:10px;padding:8px 6px;width:100%}
.seq .ov{grid-template-columns:100px 1fr 64px 64px 120px 90px auto}
.clips{display:flex;flex-direction:column;gap:8px}
.clip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.clip video{width:120px;height:68px;object-fit:cover;border-radius:8px;background:#000}
video.final{width:100%;max-height:70vh;border-radius:12px;background:#000}
img.facemini{width:34px;height:34px;border-radius:999px;object-fit:cover}
@media (max-width:900px){.grid4{grid-template-columns:1fr 1fr}.ov,.seq .ov{grid-template-columns:1fr 1fr}.ov input[data-k=text]{grid-column:1/-1}.wrap{grid-template-columns:1fr;padding:12px}.side{flex-direction:row;overflow-x:auto}.side .item{min-width:200px}.grid2,.grid3,.out{grid-template-columns:1fr}.top{padding:8px 12px;flex-wrap:wrap;row-gap:6px}nav.tabs{order:3;flex-basis:100%;padding-bottom:2px}nav.tabs a{padding:6px 10px;font-size:14px}.card{padding:14px}}
.sheetimg{max-height:520px;width:auto;max-width:100%;display:block;margin:0 auto}

.concept .uses{background:#f5f3ff;border-radius:10px;padding:8px 10px}.concept .uses ul{margin:4px 0 0;padding-inline-start:18px;font-size:12.5px;line-height:1.8}
.warn{color:#b45309}
/* platform (brand, wallet, ready, admin) */
.brand{display:flex;align-items:center;gap:10px;color:inherit}.brand .mark{width:34px;height:34px}.brand .mark.big{width:64px;height:64px}
.brand span{display:flex;flex-direction:column;line-height:1.2}.brand b{font-size:20px;font-weight:800}.brand small{font-size:12px;color:#6b7280;font-weight:500}
.login .brand{justify-content:center}
.wallet{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#fef3c7;color:#92400e;text-decoration:none;font-size:14px}.wallet.on{outline:2px solid #f59e0b}
.foot{text-align:center;color:#6b7280;font-size:12px;padding:22px 10px 30px}.foot a{color:#6b7280}
.page{max-width:1100px;margin:0 auto;padding:16px}
.price.big{font-size:30px}.toman{font-weight:700;margin-top:6px}
.notice.ok{background:#dcfce7;color:#166534}.notice.warn{background:#fef3c7;color:#92400e}.notice.err{background:#fee2e2;color:#991b1b}
.notice{padding:12px 14px;border-radius:12px;margin-bottom:12px}
.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th,.tbl td{padding:7px 8px;border-bottom:1px solid #eee;text-align:right;vertical-align:top}.tbl th{color:#6b7280;font-weight:600}
.tblwrap{overflow-x:auto}.neg{color:#b91c1c}.pos{color:#15803d}
.stat{background:#f9fafb;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px}.stat b{font-size:20px}
.rjob{border:1px solid #eee;border-radius:12px;padding:12px;margin-bottom:10px}.rjob video.final{width:100%;margin-top:8px;border-radius:10px;background:#000}.rjob video.final.vert{max-width:300px;display:block;margin-inline:auto}
.bar{height:6px;background:#eee;border-radius:9px;overflow:hidden;margin-top:8px}.bar i{display:block;height:100%;background:linear-gradient(90deg,#7c3aed,#db2777)}
.ready .types{grid-template-columns:repeat(3,1fr)}
.grid4.packs,.page .grid4.pk{grid-template-columns:repeat(3,1fr)}
@media (max-width:760px){.top{flex-wrap:wrap}.top .tabs{order:3;width:100%;overflow-x:auto}.ready{grid-template-columns:1fr}.ready .types{grid-template-columns:1fr}}
.can{display:flex;flex-direction:column;gap:2px;margin-top:10px;padding-top:8px;border-top:1px dashed #e5e7eb;font-size:12px;color:#374151;text-align:right}
.can b{font-size:12px;color:#6b7280;font-weight:600}.can .disc,.disc{display:block;font-style:normal;font-size:11px;color:#b45309;line-height:1.5;margin-top:2px}
.toman s{color:#9ca3af;font-weight:400;margin-left:4px}
.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;vertical-align:middle}
.badge.ok,.disc.ok{background:#dcfce7;color:#166534}.badge.warn{background:#fef3c7;color:#92400e}
.can em.ok{font-style:normal;font-size:11px;background:#dcfce7;color:#166534;border-radius:6px;padding:0 5px;margin-right:4px}
.secgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card.sec{text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:8px;margin:0}
.card.sec .ic{font-size:24px;margin-left:8px}.card.sec b{font-size:17px}.card.sec.hero{grid-column:span 3;border:2px solid #86efac}
.outnote{margin:8px 0 10px}
@media (max-width:760px){.secgrid{grid-template-columns:1fr}.card.sec.hero{grid-column:auto}}
/* admin v2 */
.subtabs{display:flex;gap:6px;flex-wrap:wrap}.subtabs a{padding:6px 12px;border-radius:999px;background:var(--pri2);color:var(--pri);text-decoration:none;font-size:14px}.subtabs a.on{background:var(--pri);color:#fff}
.grid4.dash{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:760px){.grid4.dash{grid-template-columns:repeat(2,minmax(0,1fr))}}
.actgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:900px){.actgrid{grid-template-columns:1fr}}
.act{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:12px;padding:12px}.act input,.act select{width:100%}
.btn.danger{background:var(--err);color:#fff}
.jdp{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}.jdp select{width:auto;min-width:76px}
.codeform .f{display:block;margin-bottom:6px}
/* PWA */
.install h2{margin-top:0}.appicon{width:84px;height:84px;border-radius:20px;box-shadow:0 6px 18px rgba(109,40,217,.25)}
.steps{padding-inline-start:22px;line-height:2.1}.kbd{display:inline-block;border:1px solid var(--line);border-radius:6px;padding:0 6px;background:#fff;font-family:system-ui}
.pwabanner{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--pri2);background:linear-gradient(90deg,#faf5ff,#fff)}.pwabanner img{width:40px;height:40px;border-radius:10px}
.pwabanner .sp,.row .sp{flex:1}
@supports(padding:max(0px)){body{padding-bottom:env(safe-area-inset-bottom)}}
.codeform label.f{display:flex;flex-direction:column;gap:4px}.codeform .grid4 input{width:100%}
@media(max-width:640px){.grid4.packs,.grid4.pk{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
