:root{--bg: #f3efe6;--surface: #fffcf7;--text: #1c1917;--muted: #6b645b;--border: #e4dccf;--accent: #0f5c4c;--accent-ink: #f7fffc;--green: #157a45;--amber: #a16207;--red: #b42318;--shadow: 0 1px 0 rgba(28, 25, 23, .04);--mono: "IBM Plex Mono", ui-monospace, monospace;--ar: "Noto Kufi Arabic", sans-serif;--field-h: 2.45rem;--panel-pad: 1.35rem 1.45rem;--stat-pad: .4rem .7rem;--stat-size: 1.85rem;color-scheme:light}html[data-theme=dark]{--bg: #16181d;--surface: #1e2128;--text: #f3efe6;--muted: #b7b1a8;--border: #343842;--accent: #0f5c4c;--accent-ink: #f4fbf8;--green: #3ddc84;--amber: #f5b942;--red: #ff6b6b;--shadow: none;color-scheme:dark}html[data-theme=dark] .tone-accent{color:#8fd9c8}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--ar);font-size:14px;line-height:1.45}button,input,select,textarea{font-family:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:.55rem;padding:.45rem .7rem;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:20}.topbar h1{margin:0;font-size:.95rem;font-weight:700}.topbar-spacer{margin-inline-start:auto;display:flex;gap:.4rem}.icon-btn,.btn,.btn-ghost{border:1px solid var(--border);background:var(--surface);border-radius:6px;min-height:2rem;padding:.2rem .65rem;font-size:.78rem;font-weight:600}.icon-btn{width:2.1rem;padding:0;display:grid;place-items:center}.btn-primary,.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-ghost{background:transparent}.menu-icon{width:14px;height:10px;display:flex;flex-direction:column;justify-content:space-between}.menu-icon span{display:block;height:1.5px;background:var(--text);border-radius:1px}.shell-body{display:flex;min-height:0;flex:1}.drawer{width:min(240px,86vw);background:var(--surface);border-inline-end:1px solid var(--border);padding:.55rem;display:flex;flex-direction:column;gap:.25rem}.drawer.overlay{position:fixed;inset-block:0;inset-inline-start:0;z-index:30;box-shadow:8px 0 24px #0000002e}.backdrop{position:fixed;inset:0;border:0;background:#16181d61;z-index:25}.nav-link{display:block;text-decoration:none;color:var(--text);border-radius:6px;padding:.45rem .6rem;font-size:.82rem;font-weight:600}.nav-link.active,.nav-link[aria-current=page]{background:var(--accent);color:var(--accent-ink)}.nav-foot{margin-top:auto;padding-top:.5rem}.content{flex:1;min-width:0;padding:.75rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:var(--panel-pad);margin-bottom:.65rem;box-shadow:var(--shadow)}.panel h2{margin:0 0 .55rem;font-size:.92rem}.panel.banded{padding:0;overflow:hidden}.panel.banded h2{margin:0;padding:.55rem 1.45rem;background:#2f8a74;color:var(--accent-ink);font-weight:800}.panel-body{padding:var(--panel-pad)}.section-title{margin:.35rem 0;font-size:.72rem;color:var(--muted);font-weight:700}.row-title{display:block;width:100%;box-sizing:border-box;margin:.9rem 0 .45rem;padding:.5rem .9rem;background:#2f8a74;color:var(--accent-ink);font-size:.95rem;font-weight:800;border-radius:6px}.panel>h2+.row-title{margin-top:0}.key-control{display:grid;grid-template-columns:1fr auto;column-gap:.55rem;row-gap:.35rem;margin-top:.75rem}.key-control .field{display:contents}.key-control .field>span{grid-column:1;grid-row:1;font-size:.92rem;color:var(--text);font-family:var(--ar);font-weight:800;line-height:1.35}.key-control select{grid-column:1;grid-row:2;width:100%}.key-control .btn{grid-column:2;grid-row:2;align-self:stretch;min-height:var(--field-h);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.key-rotation{margin-top:.75rem;min-height:var(--field-h)}.key-rotation+.table-wrap{margin-top:.75rem}.pool-add{display:flex;align-items:flex-end;gap:.55rem;width:100%;margin-top:.75rem}.pool-add .field{flex:1;min-width:0}.pool-add .btn{flex:0 0 auto;min-height:var(--field-h);white-space:nowrap}.overview-tail{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1rem;margin-top:.9rem;align-items:start}.overview-fold{margin-top:0}.overview-expiring{grid-column:1;grid-row:1}.overview-online{grid-column:2;grid-row:1}.overview-issues{grid-column:1 / -1;grid-row:2}.overview-fold-row{display:grid;grid-template-columns:1fr auto;column-gap:.55rem;row-gap:.35rem;align-items:stretch}.overview-fold-row .stat{display:contents}.overview-fold-row .stat-label{grid-column:1;grid-row:1}.overview-fold-row .stat-card{grid-column:1;grid-row:2;width:100%;margin-top:0}.overview-fold-row .btn{grid-column:2;grid-row:2;align-self:stretch;height:auto;min-height:0;display:inline-flex;align-items:center;justify-content:center}.overview-fold .btn{min-height:var(--field-h);white-space:nowrap}.overview-fold .table-wrap{margin-top:.45rem}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem .7rem}.stat-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-grid+.stat-grid,.stat-grid+.row{margin-top:.85rem}.stat-card{border:1px solid var(--border);border-radius:6px;padding:var(--stat-pad);background:var(--bg);min-width:0}.stat{min-width:0;height:100%;display:flex;flex-direction:column;gap:.35rem}.stat-card{margin-top:auto}.stat-label{font-size:.92rem;color:var(--text);font-family:var(--ar);font-weight:800;line-height:1.35}.stat-value{font-family:var(--mono);font-size:var(--stat-size);font-weight:600;line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.tone-accent{color:var(--accent)}.tone-green{color:var(--green)}.tone-amber{color:var(--amber)}.tone-red{color:var(--red)}.tone-text{color:var(--text)}.tone-muted{color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.2rem}.form-grid>.actions{grid-column:1 / -1}.create-user-row{grid-column:1 / -1;display:flex;align-items:stretch;gap:.55rem}.create-user-row select{flex:1;min-width:0}.create-user-row .btn{flex:1 1 0;min-height:var(--field-h);white-space:nowrap}.field{min-width:0;display:flex;flex-direction:column;gap:.4rem}.copy-row{display:flex;align-items:stretch;gap:.4rem}.copy-row input{flex:1;min-width:0}.copy-row .btn{flex:0 0 auto;min-height:var(--field-h)}.field.span-2{grid-column:span 2}.field label{font-size:.72rem;color:var(--muted);font-weight:600}.field input,.field select,.field textarea,.create-user-row select{width:100%;height:auto;min-height:var(--field-h);border:1px solid var(--border);border-radius:7px;background:var(--bg);padding:.6rem .85rem;font-size:.85rem}.field textarea{height:auto;min-height:4.5rem;padding-block:.4rem}.actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}.check-row{display:flex;align-items:center;gap:.4rem;font-size:.8rem}.check-row input{width:auto;height:auto}.status{font-size:.78rem;min-height:1.1rem}.status.err{color:var(--red)}.status.ok{color:var(--green)}.status.proc{color:var(--amber)}.table-wrap{overflow-x:auto;max-width:100%}.preview-wrap{max-height:28rem}.preview-wrap td{white-space:normal;max-width:16rem}table{width:100%;border-collapse:collapse;font-size:.75rem}th,td{border-bottom:1px solid var(--border);padding:.28rem .4rem;text-align:start;white-space:nowrap}th{color:var(--muted);font-weight:600}.mono{font-family:var(--mono)}.login-wrap{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:1rem}@media(min-width:700px){.login-wrap{align-items:center}}.login-card{width:min(380px,100%)}.suggest{border:1px solid var(--border);border-radius:6px;background:var(--surface);margin-top:.2rem;max-height:220px;overflow:auto}.suggest button{display:flex;width:100%;justify-content:space-between;gap:.5rem;border:0;background:transparent;padding:.35rem .5rem;text-align:start}.suggest button:hover,.suggest button.active{background:var(--bg)}.user-detail{width:100%;margin-top:.8rem}.detail-close{display:flex;align-items:stretch;gap:.45rem}.member-name{flex:1;display:flex;align-items:center;min-height:2.4rem;font-size:1.05rem;font-weight:800;color:#1c1917;background:#ffd7a8;border:1px solid #f0a35a;border-radius:6px;padding:.35rem .85rem}.detail-close .icon-btn{width:2.4rem;height:auto;font-size:1.35rem;line-height:1;background:var(--red);border-color:var(--red);color:#1c1917}.detail-section{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);margin-top:.65rem}.detail-section.notice-box{margin-bottom:.85rem}.detail-section h3{display:block;width:100%;margin:0;padding:.45rem .75rem;min-height:2rem;font-size:.78rem;font-weight:600;color:var(--accent-ink);background:var(--accent);border:0;border-radius:0}.kv{width:100%;border-collapse:collapse}.kv th,.kv td{white-space:normal;vertical-align:middle;padding:.5rem .65rem;font-size:.8rem}.kv th{width:22%;color:var(--muted);font-weight:600}.kv select{width:100%;min-height:2.2rem;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--text);padding:.35rem .55rem}.kv-empty{text-align:center;color:var(--muted)}.wrap{overflow-wrap:anywhere}.hint{margin-inline-start:.5rem;color:var(--muted);font-size:.75rem}.tone-warn{color:var(--amber);font-weight:600}.tone-bad{color:var(--red);font-weight:700}.detail-actions{display:flex;align-items:stretch;gap:.45rem;padding:.7rem;width:100%}.detail-actions .btn{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;min-height:2.85rem;text-align:center}.user-detail .btn.primary,.user-detail .btn.activate,.btn.activate{background:#2f8a74;border-color:#2f8a74;color:var(--accent-ink)}.btn.suspend{background:#e86a17;border-color:#e86a17;color:#1c1917}.btn.danger{background:var(--red);border-color:var(--red);color:#1c1917}.btn.auto-renew-on,.user-detail .btn.auto-renew-on{background:#6b1e2a;border-color:#6b1e2a;color:#f8e9ec}.stack{display:flex;flex-direction:column;gap:.45rem}.cert-result{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:0}.cert-result-meta{min-width:0}.cert-result-name{font-weight:700;overflow-wrap:anywhere}.cert-result-date{margin-top:.2rem;font-size:.85rem}.cert-result-actions{display:flex;gap:.4rem;flex:0 0 auto}.cert-viewer{margin-top:.75rem}.cert-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.4rem}.cert-frame{width:100%;height:70vh;border:1px solid var(--border);border-radius:6px;background:#fff}.add-member-row,.search-row{display:flex;align-items:flex-end;gap:.55rem}.add-member-row .field,.search-row .field{flex:1}.add-member-row .btn,.search-row .btn{min-height:var(--field-h);white-space:nowrap}.row{display:flex;gap:.4rem;flex-wrap:wrap;align-items:end}.grow{flex:1;min-width:140px}.work-tabs{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.9rem}.work-tab{text-decoration:none;border:1px solid var(--border);border-radius:10px;padding:.55rem .95rem;font-weight:800;color:var(--text);background:var(--surface)}.work-tab.tafrigh.on{background:#0ea5e9;border-color:#0ea5e9;color:#fff}.work-tab.field.on{background:#14b8a6;border-color:#14b8a6;color:#042f2e}.work-tab.check.on,.work-tab.admin{background:#7c3aed;border-color:#7c3aed;color:#fff}.work-page{display:flex;flex-direction:column;gap:.85rem}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.drop-zone{display:flex;flex-direction:column;align-items:center;gap:.25rem;border:1px dashed var(--border);border-radius:12px;padding:1.15rem .8rem;text-align:center;cursor:pointer;background:var(--bg);transition:border-color .15s ease,background .15s ease}.drop-zone:hover,.drop-zone.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg))}.drop-zone strong{font-size:.95rem}.drop-zone span,.hint{color:var(--muted);font-size:.78rem}.file-line,.excel-tools,.pw-line,.col-line,.cert-farz,.mode-row,.rec-choices,.hit-head{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin-top:.65rem}.col-line select,.cert-farz select,.field select{min-height:var(--field-h);border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);padding:0 .6rem}.badge{border:1px solid var(--border);border-radius:999px;padding:.15rem .55rem;font-size:.75rem}.mode-box{border:1px solid var(--border);border-radius:8px;padding:.65rem .75rem;margin-bottom:.75rem;display:flex;flex-wrap:wrap;gap:.55rem .9rem}.export-cols{margin-top:.7rem}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:.3rem .8rem;margin-top:.45rem}.match-btn,.send-all{width:100%;min-height:2.7rem}.warn-line{text-align:center;color:var(--red);font-weight:800;margin:.2rem 0 0}.sheet{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-top:.7rem}.sheet-title{background:#2f8a74;color:var(--accent-ink);font-weight:800;padding:.4rem .7rem}.rec-cluster{display:flex;justify-content:center;gap:1.6rem;align-items:flex-end;margin:.2rem 0 .35rem}.rec-col{display:flex;flex-direction:column;align-items:center;gap:.4rem;font-size:.78rem;font-weight:700}.rec-orb{position:relative;display:grid;place-items:center}.rec-orb.on:before,.rec-orb.on:after{content:"";position:absolute;width:4.8rem;height:4.8rem;border-radius:50%;border:2px solid #ef4444;animation:rec-pulse 1.5s ease-out infinite;pointer-events:none}.rec-orb.on:after{animation-delay:.75s}@keyframes rec-pulse{0%{transform:scale(1);opacity:.55}to{transform:scale(1.42);opacity:0}}@media(prefers-reduced-motion:reduce){.rec-orb.on:before,.rec-orb.on:after{animation:none;opacity:.35;transform:scale(1.16)}}.rec-main,.rec-side,.rec-pin{position:relative;z-index:1;display:grid;place-items:center;border:0;color:#fff;cursor:pointer;box-shadow:0 8px 18px #1c19171f;transition:transform .15s ease}.rec-main:hover,.rec-side:hover,.rec-pin:hover{transform:translateY(-1px)}.rec-main svg,.rec-side svg,.rec-pin svg{width:1.35rem;height:1.35rem;display:block}.rec-main svg{width:1.7rem;height:1.7rem;fill:#fff}.rec-side svg,.rec-pin svg{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.rec-pin svg circle{fill:#fff;stroke:none}.rec-main{width:4.8rem;height:4.8rem;border-radius:50%;background:#0ea5e9}.rec-main.on{background:#ef4444}.rec-side,.rec-pin{width:3.35rem;height:3.35rem;border-radius:50%;background:#1d4ed8}.rec-pin{background:#0f766e}.rec-side:disabled,.rec-pin:disabled{opacity:.38;cursor:not-allowed;box-shadow:none;transform:none}.rec-live{margin:.15rem 0 .75rem;text-align:center;color:var(--muted);font-size:.78rem}.rec-meter{margin-top:.85rem}.rec-meter-head{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem;font-weight:700}.rec-clock{margin:.1rem 0 0;text-align:center;font-family:var(--mono);font-size:1.35rem;font-weight:600;letter-spacing:.03em}.rec-meter.warn .rec-clock,.rec-meter.full .rec-clock{color:var(--red)}.rec-track{display:flex;height:8px;background:var(--border);border-radius:99px;overflow:hidden;margin-top:.4rem}.rec-track span{display:block;height:100%;background:#0ea5e9;border-radius:inherit}.rec-meter.warn .rec-track span{background:var(--amber)}.rec-meter.full .rec-track span{background:var(--red)}.audio-box{margin-top:.7rem}.audio-box audio{width:100%}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;margin-top:.85rem;padding:.28rem;border:1px solid var(--border);border-radius:12px;background:var(--bg)}.mode-switch button{border:0;background:transparent;border-radius:9px;min-height:2.65rem;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem}.mode-switch button span{font-size:.68rem;font-weight:600;color:var(--muted)}.mode-switch button.on{background:var(--accent);color:var(--accent-ink)}.mode-switch button.on span{color:inherit;opacity:.82}.gps-every{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.65rem;padding:.55rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--bg)}.gps-every>span{font-weight:800}.stepper{display:flex;align-items:center;gap:.35rem}.stepper button{width:2rem;height:2rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);font-size:1.05rem;line-height:1}.stepper input{width:3.1rem;height:2rem;text-align:center;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-family:var(--mono);font-weight:700}.stepper em{font-style:normal;color:var(--muted);font-size:.75rem}.queue-item{display:flex;justify-content:space-between;gap:.7rem;border:1px solid var(--border);border-radius:8px;padding:.65rem}.queue-item audio{display:block;width:min(280px,100%);margin-top:.35rem}.live-state.on{color:var(--green);font-weight:800}.transcript{white-space:pre-wrap;min-height:4.5rem;max-height:11rem;overflow:auto;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.6rem}.hit-box{border:1px solid var(--border);border-radius:8px;padding:.55rem;margin-top:.45rem}.hit-plate{background:#157a45;color:#fff;border-radius:6px;padding:.35rem .55rem;margin-top:.3rem;font-weight:800}.map-frame{height:460px;border:1px solid var(--border);border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:center;color:var(--muted)}.bill-help{margin:.35rem 0 .8rem;color:var(--muted);font-size:.82rem;line-height:1.6}.bill-help.span-2{grid-column:1 / -1}.bill-legend{display:flex;gap:.4rem;margin-bottom:.7rem}.bill-cell{display:inline-block;min-width:4.6rem;padding:.18rem .4rem;border-radius:4px;text-align:center;font-family:var(--mono);font-size:.72rem}.bill-paid{background:color-mix(in srgb,var(--green) 18%,var(--surface));color:var(--green)}.bill-partial{background:color-mix(in srgb,var(--amber) 22%,var(--surface));color:var(--amber)}.bill-unpaid{background:color-mix(in srgb,var(--red) 16%,var(--surface));color:var(--red)}.bill-empty{color:var(--muted)}.bill-now{outline:1px solid var(--accent)}.bill-grid tbody tr{cursor:pointer}.bill-selected td{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.bill-summary-row td{color:var(--muted);font-size:.75rem;white-space:normal;cursor:default}.bill-kind{color:var(--muted);font-size:.72rem;font-weight:600}.bill-break{white-space:normal;min-width:10rem}.bill-edit{margin-top:.9rem;align-items:start}.bill-edit form{display:flex;flex-direction:column;gap:.45rem}.bill-current-row td{background:color-mix(in srgb,var(--accent) 7%,transparent)}.bill-actions{display:flex;gap:.3rem}.bill-wide-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.9rem}.bill-wide-actions .btn{flex:1 1 0;min-height:2.7rem;font-size:.92rem}.bill-wide-actions .status{flex:1 0 100%}.bill-wide-actions .btn.bill-cutoff-on{background:var(--amber);border-color:var(--amber);color:#fff8eb}html[data-theme=dark] .bill-wide-actions .btn.bill-cutoff-on{color:#1c1404}.bill-month-nums{display:inline-flex;flex-wrap:wrap;gap:.45rem}.bill-month-editor{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:.8rem}.bill-month-editor .field{flex:0 0 6rem}.bill-month-editor input{flex:1 1 12rem;min-width:10rem;min-height:var(--field-h);border:1px solid var(--border);border-radius:7px;background:var(--bg);padding:.6rem .85rem}.bill-audit{margin:.3rem 0 0;padding:0 1.1rem}.bill-audit li{margin:.25rem 0;font-size:.78rem}.table-wrap input,.table-wrap select{min-height:2rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);padding:.25rem .4rem}@media(max-width:800px){.stat-grid,.stat-grid.cols-2,.stat-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:1fr}.field.span-2{grid-column:auto}.content{padding:.55rem}.overview-tail{grid-template-columns:1fr}.overview-expiring,.overview-online,.overview-issues{grid-column:auto;grid-row:auto}.create-user-row,.add-member-row,.search-row{flex-wrap:wrap}.add-member-row .btn,.search-row .btn{width:100%}.work-grid{grid-template-columns:1fr}}
