/* Trợ lý tài sản — theme EMERALD GOLD LUXURY (tối, mặc định) và bản sáng; chữ nội dung 16px, vùng bấm ≥ 44px, focus rõ, tương phản đạt WCAG AA.
   Màu có nghĩa: xanh lá = ổn/tăng, vàng = cần bạn làm, đỏ = lỗi/giảm; luôn kèm biểu tượng và chữ.
   Nguyên tắc phối màu: 75–85% xanh tối, 10–15% chữ/trung tính, 5–10% vàng nhấn. Component chỉ dùng biến vai trò bên dưới, không ghi mã màu trực tiếp. */
:root {
  /* 1. Bảng màu gốc — đúng mã HEX trong emerald_gold_tokens.json */
  --eg-bg:#071710; --eg-bg2:#12281F; --eg-card:#173326; --eg-elev:#244536;
  --eg-gold:#D8BB79; --eg-gold-l:#F2DEA9; --eg-gold-d:#A7884C;
  --eg-text:#F6F3E9; --eg-text2:#B8C7BE; --eg-border:#365040;
  --eg-pos:#3FD49A; --eg-neg:#E57F7B; --eg-warn:#E8BB66;
  /* 2. Vai trò (component dùng các biến này) */
  --bg:var(--eg-bg); --panel:var(--eg-bg2); --panel2:var(--eg-card); --card:var(--eg-card); --hover:var(--eg-elev);
  --text:var(--eg-text); --muted:var(--eg-text2); --line:var(--eg-border); --accent:var(--eg-gold); --accent-strong:var(--eg-gold-l);
  --btn:var(--eg-gold); --btn-h:var(--eg-gold-l); --btn-text:var(--eg-bg); --btn2:var(--eg-card); --btn2-h:var(--eg-elev); --btn2-text:var(--eg-text);
  --danger:#8E3633; --danger-h:#A8403C; --danger-text:#FFF6F5; --line-strong:#4A6B58;
  --up:var(--eg-pos); --down:var(--eg-neg); --warn:var(--eg-warn); --topbar:var(--eg-bg2); --input:var(--eg-bg);
  --ok-bg:rgba(63,212,154,.12); --ok-line:rgba(63,212,154,.42); --ok-text:#C4F4DF;
  --warn-bg:rgba(232,187,102,.13); --warn-line:rgba(232,187,102,.48); --warn-text:#F8E3B6;
  --err-bg:rgba(229,127,123,.13); --err-line:rgba(229,127,123,.5); --err-text:#F9D4D1;
  --info-bg:rgba(36,69,54,.6); --info-line:#4A6B58; --info-text:var(--eg-text);
  --gold-tint:rgba(216,187,121,.10); --gold-line:rgba(216,187,121,.45); --focus:var(--eg-gold-l);
  --metal:linear-gradient(135deg, var(--eg-gold-l) 0%, var(--eg-gold) 48%, var(--eg-gold-d) 100%);
  --glow:radial-gradient(1100px 520px at 72% -12%, rgba(36,69,54,.55), transparent 62%);
  /* 3. Hình khối, bóng, khoảng cách */
  --radius:14px; --radius-sm:9px; --shadow:0 1px 0 rgba(242,222,169,.035) inset, 0 10px 28px rgba(0,0,0,.28);
  --shadow-pop:0 14px 40px rgba(0,0,0,.45); --ease:cubic-bezier(.2,.7,.2,1); --side-w:250px;
  /* 4. Biểu đồ: vàng cho chuỗi chính, màu phụ dịu để phân biệt chuỗi */
  --chart-1:#D8BB79; --chart-2:#3FD49A; --chart-3:#7FB6D8; --chart-4:#E57F7B; --chart-5:#F2DEA9; --chart-6:#9FB7A8;
  --chart-7:#A7884C; --chart-8:#A99BD6; --chart-9:#4FB3A9; --chart-10:#C99A7A;
  --chart-grid:rgba(54,80,64,.55); --chart-fill:rgba(216,187,121,.12);
}
html[data-theme="sang"] {
  --bg:#F6F3E9; --panel:#FFFDF7; --panel2:#EFEADB; --card:#FFFDF7; --hover:#E7E0CC;
  --text:#12281F; --muted:#3E5A4B; --line:#D2CAB3; --accent:#7A5F28; --accent-strong:#5E4719;
  --btn:#D8BB79; --btn-h:#C9A962; --btn-text:#071710; --btn2:#FFFDF7; --btn2-h:#EFEADB; --btn2-text:#12281F; --danger:#A8332F; --danger-h:#8E2A27; --line-strong:#B7AD92;
  --up:#0F7048; --down:#A8332F; --warn:#7A5300; --topbar:#FFFDF7; --input:#FFFFFF;
  --ok-bg:#E3F4EA; --ok-line:#8FCFAE; --ok-text:#11472F; --warn-bg:#FBF0D6; --warn-line:#DDBF74; --warn-text:#563A00;
  --err-bg:#FBE6E4; --err-line:#E3A29E; --err-text:#7A1F1B; --info-bg:#EAF0EA; --info-line:#B5C8BA; --info-text:#12281F;
  --gold-tint:rgba(167,136,76,.14); --gold-line:rgba(167,136,76,.55); --focus:#7A5F28; --glow:none;
  --shadow:0 1px 2px rgba(18,40,31,.06), 0 6px 18px rgba(18,40,31,.06); --shadow-pop:0 12px 32px rgba(18,40,31,.18);
  --chart-1:#A7884C; --chart-2:#0F7048; --chart-3:#2F6F96; --chart-4:#A8332F; --chart-5:#C9A962; --chart-6:#5E7D6B;
  --chart-7:#6B5220; --chart-8:#6F5FA8; --chart-9:#1E7F76; --chart-10:#9A6440; --chart-grid:rgba(18,40,31,.10); --chart-fill:rgba(167,136,76,.14);
}
html[data-size="lon"] { zoom:1.15; }
* { box-sizing: border-box; }
html { color-scheme: dark; } html[data-theme="sang"] { color-scheme: light; }
body { margin:0; font:16px/1.6 "Segoe UI", system-ui, sans-serif; background:var(--glow), var(--bg); background-attachment:fixed; color:var(--text);
       -webkit-font-smoothing:antialiased; }
