@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Noto+Serif+SC:wght@600;700;900&display=swap');

:root { --ink:#18383a; --muted:#718486; --line:#dfe9e6; --paper:#f6f8f5; --card:#fff; --teal:#1d6663; --teal-dark:#102f35; --orange:#ed885d; --mint:#dcece5; --shadow:0 18px 50px rgba(32,62,59,.08); }
* { box-sizing:border-box; }
html { background:var(--paper); }
body { margin:0; color:var(--ink); font-family:'Manrope','Microsoft YaHei','PingFang SC','Noto Sans CJK SC',Arial,sans-serif; font-size:15px; line-height:1.6; background:radial-gradient(circle at 88% 2%, #e6f1ec 0, transparent 28rem), var(--paper); }
button, input, select { font:inherit; }
button { cursor:pointer; }
.shell { max-width:1440px; margin:auto; padding:0 42px 40px; }
.topbar { height:80px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(34,77,72,.12); }
.brand { color:var(--ink); display:flex; align-items:center; gap:11px; text-decoration:none; }
.brand-mark { width:34px; height:34px; display:grid; place-items:center; color:#fff; background:var(--teal-dark); border-radius:9px 9px 9px 2px; font-family:Georgia,serif; font-size:22px; font-weight:bold; }
.brand strong { display:block; font-size:15px; letter-spacing:.04em; }.brand small { display:block; margin-top:2px; color:var(--muted); font:9px 'DM Mono',monospace; letter-spacing:.12em; }
.top-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }.source-note { color:var(--muted); font:11px 'DM Mono',monospace; }.live-dot { display:inline-block; width:7px; height:7px; margin-right:7px; border-radius:50%; background:#5bb68e; box-shadow:0 0 0 4px #daf0e4; }
.sync-button,.repair-button { border:0; border-radius:7px; padding:10px 14px; font-size:12px; font-weight:700; }.sync-button { color:#fff; background:var(--teal); box-shadow:0 7px 18px rgba(29,102,99,.17); }.sync-button:hover { background:var(--teal-dark); }.repair-button { color:var(--teal); border:1px solid #b9d6cc; background:#f4faf7; }.repair-button:hover { background:#e2f3eb; }.sync-category { display:flex; align-items:center; gap:6px; color:#6c827e; font-size:11px; font-weight:700; }.sync-category select { height:34px; padding:0 8px; color:var(--ink); border:1px solid #b9d6cc; border-radius:6px; background:#fff; font-size:12px; }.sync-icon { display:inline-block; margin-right:7px; font-size:17px; vertical-align:-1px; }.sync-button:disabled,.repair-button:disabled { cursor:wait; opacity:.7; }
.sync-date { display:flex; flex-direction:column; gap:4px; color:#6c827e; font-size:10px; font-weight:700; }.sync-date-fields { display:flex; align-items:center; gap:4px; color:#91a09d; font-weight:500; }.sync-date input { width:122px; height:32px; padding:0 6px; color:var(--ink); border:1px solid #b9d6cc; border-radius:6px; background:#fff; font:11px 'DM Mono','Microsoft YaHei',sans-serif; }.sync-date button { height:32px; padding:0 8px; border:1px solid #b9d6cc; border-radius:6px; color:var(--teal); background:#f4faf7; font-size:11px; font-weight:700; }.sync-date button:hover { background:#e2f3eb; }
.hero { min-height:280px; display:flex; align-items:center; justify-content:space-between; padding:42px 55px 45px 8px; }.hero-copy { max-width:730px; }.eyebrow { color:var(--orange); font:500 10px 'DM Mono',monospace; letter-spacing:.2em; text-transform:uppercase; }.hero h1 { max-width:720px; margin:14px 0 13px; font:900 clamp(32px,4vw,54px)/1.2 'Noto Serif SC','Songti SC',serif; letter-spacing:-.045em; }.hero h1 em { color:var(--teal); font-style:normal; }.hero p { max-width:600px; margin:0; color:#6d7e7e; font-size:14px; line-height:1.8; }.hero-meta { display:flex; align-items:center; gap:10px; margin-top:26px; color:#8a9998; font:10px 'DM Mono',monospace; }.hero-meta b { color:var(--ink); font-weight:500; }.meta-divider { width:1px; height:13px; margin:0 7px; background:#c8d8d3; }.hero-stamp { display:grid; place-items:center; width:190px; height:190px; transform:rotate(11deg); border:1px solid rgba(29,102,99,.22); border-radius:50%; }.stamp-ring { width:147px; height:147px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:7px; border:1px dashed rgba(29,102,99,.4); border-radius:50%; color:var(--teal); font:10px 'DM Mono',monospace; letter-spacing:.08em; }.stamp-ring strong { font:900 32px 'Noto Serif SC',serif; letter-spacing:.08em; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:61px; }.stat-card { min-height:128px; display:flex; flex-direction:column; justify-content:space-between; padding:20px 21px 17px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.72); }.stat-card.accent { color:#fff; border-color:var(--teal); background:var(--teal); }.stat-card.light { background:#edf5f0; border-color:#d5e7dd; }.stat-label { font-size:11px; font-weight:700; }.stat-card strong { font:800 31px 'DM Mono',monospace; letter-spacing:-.08em; }.stat-foot { color:#829391; font:10px 'DM Mono',monospace; }.accent .stat-foot { color:#b5dad0; }.tiny-check { display:inline-grid; place-items:center; width:16px; height:16px; margin-right:5px; border-radius:50%; color:#fff; background:#52a981; }
.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:20px; }.section-heading h2 { margin:8px 0 0; font:800 27px 'Noto Serif SC',serif; letter-spacing:-.03em; }.view-toggle { display:flex; gap:4px; }.view-toggle button { width:29px; height:29px; border:1px solid var(--line); color:#9aacaa; background:transparent; border-radius:5px; }.view-toggle button.active { color:#fff; border-color:var(--teal); background:var(--teal); }
.table-hint { color:#97a6a3; font:10px 'DM Mono',monospace; }
.filter-context { display:flex; align-items:center; gap:9px; margin:22px 0 10px; color:#91a09d; font:10px 'DM Mono',monospace; }.filter-context strong { color:var(--teal); font-weight:500; }.context-divider { width:1px; height:12px; margin:0 3px; background:#cbdad5; }.filters { display:grid; grid-template-columns:minmax(220px,1.6fr) 1fr 1fr 1fr 1.1fr 1fr 1fr 1fr 1.1fr 72px; gap:8px; }.filters label { display:block; }.search-field { position:relative; }.search-field span { position:absolute; top:11px; left:13px; color:#98aaa7; font-size:19px; }.filters input, .filters select { width:100%; height:42px; padding:0 13px; color:var(--ink); border:1px solid #dce6e3; border-radius:6px; outline:none; background:#fff; font-size:12px; }.filters input { padding-left:37px; }.filters input:focus, .filters select:focus { border-color:#77aaa1; box-shadow:0 0 0 3px rgba(77,151,139,.1); }.filter-submit { height:42px; border:0; border-radius:6px; color:#fff; background:var(--teal-dark); font-size:12px; font-weight:700; }.filter-submit:hover { background:#234c53; }
.toolbar { display:flex; justify-content:space-between; align-items:center; min-height:63px; border-bottom:1px solid var(--line); color:#617773; font-size:13px; }.toolbar-actions { display:flex; align-items:center; gap:18px; }.page-size-control { display:flex; align-items:center; gap:7px; color:#617773; font-size:13px; }.page-size-control select { min-width:72px; height:34px; padding:0 9px; color:var(--ink); border:1px solid #cbdcd6; border-radius:6px; background:#fff; font-size:14px; }.clear-button { padding:0; border:0; color:#527a70; background:none; font-size:13px; }.clear-button:hover { color:var(--teal); }
.listing-table-wrap { overflow-x:auto; margin:22px 0 29px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 7px 22px rgba(29,75,68,.035); }.listing-table { width:100%; min-width:1540px; border-collapse:collapse; table-layout:fixed; font-size:14px; }.listing-table th { padding:14px 12px; color:#536b67; border-bottom:1px solid var(--line); background:#f1f6f3; font-size:13px; font-weight:700; text-align:left; white-space:nowrap; }.listing-table td { height:72px; padding:11px 12px; color:#425f5a; border-bottom:1px solid #e4eeea; vertical-align:middle; line-height:1.5; }.listing-table tr:last-child td { border-bottom:0; }.listing-table tbody tr:hover td { background:#f5fbf7; }.listing-table th:nth-child(1) { width:82px; }.listing-table th:nth-child(2) { width:105px; }.listing-table th:nth-child(3) { width:140px; }.listing-table th:nth-child(4) { width:125px; }.listing-table th:nth-child(5) { width:92px; }.listing-table th:nth-child(6),.listing-table th:nth-child(7),.listing-table th:nth-child(9),.listing-table th:nth-child(10) { width:112px; }.listing-table th:nth-child(8) { width:180px; }.listing-table th:nth-child(11) { width:145px; }.listing-table th:nth-child(12) { width:90px; }.listing-table th:nth-child(13) { width:62px; }.listing-table .primary-cell strong { display:block; color:var(--teal); font-size:14px; font-weight:800; }.listing-table .primary-cell small { display:block; margin-top:4px; color:#78908a; font-size:11px; }.listing-table .community-cell { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.listing-table .number-cell,.listing-table .price-cell { color:var(--ink); font-family:'DM Mono','Microsoft YaHei',monospace; white-space:nowrap; }.listing-table .price-cell { color:var(--teal); font-weight:700; }.listing-table .time-cell { color:#58736c; font-family:'DM Mono','Microsoft YaHei',monospace; font-size:12px; line-height:1.55; }.listing-table .details-button { white-space:nowrap; }
.listing-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; padding:22px 0 29px; }.listing-grid.list-view { grid-template-columns:1fr; }.listing-grid.list-view .listing-card { display:grid; grid-template-columns:185px 1fr auto; min-height:170px; }.listing-grid.list-view .card-art { height:100%; }.listing-card { overflow:hidden; border:1px solid var(--line); border-radius:10px; background:var(--card); box-shadow:0 7px 22px rgba(29,75,68,.035); transition:transform .2s,box-shadow .2s; }.listing-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }.card-art { position:relative; height:126px; padding:15px; display:flex; align-items:flex-end; overflow:hidden; background:linear-gradient(145deg,#d9ebe4,#a8cec0); }.card-art::before,.card-art::after { position:absolute; content:""; border:1px solid rgba(255,255,255,.4); border-radius:50%; }.card-art::before { width:150px; height:150px; top:-76px; right:-30px; }.card-art::after { width:92px; height:92px; bottom:-50px; left:-24px; }.card-art.commercial { background:linear-gradient(145deg,#d8e1ec,#9db2cc); }.card-art.parking { background:linear-gradient(145deg,#e9dfd0,#d6ae82); }.card-art.equity { background:linear-gradient(145deg,#e5dced,#bfabd6); }.card-art.factory { background:linear-gradient(145deg,#e2e5d5,#bac59b); }.art-label { position:relative; z-index:1; padding:5px 8px; border-radius:4px; color:#fff; background:rgba(17,54,50,.76); font:10px 'DM Mono',monospace; }.demo-label { position:absolute; top:14px; right:14px; z-index:2; padding:4px 7px; border:1px solid rgba(255,255,255,.55); border-radius:4px; color:#fff; background:rgba(16,47,53,.33); font:9px 'DM Mono',monospace; }.card-body { padding:15px 16px 16px; }.card-status { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }.status-pill { padding:4px 7px; border-radius:4px; color:#287f67; background:#e2f3eb; font:10px 'DM Mono',monospace; }.status-pill.hot { color:#bd5c38; background:#fff0e9; }.status-pill.closed { color:#8c9998; background:#edf0ef; }.card-kind { color:#9aa9a7; font:10px 'DM Mono',monospace; }.listing-card h3 { height:43px; overflow:hidden; margin:0 0 14px; color:var(--ink); font-size:13px; line-height:1.65; font-weight:700; }.price-row { display:flex; align-items:baseline; gap:5px; padding-top:12px; border-top:1px solid #edf1ef; }.price-row strong { color:var(--teal); font:800 20px 'DM Mono',monospace; letter-spacing:-.06em; }.price-row span { color:#9aa9a7; font-size:10px; }.card-meta { display:flex; justify-content:space-between; margin-top:10px; color:#879793; font:10px 'DM Mono',monospace; }.card-meta span:first-child { overflow:hidden; max-width:55%; text-overflow:ellipsis; white-space:nowrap; }.card-foot { display:flex; align-items:center; justify-content:space-between; margin-top:12px; }.source-link { color:#6d9087; font-size:11px; text-decoration:none; }.details-button { padding:5px 9px; border:1px solid #d6e4de; border-radius:4px; color:var(--teal); background:#f4faf7; font-size:10px; }.details-button:hover { background:#e0f0e8; }
.empty-state { padding:70px 0; text-align:center; }.empty-icon { color:#9bb7ad; font-size:40px; }.empty-state h3 { margin:10px 0 4px; font:700 20px 'Noto Serif SC',serif; }.empty-state p { color:var(--muted); font-size:12px; }.pagination { display:flex; justify-content:center; gap:6px; }.pagination button { min-width:30px; height:30px; border:1px solid var(--line); border-radius:5px; color:#7c918d; background:#fff; font:11px 'DM Mono',monospace; }.pagination button.active { color:#fff; border-color:var(--teal); background:var(--teal); }.pagination button:disabled { cursor:default; opacity:.45; }
.notice-strip { display:flex; align-items:center; gap:14px; margin-top:62px; padding:17px 19px; border:1px solid #dbe9e2; border-radius:8px; background:#edf6f1; }.notice-icon { display:grid; flex:none; place-items:center; width:25px; height:25px; border:1px solid #83b29f; border-radius:50%; color:#39806c; font:700 14px Georgia,serif; }.notice-strip strong { color:#32685e; font-size:12px; }.notice-strip p { margin:4px 0 0; color:#719088; font-size:11px; line-height:1.6; }.notice-strip a { margin-left:auto; flex:none; color:#3b8374; font-size:11px; text-decoration:none; }.notice-strip a:hover { text-decoration:underline; }
footer { display:flex; justify-content:space-between; padding:29px 1px 0; color:#a5b2ae; font:10px 'DM Mono',monospace; }.detail-dialog { width:min(680px,calc(100% - 32px)); padding:0; border:0; border-radius:12px; color:var(--ink); box-shadow:0 24px 90px rgba(11,46,42,.26); }.detail-dialog::backdrop { background:rgba(10,35,35,.3); backdrop-filter:blur(3px); }.dialog-close { position:absolute; top:15px; right:17px; z-index:2; border:0; color:#72908b; background:none; font-size:25px; }.detail-inner { padding:30px; }.detail-inner .eyebrow { margin-bottom:12px; }.detail-inner h2 { max-width:590px; margin:0 30px 21px 0; font:800 26px/1.45 'Noto Serif SC',serif; }.detail-price { margin-bottom:22px; color:var(--teal); font:800 30px 'DM Mono',monospace; }.detail-table { display:grid; grid-template-columns:repeat(2,1fr); gap:0; margin-bottom:25px; border-top:1px solid var(--line); }.detail-table div { padding:13px 8px; border-bottom:1px solid var(--line); }.detail-table span { display:block; margin-bottom:5px; color:#93a19f; font:10px 'DM Mono',monospace; }.detail-table b { font-size:12px; font-weight:600; }.detail-action { display:inline-block; padding:11px 16px; border-radius:6px; color:#fff; background:var(--teal); font-size:12px; font-weight:700; text-decoration:none; }.toast { position:fixed; right:30px; bottom:28px; z-index:10; max-width:360px; padding:12px 16px; border-radius:7px; color:#fff; background:#173e42; box-shadow:var(--shadow); font-size:12px; opacity:0; transform:translateY(15px); pointer-events:none; transition:.25s; }.toast.show { opacity:1; transform:translateY(0); }.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
@media (max-width:1050px) { .shell { padding:0 24px 32px; }.listing-grid { grid-template-columns:repeat(3,1fr); }.filters { grid-template-columns:1fr 1fr 1fr; }.search-field { grid-column:span 3; }.filter-submit { width:100%; }.hero { padding-right:0; }.hero-stamp { margin-right:15px; }.top-actions { justify-content:flex-end; } }
@media (max-width:720px) { .shell { padding:0 16px 28px; }.topbar { height:auto; min-height:68px; padding:12px 0; }.source-note { display:none; }.top-actions { gap:8px; justify-content:flex-start; }.sync-date { width:100%; }.sync-date-fields { flex-wrap:wrap; }.sync-date input { flex:1; min-width:130px; }.hero { min-height:0; padding:40px 0 35px; }.hero-stamp { display:none; }.hero h1 { font-size:33px; }.hero-meta { flex-wrap:wrap; }.stats-grid { grid-template-columns:1fr 1fr; margin-bottom:44px; }.stat-card { min-height:116px; padding:16px; }.stat-card strong { font-size:23px; }.section-heading { margin-bottom:15px; }.filters { grid-template-columns:1fr 1fr; }.search-field { grid-column:span 2; }.filters label:nth-of-type(4) { grid-column:span 2; }.filter-submit { grid-column:span 2; }.listing-grid,.listing-grid.list-view { grid-template-columns:1fr; }.listing-grid.list-view .listing-card { display:block; }.listing-grid.list-view .card-art { height:126px; }.notice-strip { align-items:flex-start; flex-wrap:wrap; }.notice-strip a { margin-left:39px; }.detail-inner { padding:24px 20px; }.detail-table { grid-template-columns:1fr; } footer { flex-direction:column; gap:8px; } }

.detail-dialog { width:min(980px,calc(100% - 28px)); max-height:calc(100vh - 28px); overflow:auto; }
.detail-inner .eyebrow { font-family:'Microsoft YaHei','PingFang SC',sans-serif; font-size:13px; letter-spacing:.06em; }
.survey-source-note { margin:0 0 22px; padding:12px 14px; border-left:3px solid var(--orange); color:#6d7e7e; background:#fff8f3; font-size:13px; line-height:1.75; }
.survey-section { margin:24px 0 0; }
.survey-section h3 { margin:0 0 10px; padding-bottom:8px; border-bottom:1px solid var(--line); color:var(--teal-dark); font-size:16px; font-weight:800; }
.survey-table { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.survey-field { min-height:66px; padding:12px 14px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.survey-field.wide { grid-column:1 / -1; min-height:88px; }
.survey-field span { display:block; margin-bottom:5px; color:#7d928d; font-size:12px; font-weight:700; }
.survey-field b { display:block; color:var(--ink); font-size:14px; line-height:1.75; font-weight:600; overflow-wrap:anywhere; }
.pending-value { color:#a7b4b0 !important; font-weight:500 !important; }
.survey-section .detail-table { margin-bottom:0; }
@media (max-width:720px) { .survey-table { grid-template-columns:1fr; }.survey-field.wide { grid-column:auto; }.detail-dialog { width:calc(100% - 18px); max-height:calc(100vh - 18px); } }

/* 数字采用平台常见的清晰无衬线字体，避免等宽代码字体的生硬观感。 */
.stat-card strong,
.listing-table .number-cell,
.listing-table .price-cell,
.listing-table .time-cell,
.detail-price,
.detail-table b {
  font-family: Arial, "Helvetica Neue", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
.listing-table .price-cell { letter-spacing: .01em; }
.listing-table .price-alert { color:#d9363e; background:#fff0f0; font-weight:800; }
.listing-table .time-cell { letter-spacing: 0; }
.detail-price { letter-spacing: -.02em; }
.detail-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:18px; }
.single-repair-button { padding:10px 14px; border:1px solid #e0b28e; border-radius:6px; color:#a45732; background:#fff7f0; font-size:12px; font-weight:700; }
.single-repair-button:hover { background:#ffeddf; }
.single-repair-button:disabled { cursor:wait; opacity:.65; }
.detail-actions small { flex-basis:100%; color:#9a8980; font-size:11px; }

/* 列表紧凑单行显示，长内容省略，页面不出现横向滚动条。 */
.listing-table-wrap { overflow-x:hidden; }
.listing-table { width:100%; min-width:0; table-layout:fixed; font-size:12px; }
.listing-table th { padding:10px 6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.listing-table td { height:auto; padding:9px 6px; white-space:normal; overflow:visible; text-overflow:clip; word-break:break-all; line-height:1.35; }
.listing-table th:nth-child(1) { width:6%; }
.listing-table th:nth-child(2) { width:7%; }
.listing-table th:nth-child(3) { width:8%; }
.listing-table th:nth-child(4) { width:11%; }
.listing-table th:nth-child(5) { width:10%; }
.listing-table th:nth-child(6) { width:7%; }
.listing-table th:nth-child(7) { width:7%; }
.listing-table th:nth-child(8) { width:6%; }
.listing-table th:nth-child(9) { width:7%; }
.listing-table th:nth-child(10) { width:6%; }
.listing-table th:nth-child(11) { width:8%; }
.listing-table th:nth-child(12) { width:8%; }
.listing-table th:nth-child(13) { width:5%; }
.listing-table th:nth-child(14) { width:3%; }
.listing-table .primary-cell strong,
.listing-table .community-cell,
.listing-table .number-cell,
.listing-table .price-cell,
.listing-table .time-cell { overflow:visible; text-overflow:clip; white-space:normal; word-break:break-all; }
.listing-table .details-button { padding:4px 6px; font-size:11px; }

/* 列表不显示完整拍卖区间；详情弹窗仍保留完整拍卖时间。 */
.listing-table { min-width:0; }
.listing-table th:nth-child(6) { width:7%; }
.listing-table th:nth-child(7) { width:7%; }
.listing-table th:nth-child(8) { width:6%; }
.listing-table th:nth-child(9) { width:7%; }
.listing-table th:nth-child(10) { width:6%; }
.listing-table th:nth-child(11) { width:8%; }
.listing-table th:nth-child(12) { width:8%; }
.listing-table th:nth-child(13) { width:5%; }
.listing-table th:nth-child(14) { width:3%; }
.listing-table .time-cell { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }

/* 登录门禁：未登录时不显示可查询内容。 */
body.auth-locked > .shell { filter: blur(5px); pointer-events:none; user-select:none; }
.auth-gate { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:20px; background:rgba(239,247,243,.86); backdrop-filter:blur(8px); }
.auth-gate[hidden] { display:none; }
.login-card { width:min(390px,100%); padding:32px; border:1px solid #d5e5df; border-radius:14px; background:#fff; box-shadow:0 24px 70px rgba(18,67,61,.18); }
.login-card h2 { margin:12px 0 8px; color:var(--ink); font:800 25px 'Noto Serif SC',serif; }
.login-card p { margin:0 0 22px; color:#78908a; font-size:12px; line-height:1.7; }
.login-card label { display:block; margin-top:14px; color:#5d7770; font-size:12px; font-weight:700; }
.login-card input { display:block; width:100%; height:42px; box-sizing:border-box; margin-top:6px; padding:0 12px; border:1px solid #cdded8; border-radius:6px; color:var(--ink); outline:none; font-size:14px; }
.login-card input:focus { border-color:#5b9b8c; box-shadow:0 0 0 3px rgba(77,151,139,.1); }
.login-card button { width:100%; height:42px; margin-top:22px; border:0; border-radius:6px; color:#fff; background:var(--teal-dark); font-size:13px; font-weight:700; }
.login-card button:disabled { cursor:wait; opacity:.65; }
.login-message { min-height:18px; margin-top:10px; color:#c75151; font-size:12px; }
.logout-button { height:34px; padding:0 10px; border:1px solid #cbded6; border-radius:6px; color:#527a70; background:#fff; font-size:11px; font-weight:700; }
.logout-button:hover { color:var(--teal-dark); background:#f0f8f4; }
.password-dialog { width:min(420px,calc(100% - 28px)); padding:0; border:0; border-radius:12px; color:var(--ink); box-shadow:0 24px 90px rgba(11,46,42,.26); }
.password-dialog::backdrop { background:rgba(10,35,35,.3); backdrop-filter:blur(3px); }
.password-form { padding:30px; }
.password-form h2 { margin:0 28px 20px 0; font:800 23px 'Noto Serif SC',serif; }
.password-form label { display:block; margin-top:14px; color:#5d7770; font-size:12px; font-weight:700; }
.password-form input { display:block; width:100%; height:40px; box-sizing:border-box; margin-top:6px; padding:0 11px; border:1px solid #cdded8; border-radius:6px; color:var(--ink); outline:none; font-size:14px; }
.password-form input:focus { border-color:#5b9b8c; box-shadow:0 0 0 3px rgba(77,151,139,.1); }
.password-form > button { width:100%; height:40px; margin-top:21px; border:0; border-radius:6px; color:#fff; background:var(--teal-dark); font-size:13px; font-weight:700; }
.password-form > button:disabled { cursor:wait; opacity:.65; }
