:root{--green:#15803d;--soft:#ecfdf3;--ink:#10213d;--muted:#607089;--line:#e3eaf1;--bg:#f6f9fb;--surface:#fff;--shadow:0 12px 36px rgba(18,39,63,.06);--radius:16px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}a{text-decoration:none;color:inherit}.simple-shell{max-width:1440px;margin:auto;min-height:100vh;padding:28px}.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;gap:26px}.brand{display:flex;align-items:center;gap:10px;font-size:24px;color:#064e3b}.brand.big{font-size:38px}.leaf{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#22c55e,#047857)}.sidebar nav{display:grid;gap:7px}.sidebar nav a{padding:11px 14px;border-radius:11px;color:#34465f}.sidebar nav a:hover,.sidebar nav a.active{background:#e7f8ef;color:#0a6d3a;font-weight:700}.sidebar-user{margin-top:auto;padding:12px;border-radius:12px;background:#f6faf8;font-weight:700}.sidebar-user small{display:block;color:var(--muted);font-weight:500;margin-top:3px}.main{padding:28px;min-width:0}.topbar,.page-heading,.installer-header,.card-title{display:flex;align-items:center;justify-content:space-between;gap:18px}.topbar h1,.page-heading h1{margin:0;font-size:28px}.topbar p,.page-heading p{margin:4px 0 0;color:var(--muted)}.top-actions{display:flex;gap:10px;align-items:center}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card h2{margin:0 0 14px;font-size:18px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.kpi span{display:block;color:#42536c;font-size:13px}.kpi strong{display:block;font-size:24px;margin:8px 0}.kpi small{color:var(--muted)}.two-col{display:grid;grid-template-columns:1.55fr .8fr;gap:16px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick{border:1px solid var(--line);border-radius:13px;padding:16px}.quick:hover{border-color:#7fd8a5;background:#fbfffc}.quick strong,.quick span{display:block}.quick span{color:var(--muted);font-size:13px;margin-top:5px}.status{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.status.ok{background:#e9fbf0;color:#08703a}.secondary,.primary{border:1px solid #ccd7e2;border-radius:10px;padding:10px 14px;background:white;font-weight:700;cursor:pointer}.primary{background:var(--green);color:#fff;border-color:var(--green)}.wide{width:100%}.muted{color:var(--muted)}label{display:grid;gap:7px;font-weight:700;font-size:13px}input,select{width:100%;border:1px solid #ccd8e5;border-radius:10px;background:#fff;padding:11px 12px;font:inherit;color:var(--ink)}.alert{padding:12px 14px;border-radius:10px;margin:12px 0}.alert.danger{background:#fff0f0;color:#9b1c1c}.alert.success{background:#edfdf3;color:#08703a}.installer-header{margin-bottom:28px}.step-chip{background:#eef7f1;color:#17663c;padding:7px 12px;border-radius:999px;font-size:12px;font-weight:700}.installer-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;margin-top:20px}.installer-main{display:grid;gap:14px}.installer-side .sticky{position:sticky;top:20px}.form-grid{display:grid;gap:12px}.form-grid.four{grid-template-columns:repeat(4,1fr)}.span-2{grid-column:span 2}.toggle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.toggle-grid label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:12px;border-radius:11px}.toggle-grid input{width:auto}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.check-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #edf1f5;font-size:13px}.check-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:800}.check-dot.pass{background:#dcfce7;color:#047857}.check-dot.fail{background:#fee2e2;color:#b91c1c}.summary-list{display:grid;margin:0}.summary-list div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.summary-list dt{color:var(--muted)}.summary-list dd{margin:0;font-weight:700}.info-box{margin:15px 0;padding:12px;border-radius:11px;background:#eefbf3;color:#20583b;font-size:13px}.login-wrap{min-height:calc(100vh - 56px);display:grid;grid-template-columns:1.1fr 440px;gap:48px;align-items:center;max-width:1120px;margin:auto}.login-brand h1{font-size:42px;line-height:1.13;margin:22px 0 10px}.login-brand>p{font-size:18px;color:var(--muted)}.login-feature{margin-top:22px;display:grid}.login-feature span{color:var(--muted);margin-top:3px}.login-card{padding:30px}.login-card form{display:grid;gap:14px;margin-top:18px}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:10;flex-direction:row;align-items:center;padding:10px 14px;overflow-x:auto}.sidebar nav{display:flex}.sidebar-user{display:none}.main{padding:16px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.two-col,.installer-grid,.login-wrap{grid-template-columns:1fr}.installer-side .sticky{position:static}.form-grid.four{grid-template-columns:repeat(2,1fr)}.toggle-grid{grid-template-columns:1fr 1fr}.check-grid{grid-template-columns:1fr}.login-brand{display:none}.simple-shell{padding:16px}}@media(max-width:560px){.sidebar{display:none}.main{padding:12px}.kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.kpi{padding:14px}.kpi strong{font-size:19px}.quick-grid{grid-template-columns:1fr}.form-grid.four{grid-template-columns:1fr}.span-2{grid-column:span 1}.toggle-grid{grid-template-columns:1fr}.page-heading h1{font-size:24px}.login-card{padding:20px}}.status.neutral{background:#eef2f7;color:#56667a}.status.warn{background:#fff7df;color:#9a6400}.form-grid.compact{grid-template-columns:minmax(0,220px) minmax(0,1fr) auto;align-items:end}.shift-focus{max-width:760px;margin-top:20px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.mini-action{display:grid;gap:10px;border:1px solid var(--line);border-radius:12px;padding:14px}.pos-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(340px,.72fr);gap:16px;margin-top:20px;align-items:start}.pos-products{padding:16px}.search-bar{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:14px}.product-list{display:grid;gap:8px}.product-row{display:grid;grid-template-columns:minmax(0,1fr) auto 42px;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px}.product-row>div:first-child span,.cart-row span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.product-stock{text-align:right}.product-stock small,.product-stock strong{display:block}.add-circle{width:38px;height:38px;border-radius:50%;border:0;background:var(--green);color:white;font-size:24px;cursor:pointer}.cart{position:sticky;top:18px}.text-button{border:0;background:transparent;color:var(--green);cursor:pointer}.cart-row{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.qty-form{display:grid;grid-template-columns:55px auto;gap:5px}.qty-form input{padding:8px}.qty-form button{padding:8px}.cart-total{display:flex;justify-content:space-between;font-size:18px;padding:18px 0}.checkout{display:grid;gap:10px}.hint,.empty{color:var(--muted);font-size:13px}.receipt{max-width:480px;margin:24px auto;padding:28px}.receipt-head{text-align:center;border-bottom:1px dashed #aebbc8;padding-bottom:12px}.receipt-head h2,.receipt-head p{margin:2px}.receipt-meta{display:grid;gap:4px;font-size:12px;padding:12px 0;border-bottom:1px dashed #aebbc8}.receipt-item{display:flex;justify-content:space-between;gap:12px;padding:9px 0}.receipt-item small{display:block;color:var(--muted);margin-top:3px}.receipt-sum{border-top:1px dashed #aebbc8;padding-top:10px}.receipt-sum>div{display:flex;justify-content:space-between;padding:4px 0}.receipt-sum .grand{font-size:18px;font-weight:800}.receipt-footer{text-align:center;margin-top:18px;color:var(--muted);font-size:12px}@media(max-width:900px){.pos-layout{grid-template-columns:1fr}.cart{position:static}.action-grid{grid-template-columns:1fr}.form-grid.compact{grid-template-columns:1fr}.cart-row{grid-template-columns:1fr auto}.cart-row>strong{grid-column:2}}@media print{.sidebar,.no-print{display:none!important}.app-shell{display:block}.main{padding:0}.receipt{box-shadow:none;border:0;max-width:80mm;margin:0 auto;padding:4mm}body{background:white}}
.status.bad{background:#fff0f0;color:#9b1c1c}.inventory-card,.import-upload,.import-summary,.import-receipt{margin-top:20px}.table-wrap{width:100%;max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px}.data-table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}.data-table th,.data-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;vertical-align:top}.data-table th{position:sticky;top:0;background:#f8fbf9;color:#42536c;font-size:12px;letter-spacing:.01em}.data-table tbody tr:last-child td{border-bottom:0}.data-table .num{text-align:right;white-space:nowrap}.import-form{grid-template-columns:minmax(180px,.7fr) minmax(260px,1.5fr) auto;align-items:end}.import-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}.import-kpis article{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fbfdfc}.import-kpis span{display:block;color:var(--muted);font-size:12px}.import-kpis strong{display:block;font-size:23px;margin-top:5px}.import-preview-table{max-height:520px}.import-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:16px}.receipt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0}.receipt-grid div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.receipt-grid dt{color:var(--muted)}.receipt-grid dd{margin:0;font-weight:700}.hash-line{overflow-wrap:anywhere;color:var(--muted);font-size:12px}.hash-line code{color:var(--ink)}@media(max-width:900px){.import-form{grid-template-columns:1fr 1fr}.import-form button{grid-column:span 2}.import-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:560px){.topbar{align-items:flex-start;flex-direction:column}.import-form{grid-template-columns:1fr}.import-form button{grid-column:auto}.import-kpis{grid-template-columns:1fr 1fr}.receipt-grid{grid-template-columns:1fr}.receipt-grid div{grid-template-columns:110px 1fr}.data-table{min-width:640px}.import-actions{justify-content:stretch}.import-actions>*{flex:1}.import-actions form button{width:100%}}
.receivable-search,.receivable-table,.ledger-card{margin-top:20px}.receivable-filter{display:grid;grid-template-columns:170px 170px 170px minmax(220px,1fr) auto;gap:10px;align-items:end}.receivable-filter .search-grow{min-width:0}.receivable-kpis{margin-top:14px}.data-table td small{display:block;color:var(--muted);margin-top:3px}.table-link{color:#08703a;font-weight:700}.table-link:hover{text-decoration:underline}.receivable-total-strip{display:flex;gap:18px;flex-wrap:wrap;padding:12px 14px;margin:12px 0 16px;border-radius:12px;background:#f6faf8;border:1px solid var(--line)}.receivable-total-strip span{color:var(--muted);font-size:13px}.receivable-total-strip strong{color:var(--ink);margin-left:5px}.ledger-card{margin-bottom:20px}@media(max-width:1050px){.receivable-filter{grid-template-columns:1fr 1fr 1fr}.receivable-filter .search-grow{grid-column:span 2}.receivable-filter button{width:100%}}@media(max-width:620px){.receivable-filter{grid-template-columns:1fr 1fr}.receivable-filter .search-grow{grid-column:span 2}.receivable-filter button{grid-column:span 2}.receivable-total-strip{display:grid;gap:8px}.receivable-table .data-table{min-width:900px}}
.report-filter,.report-chart,.report-table{margin-top:20px}.financial-filter{grid-template-columns:170px 170px minmax(240px,1fr) auto}.modal-filter{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(260px,1.4fr) auto;gap:10px;align-items:end}.bar-list{display:grid;gap:10px;margin-top:14px}.bar-row{display:grid;grid-template-columns:minmax(88px,130px) minmax(120px,1fr) minmax(130px,auto);gap:12px;align-items:center;font-size:13px}.bar-row>span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-row>strong{text-align:right}.bar-track{height:10px;border-radius:999px;background:#edf3ef;overflow:hidden}.bar-track i{display:block;height:100%;border-radius:999px;background:var(--green)}@media(max-width:820px){.financial-filter,.modal-filter{grid-template-columns:1fr 1fr}.financial-filter .search-grow,.modal-filter .search-grow{grid-column:span 2}.financial-filter button,.modal-filter button{grid-column:span 2}.bar-row{grid-template-columns:80px 1fr 115px}}@media(max-width:560px){.bar-row{grid-template-columns:72px 1fr}.bar-row>strong{grid-column:2;text-align:left;font-size:12px}.report-table .data-table{min-width:780px}}

/* Wave 07 — Owner feature / permission control */
.access-grid{display:grid;gap:12px}.access-item{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.access-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.access-title strong{display:block;font-size:15px}.access-title span:not(.status){display:block;color:var(--muted);font-size:12px;margin-top:4px}.access-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.access-controls form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.access-controls label{margin:0}.permission-table td{vertical-align:top}.permission-table td:first-child{min-width:220px}.permission-table td:first-child small{display:block;color:var(--muted);margin-top:4px;max-width:360px}.inline-control{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:6px;align-items:center}.inline-control select{min-width:0}.reserved-list{display:flex;flex-wrap:wrap;gap:8px}.employee-picker{margin-bottom:14px}@media(max-width:900px){.access-controls{grid-template-columns:1fr}.permission-table{min-width:780px}}@media(max-width:560px){.access-title{align-items:flex-start;flex-direction:column}.access-controls form{grid-template-columns:1fr}.inline-control{grid-template-columns:1fr}.permission-table{min-width:720px}}

/* Wave 07 mobile admin: permission controls stay task-first, no sideways hunting. */
@media(max-width:560px){
  .permission-table{min-width:0;width:100%;border-collapse:separate;border-spacing:0}
  .permission-table thead{display:none}
  .permission-table tbody,.permission-table tr,.permission-table td{display:block;width:100%}
  .permission-table tr{padding:12px;border-bottom:1px solid var(--line)}
  .permission-table tr:last-child{border-bottom:0}
  .permission-table td{padding:7px 0;border:0;min-width:0!important}
  .permission-table td:first-child{padding-top:0}
  .permission-table td:nth-child(2)::before,.permission-table td:nth-child(3)::before,.permission-table td:nth-child(4)::before{display:block;margin-bottom:6px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
  .permission-table td:nth-child(2)::before{content:"Status efektif"}
  .permission-table td:nth-child(3)::before{content:"Hak dasar"}
  .permission-table td:nth-child(4)::before{content:"Aturan cabang"}
  .permission-table .inline-control{grid-template-columns:1fr auto}
  .permission-table .inline-control button{white-space:nowrap}
  .permission-table .status{width:max-content;max-width:100%}
  .table-wrap:has(.permission-table){overflow:visible}
}

/* Wave 08 — Retur, Karantina, Retur Supplier */
.return-actions{display:flex;gap:8px;flex-wrap:wrap}.inline-control.stack{grid-template-columns:1fr;margin:8px 0;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fbfdfc}.inline-control.stack label{min-width:0}details{margin:6px 0}details summary{cursor:pointer;color:#08703a;font-weight:700}.data-table td form.inline-control{min-width:260px}.top-actions{flex-wrap:wrap}@media(max-width:760px){.data-table td form.inline-control{min-width:220px}.top-actions{width:100%}.top-actions a,.top-actions button{flex:1;text-align:center;white-space:nowrap}}@media(max-width:560px){.data-table:not(.permission-table){min-width:760px}.top-actions{display:grid;grid-template-columns:1fr 1fr}.top-actions .primary{grid-column:span 2}}

/* Wave 09 — Hutang/Piutang append-only ledger parity */
.finance-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 0}.finance-tabs a{padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-weight:700;font-size:13px}.finance-tabs a.active{background:var(--soft);border-color:#bfe8ce;color:#08703a}.ledger-actions{margin-top:20px}.ledger-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ledger-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfdfc}.ledger-form h3{grid-column:span 2;margin:0 0 2px}.ledger-form button{align-self:end}.ledger-table{min-width:980px}.ledger-reverse{white-space:nowrap}@media(max-width:820px){.ledger-action-grid{grid-template-columns:1fr}.ledger-form{grid-template-columns:1fr 1fr}}@media(max-width:560px){.finance-tabs{display:grid;grid-template-columns:1fr 1fr}.finance-tabs a{text-align:center}.ledger-form{grid-template-columns:1fr}.ledger-form h3{grid-column:auto}.ledger-actions .card-title{align-items:flex-start}.ledger-table{min-width:860px}}
@media(max-width:560px){.receivable-table .card-title{align-items:flex-start;flex-direction:column;gap:8px}.receivable-table .card-title .status{max-width:100%;white-space:normal}.receivable-table,.receivable-search,.table-wrap{min-width:0}}

/* Wave 09 mobile width hardening: page stays within viewport; wide ledgers scroll only inside table-wrap. */
@media(max-width:560px){
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{min-width:0}
  .receivable-filter{grid-template-columns:minmax(0,1fr)}
  .receivable-filter>*,.receivable-filter .search-grow,.receivable-filter button{grid-column:1!important;min-width:0}
  .receivable-filter input,.receivable-filter select{min-width:0;max-width:100%}
}

/* Wave 10 — professional tables/reports: phone is task-first, desktop keeps compact table density. */
.responsive-card-table td[data-label]::before{content:none}
@media(max-width:560px){
  .responsive-card-wrap{overflow:visible;border:0;border-radius:0;background:transparent}
  .responsive-card-table{min-width:0!important;width:100%;border-collapse:separate;border-spacing:0 10px;background:transparent}
  .responsive-card-table thead{display:none}
  .responsive-card-table tbody{display:grid;gap:10px;width:100%}
  .responsive-card-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 14px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 5px 18px rgba(18,39,63,.035)}
  .responsive-card-table td{display:grid;grid-template-columns:minmax(88px,.72fr) minmax(0,1.28fr);align-items:start;gap:10px;width:100%;min-width:0!important;padding:7px 0;border:0!important;text-align:left!important;white-space:normal!important;overflow-wrap:anywhere}
  .responsive-card-table td::before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.025em}
  .responsive-card-table td strong,.responsive-card-table td a{min-width:0;overflow-wrap:anywhere}
  .responsive-card-table td small{grid-column:2;margin-top:2px}
  .responsive-card-table .status{justify-self:start;width:max-content;max-width:100%}
  .responsive-card-table tr.responsive-empty{display:block;padding:0;border:0;box-shadow:none}
  .responsive-card-table tr.responsive-empty td{display:block;padding:16px;text-align:center!important;border:1px solid var(--line)!important;border-radius:12px}
  .responsive-card-table tr.responsive-empty td::before{content:none}
  .inventory-table tr{grid-template-columns:1fr 1fr}
  .inventory-table td:nth-child(2){grid-column:1/-1;order:-1;padding-bottom:9px;border-bottom:1px solid var(--line)!important}
  .inventory-table td:nth-child(2)::before{content:none}
  .inventory-table td:nth-child(2) strong{font-size:15px}
  .inventory-table td{grid-template-columns:1fr;gap:3px}
  .inventory-table td::before{font-size:10px}
  .shift-report-table tr,.financial-detail-table tr,.capital-detail-table tr,.debt-summary-table tr,.return-summary-table tr{grid-template-columns:1fr}
  .shift-report-table td,.financial-detail-table td,.capital-detail-table td,.debt-summary-table td,.return-summary-table td{grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr)}
  .shift-report-table td:last-child,.financial-detail-table td:last-child,.capital-detail-table td:last-child,.debt-summary-table td:nth-last-child(-n+2),.return-summary-table td:last-child{padding-top:9px;margin-top:2px;border-top:1px solid var(--line)!important}
  #shift_variance_chart .bar-row>span{white-space:normal}
  .report-table .card-title{align-items:flex-start;flex-direction:column;gap:8px}
}
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;color:var(--muted);font-size:12px}.pager>div{display:flex;align-items:center;gap:8px}.pager strong{color:var(--ink)}.pager .secondary{padding:8px 10px;font-size:12px}@media(max-width:560px){.pager{align-items:stretch;flex-direction:column}.pager>div{display:grid;grid-template-columns:1fr auto 1fr}.pager>div>:first-child{text-align:left}.pager>div>:last-child{text-align:right}.pager strong{text-align:center;align-self:center}.pager .secondary{white-space:nowrap}}

/* Wave 11 — Pembaruan & Pemulihan */
.recovery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.recovery-grid>.card,.recovery-kpis>.kpi{min-width:0}
.recovery-checks{display:grid;gap:8px}.check-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.check-row:last-child{border-bottom:0}.check-row strong{font-size:11px;white-space:nowrap}.check-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800}.check-dot.pass{background:#e9fbf0;color:#08703a}.check-dot.fail{background:#fff0f0;color:#9b1c1c}.recovery-action{margin-top:14px}.update-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.update-upload button{white-space:nowrap}.verified-package{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:start;margin-top:14px;padding:12px;border:1px solid #bfe8ce;border-radius:12px;background:#fbfffc}.verified-package strong,.verified-package span{display:block;min-width:0;overflow-wrap:anywhere}.verified-package span{margin-top:3px;color:var(--muted);font-size:12px}.backup-list{display:grid;gap:8px;margin-top:12px}.backup-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fbfdfc;min-width:0}.backup-row>div:first-child{min-width:0}.backup-row strong,.backup-row span{display:block;min-width:0;overflow-wrap:anywhere}.backup-row span{margin-top:3px;color:var(--muted);font-size:11px}.backup-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.backup-actions form{margin:0}.backup-actions .secondary{padding:7px 9px;font-size:11px;white-space:nowrap}.recovery-history,.recovery-security{margin-top:16px}.recovery-security p{max-width:920px}.recovery-update .info-box{margin-top:14px}
@media(max-width:1050px){.recovery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recovery-update{grid-column:1/-1}}
@media(max-width:700px){.recovery-grid{grid-template-columns:minmax(0,1fr)}.recovery-update{grid-column:auto}.update-upload{grid-template-columns:minmax(0,1fr)}.backup-row{align-items:flex-start;flex-direction:column}.backup-actions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.backup-actions a,.backup-actions form,.backup-actions button{width:100%;text-align:center}.recovery-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.recovery-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.recovery-kpis .kpi strong{font-size:18px;overflow-wrap:anywhere}.check-row{grid-template-columns:24px minmax(0,1fr);align-items:start}.check-row strong{grid-column:2;white-space:normal}.backup-actions{grid-template-columns:minmax(0,1fr)}.verified-package{grid-template-columns:28px minmax(0,1fr)}.recovery-grid .card-title{align-items:flex-start}.recovery-update .card-title{flex-direction:column}.recovery-history .responsive-card-table tr{grid-template-columns:minmax(0,1fr)}}
