@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn[wght].woff2) format("woff2-variations"),url(/fonts/Vazirmatn[wght].woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--ink: #0d2622;--ink-2: #163a34;--ink-3: #1f4d45;--lime: #c8f25a;--lime-soft: #eefbd2;--lime-text: #3e6b00;--coral: #ff6a4d;--coral-soft: #ffe7e1;--coral-text: #b4321a;--amber: #ffb547;--amber-soft: #fff3dc;--amber-text: #8a5200;--bg: #f6f3ec;--surface: #ffffff;--surface-2: #fbfaf6;--sunken: #ece7dc;--line: #e7e1d4;--line-strong: #d4ccbb;--text: #10201d;--muted: #6f7a72;--on-ink: #ffffff;--on-ink-muted: #a9c2bb;--focus: rgba(200, 242, 90, .55);--focus-soft: rgba(200, 242, 90, .32);--shadow: 0 1px 0 rgba(13, 38, 34, .04), 0 14px 34px -20px rgba(13, 38, 34, .38);--strong-bg: #0d2622;--strong-fg: #ffffff;--fab-bg: #0d2622;--fab-fg: #c8f25a;--accent-text: #5f8f00;--input-bg: #ffffff;--input-line: #cfc6b3;--input-line-hover: #a99f8a;--input-focus: #0d2622;--placeholder: #9aa39c;--scroll-thumb: #c9c0ad;--scroll-thumb-hover: #a99f8a;--r-sm: 12px;--r: 18px;--r-lg: 24px;--tab-h: 74px;--safe-b: env(safe-area-inset-bottom, 0px);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #08130f;--surface: #0f1f1b;--surface-2: #122621;--sunken: #0b1915;--line: #1c332d;--line-strong: #29463f;--text: #e8f0ec;--muted: #8ea39b;--ink: #0a1c18;--lime-soft: #1f3510;--lime-text: #c8f25a;--coral-soft: #3a1a12;--coral-text: #ff9a85;--amber-soft: #352610;--amber-text: #ffc875;--shadow: 0 14px 34px -20px rgba(0, 0, 0, .8);--strong-bg: #c8f25a;--strong-fg: #0d2622;--fab-bg: #c8f25a;--fab-fg: #0d2622;--accent-text: #c8f25a;--input-bg: #0b1a16;--input-line: #2f4c44;--input-line-hover: #47685f;--input-focus: #c8f25a;--placeholder: #6d8580;--scroll-thumb: #2a443d;--scroll-thumb-hover: #3d5e55;color-scheme:dark}}:root[data-theme=dark]{--bg: #08130f;--surface: #0f1f1b;--surface-2: #122621;--sunken: #0b1915;--line: #1c332d;--line-strong: #29463f;--text: #e8f0ec;--muted: #8ea39b;--ink: #0a1c18;--lime-soft: #1f3510;--lime-text: #c8f25a;--coral-soft: #3a1a12;--coral-text: #ff9a85;--amber-soft: #352610;--amber-text: #ffc875;--shadow: 0 14px 34px -20px rgba(0, 0, 0, .8);--strong-bg: #c8f25a;--strong-fg: #0d2622;--fab-bg: #c8f25a;--fab-fg: #0d2622;--accent-text: #c8f25a;--input-bg: #0b1a16;--input-line: #2f4c44;--input-line-hover: #47685f;--input-focus: #c8f25a;--placeholder: #6d8580;--scroll-thumb: #2a443d;--scroll-thumb-hover: #3d5e55;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Vazirmatn,Tahoma,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}h1,h2,h3,h4{margin:0;line-height:1.4}p{margin:0}.ltr{direction:ltr;unicode-bidi:isolate}.num{font-feature-settings:"tnum";direction:ltr;unicode-bidi:isolate}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}html{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent;scroll-behavior:smooth}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:999px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:padding-box;border:2px solid transparent}::-webkit-scrollbar-corner{background:transparent}.no-scrollbar,.seg{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar,.seg::-webkit-scrollbar{display:none}.strip{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:2px;-webkit-mask-image:linear-gradient(to left,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%);mask-image:linear-gradient(to left,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%)}.strip::-webkit-scrollbar{display:none}.strip>*{scroll-snap-align:start;flex:none}.table-wrap{scrollbar-gutter:stable}.page{padding:16px 16px calc(var(--tab-h) + var(--safe-b) + 24px);max-width:1180px;margin:0 auto}@media (min-width: 960px){.page{padding:28px 32px 48px}}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.page-head h1{font-size:22px;font-weight:900;letter-spacing:-.3px}.page-head .grow{flex:1}@media (min-width: 960px){.page-head h1{font-size:26px}}.card,.ink-card,.stat,.grid>*,.form-grid>*{min-width:0}html,body{max-width:100%;overflow-x:clip}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px}.card.pad-lg{padding:22px}.card-title{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:15px;margin-bottom:12px;gap:8px}.card-title small{color:var(--muted);font-weight:700;font-size:12px}.ink-card{background:var(--ink);color:var(--on-ink);border-radius:var(--r-lg);padding:18px;position:relative;overflow:hidden}.ink-card .k{color:var(--on-ink-muted);font-size:12px;font-weight:700}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:10px;align-items:center}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (min-width: 960px){.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.split{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}}.btn{height:50px;border-radius:16px;border:0;padding:0 20px;cursor:pointer;font-weight:800;font-size:15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;white-space:nowrap}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--focus)}.btn[disabled]{opacity:.5;pointer-events:none}.btn.block{width:100%}.btn.sm{height:40px;border-radius:13px;padding:0 14px;font-size:13.5px}.btn.primary{background:var(--lime);color:#0d2622}.btn.dark{background:var(--strong-bg);color:var(--strong-fg)}.btn.ghost{background:transparent;border:1.5px solid var(--line-strong);color:var(--text)}.btn.danger{background:var(--coral-soft);color:var(--coral-text)}.icon-btn{width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:var(--surface);display:inline-grid;place-items:center;cursor:pointer;position:relative;color:var(--text);flex:none}.icon-btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--focus)}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:12.5px;font-weight:700;color:var(--muted)}.field .hint{font-size:12px;color:var(--muted)}.field .err{font-size:12px;color:var(--coral-text);font-weight:700}.input{height:52px;border-radius:16px;border:1.5px solid var(--input-line);background:var(--input-bg);padding:0 14px;font-size:15px;font-weight:600;width:100%;color:var(--text);transition:border-color .12s,box-shadow .12s,background .12s;-webkit-appearance:none;appearance:none}.input:hover{border-color:var(--input-line-hover)}.input:focus,.input:focus-visible{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 2px var(--focus-soft);background:var(--surface)}.input:disabled,.input[readonly]{background:var(--sunken);color:var(--muted);cursor:not-allowed}.input.invalid,.input.ng-invalid.ng-touched:not(form){border-color:var(--coral)}textarea.input{height:auto;min-height:96px;padding:12px 14px;resize:vertical;line-height:1.8}select.input{padding-left:40px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236f7a72' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 14px center;background-size:16px}select.input option{background:var(--surface);color:var(--text)}.input.ltr{text-align:left;direction:ltr}.input::placeholder{color:var(--placeholder);font-weight:500;opacity:1}.input.sm{height:42px;border-radius:13px;font-size:14px}input[type=date].input{direction:ltr;text-align:left}input[type=date].input::-webkit-calendar-picker-indicator{opacity:.6;cursor:pointer}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:700;font-size:14px;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch .track{width:46px;height:28px;border-radius:999px;background:var(--input-line);position:relative;transition:background .15s;flex:none}.switch .track:after{content:"";position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .15s}.switch input:checked+.track{background:var(--ink-3)}.switch input:checked+.track:after{transform:translate(-18px)}.switch input:focus-visible+.track{box-shadow:0 0 0 4px var(--focus)}:root[data-theme=dark] .switch input:checked+.track{background:#c8f25a}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .switch input:checked+.track{background:#c8f25a}}.form-grid{display:grid;gap:14px}@media (min-width: 720px){.form-grid.cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.seg{display:flex;background:var(--sunken);border-radius:16px;padding:4px;gap:4px;overflow-x:auto;scrollbar-width:none}.seg button{flex:1;border:0;background:transparent;padding:9px 12px;border-radius:12px;font-weight:800;font-size:13px;color:var(--muted);cursor:pointer;white-space:nowrap}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 2px 6px #0000000f}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:9px;white-space:nowrap}.badge.ok{background:var(--lime-soft);color:var(--lime-text)}.badge.wait{background:var(--amber-soft);color:var(--amber-text)}.badge.bad{background:var(--coral-soft);color:var(--coral-text)}.badge.idle{background:var(--sunken);color:var(--muted)}.chip{display:inline-flex;gap:6px;align-items:center;font-size:12px;font-weight:700;padding:6px 11px;border-radius:999px;background:#ffffff17;color:#d8e7e2}.chip.up{background:#c8f25a29;color:var(--lime)}.list{display:flex;flex-direction:column;gap:8px}.item{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:12px;text-align:right;width:100%;cursor:pointer;transition:border-color .12s}.item:hover{border-color:var(--line-strong)}.item:focus-visible{outline:none;box-shadow:0 0 0 4px var(--focus)}.item .ic{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;flex:none;font-weight:900}.ic.ok{background:var(--lime-soft);color:var(--lime-text)}.ic.wait{background:var(--amber-soft);color:var(--amber-text)}.ic.bad{background:var(--coral-soft);color:var(--coral-text)}.ic.idle{background:var(--sunken);color:var(--muted)}.item .body{flex:1;min-width:0}.item .body b{display:block;font-weight:800;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item .body span{font-size:12px;color:var(--muted);font-weight:600}.item .end{text-align:left;font-weight:900;font-size:14px;white-space:nowrap}.item .end small{display:block;font-size:11px;color:var(--muted);font-weight:700}.day-label{font-size:12px;font-weight:800;color:var(--muted);margin:14px 4px 4px}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13.5px}table.data th{font-size:12px;color:var(--muted);font-weight:800;text-align:right;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}table.data td{padding:13px 12px;border-bottom:1px solid var(--line);font-weight:600;white-space:nowrap}table.data tr.click{cursor:pointer}table.data tr.click:hover td{background:var(--surface-2)}.only-mobile{display:block}.only-desktop{display:none}@media (min-width: 960px){.only-mobile{display:none}.only-desktop{display:block}}.stat .k{font-size:12px;color:var(--muted);font-weight:700}.stat .v{font-size:clamp(17px,5.2vw,22px);font-weight:900;margin-top:6px;letter-spacing:-.3px;overflow-wrap:anywhere}.stat .d{font-size:12px;font-weight:800;margin-top:4px}.meter{height:7px;border-radius:9px;background:var(--sunken);overflow:hidden;margin-top:10px}.meter i{display:block;height:100%;border-radius:9px;background:var(--ink-3)}.backdrop{position:fixed;inset:0;background:#050f0c73;z-index:60;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease}.sheet{background:var(--bg);width:100%;max-height:92vh;overflow-y:auto;border-radius:28px 28px 0 0;padding:10px 18px calc(22px + var(--safe-b));animation:rise .22s cubic-bezier(.2,.8,.2,1)}.sheet .grip{width:44px;height:5px;border-radius:9px;background:var(--line-strong);margin:2px auto 14px}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:10px}.sheet-head h3{font-size:18px;font-weight:900}@media (min-width: 720px){.backdrop{align-items:center}.sheet{max-width:520px;border-radius:28px;padding:22px}.sheet .grip{display:none}}@keyframes rise{0%{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}.notice{display:flex;gap:10px;align-items:flex-start;border-radius:16px;padding:12px 14px;font-size:13px;font-weight:700;line-height:1.8}.notice.warn{background:var(--amber-soft);color:var(--amber-text)}.notice.err{background:var(--coral-soft);color:var(--coral-text)}.notice.ok{background:var(--lime-soft);color:var(--lime-text)}.notice.info{background:var(--sunken);color:var(--text)}.empty{text-align:center;padding:40px 16px;color:var(--muted);font-weight:700}.empty .ico{width:56px;height:56px;border-radius:18px;background:var(--sunken);display:grid;place-items:center;margin:0 auto 12px}.skeleton{background:linear-gradient(90deg,var(--sunken) 0%,var(--surface-2) 50%,var(--sunken) 100%);background-size:200% 100%;animation:shimmer 1.2s infinite linear;border-radius:14px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tab-h) + var(--safe-b) + 14px);z-index:80;background:#0d2622;color:#fff;padding:12px 18px;border-radius:16px;font-weight:700;font-size:13.5px;box-shadow:var(--shadow);animation:rise .2s ease;max-width:calc(100vw - 32px)}.toast.err{background:var(--coral)}@media (min-width: 960px){.toast{bottom:28px}}.spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid currentColor;border-left-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.kv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;font-size:13.5px;border-bottom:1px dashed var(--line)}.kv:last-child{border-bottom:0}.kv span{color:var(--muted);font-weight:600}.kv b{font-weight:800;text-align:left;word-break:break-all}.mark{display:inline-flex;align-items:center;gap:8px;font-weight:900;font-size:19px;letter-spacing:-.4px;direction:ltr;text-decoration:none}.mark i{width:34px;height:34px;border-radius:11px;background:var(--lime);color:#0d2622;display:grid;place-items:center;font-style:normal;font-size:14px;font-weight:900;box-shadow:inset 0 -3px #00000014}.mark b span{color:var(--accent-text)}.mark.light b{color:#fff}.mark.light b span{color:var(--lime)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
