:root{
  --primary:#0f8b8d;--primary2:#0a6f72;--blue:#2f6fed;--blue2:#2156c7;--gold:#f5a623;
  --rose:#ef476f;--green:#16a085;--dark:#0f172a;--nav:#0d1730;--surface:#fff;
  --bg:#eef3f9;--muted:#667085;--line:#dfe7f1;--danger:#d92d20;--shadow:0 16px 38px rgba(15,23,42,.10);
  --radius:22px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(135deg,#f6f9fd,#eaf1f8);color:var(--dark);font-family:"Cairo","Segoe UI",Tahoma,Arial,sans-serif;font-size:14px}
button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.hidden{display:none!important}
.login-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 20% 20%,rgba(47,111,237,.38),transparent 34%),radial-gradient(circle at 85% 80%,rgba(15,139,141,.34),transparent 32%),linear-gradient(140deg,#08243a,#174f7c 48%,#1b60d0)}
.login-wrap{width:min(1040px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:rgba(255,255,255,.96);border-radius:32px;overflow:hidden;box-shadow:0 34px 90px rgba(0,0,0,.28)}
.login-hero{padding:58px;background:linear-gradient(145deg,#0f8b8d,#246bdc);color:#fff;position:relative;overflow:hidden}.login-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.1);left:-90px;bottom:-80px}.login-hero h1{font-size:38px;line-height:1.35;margin:25px 0 12px}.login-hero p{font-size:17px;line-height:1.9;opacity:.92}.brand-logo{width:86px;height:86px;border-radius:27px;background:#fff;color:var(--blue);display:grid;place-items:center;font-size:31px;font-weight:900;box-shadow:0 14px 35px rgba(0,0,0,.2)}
.login-features{display:grid;gap:12px;margin-top:36px}.login-feature{display:flex;gap:12px;align-items:center;background:rgba(255,255,255,.12);padding:13px 15px;border-radius:15px}.login-feature b{width:29px;height:29px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.18)}
.login-card{padding:58px 48px;display:flex;flex-direction:column;justify-content:center}.login-card h2{font-size:27px;margin:0 0 6px}.login-card>p{color:var(--muted);margin:0 0 28px}.field{display:grid;gap:7px;margin-bottom:15px}.field label,.field-label{font-weight:800;color:#344054}.field input,.field select,.field textarea,.toolbar input,.toolbar select{width:100%;border:1px solid var(--line);background:#fff;border-radius:13px;padding:12px 14px;outline:none;transition:.2s}.field textarea{min-height:90px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus,.toolbar select:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(47,111,237,.10)}
.btn{border:0;border-radius:13px;padding:11px 17px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s;white-space:nowrap}.btn:hover{transform:translateY(-1px);filter:saturate(1.08)}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--blue));color:#fff;box-shadow:0 8px 20px rgba(47,111,237,.22)}.btn-secondary{background:#eaf1ff;color:#1e55c7}.btn-success{background:#e7f8f3;color:#08765f}.btn-warning{background:#fff4da;color:#9a6100}.btn-danger{background:#feeceb;color:var(--danger)}.btn-light{background:#fff;color:#344054;border:1px solid var(--line)}.btn-dark{background:var(--dark);color:#fff}.btn-sm{padding:8px 11px;border-radius:10px;font-size:12px}.btn-block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.alert{padding:12px 14px;border-radius:12px;background:#eaf6ff;color:#0b5d93;border:1px solid #cfe8fb;margin:10px 0}.alert.error{background:#fff0ef;color:#b42318;border-color:#ffd1cd}.alert.success{background:#e9fbf4;color:#08765f;border-color:#c5f1df}.alert.warning{background:#fff8e8;color:#8b5a00;border-color:#ffe4a8}
.app-shell{min-height:100vh;display:grid;grid-template-columns:276px 1fr}.sidebar{background:linear-gradient(180deg,#0d1730,#101c39 58%,#0b1224);color:#fff;padding:22px 17px;position:sticky;top:0;height:100vh;overflow-y:auto;box-shadow:-8px 0 25px rgba(15,23,42,.12);z-index:20}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:3px 8px 23px}.sidebar-brand .mini-logo{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#15a6a8,#2f6fed);display:grid;place-items:center;font-size:17px;font-weight:900;box-shadow:0 10px 24px rgba(47,111,237,.3)}.sidebar-brand h1{font-size:18px;margin:0}.sidebar-brand small{color:#aebbd3}.nav-group{margin:9px 0 14px}.nav-title{font-size:11px;color:#7f91b4;padding:8px 10px;font-weight:800}.nav-btn{width:100%;border:0;background:transparent;color:#dce5f6;text-align:right;padding:11px 12px;border-radius:12px;margin:2px 0;display:flex;align-items:center;gap:11px;font-weight:700}.nav-btn:hover{background:rgba(255,255,255,.08)}.nav-btn.active{background:linear-gradient(135deg,rgba(15,139,141,.95),rgba(47,111,237,.95));color:#fff;box-shadow:0 9px 22px rgba(47,111,237,.26)}.nav-icon{width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.08);display:grid;place-items:center;font-size:14px}.sidebar-footer{margin-top:18px;padding:15px;border-radius:15px;background:rgba(255,255,255,.06);color:#b9c6dd;font-size:12px;line-height:1.7}
.main-area{min-width:0}.topbar{height:82px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid rgba(223,231,241,.8);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:15}.topbar-right{display:flex;align-items:center;gap:13px}.mobile-menu{display:none}.user-chip{display:flex;align-items:center;gap:11px}.avatar{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#0f8b8d,#2f6fed);display:grid;place-items:center;color:#fff;font-weight:900}.user-chip b,.user-chip span{display:block}.user-chip span{font-size:12px;color:var(--muted)}.topbar-actions{display:flex;gap:8px}.page-content{padding:27px;max-width:1700px;margin:auto}.page-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:22px}.page-heading h2{margin:0 0 5px;font-size:28px}.page-heading p{margin:0;color:var(--muted)}.heading-actions{display:flex;gap:8px;flex-wrap:wrap}.breadcrumb{font-size:12px;color:var(--muted);margin-bottom:6px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid rgba(223,231,241,.9);border-radius:20px;padding:20px;box-shadow:0 9px 25px rgba(15,23,42,.06);position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;width:95px;height:95px;border-radius:50%;background:var(--card-glow,rgba(47,111,237,.09));left:-26px;bottom:-34px}.stat-card-top{display:flex;align-items:center;justify-content:space-between}.stat-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:var(--card-soft,#eaf1ff);color:var(--card-color,var(--blue));font-size:19px;font-weight:900}.stat-card strong{display:block;font-size:31px;margin-top:16px}.stat-card span{color:var(--muted);font-weight:700}.stat-card small{color:#98a2b3}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.panel{background:#fff;border:1px solid rgba(223,231,241,.95);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.panel-header h3{margin:0;font-size:18px}.panel-header p{margin:3px 0 0;color:var(--muted);font-size:12px}.panel-actions{display:flex;gap:7px;flex-wrap:wrap}.empty{padding:42px 20px;text-align:center;color:var(--muted)}.empty .empty-icon{font-size:38px;margin-bottom:9px}.hint{font-size:12px;color:var(--muted)}
.readiness-list{display:grid;gap:10px}.ready-row{display:flex;justify-content:space-between;align-items:center;padding:12px 13px;border-radius:13px;background:#f7f9fc}.ready-status{font-size:12px;font-weight:900;padding:5px 9px;border-radius:999px}.ready-status.ok{background:#e7f8f3;color:#08765f}.ready-status.no{background:#fff0ef;color:#b42318}.progress{height:12px;border-radius:999px;background:#e8edf5;overflow:hidden}.progress>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0f8b8d,#2f6fed);transition:.4s}
.level-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.level-card{padding:16px;border-radius:17px;background:linear-gradient(135deg,#f8fbff,#edf4ff);border:1px solid #dce9ff}.level-card h4{margin:0 0 12px}.level-numbers{display:flex;justify-content:space-between;color:var(--muted)}.level-numbers strong{color:var(--dark);font-size:20px}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:15px}.toolbar .search{min-width:250px;flex:1}.toolbar select{width:auto;min-width:160px}.toolbar-actions{margin-inline-start:auto;display:flex;gap:8px;flex-wrap:wrap}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.data-table{width:100%;border-collapse:separate;border-spacing:0;min-width:800px;background:#fff}.data-table th{position:sticky;top:0;background:#f5f8fc;color:#475467;font-size:12px;text-align:right;padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px;border-bottom:1px solid #edf1f6;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f9fbff}.table-actions{display:flex;gap:5px;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;background:#eef2f8;color:#475467}.badge.success{background:#e7f8f3;color:#08765f}.badge.danger{background:#fff0ef;color:#b42318}.badge.warning{background:#fff5df;color:#915e00}.badge.info{background:#eaf1ff;color:#245bc8}.badge.purple{background:#f1eafe;color:#6c35c5}.code{direction:ltr;display:inline-block;font-family:Consolas,monospace;background:#f1f5f9;padding:3px 7px;border-radius:7px;color:#334155}.pager{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:15px}.pager button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:7px 11px}.pager button:disabled{opacity:.4}.count-note{color:var(--muted);font-size:12px;margin-top:10px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px;background:#eaf0f7;padding:7px;border-radius:15px}.tab-btn{border:0;background:transparent;padding:10px 15px;border-radius:11px;font-weight:800;color:#526176}.tab-btn.active{background:#fff;color:var(--blue);box-shadow:0 5px 14px rgba(15,23,42,.08)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid .span-2{grid-column:span 2}.form-grid .span-3{grid-column:span 3}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-card{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fafcff}.check-card input{margin-top:4px}.check-card b{display:block}.check-card small{color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:rgba(5,12,26,.60);display:grid;place-items:center;padding:20px;z-index:100;backdrop-filter:blur(3px)}.modal{width:min(760px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 35px 90px rgba(0,0,0,.35)}.modal.modal-lg{width:min(1050px,100%)}.modal-header{position:sticky;top:0;background:#fff;z-index:2;padding:19px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-header h3{margin:0}.modal-close{border:0;background:#f1f5f9;width:36px;height:36px;border-radius:11px;font-size:18px}.modal-body{padding:22px}.modal-footer{padding:15px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;background:#fafcff;position:sticky;bottom:0}
.toast-root{position:fixed;left:22px;bottom:22px;z-index:200;display:grid;gap:9px}.toast{min-width:280px;max-width:430px;background:#fff;border-radius:14px;padding:13px 15px;box-shadow:0 16px 45px rgba(15,23,42,.22);border-right:5px solid var(--blue);animation:toastIn .25s ease}.toast.success{border-right-color:#16a085}.toast.error{border-right-color:#d92d20}.toast.warning{border-right-color:#f5a623}@keyframes toastIn{from{transform:translateX(-25px);opacity:0}}
.permission-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.permission-group{border:1px solid var(--line);border-radius:14px;padding:12px}.permission-group h4{margin:0 0 9px}.permission-item{display:flex;gap:8px;align-items:flex-start;padding:6px 0}.hero-strip{padding:22px;border-radius:22px;background:linear-gradient(135deg,#0f8b8d,#2f6fed 70%,#6c52d9);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;box-shadow:0 18px 40px rgba(47,111,237,.25)}.hero-strip h2{margin:0 0 7px}.hero-strip p{margin:0;opacity:.9}.hero-badge{background:rgba(255,255,255,.16);padding:13px 16px;border-radius:16px;text-align:center;min-width:130px}.hero-badge strong{display:block;font-size:27px}.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quick-action{border:1px solid var(--line);background:#fff;border-radius:17px;padding:16px;text-align:right;transition:.2s}.quick-action:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#bdd2ff}.quick-action b{display:block;margin-bottom:5px}.quick-action span{font-size:12px;color:var(--muted)}
.import-box{border:2px dashed #b9c9e2;border-radius:18px;padding:28px;text-align:center;background:#f9fbff}.import-box input{margin:15px auto}.result-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.result-summary>div{padding:13px;border-radius:13px;background:#f4f7fb;text-align:center}.result-summary strong{display:block;font-size:22px}.error-list{max-height:230px;overflow:auto;background:#fff6f5;border:1px solid #ffd4cf;border-radius:12px;padding:10px}.error-list div{padding:6px;border-bottom:1px solid #ffe5e2}.error-list div:last-child{border:0}
@media(max-width:1200px){.stats-grid,.level-cards,.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell{grid-template-columns:240px 1fr}}
@media(max-width:900px){.app-shell{display:block}.sidebar{position:fixed;right:0;transform:translateX(105%);width:280px;transition:.25s}.sidebar.open{transform:none}.mobile-menu{display:inline-flex}.page-content{padding:18px}.topbar{padding:0 15px}.grid-2,.grid-3,.form-grid,.form-grid.cols-3,.permission-groups{grid-template-columns:1fr}.form-grid .span-2,.form-grid .span-3{grid-column:span 1}.login-wrap{grid-template-columns:1fr}.login-hero{display:none}.login-card{padding:40px 28px}.page-heading{flex-direction:column}.toolbar-actions{margin-inline-start:0}.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.stats-grid,.level-cards,.quick-actions{grid-template-columns:1fr}.topbar .user-chip div:last-child{display:none}.page-content{padding:13px}.panel{padding:14px;border-radius:17px}.login-page{padding:15px}.login-card{padding:32px 20px}.page-heading h2{font-size:23px}.modal-backdrop{padding:8px}.modal{border-radius:18px}.check-grid{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.heading-actions,.toolbar,.table-actions,.pager,.btn{display:none!important}.app-shell{display:block}.page-content{padding:0}.panel{box-shadow:none;border:0}.data-table{min-width:0;font-size:10px}body{background:#fff}}

.tag-list{display:flex;gap:7px;flex-wrap:wrap}.tag-list span{margin:2px 0}

/* Phase 2: course distribution and grade control */
.cell-sub{display:block;margin-top:4px;color:var(--muted);font-size:11px}.course-select-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:330px;overflow:auto;border:1px solid var(--line);border-radius:15px;padding:12px;background:#f9fbff}.grade-filter{background:linear-gradient(135deg,#fff,#f2f7ff)}.grade-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:15px}.grade-meter>div{padding:13px;border:1px solid var(--line);border-radius:14px;background:#f8faff;text-align:center}.grade-meter b{display:block;font-size:23px}.grade-meter span{color:var(--muted);font-size:12px}.grade-table-wrap{max-height:68vh}.grade-table th{z-index:3}.grade-table th:nth-child(2),.grade-table td:nth-child(2){position:sticky;right:0;z-index:2;background:#fff;min-width:240px}.grade-table th:nth-child(2){background:#f5f8fc;z-index:4}.grade-input{min-width:105px;padding:9px!important;text-align:center;font-weight:800}.grade-input:disabled{background:#f1f4f8;color:#667085}.grade-total,.grade-value{font-weight:900;font-size:16px}.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.review-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:linear-gradient(145deg,#fff,#f8fbff);box-shadow:0 8px 24px rgba(15,23,42,.05)}.review-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}.review-card h3{margin:7px 0 3px;font-size:17px}.review-card small{color:var(--muted)}.review-numbers{display:flex;justify-content:space-between;gap:8px;margin:12px 0;color:var(--muted)}.review-numbers b{color:var(--dark);font-size:18px}.danger-text,.danger-text b{color:#b42318!important}.review-actions{display:flex;gap:7px;flex-wrap:wrap}.timeline{display:grid;gap:10px}.timeline-item{border-right:4px solid var(--blue);background:#f7f9fc;border-radius:12px;padding:12px}.timeline-item small{display:block;color:var(--muted);margin-top:6px}.btn-warning{background:#f5a623;color:#fff;border-color:#f5a623}
@media(max-width:900px){.course-select-box,.review-grid{grid-template-columns:1fr}.grade-meter{grid-template-columns:repeat(2,1fr)}}

/* المرحلة الثالثة: النتائج والرافة والاعتماد */
.result-control-panel{border-top:4px solid var(--primary)}
.result-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}
.result-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px;border-radius:24px;background:linear-gradient(135deg,#083344,#0f766e 55%,#2563eb);color:#fff;margin-bottom:18px;box-shadow:0 18px 42px rgba(8,51,68,.22)}
.result-hero h2{margin:7px 0;font-size:28px}.result-hero p{margin:0;opacity:.9}.result-hero .breadcrumb{color:#d9fffb}.result-hero-actions{display:flex;gap:10px;flex-wrap:wrap}.result-hero-actions .btn{background:#fff;color:#123}
.result-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.result-metric{position:relative;overflow:hidden;background:#fff;border:1px solid #e6edf4;border-radius:20px;padding:18px;box-shadow:0 10px 28px rgba(15,23,42,.07)}
.result-metric:after{content:"";position:absolute;inset:auto -16px -28px auto;width:86px;height:86px;border-radius:50%;background:rgba(37,99,235,.08)}
.result-metric span,.result-metric small{display:block;color:#64748b}.result-metric strong{display:block;font-size:30px;margin:6px 0;color:#0f172a}
.result-metric.success{border-color:#bbf7d0}.result-metric.warning{border-color:#fde68a}.result-metric.danger{border-color:#fecaca}.result-metric.purple{border-color:#ddd6fe}
.workflow-steps{display:flex;align-items:center;justify-content:center;gap:0;padding:18px 8px 4px;overflow:auto}
.workflow-step{min-width:92px;text-align:center;color:#94a3b8}.workflow-step b{display:grid;place-items:center;width:38px;height:38px;margin:0 auto 7px;border-radius:50%;background:#e2e8f0;color:#64748b}.workflow-step.done b{background:#10b981;color:#fff}.workflow-step.active b{background:#2563eb;color:#fff;box-shadow:0 0 0 7px rgba(37,99,235,.12)}.workflow-step span{font-weight:700;font-size:13px}.workflow-line{height:4px;min-width:70px;background:#e2e8f0;border-radius:99px;margin-top:-24px}.workflow-line.done{background:#10b981}
.result-table .link-button{border:0;background:none;padding:0;color:#0f5bd8;cursor:pointer;text-align:right}.result-table .link-button:hover{text-decoration:underline}.result-table td{vertical-align:middle}.cell-sub{display:block;color:#64748b;margin-top:4px;font-size:12px}.green-row{background:#ecfdf5!important}.grace-after{display:inline-block;color:#047857;font-weight:900;background:#d1fae5;padding:3px 8px;border-radius:8px}.result-detail-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:16px;border-bottom:1px solid #e2e8f0;margin-bottom:16px}.result-detail-head h2{margin:0 0 5px}.decision-pre{direction:rtl;text-align:right;white-space:pre-wrap;max-height:360px;overflow:auto;background:#0f172a;color:#d1fae5;border-radius:14px;padding:16px;font-size:12px;line-height:1.8}
.btn-success{background:#059669;color:#fff;border-color:#059669}.btn-success:hover{background:#047857}.danger-text{color:#b91c1c}
@media(max-width:1100px){.result-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.result-hero{align-items:flex-start;flex-direction:column}}
@media(max-width:720px){.result-options,.result-metrics{grid-template-columns:1fr}.workflow-line{min-width:32px}.workflow-step{min-width:72px}.result-hero{border-radius:18px;padding:18px}.result-hero h2{font-size:23px}}

/* ===================== V4.1 الرفع الشامل للدرجات ===================== */
.bulk-import-hero{display:grid;grid-template-columns:1.35fr 1fr;gap:24px;align-items:center;padding:28px;border-radius:24px;margin-bottom:22px;background:linear-gradient(135deg,#0f8b8d 0%,#1261a0 48%,#392f8f 100%);color:#fff;box-shadow:0 18px 50px rgba(15,86,138,.24);position:relative;overflow:hidden}
.bulk-import-hero:before,.bulk-import-hero:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}
.bulk-import-hero:before{width:220px;height:220px;left:-70px;top:-110px}.bulk-import-hero:after{width:150px;height:150px;right:42%;bottom:-95px}
.bulk-hero-copy,.bulk-stepper{position:relative;z-index:1}.bulk-kicker{display:inline-flex;padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.16);font-weight:800;font-size:.83rem;margin-bottom:10px}.bulk-hero-copy h3{font-size:1.7rem;margin:0 0 8px}.bulk-hero-copy p{margin:0;line-height:1.9;color:rgba(255,255,255,.9)}
.bulk-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.bulk-stepper>div{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:rgba(255,255,255,.76);font-size:.78rem}.bulk-stepper b{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font-size:1rem}.bulk-stepper .active b{background:#fff;color:#1261a0;box-shadow:0 8px 25px rgba(0,0,0,.18)}.bulk-stepper .active{color:#fff;font-weight:800}
.bulk-upload-panel{border-top:4px solid #0f8b8d}.bulk-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:250px;padding:30px;border:2px dashed #9ecfd0;border-radius:22px;background:linear-gradient(180deg,#f7ffff,#f4f8ff);cursor:pointer;transition:.25s ease}.bulk-dropzone:hover,.bulk-dropzone.dragging{transform:translateY(-2px);border-color:#2f6fed;background:#eef6ff;box-shadow:0 14px 35px rgba(47,111,237,.12)}.bulk-drop-icon{width:74px;height:74px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(135deg,#0f8b8d,#2f6fed);color:#fff;font-size:2.1rem;box-shadow:0 12px 28px rgba(47,111,237,.25);margin-bottom:14px}.bulk-dropzone h3{margin:0 0 5px}.bulk-dropzone p{max-width:700px;color:var(--muted);margin:0 0 18px;line-height:1.8}
.bulk-options-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.bulk-options-grid .span-2{grid-column:1/-1}
.bulk-job-list{display:grid;gap:18px}.bulk-job-list.compact{gap:14px}.bulk-job-card{border:1px solid #dfe9ef;border-radius:20px;padding:20px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 8px 22px rgba(20,66,92,.06)}.bulk-job-list.compact .bulk-job-card{padding:16px}.bulk-job-head{display:flex;align-items:center;gap:14px}.bulk-file-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#e7fff7,#d9ecff);color:#087f5b;font-weight:900;font-size:.78rem;border:1px solid #bfe8d8}.bulk-file-main{flex:1;min-width:0}.bulk-file-main h3{margin:0 0 3px;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bulk-file-main p{margin:0;color:var(--muted);font-size:.82rem}
.bulk-progress{margin-top:14px;display:flex;align-items:center;gap:12px}.bulk-progress-track{flex:1;height:10px;background:#e7eef3;border-radius:99px;overflow:hidden}.bulk-progress-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#0f8b8d,#2f6fed);transition:width .25s}.bulk-progress small{min-width:120px;color:var(--muted);text-align:left}
.bulk-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:16px}.bulk-kpis>div{padding:12px;border-radius:14px;background:#f3f7fa;border:1px solid #e5edf1}.bulk-kpis span{display:block;color:var(--muted);font-size:.75rem;margin-bottom:3px}.bulk-kpis b{font-size:1.1rem}.bulk-kpis .success{background:#edfff7;border-color:#c9f1df}.bulk-kpis .warning{background:#fff9e8;border-color:#f6e6af}.bulk-kpis .danger{background:#fff1f1;border-color:#f7cccc}
.bulk-result-strip{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;padding:12px;border-radius:14px;background:#f2fbff}.bulk-result-strip span{padding:7px 10px;border-radius:10px;background:#fff;border:1px solid #dcebf4;font-size:.8rem}.bulk-result-strip b{color:#1261a0;margin-left:4px}
.bulk-mini-summary{display:grid;gap:4px;margin-top:12px;color:var(--muted);font-size:.78rem;line-height:1.7}.bulk-preview-details{margin-top:14px;border-top:1px solid #e7edf1;padding-top:12px}.bulk-preview-details summary{cursor:pointer;font-weight:800;color:#1261a0}.bulk-preview-table{min-width:1200px;margin-top:12px}.bulk-preview-table td{vertical-align:top}.bulk-issue{display:grid;gap:2px;padding:6px 8px;border-radius:9px;margin-bottom:5px;min-width:210px}.bulk-issue b{font-size:.67rem}.bulk-issue span{font-size:.72rem;line-height:1.45}.bulk-issue.error{background:#fff0f0;color:#a61b1b}.bulk-issue.warning{background:#fff8df;color:#8b6500}.bulk-job-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:16px}
@media(max-width:1100px){.bulk-import-hero{grid-template-columns:1fr}.bulk-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.bulk-import-hero{padding:20px}.bulk-stepper{grid-template-columns:repeat(2,1fr)}.bulk-options-grid{grid-template-columns:1fr}.bulk-options-grid .span-2{grid-column:auto}.bulk-kpis{grid-template-columns:repeat(2,1fr)}.bulk-job-head{align-items:flex-start;flex-wrap:wrap}.bulk-file-main{min-width:180px}.bulk-progress{align-items:flex-start;flex-direction:column}.bulk-progress small{text-align:right}.bulk-dropzone{min-height:220px;padding:20px}}
