:root{--bg:#0f1412;--bg-2:#171e1a;--panel:#1c2621;--line:#d6e8dc1f;--text:#e8f2ec;--muted:#9bb0a4;--accent:#2fbf71;--accent-2:#1f8f55;--buy:#2fbf71;--sell:#e45757;--warn:#d4a017;--radius:16px;--shadow:0 18px 50px #00000059;--font:"Vazirmatn",Tahoma,sans-serif}*{box-sizing:border-box}html,body{height:100%}body{font-family:var(--font);color:var(--text);background:radial-gradient(1200px 600px at 100% -10%,#2fbf7129,#0000 55%),radial-gradient(900px 500px at -10% 110%,#2f78bf1f,#0000 50%),linear-gradient(160deg,#0c1210,#121916 45%,#0e1411);margin:0}a{color:var(--accent);text-decoration:none}button,input,select{font:inherit}.hidden{display:none!important}.app-shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{border-left:1px solid var(--line);background:#101613eb;flex-direction:column;gap:1.5rem;height:100vh;padding:1.25rem 1rem;display:flex;position:sticky;top:0}.sidebar-brand{flex-direction:column;gap:.15rem;padding:.5rem .75rem;display:flex}.sidebar-brand strong{letter-spacing:.08em;font-size:1.6rem}.sidebar-brand span{color:var(--muted);font-size:.9rem}.nav{flex-direction:column;flex:1;gap:.35rem;display:flex}.nav-item{color:var(--muted);text-align:right;cursor:pointer;background:0 0;border:0;border-radius:12px;padding:.75rem .9rem;transition:all .2s}.nav-item:hover,.nav-item.active{color:var(--text);background:#2fbf711f}.sidebar-foot{flex-direction:column;gap:.6rem;display:flex}.user-chip{color:var(--muted);background:#ffffff0a;border-radius:999px;padding:.55rem .8rem;font-size:.9rem}.main{padding:1.25rem 1.5rem 2rem}.topbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.topbar h1{margin:0 0 .25rem;font-size:1.45rem}.topbar p{color:var(--muted);margin:0}.topbar-status{border:1px solid var(--line);color:var(--muted);background:#ffffff0d;border-radius:999px;padding:.55rem .9rem;font-size:.85rem}.topbar-status.ok{color:var(--buy);border-color:#2fbf7159}.topbar-status.bad{color:var(--sell);border-color:#e4575759}.view{display:none}.view.active{animation:.28s fade;display:block}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.panel{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#1c2621e0;padding:1rem}.panel.narrow{max-width:560px}.panel-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.panel-head h2,.panel h2{margin:0;font-size:1.05rem}.trade-grid{grid-template-columns:280px 1fr 300px;gap:1rem;min-height:70vh;display:grid}.market-list,.orderbook,.trades{max-height:68vh;overflow:auto}.market-item,.ob-row,.trade-row{border-bottom:1px solid var(--line);cursor:pointer;gap:.25rem;padding:.65rem .55rem;display:grid}.market-item:hover,.market-item.active{background:#2fbf7114}.market-item strong{font-size:.95rem}.market-item span,.muted,.hint{color:var(--muted);font-size:.85rem}.change.up{color:var(--buy)}.change.down{color:var(--sell)}.symbol-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.85rem;display:flex}.symbol-head h2{margin:0;font-size:1.3rem}.symbol-head p{color:var(--muted);margin:.25rem 0 0}.order-form{flex-direction:column;gap:.75rem;display:flex}.tabs{gap:.4rem;display:flex}.tab{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:12px;flex:1;padding:.65rem}.tab.active[data-side=buy],.tabs:not(.secondary) .tab.active{color:var(--buy);background:#2fbf7126;border-color:#2fbf7159}.tab.active[data-side=sell]{color:var(--sell);background:#e4575726;border-color:#e4575759}.tabs.secondary .tab.active{color:var(--text);background:#ffffff0f}.field,.stack label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}input,select{border:1px solid var(--line);width:100%;color:var(--text);background:#00000038;border-radius:12px;outline:none;padding:.7rem .8rem}input:focus,select:focus{border-color:#2fbf718c}.btn{cursor:pointer;border:0;border-radius:12px;padding:.75rem 1rem;transition:all .2s}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#04140b;font-weight:700}.btn-primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn-ghost{color:var(--text);border:1px solid var(--line);text-align:center;background:#ffffff0d}.btn-danger{color:var(--sell);cursor:pointer;background:#e4575726;border:1px solid #e457574d;border-radius:8px;padding:.35rem .6rem}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:right;border-bottom:1px solid var(--line);padding:.7rem .5rem;font-size:.9rem}th{color:var(--muted);font-weight:500}.row-actions{align-items:center;gap:.5rem;display:flex}.stack{flex-direction:column;gap:.85rem;display:flex}.docs{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1rem}.ob-row{cursor:default;font-variant-numeric:tabular-nums;grid-template-columns:1fr 1fr}.ob-row.ask{color:var(--sell)}.ob-row.bid{color:var(--buy)}.trade-row{cursor:default;grid-template-columns:1fr 1fr 1fr;font-size:.85rem}.toast{border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow);z-index:50;background:#132019;border-radius:12px;max-width:min(420px,100vw - 2rem);padding:.85rem 1rem;position:fixed;bottom:1rem;left:1rem}.toast.error{border-color:#e4575773}.toast.ok{border-color:#2fbf7173}.auth-body{place-items:center;min-height:100vh;padding:1rem;display:grid}.auth-card{border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);background:#1c2621eb;border-radius:20px;padding:1.5rem}.brand{margin-bottom:1.25rem}.brand-mark{letter-spacing:.12em;color:var(--accent);margin-bottom:.5rem;font-weight:700;display:inline-block}.brand h1{margin:0 0 .35rem;font-size:1.35rem}.brand p{color:var(--muted);margin:0}.alert{border-radius:12px;margin-bottom:1rem;padding:.7rem .85rem}.alert-error{color:#ffb4b4;background:#e457571f;border:1px solid #e457574d}@media (width<=1100px){.trade-grid{grid-template-columns:1fr}.market-list,.orderbook,.trades{max-height:280px}}@media (width<=820px){.app-shell{grid-template-columns:1fr}.sidebar{border-left:0;border-bottom:1px solid var(--line);height:auto;position:static}.nav{flex-flow:wrap}.sidebar-foot{flex-direction:row;align-items:center}}