a { color:var(--accent); text-underline-offset:3px; text-decoration-thickness:1px; } a:hover { color:var(--accent-strong); }
h1 { margin:0; font-size:28px; line-height:1.25; font-weight:650; letter-spacing:-.01em; } h2 { margin:0 0 12px; font-size:19px; font-weight:620; letter-spacing:.005em; }
h3 { margin:18px 0 8px; font-size:16.5px; font-weight:620; }
.card strong, .kv b, .three strong, td.r, th.r, .mk-dl dd { font-variant-numeric:tabular-nums; }
small, .muted { color:var(--muted); } small { font-size:14px; } .hint { color:var(--muted); font-size:15px; margin:6px 0; } .note { color:var(--muted); }
code { background:var(--panel2); padding:1px 6px; border-radius:4px; }
pre { background:var(--panel2); border:1px solid var(--line); border-radius:6px; padding:6px 10px; margin:6px 0; display:inline-block; user-select:all; }
:focus-visible { outline:3px solid var(--focus); outline-offset:2px; border-radius:6px; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* thanh điều hướng: các mục + nút chính "Thêm tài sản" bên phải */
.topbar { position:sticky; top:0; z-index:5; display:flex; align-items:center; gap:18px; padding:8px 20px; background:var(--topbar); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:10px; font-weight:650; font-size:17px; color:var(--text); text-decoration:none; white-space:nowrap; letter-spacing:.01em; }
.brand:hover { color:var(--text); }
.brand .logo { width:36px; height:36px; flex:none; filter:drop-shadow(0 0 6px rgba(216,187,121,.18)); }
.brand .byline { display:block; font-size:12px; font-weight:400; color:var(--muted); letter-spacing:.04em; }
.nav { display:flex; gap:4px; overflow-x:auto; scrollbar-width:none; flex:1; }
.nav a { display:flex; align-items:center; gap:10px; min-height:44px; padding:0 12px; border-radius:var(--radius-sm); color:var(--muted); text-decoration:none; white-space:nowrap;
         transition:background-color .18s var(--ease), color .18s var(--ease); }
.nav .ico { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; opacity:.85; }
.nav a:hover { background:var(--hover); color:var(--text); }
.nav a.active { background:var(--gold-tint); color:var(--accent-strong); font-weight:600; box-shadow:inset 0 -2px 0 var(--accent); }
.nav a.active .ico { stroke:var(--accent); opacity:1; }
.topbar .btn.add { white-space:nowrap; }
main { max-width:1180px; margin:0 auto; padding:22px 16px 64px; }
@media (min-width:1600px) { main { max-width:1360px; padding-inline:28px; } }
.page-head { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.crumbs { margin:4px 0 0; color:var(--muted); display:flex; flex-wrap:wrap; gap:6px; align-items:center; }

/* khối nội dung */
.panel { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; margin-bottom:16px; box-shadow:var(--shadow); }
.form-panel { max-width:820px; margin-inline:auto; }
.cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; margin-bottom:16px; }
.card { position:relative; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; display:flex; flex-direction:column; min-width:0;
        box-shadow:var(--shadow); transition:border-color .2s var(--ease), transform .2s var(--ease); }
.card.accent { border-color:var(--gold-line); }
.card.accent::before { content:""; position:absolute; inset:0 18px auto; height:2px; border-radius:2px; background:var(--metal); opacity:.9; }
.card.accent strong { color:var(--accent-strong); }
.card span { color:var(--muted); font-size:13.5px; letter-spacing:.03em; } .card strong { font-size:22px; overflow-wrap:anywhere; font-weight:650; } .card small { font-size:14px; }
.card.big strong { font-size:30px; line-height:1.35; letter-spacing:-.01em; }
.grid2 { display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:16px; align-items:start; }
.chart { position:relative; height:290px; } .chart.short { height:200px; margin:12px 0; }
.up { color:var(--up); } .down { color:var(--down); } .warn-text { color:var(--warn); }
.empty-state { text-align:center; padding:36px 16px; color:var(--muted); background:var(--panel); border:1px dashed var(--line); border-radius:var(--radius); }
.badge { display:inline-block; font-size:13.5px; padding:1px 9px; border-radius:999px; background:var(--panel2); border:1px solid var(--line); color:var(--muted); white-space:nowrap; }
.badge.ok { color:var(--ok-text); background:var(--ok-bg); border-color:var(--ok-line); }
.badge.can-lam, .badge.warn { color:var(--warn-text); background:var(--warn-bg); border-color:var(--warn-line); }
.badge.bad, .badge.loi { color:var(--err-text); background:var(--err-bg); border-color:var(--err-line); }
.chip { display:inline-block; margin:2px 4px 2px 0; padding:2px 10px; border-radius:999px; background:var(--panel2); border:1px solid var(--line); font-size:14px; }

/* bảng */
.table-wrap { overflow-x:auto; }
.tbl, table { width:100%; border-collapse:collapse; }
.tbl th, .tbl td, table th, table td { padding:10px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th { color:var(--muted); font-weight:600; font-size:13px; white-space:nowrap; letter-spacing:.04em; text-transform:uppercase; } .r { text-align:right; } tr.dim td { color:var(--muted); }
.tbl tr:last-child td, table tr:last-child td { border-bottom:0; }
.tbl th.r, .tbl td.r, table th.r, table td.r { text-align:right; white-space:nowrap; }   /* cột số căn phải, không gãy dòng số tiền */
.tbl .btn.small { white-space:nowrap; }
.tbl tr:has(td):hover td, table.tbl tr:has(td):hover td { background:rgba(36,69,54,.35); }
html[data-theme="sang"] .tbl tr:has(td):hover td { background:var(--panel2); }
tr.hl td { background:var(--gold-tint); }
.thumb { width:44px; height:44px; object-fit:cover; border-radius:8px; display:block; border:1px solid var(--line); }
.tabs { display:flex; gap:6px; margin-bottom:10px; flex-wrap:wrap; } .tabs a { padding:8px 14px; border-radius:999px; text-decoration:none; color:var(--muted); border:1px solid var(--line);
       transition:background-color .18s var(--ease), color .18s var(--ease); }
.tabs a:hover { background:var(--hover); color:var(--text); }
.tabs a.active { background:var(--gold-tint); color:var(--accent-strong); border-color:var(--gold-line); }
dl.props { display:grid; grid-template-columns:max-content 1fr; gap:6px 18px; margin:0 0 8px; } dl.props dt { color:var(--muted); } dl.props dd { margin:0; }

/* nút và ô nhập (vùng bấm tối thiểu 44px) */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; background:var(--btn); color:var(--btn-text); border:1px solid transparent;
       padding:8px 18px; border-radius:var(--radius-sm); font:inherit; font-weight:600; cursor:pointer; text-decoration:none; letter-spacing:.01em;
       transition:background-color .18s var(--ease), border-color .18s var(--ease), box-shadow .18s var(--ease), color .18s var(--ease); }
.btn:hover { background:var(--btn-h); color:var(--btn-text); box-shadow:0 0 0 1px var(--gold-line), 0 6px 18px rgba(216,187,121,.16); }
.btn.big { font-size:18px; padding:10px 22px; }
.btn.secondary { background:var(--btn2); color:var(--btn2-text); border:1px solid var(--line); font-weight:500; }
.btn.secondary:hover { background:var(--btn2-h); color:var(--btn2-text); border-color:var(--gold-line); box-shadow:none; }
.btn.danger { background:var(--danger); color:var(--danger-text); } .btn.danger:hover { background:var(--danger-h); color:var(--danger-text); box-shadow:none; }
.btn.small { min-height:36px; padding:4px 12px; font-size:15px; }
button:disabled, .btn:disabled { opacity:.55; cursor:wait; box-shadow:none; }
.btn:disabled:hover { background:var(--btn); } .btn.secondary:disabled:hover { background:var(--btn2); border-color:var(--line); }
.link-btn, .link-danger { background:none; border:0; cursor:pointer; font:inherit; padding:0 4px; min-height:36px; } .link-btn { color:var(--accent); } .link-danger { color:var(--down); }
label { display:block; margin-bottom:12px; font-weight:600; } label small { font-weight:400; }
input, select, textarea { display:block; width:100%; margin-top:4px; min-height:44px; padding:8px 12px; font:inherit; color:var(--text); background:var(--input); border:1px solid var(--line);
       border-radius:var(--radius-sm); transition:border-color .18s var(--ease), box-shadow .18s var(--ease); }
input:hover:not(:disabled), select:hover:not(:disabled), textarea:hover:not(:disabled) { border-color:var(--line-strong); }
input::placeholder, textarea::placeholder { color:var(--muted); opacity:.75; }
textarea { min-height:88px; }
input:focus, select:focus, textarea:focus { outline:2px solid var(--focus); outline-offset:1px; border-color:var(--accent); box-shadow:0 0 0 4px var(--gold-tint); }
input:disabled, select:disabled { opacity:.6; }
input[aria-invalid=true], select[aria-invalid=true], textarea[aria-invalid=true] { border-color:var(--down); }
input[type=checkbox], input[type=radio] { width:22px; height:22px; min-height:0; margin:0; accent-color:var(--accent); box-shadow:none; }
label.check { display:flex; gap:10px; align-items:center; font-weight:400; min-height:44px; margin-bottom:4px; }
label.check > input[type=checkbox] { flex-shrink:0; }   /* dòng chữ dài không làm ô tích co nhỏ lại */
[id] { scroll-margin-top:80px; }                       /* nhảy tới #mục: không bị thanh menu dính che mất tiêu đề */
.row { display:grid; grid-template-columns:1fr 1fr; gap:12px; } .row3 { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.radios { display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-bottom:12px; } .radios label { margin:0; }
.fs[hidden], [data-kinds][hidden], [hidden] { display:none !important; }
.field-err { display:block; color:var(--down); font-weight:400; font-size:14px; margin-top:3px; }
.req { color:var(--warn); font-weight:700; }
.preview { background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:8px 12px; margin-bottom:12px; }
.actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; } form.inline { display:inline; }
.inline-form { display:flex; gap:10px; align-items:flex-end; } .inline-form input { margin:0; } .inline-form.wrap { flex-wrap:wrap; } .inline-form.wrap label { margin:0; }
.narrow-input { max-width:220px; }
.filters, .filters-bar { display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; } .filters label, .filters-bar label { margin:0; } .filters-bar .grow { flex:1; min-width:200px; }
.filters-bar { padding:12px 14px; }
.gallery { display:flex; flex-wrap:wrap; gap:10px; margin:12px 0; } .gallery img { width:130px; height:130px; object-fit:cover; border-radius:8px; display:block; } .gallery form { text-align:center; }
details > summary { cursor:pointer; font-weight:600; margin:8px 0; min-height:36px; display:flex; align-items:center; }
details.guide { margin-top:14px; }
.report { margin:10px 0; }
.update { display:flex; gap:16px; align-items:flex-start; flex-wrap:wrap; }

/* thông báo chuẩn: tiêu đề ngắn + nguyên nhân một câu + nút hành động */
.notice { display:flex; gap:12px; align-items:flex-start; padding:12px 16px; border-radius:10px; margin:10px 0; border:1px solid transparent; }
.notice .ico { font-weight:700; font-size:18px; line-height:1.4; flex:none; }
.notice .body { flex:1; min-width:0; } .notice .body p { margin:2px 0 0; } .notice .act { flex:none; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.notice.ok { background:var(--ok-bg); border-color:var(--ok-line); color:var(--ok-text); }
.notice.can_lam, .notice.warn { background:var(--warn-bg); border-color:var(--warn-line); color:var(--warn-text); }
.notice.err, .notice.loi { background:var(--err-bg); border-color:var(--err-line); color:var(--err-text); }
.notice.info { background:var(--info-bg); border-color:var(--info-line); color:var(--info-text); }
.notice a:not(.btn) { color:inherit; }
.notice .btn.secondary { color:inherit; border-color:currentColor; }

/* gợi ý ngắn cạnh chỗ dễ hiểu sai */
.tip { position:relative; display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; border:1px solid var(--line);
       color:var(--muted); font-size:13px; font-weight:700; cursor:help; vertical-align:middle; margin-left:4px; }
.tip:hover::after, .tip:focus::after { content:attr(data-tip); position:absolute; left:50%; bottom:130%; transform:translateX(-50%); width:280px;
       background:var(--panel2); color:var(--text); border:1px solid var(--gold-line); border-radius:8px; padding:8px 10px; font-weight:400; font-size:14px;
       line-height:1.45; z-index:20; box-shadow:var(--shadow-pop); white-space:normal; }
.tip:hover, .tip:focus { color:var(--accent); border-color:var(--gold-line); }

/* trang chi tiết định giá: kết quả, việc cần làm, phần thu gọn */
.result { border-color:var(--gold-line); }
.result .headline { font-size:22px; font-weight:600; margin:0 0 10px; line-height:1.4; }
.kv { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px 18px; margin:10px 0 4px; }
.kv div span { display:block; color:var(--muted); font-size:14px; } .kv div b { font-size:18px; }
.lines { margin:10px 0 0; padding:0; list-style:none; } .lines li { padding:6px 0; border-top:1px dashed var(--line); display:flex; flex-wrap:wrap; gap:6px 14px; align-items:baseline; }
.lines li b { min-width:170px; }
.three { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; margin:12px 0 0; }
.three > div { border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 12px; background:var(--panel2); }
.three .lbl { color:var(--muted); font-size:14px; display:block; } .three strong { font-size:19px; display:block; }
.todo { list-style:none; margin:0; padding:0; } .todo li { display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap;
       padding:10px 0; border-top:1px solid var(--line); } .todo li:first-child { border-top:0; }
.todo .n { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--warn-bg); color:var(--warn-text);
       border:1px solid var(--warn-line); font-weight:700; margin-right:8px; flex:none; }
.facts { width:100%; } .facts td { padding:8px 10px; } .facts td:first-child { color:var(--muted); width:30%; }
.fold { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); margin-bottom:10px; box-shadow:var(--shadow); }
.fold > summary { margin:0; padding:10px 18px; min-height:52px; font-size:17px; list-style:none; gap:10px; border-radius:var(--radius); transition:background-color .18s var(--ease); }
.fold > summary:hover { background:var(--hover); }
.fold > summary::-webkit-details-marker { display:none; }
.fold > summary::before { content:"▸"; color:var(--accent); width:14px; } .fold[open] > summary::before { content:"▾"; }
.fold > summary .muted { font-weight:400; font-size:15px; }
.fold > .in { padding:2px 18px 16px; }
.menu { position:relative; } .menu > summary { margin:0; min-height:44px; padding:0 14px; border:1px solid var(--line); border-radius:8px; list-style:none; }
.menu > summary::-webkit-details-marker { display:none; }
.menu .pop { position:absolute; right:0; top:110%; z-index:10; min-width:230px; background:var(--panel2); border:1px solid var(--line); border-radius:var(--radius-sm);
       padding:6px; box-shadow:var(--shadow-pop); display:flex; flex-direction:column; gap:2px; }
