:root{--bg:#fbf5e6;--paper:#fffdf7;--ink:#26312b;--mut:#6b7468;--pri:#1f6f4a;--pri2:#165a3b;--deep:#0f3d2b;--gold:#d99a1e;--gold2:#f4c04a;--clay:#b8532c;--line:#eadfc4;--ok:#1d7a4a;--warn:#b7791f;--bad:#b3392a;--card:var(--paper);--shadow:0 1px 0 #fff inset,0 6px 18px -10px rgba(80,60,10,.35)}
@media(prefers-color-scheme:dark){:root{--bg:#121a16;--paper:#1a2520;--card:#1a2520;--ink:#efeadb;--mut:#a9b3a4;--pri:#3fb27c;--pri2:#33986a;--deep:#0b2a1e;--gold:#f0b43a;--line:#2f3b33;--shadow:0 6px 18px -10px rgba(0,0,0,.6)}}
*{box-sizing:border-box}
body{margin:0;font:15px/1.55 "Plus Jakarta Sans",system-ui,"Noto Naskh Arabic",sans-serif;background:var(--bg);color:var(--ink);background-image:radial-gradient(circle at 1px 1px,rgba(150,110,20,.10) 1px,transparent 0);background-size:22px 22px}
a{color:var(--pri);text-decoration:none;font-weight:500}a:hover{text-decoration:underline}
[dir=auto],.ur,td[dir=auto]{font-family:"Noto Naskh Arabic","Plus Jakarta Sans",serif;unicode-bidi:plaintext}
h1,h2,.brand div,.stat .v,.hero h1{font-family:Fraunces,Georgia,serif}
.shell{display:flex;min-height:100vh}
.side{width:252px;flex:none;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column;color:#e8f2e6;background:linear-gradient(180deg,#14543a 0%,var(--deep) 100%);box-shadow:4px 0 24px -12px rgba(0,0,0,.5)}
.brand{display:flex;gap:11px;align-items:center;padding:18px 16px;font-weight:700;font-size:16px;line-height:1.2;border-bottom:1px solid #ffffff1f}.brand small{display:block;font:500 11px "Plus Jakarta Sans";letter-spacing:.06em;text-transform:uppercase;color:var(--gold2);margin-top:3px}
.logo{display:inline-grid;place-items:center;border-radius:14px;background:radial-gradient(circle at 30% 25%,#2b8a5f,#0d3a28);border:1.5px solid #f4c04a66;flex:none}
.side nav{padding:10px 8px;flex:1}.side nav a{display:flex;align-items:center;gap:11px;color:#cfe3d4;padding:8px 11px;border-radius:10px;font-size:14px;font-weight:500;margin-bottom:1px}.side nav a .ic{opacity:.85;flex:none}
.side nav a:hover{background:#ffffff14;text-decoration:none;color:#fff}.side nav a.on{background:linear-gradient(90deg,var(--gold),#e8b23c);color:#2b1f05;font-weight:700;box-shadow:0 4px 12px -4px #0008}.side nav a.on .ic{opacity:1}
.sidewheat{opacity:.07;text-align:center;margin:-10px 0 -30px;pointer-events:none}.me{padding:13px 16px;font-size:13px;border-top:1px solid #ffffff1f;background:#0000002a}.me a{color:var(--gold2)}.me small{color:#b7cdbb}
main{flex:1;min-width:0;max-width:1320px;padding:24px 30px 60px}
.pagehead{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:12px;border-bottom:2px dotted var(--line)}h1{margin:0;font-size:28px;font-weight:700;color:var(--deep);letter-spacing:-.01em}@media(prefers-color-scheme:dark){h1{color:#f6efd8}}
.pagehead .rule{display:inline-flex;transform:rotate(18deg)}h2{font-size:18px;margin:26px 0 10px;color:var(--pri);display:flex;align-items:center;gap:8px}h2::before{content:"";width:6px;height:18px;border-radius:3px;background:var(--gold)}.card h2:first-child{margin-top:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:18px;box-shadow:var(--shadow)}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
/* coupon-style stat cards */
.stat{position:relative;background:var(--card);border:1px solid var(--line);border-left:6px solid var(--gold);border-radius:14px;padding:14px 16px 12px 18px;box-shadow:var(--shadow);overflow:hidden}
.stat::before,.stat::after{content:"";position:absolute;right:-9px;width:18px;height:18px;border-radius:50%;background:var(--bg);border:1px solid var(--line)}.stat::before{top:-9px}.stat::after{bottom:-9px}
.stat .l{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}.stat .v{font-size:30px;font-weight:700;line-height:1.15;color:var(--deep);margin-top:2px}@media(prefers-color-scheme:dark){.stat .v{color:#f6efd8}}
.stat .s{font-size:12px;color:var(--mut);border-top:1px dashed var(--line);margin-top:8px;padding-top:6px}
.stat.warn{border-left-color:var(--warn)}.stat.warn .v{color:var(--warn)}.stat.bad{border-left-color:var(--bad)}.stat.bad .v{color:var(--bad)}.stat.ok{border-left-color:var(--ok)}.stat.ok .v{color:var(--ok)}
.tw{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}table{border-collapse:collapse;width:100%}th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;font-size:14px}
th{background:linear-gradient(180deg,#f7ecc9,#f2e3b0);color:#6a4c0d;font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;font-weight:700}@media(prefers-color-scheme:dark){th{background:#2a3328;color:var(--gold2)}}
tbody tr:nth-child(even){background:#d99a1e0d}tbody tr:hover{background:#d99a1e1c}tr:last-child td{border-bottom:0}
form.f{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;align-items:end}form.f .wide{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--mut)}
input,select,textarea{font:inherit;font-weight:400;padding:9px 11px;border:1.5px solid var(--line);border-radius:10px;background:#fff9;color:var(--ink);width:100%}@media(prefers-color-scheme:dark){input,select,textarea{background:#0006}}
textarea{min-height:72px}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px #d99a1e33}
.btn,button{font:600 14px "Plus Jakarta Sans",sans-serif;background:linear-gradient(180deg,var(--pri),var(--pri2));color:#fff;border:0;padding:9px 16px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;box-shadow:0 3px 0 #0d3a28,0 6px 12px -6px #0006;transition:.12s}
.btn:hover,button:hover{transform:translateY(-1px);text-decoration:none;filter:brightness(1.07)}.btn:active,button:active{transform:translateY(2px);box-shadow:0 1px 0 #0d3a28}
.btn.sec{background:transparent;color:var(--pri);border:1.5px solid var(--pri);box-shadow:none}.btn.bad{background:var(--bad);box-shadow:0 3px 0 #7d2418}.btn.sm{padding:4px 10px;font-size:12.5px;box-shadow:none}.btn.gold{background:linear-gradient(180deg,#f0b43a,#d99a1e);color:#2b1f05;box-shadow:0 3px 0 #9a6b0c,0 6px 12px -6px #0006}
.flash{padding:11px 15px;border-radius:12px;margin-bottom:14px;font-weight:500;border:1px solid transparent}.f-ok{background:#e0f3e3;color:#14532d;border-color:#b7e0bf}.f-err{background:#fde3dc;color:#8a2412;border-color:#f3b7a8}.f-warn{background:#fdf0c8;color:#7a4a05;border-color:#eed48a}
.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:11.5px;font-weight:700;background:#ece6d3;color:#5c5330}.b-redeemed,.b-active,.b-approved,.b-closed{background:#d9f0dd;color:#14532d}.b-issued,.b-pending,.b-open{background:#fbe9b7;color:#7a4a05}.b-void,.b-expired,.b-rejected,.b-blocked{background:#f9d9d1;color:#8a2412}
.pager{margin:14px 0;display:flex;gap:6px}.pager a{padding:5px 11px;border:1.5px solid var(--line);border-radius:8px}.pager a.on{background:var(--pri);color:#fff;border-color:var(--pri)}
.muted{color:var(--mut)}.empty{padding:18px;border:2px dashed var(--line);border-radius:14px;text-align:center}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.row form{margin:0}.right{margin-left:auto}
.burger{display:none;margin-bottom:10px}.big{font-size:20px;padding:12px 14px;letter-spacing:.04em}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 14px}.kv dt{color:var(--mut);font-weight:600;font-size:13px}.kv dd{margin:0}
.chart{display:flex;align-items:flex-end;gap:10px;height:160px;padding-top:10px}.chart div{flex:1;text-align:center;font-size:11px;color:var(--mut);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px}.chart span{font-weight:700;color:var(--deep)}.chart i{display:block;width:100%;max-width:34px;background:linear-gradient(180deg,var(--gold2),var(--gold) 60%,#a8730f);border-radius:8px 8px 3px 3px;min-height:3px;box-shadow:0 3px 8px -4px #7a4a05}
/* hero */
.hero{position:relative;overflow:hidden;border-radius:22px;padding:26px 28px;margin-bottom:20px;color:#fff6dc;background:radial-gradient(circle at 85% 20%,#2d8a5e 0,transparent 45%),linear-gradient(120deg,#0f4a33,#145c3f 60%,#1b6b49);box-shadow:0 14px 30px -16px #0b2a1e}
.hero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 22px,#ffffff08 22px 23px);pointer-events:none}
.hero .wh{position:absolute;right:-6px;bottom:-26px;opacity:.16;transform:rotate(14deg)}.hero .wh2{position:absolute;right:120px;top:-30px;opacity:.1;transform:rotate(-20deg)}
.hero small{letter-spacing:.14em;text-transform:uppercase;color:var(--gold2);font-weight:700;font-size:11.5px}.hero h1{color:#fff;font-size:30px;margin:6px 0 4px}.hero p{margin:0;color:#d4e8d8;max-width:560px}
.hero .heroacts{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;position:relative}.hero .bignum{position:absolute;right:30px;top:22px;text-align:right}.hero .bignum b{display:block;font:700 54px/1 Fraunces,serif;color:var(--gold2)}.hero .bignum span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#cfe5d4}
/* login */
body.login{background:#f6ecd0}.loginwrap{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}
.loginart{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:40px;color:#fff6dc;background:radial-gradient(circle at 30% 20%,#2d8a5e,transparent 50%),linear-gradient(160deg,#0f4a33,#0b2f21)}
.loginart::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 26px,#ffffff08 26px 27px)}.loginart>*{position:relative}.sack{width:min(300px,70%);filter:drop-shadow(0 18px 20px #0007)}.loginart h2{font-size:38px;line-height:1.1;margin:18px 0 8px;color:#fff}.loginart h2::before{display:none}.loginart p{max-width:380px;color:#cfe5d4;margin:0}
main.solo{display:flex;flex-direction:column;justify-content:center;max-width:520px;margin:0 auto;padding:40px 36px;width:100%}.loginbrand{display:flex;gap:12px;align-items:center;font:700 18px Fraunces,serif;color:var(--deep);margin-bottom:22px}.loginbrand small{display:block;font:600 11px "Plus Jakarta Sans";letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
body.login .card{background:#fffdf5}
@media(max-width:860px){.loginwrap{grid-template-columns:1fr}.loginart{padding:24px 20px}.loginart .sack{width:150px}.loginart h2{font-size:26px}}
@media(max-width:800px){.side{position:fixed;left:-270px;z-index:9;transition:left .2s;height:100%}.side.open{left:0}.burger{display:inline-flex}main{padding:16px 14px 50px}.kv{grid-template-columns:110px 1fr}.hero .bignum{position:static;text-align:left;margin-top:12px}}
@media print{.side,.burger,.noprint,.pager,.flash,.pagehead .rule{display:none!important}main{padding:0;max-width:none}body{background:#fff!important;color:#000}.card,.tw{border-color:#999;box-shadow:none}.hero{display:none}}
.coupons{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.cp{border:2px dashed #7a5a14;border-radius:12px;padding:12px;display:flex;gap:12px;align-items:center;break-inside:avoid;background:linear-gradient(135deg,#fffbe9,#fff);color:#000;position:relative}
.cp .t{font:700 14px Fraunces,serif;color:#14513a}.cp .sn{font-size:21px;font-weight:700;letter-spacing:.06em}.cp .qr{flex:none}.cp small{display:block;color:#444}
