@font-face{font-family:Cairo;src:url('fonts/Cairo-Regular.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Cairo;src:url('fonts/Cairo-Medium.woff2') format('woff2');font-weight:500;font-display:swap}@font-face{font-family:Cairo;src:url('fonts/Cairo-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}@font-face{font-family:Cairo;src:url('fonts/Cairo-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--bg:#f5f7fb;--panel:#fff;--text:#18253b;--muted:#758399;--line:#e5eaf2;--blue:#3864ce;--hover:#eef3ff;--side:#101c31;--input:#fff;--shadow:0 4px 25px #20396108}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Cairo,system-ui,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}a{color:var(--blue);text-decoration:none}.shell{min-height:100vh;display:flex}.sidebar{width:255px;flex:0 0 255px;background:var(--side);color:#fff;padding:27px 14px;display:flex;flex-direction:column;gap:38px}.brand{display:flex;align-items:center;gap:12px;padding:0 12px;direction:ltr;justify-content:flex-start}.brand strong{font-size:22px;display:block;line-height:1.2}.brand small{font-size:10px;letter-spacing:2.3px;color:#9bb0d2}.brand-icon{font-size:26px;background:#4165bd;border-radius:12px;padding:8px 13px}.nav-item{width:100%;background:none;border:0;color:#b9c4d8;text-align:start;display:flex;align-items:center;gap:12px;padding:13px;border-radius:10px;margin-bottom:5px}.nav-item span{font-size:21px;width:24px;text-align:center}.nav-item b{font-weight:500}.nav-item.active,.nav-item:hover{background:#263957;color:white}.aside-footer{margin-top:auto}.aside-credit{border-top:1px solid #2e3e58;margin-top:15px;padding:17px 14px;color:#a5b4cb;font-size:11px;display:flex;flex-direction:column;align-items:start;gap:3px;direction:ltr}.aside-credit a{color:#b5d7ff}.main{flex:1;min-width:0}header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:28px 36px 20px}h1{margin:0;font-size:25px;font-weight:700}header p{margin:2px 0;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:12px}#privacy-pill{background:#e5f8f1;color:#087a53;border-radius:100px;padding:6px 13px;font-size:12px}.content{padding:0 36px 40px;max-width:1500px;margin:auto}.view{display:none}.view.active{display:block}.welcome{background:linear-gradient(110deg,#183362,#345fd1);color:#fff;border-radius:17px;padding:29px 35px;margin-bottom:22px;position:relative;overflow:hidden}.welcome:after{content:'◉';font-size:220px;opacity:.07;position:absolute;left:5%;top:-115px}.eyebrow{font-size:11px;letter-spacing:1.3px;opacity:.8}.welcome h2{font-size:28px;margin:7px 0}.welcome p{margin:0;color:#d9e6ff}.panel,.dropzone{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:23px;margin-bottom:20px;box-shadow:var(--shadow)}.panel h3{margin:0 0 14px;font-size:17px}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.dropzone{border:2px dashed #adc0e1;padding:40px;text-align:center;transition:.2s}.dropzone.dragover{background:var(--hover);border-color:var(--blue)}.upload-symbol{display:inline-grid;place-items:center;background:#eaf0ff;color:#345ac5;width:60px;height:60px;border-radius:17px;font-size:36px}.dropzone h3{font-size:18px;margin:12px 0 2px}.dropzone p{color:var(--muted);margin:2px 0 20px}.btn{padding:9px 16px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-weight:600}.btn:hover{filter:brightness(.95)}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.secondary{background:#eaf0ff;color:#2753bd;border-color:#dbe5ff}.btn.danger{color:#cb3d44;background:#fff5f6;border-color:#ffdee3}.btn.ghost{background:transparent}.input-row,.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}.input-row input{flex:1;min-width:150px}input,select{border:1px solid var(--line);border-radius:9px;padding:9px 12px;background:var(--input);color:var(--text);min-width:0}input:focus,select:focus{outline:2px solid #a2baf7}.muted{color:var(--muted)}.small{font-size:12px}.dataset-list{display:grid;gap:9px}.dataset-item{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:10px}.dataset-item.active{border-color:var(--blue);background:var(--hover)}.dataset-item .ds-name{flex:1;min-width:0;overflow-wrap:anywhere}.ds-name small{display:block;color:var(--muted)}.table-wrap{overflow:auto;max-height:520px;border:1px solid var(--line);border-radius:9px}table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:12px}th,td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:start;max-width:350px;overflow:hidden;text-overflow:ellipsis}th{background:var(--bg);font-weight:700;position:sticky;top:0;z-index:1;cursor:pointer}tr:hover td{background:var(--hover)}.pagination{display:flex;align-items:center;gap:15px;justify-content:center;padding-top:15px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.kpi{padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:13px}.kpi b{display:block;font-size:27px;color:var(--blue);direction:ltr;text-align:start}.kpi small{color:var(--muted)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.quality-score{font-size:40px;font-weight:700;color:var(--blue)}.progress{height:10px;border-radius:100px;background:var(--line);overflow:hidden}.progress>div{background:var(--blue);height:100%;border-radius:100px}.stats-list{max-height:285px;overflow:auto}.stat-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:7px 0;gap:10px}.stat-row small{color:var(--muted)}.notice{padding:12px;border-radius:9px;background:var(--bg);color:var(--muted);margin-top:10px;min-height:44px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:14px 0}.form-grid label{display:flex;flex-direction:column;gap:6px}.form-grid label span{font-weight:600}.chart-area{width:100%;padding:15px 0}.chart-area canvas{display:block;width:100%;height:auto;max-height:510px}.export-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}.export-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--text)}.export-card:hover{border-color:var(--blue);background:var(--hover)}.export-card span{font-size:32px;color:var(--blue)}.export-card strong{font-size:20px}.export-card small{color:var(--muted)}#toast{position:fixed;bottom:22px;left:22px;background:#253b63;color:#fff;padding:12px 19px;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .3s;z-index:100}#toast.show{opacity:1}body.dark{--bg:#111b2c;--panel:#1c2a40;--text:#eaf0fc;--muted:#a0aec2;--line:#34425b;--blue:#89a9ff;--hover:#2b4166;--input:#1b2a40;--shadow:none}body.dark #privacy-pill{background:#174436;color:#7fe0a9}body.dark .welcome{background:linear-gradient(110deg,#122d60,#304aa7)}body.dark .btn.secondary{background:#25385c;color:#bbccff;border-color:#394f73}body.dark .btn.danger{background:#4a2731;border-color:#743341;color:#ffa6aa}@media(max-width:1000px){.sidebar{width:78px;flex-basis:78px;padding:24px 8px}.brand>div,.nav-item b,.aside-credit{display:none}.brand{padding:0}.nav-item{justify-content:center}.nav-item span{width:auto}.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.shell{display:block}.sidebar{width:100%;height:auto;padding:9px;display:block;position:relative}.brand{display:none}#nav{display:flex;overflow:auto;gap:4px}.nav-item{margin:0;min-width:50px;padding:8px}.aside-footer{display:none}header{padding:18px 16px;align-items:start;flex-wrap:wrap}h1{font-size:21px}.content{padding:0 12px 24px}.welcome{padding:20px}.welcome h2{font-size:22px}.grid-2,.form-grid{grid-template-columns:1fr}.export-grid{grid-template-columns:repeat(2,1fr)}.panel{padding:15px}.dropzone{padding:30px 14px}.kpi-grid{gap:8px}.kpi{padding:12px}.kpi b{font-size:21px}.top-actions{gap:5px}}@media print{.sidebar,header,.view,.btn,#toast{display:none!important}body{background:white;color:#111}.main,.content{padding:0!important}.view#print-view,.view#print-view *{display:block}#view-reports{display:block!important}#view-reports>.panel:first-child{display:none!important}#print-report{display:block!important;border:0!important;box-shadow:none!important}#report-body .stat-row{display:flex!important}#report-body table{display:table!important}}

/* Research workflow improvements */
.m7-filter-toggle{display:inline-flex;gap:9px;align-items:center;font-size:13px;padding:8px 12px;border:1px solid #cbd5e1;border-radius:9px;cursor:pointer}.m7-filter-toggle input{accent-color:#3976dc}.chart-area{max-width:100%;overflow-x:auto}.chart-area canvas{max-width:100%;height:auto;min-width:520px}

.m7-footer-links{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;padding:16px 22px;border-top:1px solid var(--line);background:var(--panel);font-size:12px}.m7-footer-links a{color:var(--blue)}#numeric-table td,#numeric-table th{font-variant-numeric:tabular-nums;direction:ltr;text-align:right;min-width:100px}#data-table td{font-variant-numeric:tabular-nums}
/* v1.2.0: show only controls relevant to the cleaning operation */
.form-grid label[hidden]{display:none!important}
#numeric-table{font-variant-numeric:tabular-nums;direction:ltr}#numeric-table th,#numeric-table td{white-space:nowrap;text-align:start;padding:10px 13px}

/* v1.3: report and print readability */
.report-warning{padding:12px 14px;border:1px solid #d0aa64;border-radius:8px;background:rgba(224,172,73,.12);line-height:1.7}.report-table-wrap{overflow-x:auto;margin:12px 0 20px}#report-graph img{display:block;margin:auto;max-width:100%}@media print{@page{size:A4;margin:15mm}#view-reports{direction:rtl}#print-report{break-inside:avoid}#report-graph img{max-width:100%;break-inside:avoid}#report-body table{table-layout:auto;white-space:normal;font-size:9pt}#report-body th,#report-body td{max-width:none;white-space:normal;padding:5px}#report-body .report-warning{color:#5c4522;background:#fff7df}}