.menu .pop a, .menu .pop button { display:flex; align-items:center; min-height:44px; padding:0 12px; border-radius:8px; color:var(--text); text-decoration:none;
       background:none; border:0; font:inherit; cursor:pointer; text-align:left; } .menu .pop a:hover, .menu .pop button:hover { background:var(--hover); }
dialog { background:var(--panel); color:var(--text); border:1px solid var(--gold-line); border-radius:var(--radius); padding:20px 22px; max-width:760px; width:calc(100% - 32px);
         box-shadow:var(--shadow-pop); }
dialog::backdrop { background:rgba(4,12,8,.7); backdrop-filter:blur(2px); }

/* màn hình hẹp */
@media (max-width: 800px) {
  .topbar { flex-wrap:wrap; gap:6px; padding:8px 12px; } .nav { order:3; flex-basis:100%; padding-bottom:2px; }
  .row, .row3 { grid-template-columns:1fr; } main { padding:14px 10px 56px; } .grid2 { grid-template-columns:1fr; }
  .page-head { align-items:flex-start; } .inline-form { flex-wrap:wrap; } .lines li b { min-width:0; }
}

/* danh sách định giá, nhật ký, nguồn */
.mk-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:14px; margin-bottom:16px; }
.mk-card { display:block; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:14px; color:var(--text); text-decoration:none;
           box-shadow:var(--shadow); transition:border-color .2s var(--ease), transform .2s var(--ease); }
