:root{--primary:#a30d73;--primary-dark:#741052;--primary-soft:#fbe7f5;--accent:#7c3aed;--ink:#172033;--muted:#64748b;--surface:#fff;--canvas:#f7f7fb;--border:#e7e8ef;--sidebar:274px}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--canvas);color:var(--ink);font-size:14px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,#401031 0%,#271029 58%,#17101f 100%);color:#fff;z-index:1040;display:flex;flex-direction:column;padding:22px 16px;box-shadow:14px 0 40px rgba(41,12,35,.16)}.brand-wrap{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;padding:2px 8px 22px}.brand-wrap strong,.login-brand strong{display:block;font-size:20px;letter-spacing:.2px}.brand-wrap small,.login-brand small{display:block;color:rgba(255,255,255,.64);font-size:11px;margin-top:2px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,#e83eaa,#8b3dff);box-shadow:0 10px 22px rgba(222,43,164,.28)}.brand-mark.large{width:58px;height:58px;border-radius:18px;font-size:20px}.sidebar-user{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.06);border-radius:16px;margin-bottom:18px}.avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#fff;color:var(--primary);font-weight:800}.sidebar-user strong{font-size:13px;display:block;max-width:155px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{display:block;font-size:11px;color:rgba(255,255,255,.58);margin-top:2px}.sidebar-nav{display:flex;flex-direction:column;gap:5px;overflow-y:auto}.nav-label{padding:15px 13px 6px;color:rgba(255,255,255,.42);text-transform:uppercase;font-size:9px;font-weight:800;letter-spacing:1.4px}.nav-item{width:100%;display:flex;align-items:center;gap:12px;padding:11px 13px;border:0;border-radius:12px;background:transparent;color:rgba(255,255,255,.72);text-decoration:none;font-weight:600;transition:.18s}.nav-item i{font-size:17px}.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}.nav-item.active{background:linear-gradient(90deg,rgba(232,62,170,.32),rgba(139,61,255,.18));color:#fff;box-shadow:inset 3px 0 #f65dc1}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding-top:12px}.logout-button{cursor:pointer}.main-area{min-height:100vh;margin-left:var(--sidebar);display:flex;flex-direction:column}.topbar{height:92px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 32px;position:sticky;top:0;z-index:1020}.page-heading{flex:1}.eyebrow,.section-kicker,.banner-kicker{display:block;color:var(--primary);font-weight:800;text-transform:uppercase;letter-spacing:1.1px;font-size:9px;margin-bottom:4px}.page-heading h1{font-size:24px;margin:0;font-weight:800}.topbar-actions{display:flex;align-items:center;gap:8px}.mobile-menu{display:none}.icon-button{border:1px solid var(--border);background:#fff;border-radius:11px;width:42px;height:42px}.content-area{padding:28px 32px;flex:1}.app-footer{display:flex;justify-content:space-between;gap:20px;padding:18px 32px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;background:#fff}.welcome-banner{position:relative;overflow:hidden;border-radius:24px;padding:28px 30px;background:linear-gradient(120deg,#a30d73,#6d28d9);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:22px;box-shadow:0 18px 38px rgba(116,16,82,.2)}.welcome-banner:after{content:"";position:absolute;width:260px;height:260px;border:48px solid rgba(255,255,255,.08);border-radius:50%;right:-70px;top:-100px}.welcome-banner>*{position:relative;z-index:1}.welcome-banner h2{font-size:27px;font-weight:800;margin:3px 0 7px}.welcome-banner p{margin:0;color:rgba(255,255,255,.75)}.banner-kicker{color:#ffd8f0}.welcome-banner .btn{border-radius:12px;padding:11px 16px;font-weight:700;white-space:nowrap}.metric-card{position:relative;display:flex;align-items:center;gap:14px;min-height:128px;background:#fff;border:1px solid var(--border);border-radius:19px;padding:19px;color:var(--ink);text-decoration:none;box-shadow:0 7px 22px rgba(32,26,46,.05);transition:.2s}.metric-card:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(55,27,66,.1);border-color:#e7b5d7}.metric-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-size:20px;flex:none}.tone-1{background:#fbe7f5;color:#b30b7a}.tone-2{background:#eee8ff;color:#6d28d9}.tone-3{background:#e5f7f4;color:#0f8a78}.tone-4{background:#fff2dc;color:#d97706}.metric-copy small{display:block;color:var(--muted);font-size:11px;font-weight:700}.metric-copy strong{display:block;font-size:26px;line-height:1.15;margin:3px 0}.metric-copy em{font-size:10px;color:#94a3b8;font-style:normal}.metric-arrow{position:absolute;right:14px;top:14px;color:#cbd5e1}.card,.modern-card{border:1px solid var(--border);border-radius:20px;box-shadow:0 7px 24px rgba(32,26,46,.05);overflow:hidden}.card-header{background:#fff;border-bottom:1px solid var(--border);padding:18px 21px;display:flex;justify-content:space-between;align-items:center}.card-header h5{font-size:15px;margin:0;font-weight:800}.small-link{color:var(--primary);font-size:11px;text-decoration:none;font-weight:700}.modern-table thead th,.table thead th{background:#faf9fc;color:#7c8494;text-transform:uppercase;font-size:9px;letter-spacing:.7px;padding:13px 18px;border-bottom:1px solid var(--border);white-space:nowrap}.modern-table td,.table td{padding:14px 18px;vertical-align:middle;border-color:#f0f1f5}.modern-table tbody tr:hover,.table-hover tbody tr:hover{background:#fdf8fc}.table-date{display:block;font-weight:700;color:#344054}.modern-table td small{display:block;color:#98a2b3}.status-pill{display:inline-flex;padding:5px 9px;background:var(--primary-soft);color:var(--primary);border-radius:999px;font-size:10px;font-weight:800}.quick-actions{display:flex;flex-direction:column;gap:10px}.quick-actions>a{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--border);border-radius:14px;color:var(--ink);text-decoration:none;transition:.18s}.quick-actions>a:hover{background:#fdf7fb;border-color:#edbfdd;transform:translateX(3px)}.quick-actions>a>i:first-child{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--primary-soft);color:var(--primary);font-size:17px}.quick-actions span{flex:1}.quick-actions strong,.quick-actions small{display:block}.quick-actions strong{font-size:12px}.quick-actions small{font-size:10px;color:var(--muted);margin-top:2px}.quick-actions>a>i:last-child{font-size:11px;color:#b8bec9}.empty-state{text-align:center;padding:32px;color:#94a3b8}.empty-state i,.empty-state strong,.empty-state span{display:block}.empty-state i{font-size:25px;margin-bottom:8px}.empty-state strong{color:#475569}.btn{border-radius:11px;font-weight:700;font-size:12px;padding:9px 14px}.btn-primary,.text-bg-primary{background:linear-gradient(135deg,var(--primary),#7c3aed)!important;border-color:transparent!important}.btn-primary:hover{filter:brightness(.94)}.btn-outline-primary{color:var(--primary);border-color:#d9a4c9}.btn-outline-primary:hover{background:var(--primary);border-color:var(--primary)}.form-control,.form-select{border-radius:11px;border-color:#dfe2e9;min-height:43px;font-size:13px}.form-control:focus,.form-select:focus{border-color:#cb61a7;box-shadow:0 0 0 .2rem rgba(163,13,115,.1)}.form-label{font-size:11px;font-weight:700;color:#475569}.pagination{--bs-pagination-active-bg:var(--primary);--bs-pagination-active-border-color:var(--primary)}.alert{border-radius:14px}.login-page{min-height:100vh;background:#f6f2f7}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(420px,.95fr)}.login-visual{position:relative;overflow:hidden;padding:55px 8vw;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#3c102e,#83105e 65%,#6d28d9);color:#fff}.login-visual:before,.login-visual:after{content:"";position:absolute;border-radius:50%;border:55px solid rgba(255,255,255,.06)}.login-visual:before{width:350px;height:350px;right:-130px;top:-90px}.login-visual:after{width:240px;height:240px;left:-80px;bottom:-80px}.login-visual>*{position:relative;z-index:1}.visual-badge{align-self:flex-start;padding:8px 12px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);border-radius:999px;font-size:11px}.login-brand{display:flex;align-items:center;gap:13px;margin-bottom:38px}.login-visual h1{font-size:clamp(38px,4.2vw,62px);max-width:690px;line-height:1.06;font-weight:800;letter-spacing:-2px}.login-visual>div>p{font-size:16px;line-height:1.7;color:rgba(255,255,255,.72);max-width:610px}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.feature-grid>div{display:flex;gap:11px;padding:15px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.07);border-radius:15px}.feature-grid i{font-size:20px}.feature-grid strong,.feature-grid small{display:block}.feature-grid small{color:rgba(255,255,255,.58);font-size:10px;margin-top:3px}.login-panel{display:grid;place-items:center;padding:42px;background:#fff}.login-form-wrap{width:min(430px,100%)}.login-form-wrap h2{font-weight:800;font-size:29px;margin-bottom:8px}.input-icon{position:relative}.input-icon i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#98a2b3}.input-icon .form-control{padding-left:41px;height:48px}.secure-note{font-size:10px;color:#16a34a}.demo-note{margin-top:22px;padding:14px 15px;border-radius:13px;background:#faf6f9;border:1px solid #f1dbe9;font-size:10px;color:#667085}.demo-note strong,.demo-note span{display:block}.demo-note strong{font-size:11px;color:#7c225f;margin-bottom:4px}.table4{font-family:Arial,sans-serif;font-size:11pt;font-style:normal}.table4 td,.table4 th{border-color:#222!important}.table4 .section{background:#e9ecef;font-weight:700}pre{max-width:420px;max-height:260px;overflow:auto;font-size:11px}.slt{min-width:65px}.sidebar-backdrop{display:none}
@media(max-width:991.98px){.sidebar{transform:translateX(-105%);transition:.22s}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,10,18,.45);z-index:1030;opacity:0;pointer-events:none;transition:.2s}.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}.main-area{margin-left:0}.mobile-menu{display:grid;place-items:center;margin-right:14px}.topbar{height:82px;padding:0 20px}.content-area{padding:22px 20px}.login-shell{grid-template-columns:1fr}.login-visual{display:none}.app-footer{padding:16px 20px}}
@media(max-width:575.98px){.topbar{height:74px}.page-heading .eyebrow{display:none}.page-heading h1{font-size:19px}.content-area{padding:16px 12px}.welcome-banner{padding:22px;align-items:flex-start;flex-direction:column}.welcome-banner h2{font-size:22px}.app-footer{flex-direction:column}.login-panel{padding:28px 20px}.card-header{padding:16px}.metric-card{min-height:112px}}

