@import "https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800&display=swap";:root{--font:"Vazirmatn", Tahoma, sans-serif;--bg:#f0f4f8;--bg-elevated:#fff;--bg-soft:#e8eef5;--bg-muted:#dce5f0;--text:#0f1b2d;--muted:#5b6b7f;--border:#d0dbe8;--primary:#0d9488;--primary-hover:#0f766e;--primary-soft:#0d94881f;--primary-fg:#f0fdfa;--accent:#0284c7;--accent-soft:#0284c71f;--danger:#e11d48;--danger-soft:#e11d481a;--success:#059669;--success-soft:#0596691f;--warning:#d97706;--warning-soft:#d977061f;--shadow:0 4px 24px #0f1b2d0f;--shadow-lg:0 20px 50px #0f1b2d1f;--radius:16px;--radius-sm:10px;--sidebar:#0b1f2a;--sidebar-2:#123040;--sidebar-fg:#e8f4f2;--topbar-bg:#ffffffd1}html[data-theme=dark]{--bg:#0a1218;--bg-elevated:#12202b;--bg-soft:#1a2d3a;--bg-muted:#243848;--text:#e8f1f6;--muted:#8aa0b2;--border:#2a4050;--primary:#2dd4bf;--primary-hover:#5eead4;--primary-soft:#2dd4bf24;--primary-fg:#042f2e;--accent:#38bdf8;--accent-soft:#38bdf824;--danger:#fb7185;--danger-soft:#fb718524;--success:#34d399;--success-soft:#34d39924;--warning:#fbbf24;--warning-soft:#fbbf2424;--shadow:0 8px 32px #00000059;--shadow-lg:0 24px 60px #00000073;--sidebar:#061018;--sidebar-2:#0c1a24;--sidebar-fg:#d5ebe7;--topbar-bg:#12202bdb}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font);background:radial-gradient(900px 420px at 100% -5%, #0d948824, transparent 55%), radial-gradient(700px 380px at -5% 100%, #0284c71a, transparent 50%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;direction:rtl;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{grid-template-columns:272px 1fr;min-height:100vh;display:grid}.sidebar{background:linear-gradient(185deg, var(--sidebar) 0%, var(--sidebar-2) 100%);color:var(--sidebar-fg);border-left:1px solid #ffffff0a;flex-direction:column;gap:1.1rem;padding:1.35rem 1rem;display:flex}.brand{letter-spacing:-.02em;align-items:center;gap:.75rem;padding:.35rem .55rem .85rem;font-size:1.05rem;font-weight:800;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#14b8a6,#0284c7);border-radius:12px;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 8px 20px #0d948859}.nav{flex-direction:column;flex:1;gap:.28rem;display:flex;overflow:auto}.nav a{color:#e8f4f2b8;border-radius:12px;align-items:center;gap:.7rem;padding:.72rem .85rem;transition:all .15s;display:flex}.nav a svg{opacity:.85;flex-shrink:0}.nav a.active,.nav a:hover{color:#fff;background:#ffffff17}.nav a.active{background:linear-gradient(90deg,#14b8a647,#0284c71f);box-shadow:inset 3px 0 #2dd4bf}.sidebar-foot{background:#ffffff0d;border-radius:12px;padding:.75rem;font-size:.85rem}.main{flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--topbar-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:10;justify-content:space-between;align-items:center;gap:1rem;padding:.95rem 1.35rem;display:flex;position:sticky;top:0}.content{padding:1.35rem}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.15rem 1.2rem}.grid{gap:1rem;display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{flex-direction:column;gap:.45rem;display:flex;position:relative;overflow:hidden}.stat:after{content:"";inset-inline-end:-20px;background:var(--primary-soft);border-radius:50%;width:90px;height:90px;position:absolute;top:-20px}.stat .label{color:var(--muted);z-index:1;font-size:.9rem}.stat .value{z-index:1;letter-spacing:-.03em;font-size:1.75rem;font-weight:800}.btn{cursor:pointer;background:linear-gradient(135deg, var(--primary), #0e7490);color:var(--primary-fg);border:none;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;padding:.62rem 1rem;font-weight:700;transition:transform .12s,box-shadow .12s,filter .12s;display:inline-flex;box-shadow:0 8px 18px #0d948838}.btn:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn.secondary{background:var(--bg-soft);color:var(--text);border:1px solid var(--border);box-shadow:none}.btn.danger{color:#fff;background:linear-gradient(135deg,#e11d48,#be123c);box-shadow:0 8px 18px #e11d4838}.btn.ghost{color:inherit;box-shadow:none;background:0 0;border:1px solid #0000}.btn.sm{border-radius:10px;padding:.42rem .7rem;font-size:.88rem}.btn.icon-only{width:40px;height:40px;padding:.55rem}.field{flex-direction:column;gap:.4rem;margin-bottom:.95rem;display:flex}.field label{color:var(--muted);font-size:.9rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:12px;padding:.72rem .85rem;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:right;border-bottom:1px solid var(--border);vertical-align:top;padding:.8rem .6rem;font-size:.92rem}th{color:var(--muted);text-transform:none;font-size:.82rem;font-weight:700}.badge{background:var(--bg-soft);border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .65rem;font-size:.78rem;font-weight:700;display:inline-flex}.badge.ok{background:var(--success-soft);color:var(--success)}.badge.warn{background:var(--warning-soft);color:var(--warning)}.badge.err{background:var(--danger-soft);color:var(--danger)}.login-page{background:radial-gradient(800px 400px at 20% 10%, #0d948833, transparent 50%), radial-gradient(700px 360px at 90% 80%, #0284c72e, transparent 45%), var(--bg);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{width:min(420px,100%)}.row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.muted{color:var(--muted)}.error{color:var(--danger);margin:.5rem 0}.success{color:var(--success)}.toast-viewport{z-index:2000;pointer-events:none;flex-direction:column;gap:.65rem;width:min(380px,100vw - 1.5rem);display:flex;position:fixed;inset-block-start:1rem;inset-inline-end:1rem}.toast{pointer-events:auto;border:1px solid var(--border);background:var(--bg-elevated);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;align-items:flex-start;gap:.7rem;padding:.85rem .9rem;animation:.22s toastIn;display:flex}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:none}}.toast-icon{border-radius:10px;flex-shrink:0;place-items:center;width:2rem;height:2rem;display:grid}.toast-body{flex:1;min-width:0}.toast-title{letter-spacing:.02em;margin-bottom:.15rem;font-size:.78rem;font-weight:800}.toast-msg{word-break:break-word;font-size:.9rem;font-weight:600;line-height:1.45}.toast-close{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;place-items:center;padding:.15rem;display:grid}.toast-close:hover{background:var(--bg-soft);color:var(--text)}.toast-success{border-color:color-mix(in srgb, var(--success) 35%, var(--border));background:color-mix(in srgb, var(--success) 12%, var(--bg-elevated))}.toast-success .toast-icon{color:var(--success);background:color-mix(in srgb, var(--success) 18%, transparent)}.toast-success .toast-title{color:var(--success)}.toast-error{border-color:color-mix(in srgb, var(--danger) 35%, var(--border));background:color-mix(in srgb, var(--danger) 12%, var(--bg-elevated))}.toast-error .toast-icon{color:var(--danger);background:color-mix(in srgb, var(--danger) 18%, transparent)}.toast-error .toast-title{color:var(--danger)}.toast-info{border-color:color-mix(in srgb, var(--primary) 35%, var(--border));background:color-mix(in srgb, var(--primary) 12%, var(--bg-elevated))}.toast-info .toast-icon{color:var(--primary);background:color-mix(in srgb, var(--primary) 18%, transparent)}.toast-info .toast-title{color:var(--primary)}.toast-warn{border-color:color-mix(in srgb, #e6a23c 40%, var(--border));background:color-mix(in srgb, #e6a23c 14%, var(--bg-elevated))}.toast-warn .toast-icon{color:#d48806;background:#e6a23c38}.toast-warn .toast-title{color:#d48806}.h1{letter-spacing:-.02em;margin:0 0 1rem;font-size:1.4rem;font-weight:800}.mobile-toggle{display:none}.tag-input{border:1px solid var(--border);background:var(--bg);border-radius:12px;flex-wrap:wrap;align-items:center;gap:.4rem;min-height:48px;padding:.5rem .6rem;display:flex}.tag-input input{outline:none;flex:1;min-width:140px;box-shadow:none!important;background:0 0!important;border:none!important;padding:.35rem!important}.tag-badge{background:var(--primary-soft);color:var(--text);border:1px solid color-mix(in srgb, var(--primary) 30%, var(--border));border-radius:999px;align-items:center;gap:.3rem;padding:.28rem .6rem;font-size:.85rem;font-weight:700;display:inline-flex}.tag-remove{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.tag-remove:hover{color:var(--danger)}.sync-btn{gap:.45rem}.sync-icon.spin,.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(-360deg)}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.35rem;display:flex}.page-head .h1{margin-bottom:0}.logs-shell{padding:0;overflow:hidden}.logs-tabs{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg-soft) 55%, transparent);gap:.25rem;padding:.65rem .75rem 0;display:flex}.logs-tab{appearance:none;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:12px 12px 0 0;align-items:center;gap:.45rem;margin-bottom:-1px;padding:.7rem 1rem;font-size:.92rem;font-weight:700;display:inline-flex}.logs-tab:hover{color:var(--text);background:color-mix(in srgb, var(--bg) 70%, transparent)}.logs-tab.active{color:var(--text);background:var(--bg-elevated);border-bottom-color:var(--primary)}.logs-tab-count{background:var(--bg-soft);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.1rem .45rem;font-size:.75rem;font-weight:800}.logs-tab.active .logs-tab-count{background:color-mix(in srgb, var(--primary) 16%, transparent);border-color:color-mix(in srgb, var(--primary) 35%, var(--border));color:var(--text)}.logs-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.logs-table-wrap{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--muted) 45%, transparent) transparent;max-height:min(62vh,640px);overflow:auto}.logs-table{margin:0}.logs-table th{z-index:1;background:var(--bg-elevated);box-shadow:0 1px 0 var(--border);position:sticky;top:0}.logs-table td,.logs-table th{vertical-align:middle}.logs-text{white-space:nowrap;text-overflow:ellipsis;max-width:320px;font-size:.9rem;overflow:hidden}.logs-time,.logs-user,.logs-dest{white-space:nowrap;font-size:.86rem}.logs-table tr.row-selected td{background:color-mix(in srgb, var(--primary) 8%, transparent)}.logs-pager{border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg-soft) 40%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.chat-count-badge{appearance:none;border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border));background:linear-gradient(135deg, color-mix(in srgb, var(--accent-soft) 90%, transparent), color-mix(in srgb, var(--primary-soft) 85%, transparent));color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 8%, transparent);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s,transform .12s}.chat-count-badge:hover{border-color:color-mix(in srgb, var(--accent) 65%, var(--border));background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 18%, transparent), color-mix(in srgb, var(--primary) 14%, transparent));transform:translateY(-1px)}.chat-count-badge:active{transform:translateY(0)}.toggle-badge{appearance:none;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;transition:filter .12s,transform .12s}.toggle-badge:hover{filter:brightness(1.06);transform:translateY(-1px)}.badge.muted-badge{background:var(--bg-soft);color:var(--muted);border:1px solid var(--border)}.rule-chats-list{gap:.55rem;display:grid}.rule-chat-item{border:1px solid var(--border);background:var(--bg);border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .85rem;display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:60;background:#08121c8c;place-items:center;padding:1rem;animation:.15s fadeIn;display:grid;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--bg-elevated);border:1px solid var(--border);width:min(720px,100%);max-height:90vh;box-shadow:var(--shadow-lg);border-radius:20px;flex-direction:column;padding:0;animation:.18s riseIn;display:flex;overflow:hidden}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.modal-head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 1.25rem;display:flex}.modal-head h3{margin:0;font-size:1.1rem}.modal-body{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--muted) 45%, transparent) transparent;flex:1;min-height:0;padding:1.2rem 1.25rem;overflow:auto}.modal-body::-webkit-scrollbar{width:6px;height:6px}.modal-body::-webkit-scrollbar-track{background:0 0;margin:4px 0}.modal-body::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--muted) 40%, transparent);background-clip:padding-box;border:1px solid #0000;border-radius:999px}.modal-body::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--muted) 65%, transparent)}.modal-body::-webkit-scrollbar-corner{background:0 0}.log-detail-row{border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);grid-template-columns:140px 1fr;align-items:start;gap:.5rem 1rem;padding:.35rem 0;display:grid}.log-pre{border:1px solid var(--border);background:var(--bg-soft);white-space:pre-wrap;word-break:break-word;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--muted) 45%, transparent) transparent;border-radius:12px;max-height:220px;margin:0;padding:.75rem .9rem;font-size:.88rem;overflow:auto}.log-pre::-webkit-scrollbar{width:5px}.log-pre::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--muted) 40%, transparent);border-radius:999px}.log-cond-list{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.ltr{direction:ltr;unicode-bidi:isolate}.modal-foot{border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg-soft) 55%, transparent);flex-shrink:0;justify-content:flex-start;gap:.6rem;padding:1rem 1.25rem 1.2rem;display:flex}.condition-groups{gap:.35rem;display:grid}.condition-group{border:1px dashed color-mix(in srgb, var(--primary) 35%, var(--border));background:color-mix(in srgb, var(--bg-soft) 70%, transparent);border-radius:16px;padding:.85rem}.condition-or-sep{color:var(--muted);letter-spacing:.06em;justify-content:center;align-items:center;gap:.75rem;margin:.15rem 0;font-size:.78rem;font-weight:800;display:flex}.condition-or-sep:before,.condition-or-sep:after{content:"";background:var(--border);flex:1;height:1px}.condition-or-sep span{border:1px solid var(--border);background:var(--bg);border-radius:999px;padding:.15rem .55rem}.condition-list{gap:.75rem;display:grid}.condition-item{border:1px solid var(--border);background:var(--bg);border-radius:14px;padding:.85rem}.chat-pill{border:1px solid var(--border);background:var(--bg-soft);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .75rem;font-size:.88rem;font-weight:600;display:inline-flex}.chat-pill.active{background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary) 40%, var(--border));color:var(--text)}.link-row{border:1px solid var(--border);background:var(--bg);border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .8rem;display:flex}@media (width<=960px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:40;width:min(280px,86vw);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(110%)}.sidebar.open{transform:translate(0)}.mobile-toggle{display:inline-flex}.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}.backdrop{z-index:30;background:#00000073;position:fixed;inset:0}}