.mk-card:hover { border-color:var(--gold-line); color:var(--text); transform:translateY(-1px); }
.mk-head { display:flex; gap:10px; align-items:center; margin-bottom:8px; } .mk-head .badge { margin-left:auto; }
.mk-dl { display:grid; grid-template-columns:1fr auto; gap:3px 12px; margin:0; font-size:15px; } .mk-dl dt { color:var(--muted); } .mk-dl dd { margin:0; text-align:right; }
.proposal { border-color:var(--gold-line); }
ul.log { margin:6px 0 10px; padding-left:18px; } ul.log li { margin:2px 0; font-size:15px; }
table.mk-src td:first-child { min-width:280px; } table.mk-src .btn { white-space:nowrap; }
.ai-cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:12px; margin:8px 0 4px; }
.ai-card { border:1px solid var(--line); border-radius:10px; padding:12px; display:block; cursor:pointer; line-height:1.5; font-weight:400; }
.ai-card.off { opacity:.75; cursor:default; }
.ai-card input[type=radio] { margin-right:6px; display:inline-block; }
ol.steps { display:flex; flex-wrap:wrap; gap:8px 18px; list-style:none; padding:0; margin:6px 0; }
ol.steps li.xong { color:var(--up); } ol.steps li.dang_lam { font-weight:600; } ol.steps li.cho { color:var(--muted); }