/* ================================================================
   AST4MS UI Refresh · August 2026
   Polished application shell, forms, tables and CSV workspace
   ================================================================ */
:root{
    --primary:#ad147d;
    --primary-dark:#7d0f5a;
    --primary-soft:#fff0f8;
    --primary-line:#f1c9df;
    --accent:#7c3aed;
    --ink:#182033;
    --muted:#667085;
    --surface:#ffffff;
    --canvas:#f6f7fb;
    --border:#e6e8ef;
    --border-strong:#d9dde7;
    --shadow-sm:0 4px 16px rgba(20,24,40,.045);
    --shadow-md:0 12px 32px rgba(20,24,40,.07);
}
body{background:radial-gradient(circle at 88% 0%,rgba(173,20,125,.035),transparent 24rem),var(--canvas);}
.sidebar{padding:20px 16px 16px;background:linear-gradient(180deg,#3d0e2f 0%,#291128 57%,#17101f 100%);}
.brand-wrap{padding:2px 7px 20px;}
.brand-mark{border-radius:13px;box-shadow:0 12px 26px rgba(224,43,168,.24)}
.sidebar-user{margin:2px 0 17px;padding:12px;border-radius:15px;background:rgba(255,255,255,.055);}
.sidebar-user-copy{min-width:0;}
.sidebar-nav{gap:4px;padding-right:2px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent;}
.nav-item{min-height:46px;border-radius:12px;padding:11px 13px;}
.nav-item i{width:20px;text-align:center;}
.nav-item.active{background:linear-gradient(90deg,rgba(235,61,174,.30),rgba(128,58,214,.20));box-shadow:inset 3px 0 #f05ebd,0 8px 22px rgba(13,5,19,.10);}
.main-area{background:transparent;}
.topbar{height:auto;min-height:88px;padding:16px 32px;gap:22px;background:rgba(255,255,255,.9);box-shadow:0 1px 0 rgba(18,24,40,.02);}
.topbar-title-group{display:flex;align-items:center;min-width:0;flex:1;}
.page-heading{min-width:0;}
.page-title-row{display:flex;align-items:center;gap:10px;min-width:0;}
.page-heading h1{font-size:25px;letter-spacing:-.45px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.page-description{margin:5px 0 0;color:#8a92a3;font-size:11px;line-height:1.4;}
.page-title-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:var(--primary-soft);color:var(--primary);border:1px solid var(--primary-line);font-size:9px;font-weight:800;white-space:nowrap;}
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
.topbar-actions .btn{min-height:39px;display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.content-area{padding:26px 32px 34px;}
.card,.modern-card{border-radius:18px;border-color:var(--border);box-shadow:var(--shadow-sm);}
.card:hover{border-color:#dfe2ea;}
.card-header{padding:17px 20px;}
.card-footer{padding:14px 20px;background:#fcfcfd;border-color:var(--border);}
.btn{min-height:39px;border-radius:10px;padding:8px 14px;letter-spacing:-.1px;box-shadow:none!important;}
.btn-sm{min-height:34px;padding:6px 11px;border-radius:9px;}
.btn-light{border-color:var(--border);background:#fff;color:#344054;}
.btn-light:hover{background:#f8f9fb;border-color:var(--border-strong);color:#182033;}
.btn-outline-secondary{border-color:#cbd0da;color:#475467;}
.btn-outline-secondary:hover{background:#f4f5f7;color:#182033;border-color:#bfc5d0;}
.btn-outline-danger{border-color:#efb5bc;color:#b42318;}
.btn-outline-danger:hover{background:#fff1f2;color:#9b1c1c;border-color:#e99aa4;}
.form-control,.form-select{min-height:44px;border-radius:10px;border-color:#d9dee8;background-color:#fff;padding:.65rem .8rem;transition:border-color .15s,box-shadow .15s,background-color .15s;}
.form-control:hover,.form-select:hover{border-color:#c8ceda;}
.form-control:focus,.form-select:focus{background-color:#fff;border-color:#cf64aa;box-shadow:0 0 0 3px rgba(173,20,125,.08);}
.form-control::placeholder{color:#a5adba;}
.form-label{font-size:11px;color:#344054;margin-bottom:7px;font-weight:700;}
.form-hint{display:block;margin-top:6px;color:#98a2b3;font-size:10px;line-height:1.45;}
textarea.form-control{min-height:auto;line-height:1.6;}
.table-responsive{border-radius:0 0 18px 18px;}
.table{margin-bottom:0;}
.modern-table thead th,.table thead th{padding:12px 16px;background:#fafbfc;color:#7d8597;font-size:9px;letter-spacing:.75px;border-bottom:1px solid var(--border);}
.modern-table td,.table td{padding:15px 16px;border-color:#eef0f4;}
.table tbody tr:last-child td{border-bottom:0;}
.table-hover tbody tr{transition:background .15s;}
.table-hover tbody tr:hover{background:#fdfafd;}
.table-code{display:inline-flex;align-items:center;padding:5px 8px;border-radius:8px;background:#f6f1f5;color:#7d195b;font-size:11px;font-weight:800;letter-spacing:.2px;}
.table-primary-text{display:block;color:#1d2939;font-weight:700;font-size:13px;line-height:1.35;}
.table-secondary-text{display:block;color:#8a94a6;font-size:11px;margin-top:3px;line-height:1.35;}
.soft-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700;border:1px solid #e1e5eb;background:#f8f9fb;color:#475467;}
.soft-badge.success{background:#effaf5;border-color:#c8eddc;color:#067647;}
.soft-badge.warning{background:#fff8eb;border-color:#f5dfad;color:#b54708;}
.soft-badge.muted{background:#f3f4f6;border-color:#e5e7eb;color:#667085;}
.soft-badge.primary{background:var(--primary-soft);border-color:var(--primary-line);color:var(--primary);}
.action-group{display:inline-flex;align-items:center;gap:6px;}
.icon-action{width:35px;height:35px;border-radius:9px;display:inline-grid;place-items:center;border:1px solid var(--border-strong);background:#fff;color:#667085;text-decoration:none;transition:.15s;}
.icon-action:hover{color:var(--primary);border-color:#dfa4c8;background:#fff7fb;}
.app-alert{position:relative;display:flex;align-items:flex-start;gap:11px;padding:12px 46px 12px 12px;margin-bottom:18px;border:1px solid;border-radius:14px;box-shadow:var(--shadow-sm);font-size:12px;}
.app-alert strong,.app-alert span{display:block;}
.app-alert strong{font-size:11px;margin-bottom:1px;}
.app-alert-icon{width:32px;height:32px;border-radius:9px;display:grid!important;place-items:center;flex:none;}
.app-alert-success{background:#f4fcf8;border-color:#cdebdc;color:#05603a;}
.app-alert-success .app-alert-icon{background:#dcf6e8;color:#067647;}
.app-alert-danger{background:#fff7f7;border-color:#f3ced1;color:#912018;}
.app-alert-danger .app-alert-icon{background:#fde5e7;color:#b42318;}
.app-alert-close{position:absolute;right:12px;top:12px;width:28px;height:28px;border:0;background:transparent;color:inherit;opacity:.6;border-radius:8px;}
.app-alert-close:hover{background:rgba(0,0,0,.04);opacity:1;}

/* Page summary and toolbar */
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;}
.summary-tile{display:flex;align-items:center;gap:12px;padding:15px 16px;background:#fff;border:1px solid var(--border);border-radius:15px;box-shadow:0 2px 10px rgba(20,24,40,.025);}
.summary-icon{width:40px;height:40px;display:grid;place-items:center;flex:none;border-radius:11px;background:var(--primary-soft);color:var(--primary);font-size:17px;}
.summary-icon.alt{background:#f0edff;color:#6941c6;}
.summary-icon.success{background:#ecf9f2;color:#067647;}
.summary-icon.slate{background:#f2f4f7;color:#475467;}
.summary-copy{min-width:0;}
.summary-copy strong{display:block;font-size:20px;line-height:1.1;color:#1d2939;}
.summary-copy span{display:block;color:#8a94a6;font-size:10px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.toolbar-card{display:flex;align-items:center;gap:10px;padding:12px;background:#fff;border:1px solid var(--border);border-radius:15px;margin-bottom:16px;box-shadow:0 2px 10px rgba(20,24,40,.025);}
.toolbar-card .search-control{position:relative;flex:1;min-width:220px;}
.toolbar-card .search-control i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#98a2b3;}
.toolbar-card .search-control .form-control{padding-left:38px;}
.toolbar-card .filter-control{min-width:190px;}
.toolbar-card .btn{white-space:nowrap;}
.data-card{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-sm);overflow:hidden;}
.data-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border);}
.data-card-head h2{font-size:13px;font-weight:800;margin:0;color:#1d2939;}
.data-card-head p{margin:2px 0 0;font-size:10px;color:#98a2b3;}
.data-card-meta{font-size:10px;color:#98a2b3;white-space:nowrap;}
.data-card .pagination{margin:15px 18px;}
.empty-table-state{padding:44px 18px;text-align:center;color:#98a2b3;}
.empty-table-state .empty-icon{width:50px;height:50px;margin:0 auto 10px;border-radius:15px;display:grid;place-items:center;background:#f7f1f5;color:#ad147d;font-size:21px;}
.empty-table-state strong{display:block;color:#475467;font-size:13px;}
.empty-table-state span{display:block;font-size:11px;margin-top:4px;}

/* Form layout */
.form-shell{max-width:1120px;margin:0 auto;}
.form-section{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:15px;}
.form-section-head{display:flex;gap:12px;align-items:flex-start;padding:17px 19px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,#fdfdfd);}
.form-section-icon{width:38px;height:38px;border-radius:11px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;flex:none;font-size:17px;}
.form-section-head h2{margin:0;font-size:13px;font-weight:800;color:#1d2939;}
.form-section-head p{margin:3px 0 0;color:#98a2b3;font-size:10px;line-height:1.45;}
.form-section-body{padding:19px;}
.form-actions-bar{position:sticky;bottom:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;margin-top:18px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:15px;box-shadow:0 -4px 22px rgba(20,24,40,.045),var(--shadow-sm);}
.form-actions-note{font-size:10px;color:#98a2b3;}
.form-actions-buttons{display:flex;gap:8px;align-items:center;}
.field-prefix{position:relative;}
.field-prefix>i{position:absolute;left:13px;top:50%;transform:translateY(-50%);z-index:2;color:#98a2b3;}
.field-prefix>.form-control{padding-left:39px;}

/* CSV workspace */
.csv-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:16px;margin-bottom:20px;}
.csv-panel{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-sm);overflow:hidden;}
.csv-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px;border-bottom:1px solid var(--border);}
.csv-title{display:flex;align-items:center;gap:11px;min-width:0;}
.csv-title-icon{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:18px;flex:none;}
.csv-title h2{margin:0;font-size:13px;font-weight:800;}
.csv-title p{margin:2px 0 0;font-size:10px;color:#98a2b3;}
.csv-panel-body{padding:18px;}
.csv-file-zone{position:relative;display:flex;align-items:center;gap:13px;border:1.5px dashed #d4a8c4;background:#fffafd;padding:16px;border-radius:14px;cursor:pointer;transition:.15s;}
.csv-file-zone:hover{border-color:#bd5599;background:#fff7fb;}
.csv-file-zone .upload-icon{width:43px;height:43px;border-radius:12px;background:#f8e8f2;color:var(--primary);display:grid;place-items:center;font-size:18px;flex:none;}
.csv-file-zone strong{display:block;color:#344054;font-size:11px;}
.csv-file-zone .min-w-0>span{display:block;color:#98a2b3;font-size:10px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:430px;}
.csv-file-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.csv-helper{display:flex;gap:10px;padding:12px;border:1px solid #e8e6f0;background:#faf9ff;border-radius:12px;color:#5e5477;font-size:10px;line-height:1.55;margin-bottom:14px;}
.csv-helper i{color:#7c3aed;font-size:14px;flex:none;}
.csv-guide-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.csv-guide-list li{display:flex;gap:10px;color:#667085;font-size:10px;line-height:1.5;}
.csv-guide-list .step{width:22px;height:22px;border-radius:7px;background:#f2f4f7;color:#475467;display:grid;place-items:center;font-size:9px;font-weight:800;flex:none;}
.csv-code{display:inline-flex;padding:2px 5px;border-radius:5px;background:#f4f0f4;color:#7c225f;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;}

@media(max-width:1199.98px){
    .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    .csv-grid{grid-template-columns:1fr;}
    .topbar{align-items:flex-start;}
    .topbar-actions{max-width:55%;}
}
@media(max-width:991.98px){
    .topbar{padding:13px 20px;align-items:center;}
    .topbar-actions{max-width:58%;}
    .page-description{display:none;}
}
@media(max-width:767.98px){
    .topbar{flex-wrap:wrap;gap:10px;}
    .topbar-title-group{width:100%;}
    .topbar-actions{width:100%;max-width:none;justify-content:flex-start;padding-left:56px;}
    .topbar-actions .btn{flex:1 1 auto;}
    .content-area{padding:18px 16px 28px;}
    .toolbar-card{flex-wrap:wrap;}
    .toolbar-card .search-control{flex-basis:100%;}
    .toolbar-card .filter-control{flex:1;min-width:150px;}
    .data-card-head{align-items:flex-start;}
    .form-section-body{padding:16px;}
    .form-actions-bar{position:static;flex-direction:column;align-items:stretch;}
    .form-actions-buttons{width:100%;}
    .form-actions-buttons .btn{flex:1;}
}
@media(max-width:575.98px){
    .summary-grid{grid-template-columns:1fr 1fr;gap:9px;}
    .summary-tile{padding:12px;gap:9px;}
    .summary-icon{width:36px;height:36px;}
    .summary-copy strong{font-size:17px;}
    .topbar-actions{padding-left:0;}
    .topbar-actions .btn{font-size:10px;padding:7px 9px;}
    .page-heading h1{font-size:19px;}
    .csv-panel-head{align-items:flex-start;flex-direction:column;}
    .csv-panel-head>.d-flex{width:100%;}
    .csv-panel-head>.d-flex .btn{flex:1;}
}

.min-w-0{min-width:0!important;}

/* ===== August 2026 refinement patch ===== */
.list-table-shell{padding:6px 18px 0;}
.data-card-foot{padding:0 18px 18px;}
.ast-data-table thead th{padding-top:12px;padding-bottom:12px;}
.ast-data-table tbody td{padding-top:16px;padding-bottom:16px;}
.module-cell,.lecturer-cell{display:flex;flex-direction:column;gap:3px;min-width:0;}
.module-code{display:inline-flex;align-items:center;align-self:flex-start;padding:5px 9px;border-radius:9px;background:#f5eef4;color:#7e1e5f;font-weight:800;font-size:11px;letter-spacing:.15px;}
.module-name{font-size:14px;line-height:1.35;color:#1d2939;font-weight:700;}
.module-meta{font-size:11px;color:#8a94a6;line-height:1.35;}
.programme-chip-list{display:flex;flex-wrap:wrap;gap:6px;}
.programme-chip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:#fff7fb;border:1px solid #efbfdc;color:#a11273;font-size:10px;font-weight:800;letter-spacing:.15px;}
.version-badge{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:6px 10px;border-radius:999px;background:#f3f4f6;border:1px solid #e5e7eb;color:#344054;font-size:11px;font-weight:800;}
.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:10px;font-weight:800;border:1px solid #e5e7eb;white-space:nowrap;}
.status-badge i{font-size:6px;}
.status-badge.draft{background:#f4f4f5;border-color:#e4e4e7;color:#52525b;}
.status-badge.submitted{background:#fff8eb;border-color:#f5dfad;color:#b54708;}
.status-badge.approved{background:#effaf5;border-color:#c8eddc;color:#067647;}
.status-badge.archived{background:#f2f4f7;border-color:#d0d5dd;color:#475467;}
.ast-pagination-wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:14px;}
.ast-pagination-summary{font-size:12px;color:#667085;}
.ast-pagination-summary strong{color:#1d2939;}
.ast-pagination .page-link{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid #dde2ea;background:#fff;color:#344054;font-size:12px;font-weight:700;box-shadow:none;padding:0 12px;gap:4px;}
.ast-pagination .page-item:not(:first-child) .page-link{margin-left:6px;}
.ast-pagination .page-item.active .page-link{background:linear-gradient(135deg,var(--primary),#7c3aed);border-color:transparent;color:#fff;}
.ast-pagination .page-item.disabled .page-link{background:#f7f7fb;color:#98a2b3;border-color:#eaecf0;}
.ast-pagination .page-link:hover{background:#fff7fb;border-color:#d8a0c5;color:var(--primary);}
.ast-modal{border:0;border-radius:18px;overflow:hidden;box-shadow:0 24px 60px rgba(16,24,40,.18);}
.ast-modal .modal-header{border-bottom:1px solid var(--border);padding:18px 20px;background:#fff;}
.ast-modal .modal-body{padding:20px;background:#fbfbfd;}
.json-preview{margin:0;padding:16px 18px;border-radius:14px;border:1px solid #eceef3;background:#111827;color:#d1d5db;font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;}
.btn-outline-secondary{border-color:#d0d5dd;color:#344054;}
.btn-outline-secondary:hover{background:#f7f8fa;border-color:#c2c8d0;color:#1f2937;}

@media(max-width:767.98px){
  .list-table-shell{padding:0;}
  .ast-pagination-wrap{padding-top:12px;}
  .ast-pagination{width:100%;justify-content:flex-start;}
  .ast-pagination .page-link{height:36px;min-width:36px;}
  .data-card-foot{padding:0 14px 14px;}
}

/* Lecturer-owned Table 4 controls */
.lecturer-lock-field{min-height:43px;display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #dfe2e9;border-radius:11px;background:#f8fafc;color:#344054;}
.lecturer-lock-field>span:nth-child(2){display:flex;flex-direction:column;min-width:0;}
.lecturer-lock-field strong{font-size:12px;line-height:1.25;}
.lecturer-lock-field small{font-size:10px;color:#98a2b3;margin-top:2px;}
.lecturer-lock-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#edf7f2;color:#067647;flex:none;}
.lecturer-lock-field>.bi-lock-fill{color:#98a2b3;font-size:11px;}
.lecturer-import-note{background:#f5fbf8;border-color:#d2ede0;color:#38614f;}
.lecturer-import-note>i{color:#067647;}
