/* VirtualMall V0.2: additions only. This stylesheet has no region-specific navigation. */
[hidden] { display: none !important; }
.v2-card { background:#fff; border:1px solid #e1e7f0; border-radius:16px; padding:24px; min-width:0; box-shadow:0 2px 8px #172b4d05; }
.v2-card h2 { font-size:18px; font-weight:750; line-height:1.45; margin:0 0 16px; }
.v2-card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; flex-wrap:wrap; }
.v2-card-top h2 { margin-bottom:4px; }
.v2-two-col { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; align-items:start; }
.v2-stack { display:grid; gap:20px; min-width:0; }
.v2-form-narrow { max-width:800px; }
.v2-sticky { position:sticky; top:96px; }
.v2-form { display:grid; gap:18px; }
.v2-field { min-width:0; }
.v2-field label { display:block; font-size:14px; font-weight:650; color:#334155; margin-bottom:7px; }
.v2-field input:not([type=checkbox]):not([type=hidden]), .v2-field select, .v2-field textarea,
.v2-filter input, .v2-filter select { display:block; width:100%; min-width:0; min-height:44px; font:inherit; font-size:15px; color:#1e293b; background:#fff; border:1px solid #cbd5e1; border-radius:9px; padding:10px 12px; }
.v2-field textarea { resize:vertical; }
.v2-field input[type=checkbox] { width:20px; height:20px; accent-color:#2563eb; }
.v2-field input[type=file] { max-width:100%; font-size:13px; }
.v2-help { color:#64748b; font-size:13px; line-height:1.7; margin:8px 0 0; overflow-wrap:anywhere; }
.v2-field .errorlist, .v2-form > .errorlist { color:#b42318; padding:8px 0 0 18px; margin:0; font-size:14px; }
.v2-facts { margin:0; }
.v2-facts > div { display:grid; grid-template-columns:130px minmax(0,1fr); gap:12px; padding:13px 0; border-bottom:1px solid #eef2f6; }
.v2-facts > div:last-child { border-bottom:0; }
.v2-facts dt { color:#64748b; font-size:14px; font-weight:500; }
.v2-facts dd { margin:0; overflow-wrap:anywhere; font-size:14px; color:#0f172a; }
.v2-facts .v2-money, .v2-money { font-size:20px; font-weight:750; font-variant-numeric:tabular-nums; }
.v2-balance { font-size:clamp(26px,4vw,38px); font-weight:800; color:#1d4ed8; margin:15px 0 24px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.v2-account-box { background:#f7faff; border:1px solid #dbeafe; border-radius:12px; padding:4px 18px; margin:12px 0 18px; }
.v2-text { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.75; }
.v2-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.v2-actions > *, .v2-form > button { min-height:44px; }
.v2-form > button { justify-self:start; }
.v2-filter { display:flex; flex-wrap:wrap; gap:10px; align-items:end; margin-bottom:18px; }
.v2-filter label { min-width:120px; max-width:100%; color:#64748b; font-size:13px; }
.v2-filter > select { flex:1 1 110px; width:auto; font-size:13px; }
.v2-filter button { min-height:44px; }
.v2-pagination { display:flex; gap:12px; justify-content:center; align-items:center; padding:20px 4px; flex-wrap:wrap; font-size:13px; }
.v2-step { display:flex; gap:14px; margin:24px 0; }
.v2-step > span { flex:0 0 32px; height:32px; display:grid; place-items:center; background:#eff6ff; color:#2563eb; border-radius:50%; font-weight:700; }
.v2-step p { font-size:13px; color:#64748b; margin:5px 0; }
.v2-inbox-bar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; border:1px solid #dbe5f2; background:#fff; border-radius:12px; padding:10px 14px; margin-bottom:22px; }
.v2-inbox-actions { display:flex; gap:8px; flex-wrap:wrap; min-width:0; }
.v2-inbox-link { min-height:42px; display:inline-flex; align-items:center; gap:8px; border-radius:8px; color:#334155; background:#f8fafc; padding:8px 12px; font-size:13px; font-weight:650; text-decoration:none; }
.v2-inbox-link:hover { color:#1d4ed8; background:#eff6ff; }
.v2-count { display:inline-flex; align-items:center; justify-content:center; min-width:22px; height:22px; padding:0 6px; background:#dc2626; color:#fff; font-size:12px; font-weight:750; line-height:22px; border-radius:11px; flex-shrink:0; }
.v2-connection { font-size:11px; color:#64748b; }
.v2-urgent-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:22px; }
.v2-urgent { padding:22px; border:1px solid #bfdbfe; border-radius:14px; background:linear-gradient(115deg,#f4f8ff,#fff); text-decoration:none; color:#0f172a; min-width:0; }
.v2-urgent.is-important { border-color:#fecaca; background:linear-gradient(115deg,#fff7f7,#fff); }
.v2-urgent strong { font-size:36px; font-weight:800; display:block; margin:8px 0; color:#1d4ed8; }
.v2-urgent.is-important strong { color:#dc2626; }
.v2-urgent small { color:#64748b; }
.v2-profit-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.v2-profit-tile { background:#fff; border:1px solid #e1e7f0; border-radius:14px; padding:20px; color:#334155; text-decoration:none; min-width:0; }
.v2-profit-tile strong { display:block; font-weight:800; font-size:clamp(18px,1.8vw,26px); color:#047857; margin:10px 0; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.v2-profit-tile small { display:block; color:#64748b; font-size:12px; line-height:1.8; }
.v2-profit-tile.is-current { border-color:#2563eb; box-shadow:0 0 0 2px #2563eb15; }
.v2-task-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:24px; }
.v2-task-grid a { border:1px solid #dbe3f0; border-radius:13px; background:#fff; padding:18px; min-width:0; text-decoration:none; color:#334155; }
.v2-task-grid strong { display:block; font-size:28px; color:#1d4ed8; margin-top:10px; }
.v2-chat-shell { display:grid; grid-template-columns:310px minmax(0,1fr); border:1px solid #dce4ef; border-radius:16px; background:#fff; overflow:hidden; min-height:620px; }
.v2-inbox-list { border-right:1px solid #e2e8f0; min-width:0; background:#fbfcfe; }
.v2-inbox-list .v2-filter { padding:16px; margin:0; border-bottom:1px solid #e2e8f0; gap:8px; }
.v2-conversation-item { display:block; color:#0f172a; text-decoration:none; border-bottom:1px solid #edf0f5; padding:16px; border-left:3px solid transparent; }
.v2-conversation-item:hover, .v2-conversation-item.is-current { background:#edf4ff; border-left-color:#2563eb; color:#0f172a; }
.v2-conversation-top { display:flex; gap:10px; align-items:center; }
.v2-avatar { flex:0 0 36px; height:36px; display:grid; place-items:center; background:#dbeafe; color:#1d4ed8; font-size:14px; font-weight:700; border-radius:11px; }
.v2-conversation-title { min-width:0; flex:1; }
.v2-conversation-title strong { display:block; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.v2-conversation-title small { display:block; font-size:11px; color:#64748b; margin-top:3px; overflow-wrap:anywhere; }
.v2-conversation-item p { margin:10px 0; font-size:12px; line-height:1.6; color:#64748b; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.v2-conversation-meta { display:flex; gap:10px; justify-content:space-between; color:#758399; font-size:10px; }
.v2-chat-welcome { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; padding:36px; color:#64748b; }
.v2-chat-welcome h2 { font-size:21px; font-weight:750; color:#334155; }
.v2-welcome-icon { display:grid; place-items:center; width:76px; height:76px; font-size:34px; border-radius:24px; color:#2563eb; background:#eff6ff; margin-bottom:16px; }
.v2-chat { display:flex; flex-direction:column; min-width:0; position:relative; }
.v2-chat-header { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:20px 24px; border-bottom:1px solid #eef2f6; }
.v2-chat-header h2 { font-size:18px; font-weight:750; margin:2px 0 6px; overflow-wrap:anywhere; }
.v2-chat-header p { font-size:12px; color:#64748b; margin:0; overflow-wrap:anywhere; }
.v2-order-context, .v2-privacy-note { font-size:12px; color:#64748b; padding:10px 24px; background:#f9fbff; overflow-wrap:anywhere; }
.v2-order-context { background:#eff6ff; color:#1e40af; }
.v2-chat-history { height:420px; overflow-y:auto; overflow-x:hidden; padding:18px 24px; display:flex; flex-direction:column; gap:16px; background:#f7f9fc; scroll-behavior:auto; }
.v2-history-top { display:flex; justify-content:center; margin-bottom:8px; }
.v2-message { display:flex; flex-direction:column; align-items:flex-start; max-width:84%; flex-shrink:0; }
.v2-message.is-mine { align-self:flex-end; align-items:flex-end; }
.v2-message-meta { display:flex; gap:10px; align-items:center; font-size:10px; color:#758399; margin:0 0 6px; }
.v2-message-meta strong { font-size:11px; color:#475569; }
.v2-message-bubble { background:#fff; color:#1e293b; border:1px solid #e2e8f0; border-radius:2px 13px 13px 13px; padding:12px 15px; line-height:1.7; font-size:14px; white-space:pre-wrap; overflow-wrap:anywhere; max-width:100%; }
.v2-message.is-mine .v2-message-bubble { color:#fff; background:#2563eb; border-color:#2563eb; border-radius:13px 2px 13px 13px; }
.v2-chat-composer { border-top:1px solid #e2e8f0; padding:16px 22px; }
.v2-chat-composer textarea { display:block; width:100%; border:1px solid #cbd5e1; border-radius:10px; min-height:90px; font-size:15px; font-family:inherit; padding:12px; resize:vertical; color:#0f172a; }
.v2-composer-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; }
.v2-composer-footer span { font-size:11px; color:#758399; }
.v2-composer-footer button { min-width:100px; min-height:44px; }
.v2-chat-feedback { color:#b42318; font-size:13px; padding:4px 22px; overflow-wrap:anywhere; }
.v2-chat-manage { border-top:1px solid #e2e8f0; padding:16px 22px; display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.v2-chat-manage span { font-size:11px; color:#64748b; }
.v2-back-list { display:none; flex-shrink:0; }
.v2-new-messages { background:#dbeafe; color:#1e40af; border:0; padding:8px; font-size:12px; }
.v2-toast-stack { position:fixed; right:22px; bottom:24px; z-index:1065; width:min(340px,calc(100vw - 32px)); display:grid; gap:12px; }
.v2-toast { border:1px solid #bfdbfe; border-left:4px solid #2563eb; background:#fff; border-radius:12px; padding:18px; box-shadow:0 8px 28px #172b4d24; position:relative; }
.v2-toast strong { display:block; margin:0 30px 8px 0; font-size:14px; }
.v2-toast p { font-size:12px; color:#64748b; margin-bottom:12px; }
.v2-toast a { font-size:13px; font-weight:650; }
.v2-toast-close { position:absolute; right:8px; top:8px; width:32px; height:32px; background:transparent; border:0; color:#64748b; font-size:20px; }
.v2-notification-list { display:grid; gap:16px; }
.v2-notification-list .v2-card.is-unread { border-left:4px solid #2563eb; }
.v2-notification-list h2 { font-size:16px; }
:where(.v2-card,.v2-chat,.v2-inbox-bar) :is(a,button,input,textarea,select):focus-visible { outline:3px solid #60a5fa; outline-offset:3px; }
@media (max-width:1199px) { .v2-chat-shell { grid-template-columns:260px minmax(0,1fr); } .v2-profit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767px) {
 .v2-two-col { grid-template-columns:minmax(0,1fr); gap:16px; }
 .v2-card { padding:18px; border-radius:13px; }
 .v2-sticky { position:static; }
 .v2-facts > div { grid-template-columns:108px minmax(0,1fr); gap:8px; }
 .v2-inbox-bar { padding:9px; gap:8px; margin-bottom:16px; }
 .v2-inbox-actions { gap:5px; }
 .v2-inbox-link { padding:7px 9px; font-size:12px; }
 .v2-connection { width:100%; padding-left:5px; }
 .v2-urgent-grid { gap:10px; }
 .v2-urgent { padding:16px; }
 .v2-urgent strong { font-size:30px; }
 .v2-profit-grid { gap:10px; }
 .v2-profit-tile { padding:15px; }
 .v2-task-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .v2-chat-shell { display:block; min-height:0; }
 .v2-inbox-list { border-right:0; }
 .v2-chat-welcome { display:none; }
 .v2-chat-shell.has-conversation > .v2-inbox-list { display:none; }
 .v2-back-list { display:inline-block; }
 .v2-chat-header { padding:16px; }
 .v2-chat-header h2 { font-size:16px; }
 .v2-chat-history { height:46vh; min-height:260px; max-height:500px; padding:14px; }
 .v2-message { max-width:92%; }
 .v2-message-bubble { font-size:14px; padding:10px 12px; }
 .v2-chat-composer, .v2-chat-manage { padding:14px; }
 .v2-chat-composer textarea, .v2-field input:not([type=hidden]), .v2-field select { font-size:16px; }
 .v2-order-context, .v2-privacy-note { padding:10px 14px; }
 .v2-toast-stack { right:16px; bottom:16px; }
 .frontend-area .v2-toast-stack { bottom:calc(80px + env(safe-area-inset-bottom)); }
}
@media (max-width:359px) { .v2-facts > div { grid-template-columns:1fr; gap:4px; } .v2-actions > * { max-width:100%; } .v2-profit-grid { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .v2-chat * { scroll-behavior:auto !important; transition:none !important; } }

/* Card wrappers used in the complete dashboard and report. */
.v2-profit-grid > .v2-card { text-decoration:none; color:#334155; }
.v2-profit-grid > .v2-card > span, .v2-profit-grid > .v2-card > strong,
.v2-profit-grid > .v2-card > small, .v2-task-grid > a > small, .v2-task-grid > a > span { display:block; }
.v2-profit-grid > .v2-card > strong { color:#047857; margin:12px 0; overflow-wrap:anywhere; }
.v2-profit-grid .v2-selected { border-color:#2563eb; box-shadow:0 0 0 2px #2563eb15; }
.v2-profit-grid small, .v2-task-grid small { color:#64748b; font-size:12px; line-height:1.6; }
.v2-heading h1 { font-size:28px; font-weight:750; margin-bottom:8px; }
.v2-heading p { color:#64748b; font-size:14px; margin-bottom:24px; }