/* biểu mẫu từng bước */
.stepper { display:flex; gap:8px; list-style:none; padding:0; margin:0 0 16px; flex-wrap:wrap; }
.stepper li { flex:1; min-width:150px; padding:10px 12px; border-radius:10px; border:1px solid var(--line); color:var(--muted); }
.stepper li.on { border-color:var(--gold-line); color:var(--accent-strong); font-weight:600; background:var(--gold-tint); }
.stepper li.done { color:var(--up); }
.suggest { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:4px; font-weight:400; font-size:14.5px; color:var(--muted); }
fieldset.step { border:0; padding:0; margin:0; min-width:0; }

/* Bộ chọn AI trên thanh đầu trang */
.ai-pick { position:relative; margin-left:auto; }
.ai-pick > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:8px; min-height:42px; padding:0 14px;
  border:1px solid var(--gold-line); border-radius:var(--radius-sm); background:var(--gold-tint); white-space:nowrap; max-width:280px; overflow:hidden; text-overflow:ellipsis;
  transition:background-color .18s var(--ease), border-color .18s var(--ease); }
.ai-pick > summary:hover, .ai-pick[open] > summary { background:var(--hover); border-color:var(--accent); }
.ai-pick > summary b { color:var(--accent-strong); }
.ai-pick > summary::-webkit-details-marker { display:none; }
.ai-pick .dot { width:9px; height:9px; border-radius:50%; background:var(--up); flex:none; box-shadow:0 0 0 3px rgba(63,212,154,.18); }
.ai-pick .dot.off { background:var(--down); box-shadow:0 0 0 3px rgba(229,127,123,.18); }
.ai-pop { position:absolute; right:0; top:110%; z-index:20; width:300px; max-height:70vh; overflow:auto; background:var(--panel2);
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:8px; box-shadow:var(--shadow-pop); }
.ai-pop .grp { margin:8px 6px 4px; font-weight:600; color:var(--accent); font-size:.78em; letter-spacing:.08em; text-transform:uppercase; }
.ai-pop form { margin:0; }
.ai-item { display:flex; flex-direction:column; align-items:flex-start; width:100%; min-height:44px; padding:6px 10px; border:0; border-radius:8px;
  background:none; color:var(--text); font:inherit; cursor:pointer; text-align:left; transition:background-color .15s var(--ease); }
