:root{--ink:#142238;--muted:#667386;--paper:#f4f7fa;--card:#fff;--line:#dce4ec;--accent:#1d6f75;--accent-dark:#145159;--mint:#55d6be;--danger:#c8424b;--warn:#a96608;--shadow:0 18px 55px rgba(21,42,68,.09);font-family:"Noto Kufi Arabic","DIN Next Arabic",Tahoma,Arial,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 90% 0,#dff6f0 0,transparent 28rem),var(--paper);font-size:16px}.topbar{height:76px;background:#132238;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,calc((100vw - 1200px)/2));box-shadow:0 6px 22px rgba(18,34,56,.16);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:12px}.brand strong{display:block;font-size:18px}.brand small{display:block;color:#b8c8da;margin-top:3px}.brand-mark{width:54px;height:54px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(135deg,var(--mint),#2ca5b0);color:#0b2a34;font-size:27px;font-weight:900;box-shadow:0 12px 25px rgba(56,201,183,.28)}.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:21px}.icon-button{border:0;background:rgba(255,255,255,.1);color:inherit;border-radius:12px;width:42px;height:42px;font-size:24px;cursor:pointer}.page-shell{max-width:1200px;margin:28px auto;padding:0 22px 48px}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.summary article{background:rgba(255,255,255,.78);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.9);padding:18px 20px;border-radius:18px;box-shadow:var(--shadow)}.summary span{display:block;color:var(--muted);font-size:14px}.summary strong{display:block;font-size:28px;margin-top:5px}.workspace{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,.75fr);gap:18px}.panel{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:22px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.panel-heading.compact{align-items:center;margin-bottom:16px}.panel-heading h1,.panel-heading h2{font-size:20px;margin:0}.panel-heading p:not(.step){color:var(--muted);margin:6px 0 0;font-size:14px}.step{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.08em;margin:0 0 5px}textarea{width:100%;min-height:410px;resize:vertical;border:1px solid var(--line);border-radius:16px;padding:18px;background:#fbfcfd;color:var(--ink);font:15px/1.85 Consolas,"Courier New",monospace;direction:ltr;text-align:left;outline:0;transition:.2s}textarea:focus,input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(29,111,117,.12)}.text-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-top:9px}.controls-panel{display:flex;flex-direction:column;gap:13px}.controls-panel label,dialog label,.login-form label{font-weight:700;font-size:14px;display:grid;gap:7px}select,input{width:100%;height:48px;border:1px solid var(--line);border-radius:13px;padding:0 13px;background:#fff;color:var(--ink);font:inherit;outline:0}.select-row{display:grid;grid-template-columns:1fr 48px;gap:8px}.button{min-height:48px;border-radius:13px;border:1px solid transparent;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 16px;font:700 15px inherit;text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.button.primary{background:var(--accent);color:#fff;box-shadow:0 10px 25px rgba(29,111,117,.2)}.button.primary:hover{background:var(--accent-dark)}.button.secondary{background:#e6f4f2;color:var(--accent-dark);border-color:#c5e5e0}.button.company{background:#132238;color:#fff}.button.export{background:#fff;color:#132238;border-color:#bcc9d7}.button.ghost{background:transparent;border-color:var(--line);color:var(--ink)}.button.danger{color:var(--danger);border-color:#f0c8cb;min-height:40px}.button.square{font-size:24px;padding:0;background:#eef4f7;color:var(--ink)}.divider{height:1px;background:var(--line);margin:2px 0}.results-panel,.batches-panel{margin-top:18px}.result-counts{display:flex;gap:7px;flex-wrap:wrap}.pill{padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}.pill.success{background:#ddf6ec;color:#176746}.pill.duplicate{background:#fff0d8;color:#8a5405}.pill.review{background:#fde9eb;color:#9d2f38}.pill.neutral{background:#edf2f6;color:#647286}.empty-state{display:grid;place-items:center;text-align:center;padding:46px 16px;color:var(--muted);gap:7px}.empty-state strong{color:var(--ink)}.empty-icon{font-size:40px;color:var(--accent)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:15px}.hidden{display:none!important}table{width:100%;border-collapse:collapse;min-width:670px}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:right}th{font-size:12px;color:var(--muted);background:#f7f9fb}td.code{direction:ltr;text-align:left;font-family:Consolas,monospace;font-weight:700}.status{font-size:12px;font-weight:800}.status.new{color:#176746}.status.duplicate_batch,.status.duplicate_saved{color:#8a5405}.status.review{color:#9d2f38}.batch-list{display:grid;gap:9px}.batch{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:13px 15px}.batch strong{display:block}.batch small{color:var(--muted)}.batch-numbers{display:flex;gap:7px;font-size:12px}.batch-numbers span{background:#f1f5f8;border-radius:9px;padding:6px 8px}dialog{width:min(520px,calc(100vw - 28px));border:0;border-radius:22px;padding:0;box-shadow:0 25px 90px rgba(11,28,48,.28)}dialog::backdrop{background:rgba(8,22,39,.58);backdrop-filter:blur(4px)}dialog form{padding:24px;display:grid;gap:16px}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start}.dialog-heading h2{margin:0}.dialog-heading .icon-button{background:#edf2f6;color:var(--ink)}dialog small{font-weight:400;color:var(--muted)}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.toast{position:fixed;left:22px;bottom:22px;max-width:min(430px,calc(100vw - 44px));background:#132238;color:#fff;padding:14px 17px;border-radius:13px;box-shadow:0 18px 55px rgba(0,0,0,.25);opacity:0;transform:translateY(16px);pointer-events:none;transition:.2s;z-index:30}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#a92f3a}.login-page{display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 50% 10%,#d9f7ef,transparent 35rem),#edf2f6}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;padding:32px;box-shadow:var(--shadow)}.login-card .brand-mark{margin-bottom:20px}.login-card h1{margin:0}.eyebrow{color:var(--accent);font-weight:800;font-size:13px}.muted{color:var(--muted)}.login-form{display:grid;gap:15px;margin-top:24px}.alert.error{background:#fdebed;color:#992d37;padding:11px 13px;border-radius:11px;margin-top:15px}@media(max-width:820px){.topbar{height:68px;padding:0 16px}.page-shell{margin:18px auto;padding:0 12px 36px}.summary{gap:8px}.summary article{padding:13px;border-radius:15px}.summary span{font-size:11px}.summary strong{font-size:22px}.workspace{grid-template-columns:1fr}.controls-panel{order:-1}.panel{border-radius:18px;padding:16px}.input-panel .panel-heading{align-items:center}.input-panel .panel-heading p:not(.step){display:none}textarea{min-height:310px}.results-panel{padding:14px}.table-wrap{border:0;overflow:visible}table,thead,tbody,tr,th,td{display:block;min-width:0}thead{display:none}tbody{display:grid;gap:10px}tr{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}td{border:0;padding:5px 0;display:grid;grid-template-columns:95px 1fr;gap:8px;word-break:break-all}td:before{content:attr(data-label);color:var(--muted);font-size:12px;font-family:inherit;font-weight:400;direction:rtl;text-align:right}.batch{grid-template-columns:1fr}.batch-numbers{flex-wrap:wrap}.brand small{display:none}}@media(max-width:430px){.summary{grid-template-columns:1fr 1fr}.summary article:first-child{grid-column:1/-1}.panel-heading{gap:10px}.button.danger{font-size:12px;padding:0 10px}.text-meta span:last-child{display:none}}

