:root{
  --bg:#f7f8fc;
  --surface:#ffffff;
  --surface-2:#fff9f3;
  --text:#1f2937;
  --muted:#6b7280;
  --line:#eceef4;
  --orange:#ff8a1f;
  --orange-2:#ffb04d;
  --purple:#7b61ff;
  --purple-2:#a88cff;
  --success:#16a34a;
  --danger:#dc2626;
  --warning:#f59e0b;
  --shadow:0 14px 40px rgba(38,46,77,.10);
  --radius:22px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:linear-gradient(180deg,#fbfcff 0%,#f7f8fc 100%);color:var(--text);font-family:Inter,Arial,Helvetica,sans-serif}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
img{max-width:100%}
.hidden{display:none!important}
.fade-in{animation:fadeIn .35s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:290px;background:linear-gradient(180deg,#ffffff 0%,#fff6ef 100%);border-right:1px solid var(--line);padding:18px;position:sticky;top:0;height:100vh;overflow:auto;transition:.25s ease}
.sidebar.collapsed{width:94px}
.brand{display:flex;gap:14px;align-items:center;padding:10px 8px 18px 8px}
.brand-badge{width:52px;height:52px;border-radius:16px;background:#fff;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:6px;border:1px solid var(--line)}
.brand-badge img{width:100%;height:100%;object-fit:contain;display:block}
.brand h1{font-size:18px;line-height:1.2;margin:0}
.brand p{margin:3px 0 0;color:var(--muted);font-size:12px}
.menu{display:grid;gap:8px;margin-top:10px}
.menu a,.menu button.nav-btn{display:flex;align-items:center;gap:12px;border:none;background:#fff;padding:13px 14px;border-radius:16px;color:var(--text);cursor:pointer;box-shadow:0 6px 18px rgba(20,20,40,.04);text-align:left}
.menu a:hover,.menu button.nav-btn:hover,.quick-card:hover,.stat-card:hover,.mobile-card:hover,.table-wrap tbody tr:hover,.btn:hover{transform:translateY(-1px)}
.menu .active{background:linear-gradient(135deg,rgba(255,138,31,.12),rgba(123,97,255,.10));color:#111827;font-weight:700}
.icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px}.icon svg{width:18px;height:18px;stroke-width:2.1}
.sidebar.collapsed .label,.sidebar.collapsed .brand-text,.sidebar.collapsed .subtle{display:none}
.sidebar-footer{margin-top:18px;padding:14px;border-radius:18px;background:linear-gradient(135deg,#fff1dd,#f3efff);font-size:13px;color:#5f6474}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.7);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10;max-width:1380px;width:100%;align-self:flex-start}
.top-left{display:flex;align-items:center;gap:12px}
.toggle-btn{border:none;background:#fff;border-radius:14px;padding:11px 13px;cursor:pointer;box-shadow:var(--shadow);display:inline-flex;align-items:center;justify-content:center}.toggle-btn svg{width:18px;height:18px;stroke-width:2.1}
.searchbar{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:16px;min-width:300px}
.searchbar input{border:none;outline:none;width:100%;background:transparent}
.userbox{display:flex;align-items:center;gap:12px;background:#fff;padding:8px 12px;border-radius:16px;box-shadow:var(--shadow)}
.avatar{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--orange),var(--purple));display:grid;place-items:center;color:#fff;font-weight:800}
.content{padding:20px 22px 22px;display:grid;gap:18px;max-width:1380px;width:100%;align-self:flex-start}
.page-title h2{margin:0;font-size:28px}
.page-title p{margin:6px 0 0;color:var(--muted)}
.grid{display:grid;gap:18px}
.grid.stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:15px 16px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:.2s ease}
.stat-card::after{content:"";position:absolute;right:-20px;top:-20px;width:96px;height:96px;background:radial-gradient(circle,rgba(255,176,77,.22) 0,rgba(168,140,255,.12) 48%,transparent 70%)}
.stat-card .kicker{font-size:13px;color:var(--muted)}
.stat-card .value{font-size:32px;font-weight:800;margin-top:8px}
.stat-card .mini{font-size:12px;color:var(--muted);margin-top:8px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow)}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.panel-head h3{margin:0;font-size:19px}
.panel-head p{margin:5px 0 0;color:var(--muted);font-size:13px}
.btn-row{display:flex;gap:10px;flex-wrap:wrap}
.table-actions{gap:6px;align-items:center}.table-actions .btn{padding:8px 10px;font-size:12px}
.btn{border:none;border-radius:14px;padding:11px 16px;cursor:pointer;font-weight:700;transition:.2s ease}
.btn i,.nav-btn i,.toggle-btn i,.searchbar i{width:16px;height:16px;stroke-width:2.2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.nav-btn .icon,.searchbar span{display:inline-flex;align-items:center;justify-content:center}

.btn.primary{background:linear-gradient(135deg,var(--orange),var(--purple));color:#fff}
.btn.secondary{background:#fff;border:1px solid var(--line);color:var(--text)}
.btn.warn{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}
.btn.danger{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.btn.success{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0}
.filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.field{display:grid;gap:7px}
.field label{font-size:13px;font-weight:700;color:#434b5a}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#fff;padding:12px 13px;border-radius:14px;outline:none}
.field textarea{min-height:92px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(123,97,255,.4);box-shadow:0 0 0 4px rgba(123,97,255,.08)}
.table-wrap{width:100%;overflow:auto;border:1.5px solid #cfd5e3;border-radius:18px;background:#fff}
table{width:100%;border-collapse:collapse;min-width:980px;border:1.5px solid #cfd5e3}
th,td{padding:13px 14px;border-bottom:1.5px solid #d6dbea;border-right:1.5px solid #d6dbea;font-size:14px;vertical-align:top} th:last-child,td:last-child{border-right:none}
th{background:#fffaf6;color:#525866;text-align:left;position:sticky;top:0}
.badge{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:700}
.badge.active{background:#ecfdf5;color:#166534}
.badge.graduated{background:#eff6ff;color:#1d4ed8}
.badge.transferred{background:#fff7ed;color:#9a3412}
.badge.new{background:#f3e8ff;color:#7e22ce}
.mobile-cards{display:none;gap:12px}
.mobile-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow);transition:.2s ease}
.mobile-card h4{margin:0 0 8px;font-size:17px}
.mobile-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px;color:var(--muted)}
.chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:34px;align-items:stretch}
.chart-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:16px 18px 24px;box-shadow:var(--shadow);overflow:visible}
.chart-title{font-weight:800;margin:0 0 10px}
.mini-chart{display:flex;align-items:flex-end;gap:12px;height:218px;padding:30px 4px 40px;box-sizing:border-box;overflow:visible}
.bar{flex:1;border-radius:14px 14px 6px 6px;background:linear-gradient(180deg,var(--purple-2),var(--orange));position:relative;min-height:16px}
.bar span{position:absolute;bottom:-28px;left:50%;transform:translateX(-50%);font-size:11px;color:var(--muted);white-space:nowrap}
.bar strong{position:absolute;top:-24px;left:50%;transform:translateX(-50%);font-size:12px}
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}
.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quick-card{padding:16px;border-radius:20px;background:linear-gradient(135deg,#fff8ef,#f7f3ff);border:1px solid var(--line);transition:.2s ease}
.quick-card h4{margin:0 0 8px}
.quick-card p{margin:0;color:var(--muted);font-size:13px}
.kv{display:grid;grid-template-columns:190px 1fr;gap:6px 16px;font-size:14px}
.kv div{padding:9px 0;border-bottom:1px dashed #eceff5}
.kv .key{color:#6b7280;font-weight:700}
.section-title{margin:0 0 12px;font-size:18px}
.detail-book{display:grid;gap:18px}
.detail-section{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}
.doc-open-link{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:6px 10px;border:1px solid rgba(124,58,237,.20);border-radius:12px;background:linear-gradient(135deg,#fff7ed,#f5f3ff);color:#0f172a;font-weight:700;text-decoration:none;transition:.2s ease}
.doc-open-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:360px}
.doc-open-link small{font-size:11px;color:#6d28d9;background:#fff;border:1px solid rgba(124,58,237,.18);border-radius:999px;padding:3px 8px}
.doc-open-link:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(124,58,237,.13);border-color:rgba(124,58,237,.38)}
.doc-kv div{min-width:0}

.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,rgba(255,176,77,.28),transparent 28%),radial-gradient(circle at bottom right,rgba(123,97,255,.22),transparent 30%),linear-gradient(180deg,#fff 0,#f8f9fd 100%)}
.login-card{width:min(980px,100%);display:grid;grid-template-columns:1.15fr .85fr;background:#fff;border-radius:30px;overflow:hidden;box-shadow:0 30px 70px rgba(39,36,66,.15);border:1px solid #f3f4f6}
.login-left{padding:36px;background:linear-gradient(135deg,#fff8ef 0%,#fff 40%,#f7f2ff 100%)}
.login-right{padding:36px;display:grid;align-content:center;gap:18px}
.hero-chip{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:#fff;border:1px solid #f5e9d9;color:#7c5d2e;font-size:13px;font-weight:700}
.hero-title{font-size:42px;line-height:1.1;margin:16px 0 12px}
.hero-sub{font-size:15px;color:var(--muted);max-width:520px}
.hero-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}
.hero-mini{background:rgba(255,255,255,.8);backdrop-filter:blur(8px);border:1px solid #f3f4f6;border-radius:22px;padding:16px}
.hero-mini h4{margin:0 0 6px}
.hero-mini p{margin:0;color:var(--muted);font-size:13px}
.role-btn{width:100%;padding:16px 18px;border-radius:18px;border:1px solid var(--line);background:#fff;display:flex;justify-content:space-between;align-items:center;cursor:pointer;box-shadow:var(--shadow);font-weight:800}
.role-btn:hover{border-color:#e9d5ff;background:#fffcff}

.login-form{display:grid;gap:14px}
.login-submit{width:100%;min-height:52px}
.login-form .field input{background:#fcfcff}
.login-form .field label{font-size:13px;font-weight:700;color:#434b5a}
.login-note{font-size:13px;color:var(--muted);text-align:center}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.34);display:none;align-items:center;justify-content:center;padding:18px;z-index:100}
.modal-backdrop.show{display:flex;animation:fadeIn .22s ease}
.modal{width:min(1180px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:26px;box-shadow:0 40px 90px rgba(2,8,23,.28);border:1px solid #eef0f6}
.modal.small{width:min(700px,100%)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1}
.modal-body{padding:20px}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.form-grid .span-2{grid-column:span 2}
.form-grid .span-3{grid-column:span 3}
.form-grid .span-4{grid-column:span 4}
.toast-wrap{position:fixed;top:18px;right:18px;display:grid;gap:10px;z-index:120}
.toast{background:#111827;color:#fff;padding:13px 16px;border-radius:16px;box-shadow:var(--shadow);animation:fadeIn .2s ease;max-width:360px}
.toast.success{background:#166534}
.toast.error{background:#b91c1c}
.tabbar{display:flex;gap:8px;flex-wrap:wrap}
.tabbar button{border:none;background:#fff;padding:10px 14px;border-radius:12px;cursor:pointer;border:1px solid var(--line);font-weight:700}
.tabbar button.active{background:linear-gradient(135deg,rgba(255,138,31,.12),rgba(123,97,255,.12));border-color:#ebddff}
.upload-list{display:grid;gap:10px}
.upload-item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#fafafa;border:1px solid var(--line);border-radius:14px}
.print-shell{max-width:980px;margin:0 auto;padding:24px}
.print-book{background:#fff;border:1px solid #ddd;border-radius:20px;padding:26px}
.print-head{text-align:center;border-bottom:2px solid #111;padding-bottom:12px;margin-bottom:18px}
.print-head h1{font-size:24px;margin:0}
.print-head p{margin:6px 0 0}
.print-actions{display:flex;gap:10px;justify-content:flex-end;margin-bottom:16px}
.note-box{padding:14px 16px;border-radius:18px;background:linear-gradient(135deg,#fff7ed,#f5f3ff);color:#6b7280;border:1px solid var(--line)}
.login-page-simple{padding:24px}
.login-card-simple{width:min(460px,100%);grid-template-columns:1fr;border-radius:28px}
.login-right-simple{padding:34px}

@media (max-width:1200px){.grid.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.chart-grid,.two-col{grid-template-columns:1fr}.filters{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);z-index:60;width:290px}.sidebar.show{transform:translateX(0)}.main{width:100%}.topbar{padding:16px}.searchbar{min-width:0;width:100%}.grid.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid{grid-template-columns:1fr}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.login-card{grid-template-columns:1fr}.hero-title{font-size:34px}}
@media (max-width:700px){.content{padding:16px}.page-title h2{font-size:24px}.topbar{flex-wrap:wrap}.userbox{width:100%;justify-content:space-between}.grid.stats{grid-template-columns:1fr}.filters,.form-grid{grid-template-columns:1fr}.form-grid .span-2,.form-grid .span-3,.form-grid .span-4{grid-column:auto}.table-wrap{display:none}.mobile-cards{display:grid}.kv{grid-template-columns:1fr}.hero-grid,.quick-grid{grid-template-columns:1fr}.print-shell{padding:14px}.print-book{padding:18px}}

@media (min-width:1600px){.topbar,.content{max-width:1320px}}
.badge.inactive{background:#f1f5f9;color:#475569}
.status-select,.compact-select{border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 12px;font-size:13px;font-weight:700;color:var(--text);min-width:130px;outline:none}
.bulk-status{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:18px;background:#fff}
.bulk-status .note-box{padding:10px 12px;font-size:13px;flex:1;min-width:240px}
#violationForm{margin-top:4px}
@media(max-width:700px){.bulk-status{align-items:stretch}.bulk-status .btn-row,.bulk-status .btn{width:100%}.compact-select{width:100%}}


.report-action-row{align-items:center;gap:10px;flex-wrap:wrap}
.print-student-select{min-width:230px;max-width:320px;border:1px solid #d7dce5;border-radius:12px;padding:10px 12px;background:#fff;color:#111827;font-size:13px;outline:none}
.print-student-select:focus{border-color:#991b1b;box-shadow:0 0 0 3px rgba(153,27,27,.08)}


/* Compact print layout for Buku Induk: dibuat rapat agar halaman cetak lebih mudah masuk 1 lembar A4. */
body[data-page="print-student"]{background:#f6f7fb}
body[data-page="print-student"] .print-shell{max-width:794px;margin:0 auto;padding:10px}
body[data-page="print-student"] .print-actions{margin-bottom:8px}
body[data-page="print-student"] .print-book{background:#fff;border:1px solid #cfd5e3;border-radius:12px;padding:20px 14px 12px;box-shadow:none;position:relative}
body[data-page="print-student"] .print-head{padding:18px 0 8px;margin-bottom:8px;border-bottom:1.5px solid #111;min-height:46mm;box-sizing:border-box;text-align:center}
body[data-page="print-student"] .print-head h1{font-size:16px;letter-spacing:.3px;margin:0 0 2px}
body[data-page="print-student"] .print-head p{font-size:12px;margin:0;color:#111;font-weight:700}
body[data-page="print-student"] .student-photo-slot{position:absolute;right:14px;top:18px;width:30mm;height:40mm;border:1.5px solid #111;background:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-size:10px;font-weight:700;color:#555;line-height:1.3}
body[data-page="print-student"] .student-photo-slot span{opacity:.72}
body[data-page="print-student"] .detail-section{background:#fff;border:1px solid #222;border-radius:0;padding:6px 8px;margin:0 0 5px;box-shadow:none}
body[data-page="print-student"] .section-title{font-size:11px;line-height:1.15;margin:0 0 4px;color:#111;text-transform:uppercase;letter-spacing:.2px}
body[data-page="print-student"] .kv{display:grid;grid-template-columns:104px 1fr 104px 1fr;gap:0;font-size:9.5px;border-top:1px solid #333;border-left:1px solid #333;line-height:1.18}
body[data-page="print-student"] .kv div{padding:3px 5px;border-right:1px solid #333;border-bottom:1px solid #333;min-height:16px;overflow-wrap:anywhere}
body[data-page="print-student"] .kv .key{font-weight:700;color:#111;background:#f8fafc}
@page{size:A4 portrait;margin:7mm}
@media print{
  html,body{width:210mm;min-height:297mm;background:#fff!important}
  body[data-page="print-student"] .print-actions{display:none!important}
  body[data-page="print-student"] .print-shell{max-width:none;width:100%;padding:0;margin:0}
  body[data-page="print-student"] .print-book{border:0;border-radius:0;padding:0;box-shadow:none;position:relative}
  body[data-page="print-student"] .print-head{padding:13mm 0 3mm;margin-bottom:2.5mm;border-bottom:1.2pt solid #111;min-height:50mm;box-sizing:border-box;text-align:center}
  body[data-page="print-student"] .print-head h1{font-size:13pt;line-height:1;margin:0 0 1mm}
  body[data-page="print-student"] .print-head p{font-size:9pt;line-height:1;margin:0}
  body[data-page="print-student"] .student-photo-slot{right:0;top:6mm;width:30mm;height:40mm;border:1.2pt solid #111;font-size:8pt;background:#fff;color:#333}
  body[data-page="print-student"] .detail-section{border:1pt solid #222;padding:1.8mm 2mm;margin:0 0 1.8mm;page-break-inside:avoid;break-inside:avoid}
  body[data-page="print-student"] .section-title{font-size:7.8pt;margin:0 0 1.1mm;line-height:1}
  body[data-page="print-student"] .kv{grid-template-columns:30mm 1fr 30mm 1fr;font-size:6.9pt;line-height:1.05;border-top:.8pt solid #333;border-left:.8pt solid #333}
  body[data-page="print-student"] .kv div{padding:1.05mm 1.25mm;min-height:auto;border-right:.8pt solid #333;border-bottom:.8pt solid #333}
}

/* Donut dashboard: mengganti log terbaru agar dashboard lebih fokus ke statistik inti. */
.dashboard-donut-row{grid-template-columns:1fr 1fr;gap:22px;margin-top:24px;align-items:start;clear:both}
.dashboard-donut-row .panel{padding-top:20px;overflow:hidden;min-height:318px}
.dashboard-donut-row .panel-head{margin-bottom:10px}
.donut-chart-wrap{min-height:230px;display:flex;align-items:center;justify-content:center}
.donut-layout{width:100%;display:grid;grid-template-columns:210px 1fr;align-items:center;gap:18px}
.donut-visual{width:190px;height:190px;border-radius:50%;position:relative;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06),0 18px 34px rgba(15,23,42,.10);margin:auto}
.donut-visual:after{content:"";position:absolute;inset:42px;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}
.donut-visual>div{position:absolute;inset:54px;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.donut-visual strong{font-size:26px;line-height:1;color:var(--text)}
.donut-visual small{font-size:11px;color:var(--muted);margin-top:5px}
.donut-legend{display:grid;gap:9px;max-height:220px;overflow:auto;padding-right:4px}
.donut-legend-item{display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:8px;font-size:12px;color:var(--text);padding:8px 9px;border:1px solid var(--line);border-radius:12px;background:#fff}
.donut-legend-item span{width:12px;height:12px;border-radius:999px;display:inline-block}
.donut-legend-item b{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.donut-legend-item em{font-style:normal;color:var(--muted);font-size:11px}
.hidden-section{display:none!important}
.report-filters .btn-row{align-items:end}
@media(max-width:900px){.chart-grid{margin-bottom:26px}.dashboard-donut-row{grid-template-columns:1fr;gap:18px;margin-top:18px}.donut-layout{grid-template-columns:1fr}.donut-legend{max-height:none}.donut-visual{width:170px;height:170px}.donut-visual:after{inset:38px}.donut-visual>div{inset:50px}}

/* Backup & Restore: kartu ringkas agar admin mudah mengamankan data tanpa membuka server. */
.backup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:8px}
.backup-card{border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,#fffaf6,#ffffff 55%,#f7f3ff);padding:18px;display:grid;gap:12px;align-content:start;min-height:210px}
.backup-card h4{margin:0;font-size:18px}
.backup-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.backup-icon{width:46px;height:46px;border-radius:16px;background:#fff;box-shadow:var(--shadow);display:grid;place-items:center;color:#7c3aed;border:1px solid var(--line)}
.backup-icon svg{width:22px;height:22px;stroke-width:2.2}
.restore-form{display:grid;gap:10px;margin-top:4px}
.restore-form input[type="file"]{border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff;width:100%}
.danger-note{border-color:#fecaca;background:linear-gradient(135deg,#fff7ed,#fef2f2);color:#7f1d1d}
@media(max-width:900px){.backup-grid{grid-template-columns:1fr}.backup-card{min-height:auto}}