.ai-item small { color:var(--muted); } .ai-item:hover:not([disabled]) { background:var(--hover); }
.ai-item.on { background:var(--gold-tint); box-shadow:inset 3px 0 0 var(--accent); }
.ai-item[disabled] { opacity:.5; cursor:not-allowed; }
.topbar .ai-pick + .btn.add { margin-left:0; }
/* Bảng tổng quan / cập nhật giá */
.kpi3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0 0 16px; }
@media (max-width:760px) { .kpi3 { grid-template-columns:1fr; } .ai-pick { order:2; } .ai-pick > summary { max-width:200px; } }
.upd-bar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0; }
.upd-status { min-height:1.4em; }
.fbline { font-weight:600; } .fbline.met { color:var(--up); } .fbline.miss { color:var(--warn); }

/* ===== Emerald Gold Luxury: bố cục, banner, khu AI, hiệu ứng ===== */
html { scrollbar-color:var(--line) transparent; }
::selection { background:rgba(216,187,121,.35); color:var(--text); }
main { animation:eg-fade .32s var(--ease) both; }
@keyframes eg-fade { from { opacity:0; } }
@keyframes eg-drift { from { transform:scale(1.02) translateX(0); } to { transform:scale(1.07) translateX(-1.5%); } }
@keyframes eg-pulse { 0%, 100% { opacity:1; } 50% { opacity:.45; } }
@keyframes eg-sheen { from { background-position:-200% 0; } to { background-position:200% 0; } }

/* Thanh điều hướng thành sidebar trái trên màn hình rộng (≥1100px); màn hình hẹp giữ thanh ngang phía trên */
@media (min-width:1100px) {
  body { padding-left:var(--side-w); }
  .topbar { position:fixed; inset:0 auto 0 0; width:var(--side-w); flex-direction:column; align-items:stretch; gap:14px; padding:22px 14px 18px;
            border-bottom:0; border-right:1px solid var(--line); overflow-y:auto; z-index:6;
            background:linear-gradient(180deg, rgba(36,69,54,.35), transparent 220px), var(--topbar); }
  html[data-theme="sang"] .topbar { background:var(--topbar); }
  .brand { padding:0 6px 16px; border-bottom:1px solid var(--line); }
  .ai-pick { order:2; margin-left:0; } .ai-pick > summary { max-width:none; }
  .ai-pop { left:0; right:auto; }
  .nav { order:3; flex:0 0 auto; flex-direction:column; overflow:visible; gap:2px; }
  .nav a.active { box-shadow:inset 3px 0 0 var(--accent); }
  .topbar .btn.add { order:4; margin-top:auto; }
  .topbar .them-2 { order:4; margin-top:auto; flex-direction:column; }  /* 2 nút thêm: dưới cùng thanh bên */
  main { padding-top:26px; }
}
@media (max-width:1099px) { .nav .ico { display:none; } }

/* Banner đầu trang Tổng quan: ảnh tham khảo Emerald Gold, lớp phủ tối để chữ luôn rõ */
.hero { position:relative; overflow:hidden; isolation:isolate; align-items:flex-end; min-height:184px; padding:26px 28px; margin-bottom:18px;
        border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); background:var(--eg-bg); color:var(--eg-text); }
.hero::before { content:""; position:absolute; inset:0; z-index:-2; background:url(/static/img/hero-emerald.webp) center 40%/cover no-repeat;
                animation:eg-drift 38s ease-in-out infinite alternate; will-change:transform; }
.hero::after { content:""; position:absolute; inset:0; z-index:-1;
               background:linear-gradient(90deg, rgba(7,23,16,.95) 0%, rgba(7,23,16,.78) 38%, rgba(7,23,16,.30) 62%, rgba(7,23,16,.82) 100%); }
