:root{--bg: #f2f5fa;--surface: #ffffff;--surface-2: #f8fafc;--ink: #101828;--muted: #667085;--line: #e4e9f0;--navy: #0f2742;--navy-2: #163a5f;--blue: #2f6fed;--blue-dark: #2456c4;--blue-soft: #eaf1ff;--green: #127a53;--green-soft: #e7f6ef;--amber: #9a6700;--amber-soft: #fdf4e3;--red: #b42318;--red-soft: #fdecea;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow: 0 6px 24px rgba(16, 24, 40, .06);--shadow-lg: 0 18px 50px rgba(16, 24, 40, .14);--radius: 16px;--radius-sm: 10px;--tap: 42px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{margin:0;background:radial-gradient(1100px 520px at 100% -10%,#e2ecff 0%,transparent 62%),var(--bg);color:var(--ink);font-family:Segoe UI,Tahoma,Noto Naskh Arabic,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.6;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}a{color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.primary,.success,.ghost{min-height:var(--tap);padding:10px 18px;border-radius:12px;border:1px solid transparent;font-weight:700;font-size:.92rem;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .15s,border-color .15s,transform .05s}.primary{background:var(--blue);color:#fff;box-shadow:0 6px 16px #2f6fed40}.primary:hover:not(:disabled){background:var(--blue-dark)}.primary:active:not(:disabled){transform:translateY(1px)}.success{background:var(--green);color:#fff}.ghost{background:#fff;border-color:var(--line);color:var(--navy)}.ghost:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.link{border:0;background:none;color:var(--blue);padding:4px 0;font-weight:600;font-size:.85rem}.link-btn{text-decoration:none;text-align:center}input,select{width:100%;min-height:var(--tap);padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;font-size:.92rem}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2f6fed24}input[readonly]{background:var(--surface-2);color:var(--muted)}select:disabled{opacity:.6}.auth-page{min-height:100%;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-lg);padding:26px}.auth-brand{display:flex;gap:14px;align-items:center;margin-bottom:20px}.auth-brand h1{font-size:1.3rem;color:var(--navy)}.auth-brand p{color:var(--muted);font-size:.88rem}.brand-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;background:linear-gradient(145deg,#3b82f6,var(--navy));color:#fff;font-weight:800;letter-spacing:.5px;box-shadow:0 8px 20px #2f6fed47}.brand-mark.small{width:40px;height:40px;border-radius:12px;font-size:.78rem}.auth-tabs{display:flex;gap:4px;background:var(--surface-2);padding:4px;border-radius:12px;margin-bottom:16px}.auth-tabs button{flex:1;border:0;background:transparent;padding:10px;border-radius:9px;cursor:pointer;color:var(--muted);font-weight:700;font-size:.88rem}.auth-tabs button.active{background:#fff;color:var(--navy);box-shadow:var(--shadow-sm)}.auth-form{display:grid;gap:13px}.auth-form label{display:grid;gap:6px;font-weight:700;font-size:.86rem;color:var(--navy)}.auth-note{margin-top:14px;color:var(--muted);font-size:.8rem;text-align:center}.app-shell{min-height:100%;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 22px;background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar-brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}.topbar-brand strong{display:block;color:var(--navy);font-size:.98rem;line-height:1.2}.topbar-brand span{display:block;color:var(--muted);font-size:.74rem}.topbar-actions{display:flex;align-items:center;gap:8px}.sub-badge{display:grid;gap:3px;min-width:168px;padding:7px 11px;border-radius:12px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--ink)}.sub-badge:hover{border-color:var(--blue)}.sub-badge.empty{border-style:dashed;color:var(--muted)}.sub-badge.expired{border-color:#f3c2bd;background:var(--red-soft)}.sub-badge-top{display:flex;justify-content:space-between;gap:10px;font-size:.78rem}.sub-badge-top b{color:var(--blue-dark)}.sub-badge.expired .sub-badge-top b{color:var(--red)}.sub-badge small{color:var(--muted);font-size:.7rem}.sub-progress{height:5px;border-radius:999px;background:#e8eef7;overflow:hidden}.sub-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#60a5fa)}.sub-progress.large{height:9px;margin-top:14px}.email{color:var(--muted);font-size:.8rem;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;padding:20px 22px 90px;align-items:start}.layout.single{grid-template-columns:minmax(0,1fr)}.workspace{display:grid;gap:16px;min-width:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px}.card-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.card-head h2{font-size:1.02rem;color:var(--navy);font-weight:800}.card-head p{color:var(--muted);font-size:.82rem}.card-head .head-actions{margin-inline-start:auto;display:flex;gap:8px;flex-wrap:wrap}.card-head .head-actions .ghost{padding:6px 12px;min-height:36px;font-size:.8rem}.step{display:grid;place-items:center;min-width:30px;height:30px;border-radius:9px;background:var(--blue-soft);color:var(--blue-dark);font-weight:800;font-size:.86rem}.grid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grid.three label{display:grid;gap:6px;font-weight:700;font-size:.84rem;color:var(--navy)}.dropzone{border:2px dashed #c3d0e2;border-radius:14px;background:var(--surface-2);padding:24px 18px;display:grid;justify-items:center;gap:4px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover:not(.disabled),.dropzone.dragging{border-color:var(--blue);background:var(--blue-soft)}.dropzone.disabled{opacity:.6;cursor:not-allowed}.dropzone span{color:var(--muted);font-size:.82rem}.drop-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:14px;background:var(--navy);color:#fff;font-weight:800;font-size:.76rem;margin-bottom:4px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stats>div{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:11px 13px}.stats span{display:block;color:var(--muted);font-size:.72rem;letter-spacing:.2px}.stats strong{font-size:.98rem;color:var(--navy)}.features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.feature{display:grid;gap:2px;text-align:start;border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px;transition:border-color .15s,background .15s;min-height:92px}.feature:hover:not(:disabled){border-color:var(--blue)}.feature .feature-name{font-weight:800;color:var(--navy);font-size:.86rem}.feature small{color:var(--muted);font-size:.72rem}.feature .switch{width:34px;height:19px;border-radius:999px;background:#cfd8e3;position:relative;margin-bottom:5px;transition:background .15s}.feature .switch:after{content:"";position:absolute;top:2px;inset-inline-start:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:transform .15s}.feature.on{border-color:var(--blue);background:var(--blue-soft)}.feature.on .switch{background:var(--blue)}.feature.on .switch:after{transform:translate(-15px)}[dir=ltr] .feature.on .switch:after{transform:translate(15px)}.feature.off{opacity:.55}.table-wrap{border:1px solid var(--line);border-radius:12px;overflow:auto;max-height:420px;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:.86rem;min-width:560px}thead th{position:sticky;top:0;z-index:1;background:#f3f7fc;color:var(--muted);font-weight:700;text-align:start;padding:9px 12px;border-bottom:1px solid var(--line);font-size:.74rem;white-space:nowrap}tbody td{padding:8px 12px;border-bottom:1px solid #eef2f7;vertical-align:top}tbody tr{cursor:pointer}tbody tr:hover{background:#f8fbff}tbody tr.checked{background:var(--blue-soft)}tbody tr.locked{opacity:.6;cursor:not-allowed}tbody tr:last-child td{border-bottom:0}input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue)}.mono{font-family:SF Mono,Consolas,Courier New,monospace;font-size:.82rem}.muted{color:var(--muted)}.small{font-size:.76rem}.chip{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:700;white-space:nowrap}.chip.ok{background:var(--green-soft);color:var(--green)}.chip.warn{background:var(--amber-soft);color:var(--amber)}.chip.err{background:var(--red-soft);color:var(--red)}.action-card{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.action-card h2{font-size:1rem;color:var(--navy)}.action-card p{color:var(--muted);font-size:.83rem}.action-buttons{display:flex;gap:8px;flex-wrap:wrap}.log .muted{color:#8fa6bd}.log{max-height:220px;overflow:auto;background:#0d1b2a;border-radius:12px;padding:12px 14px}.log-line{font-family:SF Mono,Consolas,monospace;font-size:.78rem;color:#cfe0f2;padding:1px 0}.log-line.ok{color:#8ee2b4}.log-line.err{color:#ffa8a8}.alert{border-radius:12px;padding:10px 13px;font-size:.85rem;font-weight:600;line-height:1.55}.alert.error{background:var(--red-soft);color:var(--red);border:1px solid #f5c6c0}.alert.ok{background:var(--green-soft);color:var(--green);border:1px solid #bfe6d2}.subscription-alert{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.history{position:sticky;top:74px}.history ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.history li{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:3px;background:var(--surface-2)}.history .row{display:flex;justify-content:space-between;align-items:center;gap:8px}.footer{padding:10px 20px 96px;color:var(--muted);font-size:.74rem;text-align:center}.sub-card{border:1px solid var(--line);border-radius:14px;padding:15px;background:var(--surface-2)}.sub-card.expired{background:var(--red-soft);border-color:#f3c2bd}.sub-card-head{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sub-card-head span{display:block;font-size:.72rem;color:var(--muted)}.sub-card-head strong{color:var(--navy);font-size:.96rem}.plans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.plan-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:linear-gradient(180deg,#fff,var(--surface-2));display:grid;gap:9px}.plan-card h3{color:var(--navy);font-size:1rem}.plan-price{font-size:1.5rem;color:var(--blue-dark);font-weight:800}.plan-price span{font-size:.8rem;color:var(--muted);font-weight:600}.plan-card ul{margin:0;padding-inline-start:18px;color:var(--muted);font-size:.83rem}.empty-state{display:grid;gap:8px;justify-items:start;padding:8px 0}.empty-state strong{color:var(--navy)}.admin-shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.admin-side{background:linear-gradient(180deg,#102a46,#0b1d31);color:#dbe7f3;padding:16px 12px;display:flex;flex-direction:column;gap:16px;position:sticky;top:0;height:100vh}.admin-brand{display:flex;align-items:center;gap:10px;padding:4px 6px}.admin-brand strong{display:block;color:#fff;font-size:.92rem}.admin-brand span{display:block;font-size:.7rem;color:#9fb6cd}.admin-nav{display:grid;gap:3px}.admin-nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:#c5d7e8;text-decoration:none;font-size:.87rem;min-height:40px}.admin-nav a:hover{background:#ffffff12;color:#fff}.admin-nav a.active{background:var(--blue);color:#fff}.nav-icon{width:18px;text-align:center;opacity:.9}.admin-side-foot{margin-top:auto;padding:8px 10px}.admin-side-foot a{color:#9fb6cd;font-size:.8rem;text-decoration:none}.admin-main{min-width:0;display:flex;flex-direction:column}.admin-top{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.admin-top strong{display:block;color:var(--navy);font-size:.95rem}.admin-content{padding:18px 20px 60px}.admin-page{display:grid;gap:16px}.admin-page.narrow{max-width:620px}.admin-columns{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;align-items:start}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow-sm);display:grid;gap:3px}.stat-card span{color:var(--muted);font-size:.76rem}.stat-card b{font-size:1.55rem;color:var(--navy)}.stat-card em{font-size:.8rem;font-style:normal;color:var(--muted)}.stat-card small{color:var(--muted);font-size:.72rem}.audit-list{list-style:none;margin:0;padding:0;display:grid;gap:9px}.audit-list li{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--surface-2)}.audit-list .row{display:flex;justify-content:space-between;gap:8px}.row-actions{display:flex;flex-wrap:wrap;gap:6px}.mini{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 9px;font-size:.74rem;font-weight:700;color:var(--navy);white-space:nowrap;min-height:34px}.mini:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}.mini.danger{color:var(--red);border-color:#f0cfcb}.mini.danger:hover:not(:disabled){background:var(--red-soft);border-color:var(--red)}.inline-form{display:flex;gap:12px;align-items:end;margin-bottom:12px;flex-wrap:wrap}.inline-form label{display:grid;gap:6px;font-size:.8rem;font-weight:700;color:var(--navy)}.inline-form select{min-width:240px}.plan-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:10px;align-items:end}.plan-form label{display:grid;gap:6px;font-size:.78rem;font-weight:700;color:var(--navy)}.settings-meta{display:flex;gap:16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);flex-wrap:wrap}.engine-strip{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:10px 14px;font-size:.84rem;color:var(--navy)}.engine-strip.ok{border-color:#bfe6d2;background:var(--green-soft)}.engine-strip.warn{border-color:#f0dcb3;background:var(--amber-soft)}.engine-strip .engine-error{color:var(--red)}.diff-pair{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:start}.diff-side{display:grid;gap:8px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface-2)}.diff-side-head{display:flex;gap:8px;align-items:center;font-weight:800;color:var(--navy);font-size:.9rem}.diff-side-head b{background:var(--blue);color:#fff;border-radius:6px;padding:1px 8px;font-size:.76rem}.diff-context{display:grid;gap:2px;font-size:.78rem;border-radius:8px;padding:8px 10px}.diff-context.ok{background:var(--green-soft);color:var(--green)}.diff-context.err{background:var(--red-soft);color:var(--red)}.diff-context em{font-style:normal;font-size:.74rem}.diff-swap{display:grid;gap:6px;justify-items:center;padding-top:34px}.diff-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}.diff-shas{display:flex;gap:12px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);flex-wrap:wrap}.diff-shas span{font-family:SF Mono,Consolas,monospace;font-size:.72rem;color:var(--muted)}.diff-shas button{margin-inline-start:auto}.compare-cell{display:flex;align-items:end}.compare-cell button{width:100%;max-width:260px}.explain-list{margin:0;padding-inline-start:18px;color:var(--muted);font-size:.85rem;display:grid;gap:5px}.explain-list b{color:var(--navy)}.inline-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-row input{min-width:120px}.hit-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.hex-editor{margin-top:12px;background:#0b1622;border-radius:12px;padding:10px;overflow-x:auto;font-family:SF Mono,Consolas,monospace;-webkit-overflow-scrolling:touch}.hex-row{display:flex;gap:3px;align-items:center}.hex-addr{color:#7fa8cc;font-size:.7rem;width:60px;flex:none}.hex-cell{width:24px;padding:2px 0;text-align:center;background:transparent;border:1px solid transparent;color:#d7e6f5;font-size:.72rem;border-radius:4px}.hex-cell:hover{border-color:var(--blue)}.hex-cell.changed{background:#1d4d2f;border-color:#2f9d5e;color:#b8f2cf}.hex-cell.empty{width:24px}.match-list{display:grid;gap:8px;margin-top:12px}.match-row{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:var(--surface-2);flex-wrap:wrap}.match-row>div{display:grid;gap:2px;min-width:0}.match-row .chip{flex:none}.mobile-nav{position:fixed;inset-inline:0;bottom:0;z-index:30;display:none;background:#fffffff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -6px 24px #10182814}.mobile-nav a{flex:1;display:grid;justify-items:center;gap:2px;padding:6px 2px;border-radius:10px;text-decoration:none;color:var(--muted);font-size:.68rem;font-weight:700;min-height:52px}.mobile-nav a .nav-icon{font-size:1.05rem;width:auto;opacity:1}.mobile-nav a.active{color:var(--blue);background:var(--blue-soft)}@media(max-width:1100px){.layout{grid-template-columns:1fr}.history{position:static}.admin-columns{grid-template-columns:1fr}.stat-grid,.sub-card-head{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.topbar{padding:8px 12px}.topbar-brand span,.email{display:none}.topbar-actions{gap:6px}.sub-badge{min-width:0;padding:6px 9px}.sub-badge small,.desktop-links{display:none}.layout{padding:12px 12px 96px;gap:12px}.card{padding:14px;border-radius:14px}.card-head{gap:10px}.card-head h2{font-size:.97rem}.stats,.features{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three,.plans-grid,.diff-pair{grid-template-columns:1fr}.diff-swap{padding-top:0;grid-auto-flow:column;justify-content:start}.action-card{flex-direction:column;align-items:stretch}.action-buttons{display:grid;grid-template-columns:1fr}.action-buttons .primary,.action-buttons .success,.action-buttons .ghost{width:100%}.plan-form{grid-template-columns:1fr 1fr}.admin-shell{grid-template-columns:1fr}.admin-side{position:static;height:auto;flex-direction:column;align-items:stretch;padding:10px 10px 6px;gap:8px;overflow:hidden}.admin-brand{padding:0 4px}.admin-brand span{display:none}.admin-brand strong{font-size:.95rem}.admin-nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.admin-nav::-webkit-scrollbar{display:none}.admin-nav a{flex:0 0 auto;white-space:nowrap;padding:8px 12px;font-size:.8rem}.admin-side-foot{display:none}.admin-content{padding:12px 12px 90px}.mobile-nav{display:flex}.footer{padding-bottom:92px}table{min-width:520px}}@media(max-width:520px){body{font-size:14.5px}.topbar-brand strong{font-size:.9rem}.brand-mark.small{width:36px;height:36px}.card{padding:13px}.stats{grid-template-columns:1fr 1fr}.stats>div{padding:9px 10px}.stat-card b{font-size:1.3rem}.features{grid-template-columns:1fr 1fr;gap:8px}.feature{min-height:84px;padding:10px}.plan-form{grid-template-columns:1fr}.inline-form label,.inline-form select{width:100%;min-width:0}.diff-shas{flex-direction:column;align-items:stretch}.diff-shas button{margin:6px 0 0}.hex-cell{width:22px;font-size:.68rem}.hex-addr{width:52px;font-size:.66rem}.table-wrap{max-height:360px}}.workspace>*,.layout>*,.admin-page>*,.admin-columns>*{min-width:0}.card{min-width:0}.table-wrap,.hex-editor{max-width:100%}.file-pick{display:block}.file-pick .ghost{width:100%}.topbar-brand strong{white-space:nowrap}@media(max-width:520px){.topbar-brand strong{font-size:.82rem}.hex-cell{width:26px;height:30px;font-size:.72rem}}.detect-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}.detect-row .ghost{flex:none}@media(max-width:520px){.detect-row{display:grid}.detect-row .ghost{width:100%}}
