/* Approved warm website system: desktop tools and curated recommendations. */
.curated-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:20px; }
.curated-card { display:flex;flex-direction:column;min-height:320px;padding:30px;border:var(--border);border-radius:24px;box-shadow:var(--shadow);transition:transform .22s,box-shadow .22s; }
.curated-card:hover { transform:translateY(-4px);box-shadow:0 14px 32px #49351f14; }
.curated-card[hidden] { display:none; }
.curated-card h3 { font-size:28px;letter-spacing:-.035em;font-weight:650;margin:0 0 10px; }
.curated-card p { max-width:430px;font-size:15px;line-height:1.75;color:#665746;margin:0; }
.curated-top { display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#665746; }
.curated-label { padding:5px 10px;background:#ffffff9c;border-radius:999px; }
.curated-currency { background:radial-gradient(ellipse at 85% 10%,#ffebaa,transparent 65%),linear-gradient(135deg,#fff1dc,#ffd9bf); }
.curated-lookup { background:radial-gradient(ellipse at 90% 10%,#f5ffef,transparent 60%),linear-gradient(135deg,#e6efe4,#c7ded4); }
.curated-guide { background:linear-gradient(135deg,#f4e5ce,#e6c79e); }
.curated-games { background:linear-gradient(135deg,#fff4d6,#ebc181); }
.curated-visual { flex:1;display:flex;align-items:center;justify-content:center;gap:20px;min-height:120px;margin:12px 0 24px; }
.curated-visual.resource-visual { position:relative;min-height:180px;height:180px;margin:10px 0 18px; }
.resource-visual>img { display:block;width:100%;height:100%;max-width:460px;object-fit:contain;opacity:0; }
.resource-visual[data-resource-state=ready]>img { opacity:1; }
.artwork-loading { position:absolute;width:30px;height:30px;border:3px solid #806c4925;border-top-color:#a48154;border-radius:50%;animation:resource-spin .8s linear infinite; }
.resource-visual[data-resource-state=ready] .artwork-loading { display:none; }
.resource-visual[data-resource-state=error] .artwork-loading { width:auto;height:auto;border:0;border-radius:12px;background:#fff9;padding:12px;animation:none;font-size:13px;color:#79644a;cursor:pointer; }
.currency-token { display:flex;align-items:center;gap:14px;padding:20px 26px;background:#fff9;border:1px solid #ffffffa8;border-radius:18px;box-shadow:0 8px 22px #91652b0b;transform:rotate(-4deg);font-size:24px;font-weight:650; }
.currency-token:last-child { transform:rotate(4deg); }
.currency-token b { color:#9b623c;font-weight:500; }
.curated-swap { width:34px;height:34px;flex-shrink:0; }
.lookup-token { padding:18px 20px;border:1px solid #fff9;border-radius:16px;background:#fff8;font-size:18px;font-weight:550;color:#35594b; }
.curated-footer { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;font-size:12px;color:#665746; }
.curated-action { display:inline-flex;align-items:center;gap:12px;font-size:14px;color:#191814;font-weight:550; }
.curated-action svg { width:30px;height:30px;padding:7px;border-radius:50%;background:#191814;color:#fff; }
.curated-card.compact-curated { min-height:240px; }
.compact-curated h3 { margin-top:24px; }
.curated-heading h2 { font-size:32px; }
/* Native logic stays intact; its browser presentation follows the public site. */
body[data-page=currency],body[data-page=lookup] { background:#fff9ed; }
.tool-site-header .header-inner { width:min(1180px,calc(100% - 40px)); }
.tool-site-header .brand-symbol { animation:none; }
.tool-site-footer { padding:28px 0;border-top:1px solid #49351f12;color:#796b5b;font-size:12px;margin-top:40px; }
.tool-site-footer>div { display:flex;justify-content:space-between;gap:20px; }
body[data-page=currency] #native-app,body[data-page=lookup] #native-app { width:min(1180px,calc(100% - 40px));max-width:1180px;margin:30px auto;min-height:calc(100vh - 210px);border-radius:0;box-shadow:none;overflow:visible; }
#native-app :is(.currency-page,.lookup-page) { padding:0;background:transparent;min-height:0; }
#native-app .native-safe { display:none; }
#native-app .page-header { padding:0 0 24px!important;min-height:100px; }
#native-app .header-title,#native-app .lookup-page .header-title { font-size:38px;line-height:1.25;letter-spacing:-.04em;font-weight:650; }
#native-app .header-eyebrow { font-size:12px;font-weight:400;color:#796b5b; }
#native-app :is(.back-button,.back-btn) { background:#fffdf7;border:1px solid #49351f18;color:#49351f;box-shadow:none;border-radius:12px; }
#native-app .quota-badge { border:1px solid #d9cbae;background:#f5eddb;font-size:12px;font-weight:500; }
#native-app .guide-card { background:#fff4e1;border:1px solid #ebd9b8;border-radius:14px;padding:16px 20px;margin-bottom:22px; }
#native-app .guide-mark { background:#f4dfb6;color:#744323;font-size:12px;font-weight:550; }
#native-app .guide-copy { color:#6d5b47;font-size:14px;line-height:1.6; }
#native-app :is(.mode-tabs,.lookup-tabs) { border:1px solid #e7ddce;background:#f3ecdf;border-radius:14px;padding:4px;gap:4px;max-width:none;width:max-content;min-width:440px;margin:0 0 24px; }
#native-app :is(.mode-tab,.lookup-tab) { min-height:44px;line-height:1.4;border:0;border-radius:10px;background:transparent;color:#7a6b5c;font-size:15px;font-weight:500; }
#native-app :is(.mode-tab-active,.lookup-tab-selected) { background:#fffdf7;color:#49351f;box-shadow:0 2px 8px #49351f09; }
#native-app .mode-tab-active::before { display:none; }
#native-app :is(.currency-converter,.currency-board,.lookup-editor,.lookup-result) { border:1px solid #e8dfd2;border-radius:24px;background:#fffdf7;box-shadow:0 8px 28px #49351f07; }
#native-app .currency-section-label { font-size:13px;color:#8c7054;font-weight:500;letter-spacing:.03em; }
#native-app .country-select { background:#f9f3e9;border:1px solid #e6d8c4;border-radius:16px;box-shadow:none;min-height:80px; }
#native-app .country-select-copy { border-left:3px solid #d9a55e; }
#native-app .country-select-code { background:#fffdf7;border:1px solid #e6d8c4;color:#84633f; }
#native-app .country-name { font-size:20px;font-weight:550; }
#native-app .currency-name { font-size:13px; }
#native-app .swap-button { background:#ffdfa1;color:#744323;box-shadow:0 4px 14px #d9a55e25;border:3px solid #fffdf7; }
#native-app :is(.result-symbol,.result-number) { color:#a4662e;font-weight:600; }
#native-app :is(.amount-input,.result-number) { font-size:44px; }
#native-app :is(.amount-prefix,.amount-code,.result-code) { font-weight:500;color:#8c7054; }
#native-app .lookup-page .lookup-input { background:#f9f4eb;border:1px solid #e5d8c5;border-radius:14px;color:#49351f; }
#native-app .lookup-page .lookup-query { background:#49351f;border:0;border-radius:12px;color:#fffdf7;font-size:16px;font-weight:550;min-height:48px; }
#native-app .lookup-page :is(.lookup-my-ip,.lookup-copy) { min-height:44px;background:#f5e6c9;border:1px solid #e5cda3;color:#744323;border-radius:10px;font-size:13px; }
#native-app :is(.section-title,.lookup-query-value) { font-weight:600;color:#49351f; }
#native-app .lookup-page .lookup-result { background:linear-gradient(145deg,#fffdf7,#f9f0df); }
#native-app .lookup-row { padding:14px 0;border-color:#e5d8c5;font-size:15px; }
#native-app .lookup-note { color:#796b5b;font-size:13px;line-height:1.7; }
.tool-site-header .mobile-tool-nav { display:none; }
.lookup-empty-panel { display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:260px;padding:28px;border:1px dashed #dacbb6;border-radius:24px;background:linear-gradient(145deg,#fffaf0,#f7efde);text-align:center; }
.lookup-empty-symbol { display:grid;place-items:center;width:62px;height:62px;border-radius:20px;background:#efe1c9;color:#a48154;margin-bottom:18px; }
.lookup-empty-symbol svg { width:28px;height:28px;stroke-width:1.5; }
.lookup-empty-panel h2 { font-size:18px;font-weight:550;color:#79644a;margin:0 0 8px; }
.lookup-empty-panel p,.lookup-empty-note { font-size:13px;color:#8a7860;line-height:1.7;margin:0; }
.lookup-empty-note { margin-top:18px;font-size:12px; }
/* Never swap an alternate artwork into an approved character slot. */
.header-character[data-resource-state=loading] .character-float,.header-character[data-resource-state=error] .character-float { visibility:hidden; }
.header-character[data-resource-state=loading]::after { content:"";position:absolute;left:calc(50% - 17px);top:calc(50% - 17px);width:30px;height:30px;border:3px solid #49351f25;border-top-color:#744323;border-radius:50%;animation:resource-spin .8s linear infinite; }
.header-character[data-resource-state=error]::after { content:"加载失败，点击重试";display:grid;place-items:center;position:absolute;inset:20px;font-size:14px;color:#49351f;background:#fff4e1e8;border-radius:16px; }
@keyframes resource-spin { to { transform:rotate(360deg); } }
@media(min-width:768px) {
 #native-app .lookup-page { grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:0 24px; }
 #native-app .lookup-editor { padding:28px; }
 #native-app .lookup-result { padding:28px; }
 #native-app .lookup-page>.lookup-result { grid-column:2;grid-row:4; }
 .lookup-empty-panel { grid-column:2;grid-row:4;align-self:start; }
}
@media(max-width:767px) {
 body[data-page=currency] #native-app,body[data-page=lookup] #native-app { width:calc(100% - 28px);margin:24px auto; }
 .tool-site-header .header-inner { width:calc(100% - 28px);min-height:66px; }
 .tool-site-header .mobile-tool-nav { display:flex;gap:20px;padding:0 14px 12px;font-size:13px;color:#796b5b; }
 .mobile-tool-nav a.active { color:#49351f;font-weight:600; }
 #native-app .header-title,#native-app .lookup-page .header-title { font-size:30px; }
 #native-app .page-header { min-height:80px; }
 #native-app .guide-card { padding:14px; }
 #native-app .guide-copy { font-size:13px; }
 #native-app :is(.mode-tabs,.lookup-tabs) { width:100%;min-width:0; }
 #native-app :is(.mode-tab,.lookup-tab) { font-size:13px; }
 #native-app .country-name { font-size:18px; }
 #native-app :is(.amount-input,.result-number) { font-size:36px; }
 .tool-site-footer>div { flex-direction:column;gap:8px; }
 .curated-grid { grid-template-columns:1fr;gap:16px; }
 .curated-card { min-height:300px;padding:24px; }
 .curated-card h3 { font-size:25px; }
 .currency-token { padding:16px;font-size:20px; }
 .curated-visual { gap:12px; }
 .lookup-token { padding:16px;font-size:16px; }
}
@media(prefers-reduced-motion:reduce) { .curated-card { transition:none; }.header-character[data-resource-state=loading]::after { animation:resource-spin 1.8s linear infinite; } }