.hero .eyebrow { margin:0 0 6px; font-size:12.5px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--eg-gold); }
.hero h1 { font-size:32px; color:var(--eg-text); }
.hero .hero-sub { margin:6px 0 0; color:var(--eg-text2); font-size:15px; } .hero .muted { color:var(--eg-text2); }
.hero label { color:var(--eg-text); }
@media (max-width:800px) { .hero { padding:20px 18px; min-height:0; } .hero h1 { font-size:26px; } }

/* Khu AI (trình duyệt AI, Facebook): khung đồng bộ theme, avatar Emerald Gold, hiệu ứng nhẹ khi đang xử lý */
.ai-panel { position:relative; overflow:hidden; background:linear-gradient(180deg, rgba(216,187,121,.05), transparent 140px), var(--panel); }
.ai-title { display:flex; align-items:center; gap:12px; }
.ai-avatar { width:36px; height:36px; border-radius:50%; flex:none; box-shadow:0 0 0 1px var(--gold-line), 0 0 16px rgba(216,187,121,.18); }
.ai-panel pre { display:block; width:100%; background:var(--input); font:13.5px/1.55 Consolas, "Cascadia Mono", monospace; color:var(--muted); padding:10px 12px; }
.ai-panel[data-task="running"], .ai-panel[data-task="queued"] { border-color:var(--gold-line); }
.ai-panel[data-task="running"]::before, .ai-panel[data-task="queued"]::before { content:""; position:absolute; inset:0 0 auto; height:2px;
   background:linear-gradient(90deg, transparent, var(--accent), transparent) 0 0/50% 100% no-repeat; animation:eg-sheen 1.8s linear infinite; }
.ai-panel[data-task="running"] .ai-avatar { animation:eg-pulse 1.8s ease-in-out infinite; }
.upd-status.busy::before { content:""; display:inline-block; width:8px; height:8px; margin-right:8px; border-radius:50%; background:var(--accent);
   vertical-align:middle; animation:eg-pulse 1.4s ease-in-out infinite; }
button[disabled][data-old] { background-image:linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent); background-size:50% 100%;
   background-repeat:no-repeat; animation:eg-sheen 1.6s linear infinite; }

/* Tôn trọng tùy chọn giảm chuyển động của hệ điều hành */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* ===== Cửa sổ tiến trình "Cập nhật giá" (góc dưới phải, kiểu Google Drive) ===== */
.pp { position:fixed; right:20px; bottom:20px; z-index:30; width:390px; max-width:calc(100vw - 24px); background:var(--panel);
      border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-pop); overflow:hidden; color:var(--text);
      font-size:14.5px; line-height:1.45; animation:eg-rise .25s var(--ease) both; }
