:root{--bg:#f5f7fb;--panel:#fff;--text:#172033;--muted:#6c7484;--line:#e7eaf0;--green:#17a34a;--red:#d83b3b;--blue:#2b8be6;--purple:#7a4bdd;--orange:#f4a226;--teal:#24a5a5}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:24px 18px;position:sticky;top:0;height:100vh;overflow:auto}.brand,.gate-brand{display:flex;gap:12px;align-items:center}.brand{margin-bottom:28px}.brand-icon{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#18a34a,#3cc36f);color:#fff;display:grid;place-items:center;font-weight:800;font-size:22px}.brand h1,.gate-brand h1{font-size:18px;margin:0}.brand p,.gate-brand p{font-size:12px;color:var(--muted);margin:4px 0 0}.nav{display:grid;gap:8px}.nav-item{border:0;background:transparent;padding:12px 14px;text-align:left;border-radius:10px;color:#364056;cursor:pointer}.nav-item.active,.nav-item:hover{background:#eaf7ee;color:#15803d}.asset-card{margin-top:28px;border:1px solid var(--line);border-radius:14px;padding:16px}.asset-title{font-size:13px;color:var(--muted)}.asset-total{font-size:24px;font-weight:800;color:var(--green);margin:8px 0 14px}.wallet-row{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:8px 0;border-top:1px dashed var(--line)}.main{padding:24px}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}.eyebrow{font-size:13px;color:var(--muted)}h2{margin:4px 0 0;font-size:26px}.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.top-actions input{padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.primary-btn,.secondary-btn{border:0;border-radius:10px;padding:11px 14px;cursor:pointer;font-weight:700}.primary-btn{background:var(--green);color:#fff}.primary-btn:disabled{opacity:.6;cursor:wait}.secondary-btn{background:#f1f4f8;color:#354052}.text-btn{border:0;background:transparent;color:#16743a;cursor:pointer;padding:4px;font-weight:700}.user-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:7px 10px;font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric-card,.panel{background:var(--panel);border:1px solid var(--line);box-shadow:0 5px 16px rgba(23,32,51,.05);border-radius:16px}.metric-card{padding:20px}.metric-card span,.metric-card small{display:block;color:var(--muted)}.metric-card strong{display:block;font-size:28px;margin:10px 0}.income strong{color:var(--green)}.expense strong{color:var(--red)}.saving strong{color:var(--blue)}.remain strong{color:var(--purple)}.content-grid{display:grid;grid-template-columns:1.25fr .85fr;gap:16px;margin-top:16px}.bottom-grid{grid-template-columns:1.15fr .95fr}.panel{padding:18px}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.panel-head h3{margin:0;font-size:16px}.panel-head span{font-size:12px;color:var(--muted)}.category-layout{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:center}.donut{width:190px;height:190px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#e8ecf1 0 100%);margin:auto;position:relative}.donut:after{content:"";position:absolute;inset:42px;border-radius:50%;background:#fff}.donut>div{z-index:1;text-align:center}.donut span{display:block;color:var(--muted);font-size:12px}.donut b{font-size:18px}.legend{display:grid;gap:10px}.legend-row{display:grid;grid-template-columns:12px 1fr auto;gap:9px;align-items:center;font-size:13px}.dot{width:10px;height:10px;border-radius:50%}.insight-panel{display:flex;flex-direction:column}.insight-box{padding:18px;border-radius:14px;background:#effaf2}.insight-box span{display:block;color:var(--muted);font-size:13px}.insight-box strong{display:block;color:var(--green);font-size:26px;margin-top:6px}.insight-list{display:grid;gap:14px;margin-top:16px}.insight-list>div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding-bottom:12px;font-size:13px}.budget-list,.transaction-list{display:grid;gap:10px}.budget-row{display:grid;grid-template-columns:1fr auto 150px;gap:12px;align-items:center;border-top:1px solid var(--line);padding:11px 0}.budget-meta{font-size:12px;color:var(--muted)}.progress{height:8px;background:#edf0f4;border-radius:999px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--green);border-radius:inherit}.progress.over>i{background:var(--red)}.transaction-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border-top:1px solid var(--line);padding:11px 0}.transaction-main b{display:block;font-size:13px}.transaction-main span,.transaction-date{font-size:12px;color:var(--muted)}.amount-positive{color:var(--green);font-weight:800}.amount-negative{color:var(--red);font-weight:800}.amount-saving{color:var(--blue);font-weight:800}.delete-btn{border:0;background:transparent;color:#a0a6b2;cursor:pointer;font-size:18px}.sync-banner{margin-bottom:14px;padding:11px 14px;border-radius:10px;background:#eef7ff;color:#225e91;font-size:13px}.sync-banner.error{background:#fff0f0;color:#a52b2b}.sync-banner.success{background:#effaf2;color:#16743a}.gate{position:fixed;inset:0;z-index:100;background:linear-gradient(145deg,#f5f7fb,#eef8f1);display:grid;place-items:center;padding:20px}.gate-card{width:min(480px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;box-shadow:0 24px 70px rgba(23,32,51,.14)}.gate-brand{margin-bottom:24px}.gate-step h2{font-size:22px;margin:0 0 8px}.helper{font-size:13px;line-height:1.55;color:var(--muted);margin:0 0 14px}.gate-form{display:grid;gap:14px}.gate-form label,.modal-card label{display:grid;gap:6px;font-size:13px;color:#4b5563}.gate-form input,.gate-form textarea,.modal-card input,.modal-card select,.modal-card textarea{border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff;color:var(--text);width:100%}.message{margin-top:14px;padding:11px 12px;border-radius:10px;font-size:13px;background:#fff0f0;color:#a52b2b}.message.success{background:#effaf2;color:#16743a}dialog{border:0;border-radius:16px;padding:0;box-shadow:0 20px 50px rgba(0,0,0,.18);width:min(520px,calc(100% - 24px))}dialog::backdrop{background:rgba(17,24,39,.35)}.modal-card{padding:20px;display:grid;gap:14px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.icon-btn{border:0;background:#f1f4f8;width:34px;height:34px;border-radius:50%;cursor:pointer}.type-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.type-switch label{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);padding:10px;border-radius:10px;background:#fafbfc}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.empty{padding:24px 0;text-align:center;color:var(--muted);font-size:13px}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.nav{grid-template-columns:repeat(4,1fr)}.asset-card{display:none}.metric-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.main{padding:14px}.sidebar{padding:14px}.brand p{display:none}.nav{display:flex;overflow:auto}.nav-item{white-space:nowrap}.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%}.top-actions input,.top-actions>.primary-btn{flex:1}.metric-grid,.content-grid,.bottom-grid{grid-template-columns:1fr}.category-layout{grid-template-columns:1fr}.transaction-row{grid-template-columns:1fr auto}.transaction-date{display:none}.budget-row{grid-template-columns:1fr auto}.budget-row .progress{grid-column:1/-1}.user-chip{width:100%;justify-content:space-between}}

.wallet-modal-card{gap:16px}.wallet-helper{margin:4px 0 0}.wallet-editor-list{display:grid;gap:10px;max-height:42vh;overflow:auto;padding-right:4px}.wallet-edit-row{display:grid;grid-template-columns:minmax(140px,1.2fr) minmax(120px,.9fr) minmax(145px,1fr) minmax(130px,.9fr) 34px;gap:8px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.wallet-edit-row label{font-size:11px}.wallet-edit-row .current-balance{padding:11px 8px;border-radius:10px;background:#f1f7f3;font-weight:800;color:var(--green);min-height:42px;display:flex;align-items:center;justify-content:flex-end}.wallet-remove{border:0;background:#fff0f0;color:var(--red);width:34px;height:42px;border-radius:9px;cursor:pointer;font-size:18px}.wallet-add-box{border-top:1px solid var(--line);padding-top:14px}.wallet-add-box h4{margin:0 0 10px;font-size:14px}.wallet-add-grid{display:grid;grid-template-columns:1.2fr .9fr 1fr;gap:10px;margin-bottom:10px}@media(max-width:760px){.wallet-edit-row{grid-template-columns:1fr 1fr}.wallet-edit-row .current-balance{justify-content:flex-start}.wallet-remove{grid-column:2;justify-self:end}.wallet-add-grid{grid-template-columns:1fr}}

.money-input{font-variant-numeric:tabular-nums;letter-spacing:.2px}

/* V2.3 - Trang Giao dịch / Ngân sách / Báo cáo */
.page-view{width:100%}.overview-bottom{margin-top:16px}.page-panel-head{align-items:flex-start}.page-panel-head>div:first-child span{display:block;margin-top:5px}.page-filters{display:flex;gap:8px;flex-wrap:wrap}.page-filters select,.page-filters input{border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 12px;color:var(--text)}.page-filters input{min-width:240px}.transaction-page-list{min-height:240px}.transaction-page-row{padding:14px 0}.budget-metrics .metric-card strong{font-size:24px}.report-grid{grid-template-columns:1fr 1fr}.report-comparison,.report-category-list{display:grid;gap:0}.report-compare-row,.report-category-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;border-top:1px solid var(--line);font-size:13px}.report-compare-row:first-child,.report-category-row:first-child{border-top:0}.report-category-row>div{display:flex;align-items:center;gap:9px}.placeholder-panel{text-align:center;padding:60px 24px}.placeholder-panel .placeholder-icon{width:64px;height:64px;border-radius:18px;background:#eef8f1;color:var(--green);display:grid;place-items:center;margin:0 auto 14px;font-size:32px}.placeholder-panel h3{margin:0 0 8px;font-size:20px}.placeholder-panel p{max-width:560px;margin:0 auto;color:var(--muted);line-height:1.6}.nav-item[data-page]{position:relative}.nav-item[data-page].active:before{content:"";position:absolute;left:4px;top:9px;bottom:9px;width:3px;border-radius:999px;background:var(--green)}
@media(max-width:760px){.page-panel-head{align-items:stretch;flex-direction:column}.page-filters{width:100%}.page-filters select,.page-filters input{width:100%;min-width:0}.report-grid{grid-template-columns:1fr}.report-compare-row,.report-category-row{align-items:flex-start}.budget-metrics{grid-template-columns:1fr}}

/* V2.4 - Nhập giao dịch bằng Chat */
.chat-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,.65fr);gap:16px;align-items:start}.chat-panel{padding:0;overflow:hidden}.chat-panel-head{padding:18px 18px 14px;margin:0;border-bottom:1px solid var(--line);align-items:flex-start}.chat-panel-head>div span{display:block;margin-top:6px;max-width:690px;line-height:1.45}.chat-free-badge{background:#effaf2;color:#16743a!important;border:1px solid #d9f0df;border-radius:999px;padding:7px 10px;white-space:nowrap}.chat-messages{height:min(55vh,560px);min-height:390px;overflow:auto;padding:18px;background:linear-gradient(180deg,#f8fafc 0,#f5f7fb 100%);display:flex;flex-direction:column;gap:14px}.chat-message{display:flex;gap:9px;align-items:flex-end;max-width:88%}.chat-message.user{align-self:flex-end;flex-direction:row-reverse}.chat-avatar{width:32px;height:32px;border-radius:10px;background:#e7f7ec;color:var(--green);display:grid;place-items:center;font-weight:800;flex:0 0 auto}.chat-message.user .chat-avatar{background:#e9eef8;color:#526070}.chat-bubble{background:#fff;border:1px solid var(--line);border-radius:14px 14px 14px 4px;padding:12px 14px;box-shadow:0 3px 10px rgba(23,32,51,.04);font-size:13px;line-height:1.55}.chat-message.user .chat-bubble{background:#eaf7ee;border-color:#d8efdf;border-radius:14px 14px 4px 14px}.chat-bubble p{margin:5px 0 0}.chat-bubble.success{background:#effaf2;border-color:#d4ecd9;color:#146b34}.chat-bubble.error{background:#fff3f3;border-color:#f3d4d4;color:#9f2f2f}.chat-preview{width:min(680px,100%);background:#fff;border:1px solid #dfe5ec;border-radius:14px;padding:14px;box-shadow:0 8px 24px rgba(23,32,51,.07)}.chat-preview-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.chat-preview-title b{font-size:14px}.chat-preview-title span{font-size:11px;color:var(--muted);background:#f3f5f8;padding:5px 8px;border-radius:999px}.chat-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.chat-preview-grid label{display:grid;gap:5px;color:var(--muted);font-size:11px}.chat-preview-grid input,.chat-preview-grid select{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 10px;background:#fff;color:var(--text)}.chat-preview-grid .full{grid-column:1/-1}.chat-preview-note{margin:10px 0 0;font-size:11px;color:#8a6210;background:#fff8e8;border:1px solid #f5e6ba;padding:8px 10px;border-radius:9px}.chat-preview-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.chat-examples{display:flex;gap:7px;flex-wrap:wrap;padding:12px 18px 0;background:#fff}.chat-examples button{border:1px solid var(--line);background:#fff;color:#4d586a;border-radius:999px;padding:7px 10px;font-size:11px;cursor:pointer}.chat-examples button:hover{border-color:#bcdcc6;color:#16743a;background:#f3fbf5}.chat-composer{display:grid;grid-template-columns:1fr auto;gap:9px;padding:12px 18px 18px;background:#fff}.chat-composer input{border:1px solid #dce1e8;border-radius:12px;padding:12px 13px;outline:none}.chat-composer input:focus{border-color:#8ed0a2;box-shadow:0 0 0 3px rgba(23,163,74,.08)}.chat-help-panel{position:sticky;top:20px}.chat-help-list{display:grid;gap:0}.chat-help-list>div{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid var(--line);font-size:13px}.chat-help-list>div:first-child{border-top:0}.chat-help-list span{color:var(--muted)}.chat-help-note{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:980px){.chat-layout{grid-template-columns:1fr}.chat-help-panel{position:static}.chat-messages{height:48vh;min-height:340px}}
@media(max-width:760px){.chat-panel-head{flex-direction:column}.chat-free-badge{white-space:normal}.chat-message{max-width:96%}.chat-preview-grid{grid-template-columns:1fr}.chat-preview-grid .full{grid-column:auto}.chat-composer{grid-template-columns:1fr}.chat-composer button{width:100%}.chat-examples{overflow:auto;flex-wrap:nowrap}.chat-examples button{white-space:nowrap}.chat-help-panel{display:none}}

/* V2.6 - Tổng Thu / Chi / Tiết kiệm tại trang Giao dịch */
.transaction-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}
.transaction-list-panel{margin-top:0}
@media(max-width:760px){.transaction-summary-grid{grid-template-columns:1fr}}

/* V3.1 - Tất toán thủ công */
.settlement-status{margin:0 0 14px;padding:10px 14px;border:1px solid #dbe4ee;border-radius:12px;background:#f8fafc;color:#526173;font-size:13px}
.settlement-status.settled{background:#eefaf2;border-color:#bfe7ca;color:#137333}
.settlement-btn{white-space:nowrap}
.settlement-btn.settled{border-color:#efb5b5;color:#b42318;background:#fff5f5}
@media(max-width:900px){.top-actions{flex-wrap:wrap}.settlement-btn{order:3}.settlement-status{margin-top:8px}}

/* V3.2 - Tổng quan các tháng */
.monthly-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.monthly-overview-list{display:grid;gap:0}
.monthly-overview-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 2px;border-top:1px solid var(--line)}
.monthly-overview-row:first-child{border-top:0}
.monthly-overview-row>div{display:grid;gap:5px}
.monthly-overview-row b{font-size:14px}
.monthly-overview-row span{font-size:12px;color:var(--muted)}
.monthly-overview-row strong{font-size:18px}
@media(max-width:760px){.monthly-summary-grid{grid-template-columns:1fr}.monthly-overview-row{align-items:flex-start}}

.monthly-overview-detailed{align-items:center}
.monthly-overview-name{min-width:170px}
.monthly-overview-values{display:grid!important;grid-template-columns:repeat(3,minmax(170px,1fr));gap:18px;align-items:center;flex:1}
.monthly-overview-values>span{display:grid;gap:5px;color:var(--muted);font-size:12px}
.monthly-overview-values b,.monthly-overview-values strong{font-size:15px}
@media(max-width:980px){.monthly-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monthly-overview-values{grid-template-columns:1fr}}
@media(max-width:760px){.monthly-summary-grid{grid-template-columns:1fr}.monthly-overview-detailed{display:grid}.monthly-overview-values{grid-template-columns:1fr}}

.danger-zone{margin-top:6px;padding:14px;border:1px solid #fecaca;border-radius:12px;background:#fff7f7;display:flex;align-items:center;justify-content:space-between;gap:14px}.danger-zone b{color:#b42318}.danger-zone p{margin:5px 0 0;font-size:12px;line-height:1.5;color:#6b7280}.danger-btn{border:1px solid #ef4444;background:#fff;color:#c62828;border-radius:10px;padding:10px 12px;font-weight:800;cursor:pointer;white-space:nowrap}.danger-btn:hover{background:#fff0f0}.danger-btn:disabled{opacity:.6;cursor:wait}@media(max-width:760px){.danger-zone{align-items:stretch;flex-direction:column}.danger-btn{width:100%}}


/* V3.5 - PIN lock */
.pin-input{font-size:22px!important;letter-spacing:.35em;text-align:center;font-weight:800;padding-left:calc(11px + .35em)!important}
.pin-unlock{font-size:28px!important;min-height:58px}
.pin-settings-zone{margin-top:6px;padding:14px;border:1px solid #dbe5ef;border-radius:12px;background:#f8fafc;display:flex;align-items:center;justify-content:space-between;gap:14px}.pin-settings-zone b{color:#243047}.pin-settings-zone p{margin:5px 0 0;font-size:12px;line-height:1.5;color:#6b7280}
@media(max-width:760px){.pin-settings-zone{align-items:stretch;flex-direction:column}.pin-settings-zone .secondary-btn{width:100%}}

/* V3.6: Số dư ví hiển thị riêng trên điện thoại */
.mobile-asset-card{display:none;background:#fff;border:1px solid var(--line);box-shadow:0 5px 16px rgba(23,32,51,.05);border-radius:16px;margin-top:16px;overflow:hidden}
.mobile-asset-card summary{list-style:none;display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;padding:16px;cursor:pointer}
.mobile-asset-card summary::-webkit-details-marker{display:none}
.mobile-asset-card summary>span:first-child{font-size:13px;color:var(--muted)}
.mobile-asset-card summary strong{font-size:24px;color:var(--green);grid-row:1/3;grid-column:2;align-self:center}
.mobile-asset-toggle{font-size:11px;color:var(--muted)}
.mobile-wallet-rows{padding:0 16px 12px}
.mobile-wallet-rows .wallet-row{font-size:14px;padding:10px 0}
@media(max-width:760px){.mobile-asset-card{display:block}}

.chat-panel{display:flex;flex-direction:column}
.chat-mobile-footer-info{display:none}
.mobile-chat-helper-card{border-top:1px solid var(--line);background:#fff}
.mobile-chat-helper-head{padding:16px 18px 18px}
.mobile-chat-settlement-status{margin:0 18px 12px}
@media(max-width:760px){
  body.page-chat #settlementStatus{display:none !important}
  body.page-chat .chat-panel-head{display:none}
  body.page-chat .chat-mobile-footer-info{display:block;order:5}
  body.page-chat .chat-composer{order:1;position:sticky;bottom:0;z-index:4;border-top:1px solid var(--line);box-shadow:0 -8px 20px rgba(23,32,51,.06)}
  body.page-chat .chat-examples{order:2;padding-top:12px;position:sticky;bottom:78px;z-index:3;border-top:1px solid rgba(0,0,0,0.02);box-shadow:0 -4px 12px rgba(23,32,51,.03)}
  body.page-chat .chat-messages{order:3;min-height:260px;height:auto;max-height:none}
}

.page-heading{display:block}
body.page-overview .page-heading{display:none}
body.page-overview .topbar{justify-content:flex-end}
@media(max-width:760px){body.page-overview .topbar{margin-bottom:12px}}

/* V3.9 - sửa nhóm chọn loại giao dịch trên điện thoại/iPhone */
.type-switch label{
  gap:8px;
  min-width:0;
  text-align:center;
  line-height:1.25;
}
.type-switch input[type="radio"]{
  width:18px !important;
  height:18px !important;
  min-width:18px;
  flex:0 0 18px;
  margin:0;
  padding:0;
  accent-color:var(--green);
}
@media(max-width:760px){
  .type-switch{gap:6px}
  .type-switch label{
    padding:12px 8px;
    font-size:14px;
    justify-content:center;
    white-space:nowrap;
  }
  .type-switch input[type="radio"]{
    width:17px !important;
    height:17px !important;
    min-width:17px;
    flex-basis:17px;
  }
}


/* V4.3 - chống zoom khi nhập liệu trên iPhone / mobile */
html{-webkit-text-size-adjust:100%}
body{min-height:100dvh}
input,select,textarea,button{font-size:16px}
.gate-form input,.gate-form textarea,
.modal-card input,.modal-card select,.modal-card textarea,
.page-filters input,.page-filters select,
.top-actions input,
.chat-composer input,
.chat-preview-grid input,.chat-preview-grid select{
  font-size:16px !important;
  line-height:1.35;
}
.money-input{font-size:16px !important}
input[type="date"],input[type="month"],input[type="search"],input[type="email"],input[type="url"],input[type="password"],input[type="text"],textarea,select{
  font-size:16px !important;
}
dialog{
  max-height:min(92dvh,92vh);
  overflow:auto;
}
.modal-card{
  max-height:min(92dvh,92vh);
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
@media(max-width:760px){
  .main{padding-bottom:24px}
  .modal-card{padding:18px}
  .modal-actions{position:sticky;bottom:0;background:#fff;padding-top:8px}
  .type-switch label{white-space:normal}
}


/* V4.4 - chuẩn hóa PWA/mobile và vùng an toàn iPhone */
html,body{width:100%;max-width:100%;overflow-x:hidden}
button,.nav-item,[role="button"],summary{touch-action:manipulation}
@supports (padding: max(0px)){
  @media(max-width:760px){
    .sidebar{padding-top:max(14px,env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
    .main{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom))}
    dialog{margin-top:max(12px,env(safe-area-inset-top));margin-bottom:max(12px,env(safe-area-inset-bottom))}
  }
}
@media(max-width:760px){
  dialog{width:calc(100% - 24px);max-width:520px;max-height:calc(100dvh - 24px)}
  .modal-card{max-height:calc(100dvh - 24px);overscroll-behavior:contain}
  .modal-card input,.modal-card select,.modal-card textarea,
  .gate-form input,.gate-form textarea,
  .chat-composer input,.page-filters input,.page-filters select{
    min-height:44px;
  }
}