@keyframes eg-rise { from { opacity:0; transform:translateY(10px); } }
.pp.tone-ok { border-color:var(--ok-line); } .pp.tone-bad { border-color:var(--err-line); } .pp.tone-part { border-color:var(--warn-line); }
.pp-head { display:flex; align-items:center; gap:10px; padding:10px 8px 8px 14px; background:var(--card); }
.pp-hico { flex:none; width:24px; height:24px; display:grid; place-items:center; font-weight:700; color:var(--accent); }
.tone-ok .pp-hico { color:var(--up); } .tone-bad .pp-hico { color:var(--down); } .tone-part .pp-hico { color:var(--warn); }
.pp-ttl { flex:1; min-width:0; } .pp-ttl b { display:block; font-size:15px; line-height:1.35; }
.pp-ttl small { color:var(--muted); font-size:12.5px; }
.pp-btn { flex:none; width:36px; height:36px; border:0; border-radius:8px; background:none; color:var(--muted); font:inherit; font-size:16px; cursor:pointer; }
.pp-btn:hover { background:var(--hover); color:var(--text); }
.pp-bar { height:4px; background:rgba(54,80,64,.7); overflow:hidden; position:relative; }
html[data-theme="sang"] .pp-bar { background:var(--panel2); }
.pp-bar > i { display:block; height:100%; width:0; background:var(--metal); transition:width .6s var(--ease); }
.tone-ok > .pp-bar > i { background:var(--up); }
.pp-bar.ind { height:3px; border-radius:2px; margin:6px 0 2px; }
.pp-bar.ind > i { width:35%; position:absolute; left:-35%; animation:pp-ind 1.4s ease-in-out infinite; }   /* không xác định %: chỉ báo đang chạy */
@keyframes pp-ind { to { left:100%; } }
.pp-sum { display:flex; flex-wrap:wrap; gap:4px 12px; padding:9px 14px; border-bottom:1px solid var(--line); color:var(--muted); font-size:13px; }
.pp-sum .ok { color:var(--up); } .pp-sum .bad { color:var(--down); } .pp-sum .warn, .pp-sum .part { color:var(--warn); }
.pp-off { margin:0; padding:8px 14px; background:var(--warn-bg); color:var(--warn-text); font-size:13px; }
.pp-list { list-style:none; margin:0; padding:4px 0; max-height:min(42vh, 380px); overflow-y:auto; overscroll-behavior:contain; }
@media (max-height:820px) { .pp-list { max-height:30vh; } }
.pp-row { display:flex; gap:10px; padding:9px 14px; border-bottom:1px solid rgba(54,80,64,.5); }
.pp-row:last-child { border-bottom:0; } .pp-row:hover { background:rgba(36,69,54,.3); }
html[data-theme="sang"] .pp-row:hover { background:var(--panel2); }
.pp-ico { flex:none; width:20px; text-align:center; font-weight:700; color:var(--muted); padding-top:1px; }
.s-completed .pp-ico { color:var(--up); } .s-failed .pp-ico { color:var(--down); } .s-waiting .pp-ico, .s-partial .pp-ico { color:var(--warn); }
.pp-main { flex:1; min-width:0; }
.pp-name { display:flex; gap:8px; align-items:baseline; justify-content:space-between; font-weight:600; }
.pp-name a { color:var(--text); text-decoration:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .pp-name a:hover { color:var(--accent-strong); text-decoration:underline; }
.pp-badge { flex:none; font-size:11.5px; font-weight:600; padding:0 7px; border-radius:999px; border:1px solid var(--line); color:var(--muted); }
.s-running .pp-badge { color:var(--accent-strong); border-color:var(--gold-line); }
.s-completed .pp-badge { color:var(--ok-text); border-color:var(--ok-line); background:var(--ok-bg); }
.s-failed .pp-badge { color:var(--err-text); border-color:var(--err-line); background:var(--err-bg); }
.s-waiting .pp-badge, .s-partial .pp-badge { color:var(--warn-text); border-color:var(--warn-line); background:var(--warn-bg); }
.pp-line { color:var(--muted); font-size:13px; overflow-wrap:anywhere; }
.s-failed .pp-line { color:var(--down); } .s-waiting .pp-line { color:var(--warn); }
.pp-acts { display:flex; gap:12px; margin-top:2px; }
.pp-link { background:none; border:0; padding:2px 0; min-height:28px; font:inherit; font-size:13px; color:var(--accent); cursor:pointer; text-decoration:none; }
.pp-link:hover { color:var(--accent-strong); text-decoration:underline; } .pp-link:disabled { opacity:.6; cursor:wait; }
.pp-det { display:grid; grid-template-columns:auto 1fr; gap:2px 12px; margin:6px 0; font-size:13px; } .pp-det dt { color:var(--muted); } .pp-det dd { margin:0; }
.pp-err { color:var(--down); overflow-wrap:anywhere; }
.pp-spin { display:inline-block; width:14px; height:14px; border-radius:50%; border:2px solid var(--gold-line); border-top-color:var(--accent);
           animation:pp-rot .9s linear infinite; vertical-align:middle; }
.pp-spin.big { width:18px; height:18px; }
@keyframes pp-rot { to { transform:rotate(360deg); } }
@media (max-width:600px) { .pp { right:12px; bottom:12px; width:calc(100vw - 24px); }
  .pp-list { max-height:38vh; } }
@media (prefers-reduced-motion: reduce) { .pp-bar.ind > i { left:0; width:100%; opacity:.5; } }

/* Wizard AI local (3 bước) */
.wz-steps { display:flex; gap:8px; list-style:none; padding:0; margin:8px 0 12px; flex-wrap:wrap; }
.wz-steps li { padding:6px 12px; border:1px solid var(--line); border-radius:999px; color:var(--muted); }
.wz-steps li.on { color:var(--text); border-color:var(--ok-line); background:var(--ok-bg); }


/* 2 nút thêm: "Chụp ảnh tài sản" + "Tiền & đầu tư" */
.them-2 { display:flex; gap:8px; }
.them-2 .btn { margin:0; flex:1; white-space:normal; text-align:center; justify-content:center; }
@media (max-width:1099px) { .topbar .them-2 { flex:1 1 100%; } }

/* ===== Điện thoại (bản nhiều người dùng) ===== */
@media (max-width:800px) {
  .topbar { position:relative; }                                  /* đầu trang cuộn theo, không chiếm 1/3 màn hình */
  .topbar .brand .byline { display:none; }
  .topbar .btn.add { order:6; flex:1 1 100%; text-align:center; }
  .topbar .them-2 { order:6; }
  .topbar .them-2 .btn.add { flex:1 1 0; }
  .tk-box { order:5; flex:1 1 100%; border-top:0 !important; padding:0 !important; }
  .notice { flex-wrap:wrap; }                                     /* chữ trước, nút xuống dòng — hết bị bóp thành cột */
  .notice .body { flex:1 1 calc(100% - 40px); }
  .notice .act, .notice form, .notice .actions { flex:1 1 100%; }
  main { padding:14px 12px 72px; }
  .panel { padding:14px; }
  table { font-size:14px; }
  .btn { min-height:44px; }                                       /* dễ bấm bằng ngón tay */
  input, select, textarea { font-size:16px; }                     /* iPhone không tự phóng to khi gõ */
}