/* Generated by tools/assemble.mjs: tools/fontfaces.css + tools/app.src.css */
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/plex-400-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/plex-400-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/plex-400-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/plex-500-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/plex-500-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/plex-500-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/plex-600-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/plex-600-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/plex-600-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/plex-700-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/plex-700-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/plex-700-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Reem Kufi'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/reem-500-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: 'Reem Kufi'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/reem-500-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Reem Kufi'; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/reem-500-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Reem Kufi'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/reem-600-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: 'Reem Kufi'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/reem-600-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Reem Kufi'; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/reem-600-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Reem Kufi'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/reem-700-arabic.woff2) format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC7, U+10EC9-10EEE, U+10EF0-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1; }
@font-face { font-family: 'Reem Kufi'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/reem-700-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Reem Kufi'; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/reem-700-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* ===== Trip app styles. tools/fontfaces.css is prepended by assemble.mjs → app.css ===== */
:root{
  --paper:#F4EEE3; --card:#FFFDF9; --line:#E5DACA; --line2:#EFE7DA;
  --ink:#211C16; --ink2:#5A5148; --ink3:#73685D;
  --accent:#2C3A94; --accent-soft:#E7E9F6; --accent-ink:#24307E;
  --pos:#1B7349; --pos-soft:#DDEFE4; --neg:#AE3529; --neg-soft:#F6E0DA;
  --sun:#E5A82E;
  --f:'IBM Plex Sans Arabic', system-ui, sans-serif;
  --d:'Reem Kufi', 'IBM Plex Sans Arabic', sans-serif;
  --st:env(safe-area-inset-top, 0px); --sb:env(safe-area-inset-bottom, 0px);
  --nav:72px;
  color-scheme:light;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--paper)}
body{margin:0;background:var(--paper);font-family:var(--f);color:var(--ink);font-size:15px;line-height:1.5;-webkit-text-size-adjust:100%;overscroll-behavior-y:none}
body.locked{overflow:hidden}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
.ic{display:inline-block;width:1em;height:1em;vertical-align:middle;flex:none}
.flag{width:20px;height:14px;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.08);flex:none;vertical-align:middle}
bdi{unicode-bidi:isolate}
.num,time{font-feature-settings:"tnum" 1,"lnum" 1}
.muted{color:var(--ink3)} .pos{color:var(--pos)} .neg{color:var(--neg)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

#app{max-width:520px;margin:0 auto;min-height:100vh;min-height:100dvh;position:relative;padding-bottom:calc(var(--nav) + var(--sb) + 24px)}
#app.bare{padding-bottom:24px}

/* ---------- nav ---------- */
.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;height:calc(var(--nav) + var(--sb));padding:8px 8px var(--sb);display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,253,249,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:30}
.nav a{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11.5px;font-weight:500;color:var(--ink3);padding-top:4px;min-height:48px}
.nav a .ic{font-size:24px}
.nav a.on{color:var(--accent);font-weight:600}
.fx-ic{position:relative;display:inline-flex}
.fx-cur{position:absolute;top:-6px;left:-12px;min-width:20px;height:18px;padding:0 4px;border-radius:9px;background:var(--sun);color:var(--ink);font:700 11px/18px var(--f);text-align:center;box-shadow:0 0 0 2px var(--card);white-space:nowrap}

/* ---------- shared ---------- */
.art{display:block;width:100%;height:100%}
.pic{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero{position:relative;overflow:hidden;color:#fff;background:#3a3a44}
.hero .art{position:absolute;inset:0}
.shade{position:absolute;inset:0;background:linear-gradient(to bottom, rgba(10,8,6,.42) 0, rgba(10,8,6,0) 24%, rgba(10,8,6,0) 42%, rgba(18,12,6,.8) 100%)}
.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap}
.chip.glass{background:rgba(255,255,255,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.chip.ink{background:var(--ink);color:#fff}
.chip .ic{font-size:15px}
.card{background:var(--card);border-radius:22px;box-shadow:0 1px 0 rgba(60,40,20,.04), 0 12px 28px -18px rgba(70,50,25,.35)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 16px;border-radius:14px;font-size:14.5px;font-weight:600;background:var(--accent);color:#fff;white-space:nowrap}
.btn.soft{background:var(--accent-soft);color:var(--accent-ink)}
.btn.line{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.btn.danger{background:transparent;color:var(--neg);box-shadow:inset 0 0 0 1.5px var(--neg-soft)}
.btn .ic{font-size:18px}
.btn.big{min-height:54px;border-radius:16px;font-size:16px;width:100%}
.btn:disabled{opacity:.45}
.btn:active,.press:active{transform:scale(.98)}
.av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:600;font-size:14px;flex:none;background:#888}
.av.sm{width:26px;height:26px;font-size:11.5px}
.av.lg{width:48px;height:48px;font-size:18px}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;padding:0 20px;margin:20px 0 8px}
.sec-h h3{margin:0;font-size:15px;font-weight:600}
.sec-h a,.sec-h button{font-size:13px;color:var(--accent);font-weight:500}
.empty{margin:12px 16px;padding:18px;border-radius:18px;border:1.5px dashed var(--line);text-align:center;color:var(--ink2);font-size:14px}
.empty .btn{margin-top:10px}
.me-btn{position:absolute;top:calc(var(--st) + 14px);inset-inline-end:16px;z-index:5}
.me-btn .av{box-shadow:0 0 0 2px rgba(255,255,255,.7)}
.sync{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:#FBF0D9;color:#7A4A0E}
.sync .ic{font-size:14px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav) + var(--sb) + 16px);background:var(--ink);color:#fff;padding:10px 16px;border-radius:14px;font-size:14px;z-index:90;max-width:90vw;box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}

/* ---------- today ---------- */
.t-hero{height:calc(340px + var(--st))}
.t-top{position:absolute;top:calc(var(--st) + 14px);inset-inline-start:16px;inset-inline-end:64px;display:flex;gap:8px;flex-wrap:wrap}
.t-txt{position:absolute;bottom:44px;inset-inline:22px}
.country{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:500;opacity:.95}
.city{font-family:var(--d);font-weight:700;font-size:48px;line-height:1.08;margin:4px 0 6px}
.city.long{font-size:36px}
.clock{display:flex;align-items:center;gap:7px;font-size:14px;flex-wrap:wrap}
.clock b{font-size:17px;font-weight:600}
.clock .sep{opacity:.55}
.clock .ic{font-size:16px}
.next{margin:-30px 16px 0;position:relative;padding:16px}
.next-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:8px}
.live{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--accent)}
.live .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.in{font-size:13px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);padding:4px 10px;border-radius:999px;white-space:nowrap}
.next-m{display:flex;align-items:center;gap:12px}
.kic{width:52px;height:52px;border-radius:16px;background:var(--line2);color:var(--ink2);display:grid;place-items:center;font-size:26px;flex:none}
.k-warm{background:#F3E6D2;color:#8A4B12} .k-go{background:var(--accent-soft);color:var(--accent)} .k-green{background:#E3EEDC;color:#3D6A2C} .k-rose{background:#F5E4EC;color:#8E3A5E} .k-blue{background:#E2E9F2;color:#2F5A86}
.next-m h2{margin:0;font-size:20px;font-weight:600;line-height:1.3}
.next-m p{margin:2px 0 0;font-size:13px;color:var(--ink2);display:flex;align-items:center;gap:4px}
.next-m p .ic{font-size:14px}
.next-time{margin-inline-start:auto;text-align:center;font-size:30px;font-weight:600;line-height:1;white-space:nowrap}
.next-time small{display:block;font-size:12px;font-weight:500;color:var(--ink3);margin-top:4px}
.next-a{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.done-line{display:flex;align-items:center;gap:8px;margin:14px 20px 0;font-size:13px;color:var(--ink3)}
.ok-dot{width:20px;height:20px;border-radius:50%;background:var(--pos-soft);color:var(--pos);display:grid;place-items:center;font-size:13px;flex:none}
.tl{list-style:none;margin:0;padding:0 20px}
.tl li{display:grid;grid-template-columns:46px 18px 1fr auto;column-gap:10px;align-items:center;min-height:54px;position:relative}
.tl li time{font-size:15px;font-weight:600}
.tl li time.any{font-size:11.5px;color:var(--ink3);font-weight:500;line-height:1.2}
.tl .rail{align-self:stretch;position:relative;display:grid;place-items:center}
.tl .rail::before{content:"";position:absolute;top:0;bottom:0;width:2px;background:var(--line);left:50%;transform:translateX(-50%)}
.tl li:first-child .rail::before{top:50%}
.tl li:last-child .rail::before{bottom:50%}
.tl li:only-child .rail::before{display:none}
.tl .dot{width:11px;height:11px;border-radius:50%;background:var(--card);border:2px solid #B9AC99;position:relative}
.tl .tx b{display:block;font-size:15px;font-weight:600;line-height:1.35}
.tl .tx small{display:block;font-size:12.5px;color:var(--ink3)}
.tl .ti{width:34px;height:34px;border-radius:11px;background:var(--line2);display:grid;place-items:center;font-size:17px;color:var(--ink2)}
.tmr{margin:16px 16px 0;padding:12px 14px;display:flex;align-items:center;gap:12px}
.tmr .th{width:52px;height:52px;border-radius:14px;overflow:hidden;flex:none;position:relative}
.tmr .k{font-size:12px;color:var(--ink3)} .tmr b{display:block;font-size:15.5px}
.tmr .chev{margin-inline-start:auto;color:#B3A796}
.install{margin:16px 16px 0;padding:12px 14px;display:flex;align-items:center;gap:12px;background:var(--accent-soft);border-radius:18px;color:var(--accent-ink)}
.install .ic{font-size:22px}
.install b{display:block;font-size:14.5px} .install small{font-size:12.5px;opacity:.85}

/* travel-day hero */
.r-hero{height:calc(372px + var(--st))}
.route{position:absolute;bottom:42px;inset-inline:20px;display:grid;grid-template-columns:1fr 84px 1fr;align-items:end}
.pt{min-width:0}
.pt small{display:block;font-size:12.5px;opacity:.85}
.pt b{display:block;font-family:var(--d);font-size:28px;font-weight:700;line-height:1.15}
.pt b.long{font-size:20px;line-height:1.25;overflow-wrap:anywhere}
.pt .code{display:flex;align-items:center;gap:6px;font-size:13px;opacity:.95;margin-top:3px}
.pt .tm{display:block;font-size:26px;font-weight:600;margin-top:10px;line-height:1}
.pt .tm small{display:inline;font-size:12px;font-weight:500;opacity:.85;margin-inline-start:4px}
.pt .tm.none{font-size:13px;font-weight:500;opacity:.8}
.pt.to{text-align:left}
.pt.to .code{justify-content:flex-end}
.arc{position:relative;height:56px;margin-bottom:46px}
.arc svg.path{position:absolute;inset:0;width:100%;height:100%}
.arc .pl{position:absolute;top:2px;left:50%;transform:translateX(-50%) rotate(-135deg);font-size:22px}

/* ---------- itinerary ---------- */
.p-head{padding:calc(var(--st) + 22px) 20px 0;position:relative}
.p-head h1{font-family:var(--d);font-size:32px;margin:0;font-weight:700;line-height:1.2}
.p-head p{margin:2px 0 0;font-size:13.5px;color:var(--ink2)}
.p-head .me-btn{top:calc(var(--st) + 20px)}
.stops{margin:14px 16px 0;padding:22px 14px 12px}
.stops-line{position:relative;display:flex;justify-content:space-between;padding:0 6px}
.stops-line::before{content:"";position:absolute;top:8px;inset-inline:24px;height:2px;background:linear-gradient(to left, var(--accent) 0 var(--p,0%), var(--line) var(--p,0%) 100%)}
.stp{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12.5px;color:var(--ink3);min-width:70px}
.stp i{width:18px;height:18px;border-radius:50%;background:var(--card);border:2px solid var(--line);display:block}
.stp.past i{background:var(--accent);border-color:var(--accent)}
.stp.now i{background:var(--card);border:5px solid var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}
.stp.now{color:var(--ink);font-weight:600}
.stp .fl{display:flex;align-items:center;gap:4px}
.stp .fl .flag{width:14px;height:10px}
.here{position:absolute;top:-22px;font-size:10.5px;font-weight:600;color:#fff;background:var(--accent);padding:1px 7px;border-radius:999px;white-space:nowrap}
.past-g{margin:16px 16px 0}
.past-h{display:flex;align-items:center;gap:8px;width:100%;font-size:13px;color:var(--ink3);padding:4px 4px 8px}
.past-h .thumbs{display:flex;margin-inline-start:auto}
.past-h .thumbs span{width:22px;height:22px;border-radius:6px;overflow:hidden;margin-inline-start:-6px;box-shadow:0 0 0 2px var(--paper);filter:grayscale(1);opacity:.7;position:relative}
.past-box{background:rgba(255,253,249,.55);border-radius:16px;box-shadow:inset 0 0 0 1px var(--line2)}
.prow{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 10px 0 12px;color:var(--ink3);width:100%;text-align:start}
.prow + .prow{border-top:1px solid var(--line2)}
.prow .th{width:30px;height:30px;border-radius:8px;overflow:hidden;filter:grayscale(1) contrast(.8) brightness(1.08);opacity:.75;flex:none;position:relative}
.prow .d{font-size:13px;font-weight:500;min-width:74px}
.prow .c{font-size:13px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prow .ic{font-size:16px}
.today-c{display:block;margin:14px 16px 0;overflow:hidden;box-shadow:0 0 0 2px var(--accent), 0 16px 30px -18px rgba(44,58,148,.55)}
.today-c .img{height:120px;position:relative}
.today-c .badge{position:absolute;top:12px;inset-inline-start:12px;background:var(--accent);color:#fff;height:26px;font-size:12.5px;font-weight:600}
.today-c .now{position:absolute;top:12px;inset-inline-end:12px;height:26px;font-size:12px}
.today-c .bd{padding:12px 16px 14px;display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.today-c .dt{font-size:12.5px;color:var(--ink3)}
.today-c h2{margin:0;font-family:var(--d);font-size:24px;font-weight:700;line-height:1.25}
.today-c .hl{font-size:13.5px;color:var(--ink2);display:flex;align-items:center;gap:5px}
.today-c .nx{text-align:left;font-size:12px;color:var(--ink3);flex:none;max-width:40%}
.today-c .nx b{display:block;font-size:20px;color:var(--ink);font-weight:600}
.up{margin:10px 16px 0}
.urow{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 10px;width:100%;text-align:start}
.urow + .urow{border-top:1px solid var(--line2)}
.urow .th{width:64px;height:64px;border-radius:14px;overflow:hidden;flex:none;position:relative}
.urow .d{font-size:12.5px;color:var(--ink3);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.urow .c{font-size:17px;font-weight:600;line-height:1.35}
.urow .h{font-size:13px;color:var(--ink2)}
.urow .h.none{color:#A69A8B}
.urow .chev{margin-inline-start:auto;color:#B3A796;font-size:18px}
.tag{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;color:var(--accent);background:var(--accent-soft);padding:1px 7px;border-radius:999px}
.tag .ic{font-size:12px}
.add-day{display:flex;margin:14px 16px 0;justify-content:center}

/* ---------- day details ---------- */
.d-hero{height:calc(240px + var(--st))}
.hbtn{position:absolute;top:calc(var(--st) + 14px);width:42px;height:42px;border-radius:50%;background:rgba(20,16,12,.28);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;place-items:center;color:#fff;font-size:20px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);z-index:3}
.hbtn.back{inset-inline-start:16px} .hbtn.edit{inset-inline-end:16px}
.d-txt{position:absolute;bottom:18px;inset-inline:20px}
.d-txt .dt{font-size:13.5px;opacity:.92}
.d-txt h1{font-family:var(--d);font-size:34px;font-weight:700;margin:0;line-height:1.15}
.d-txt .hl{font-size:14px;opacity:.95;margin-top:2px}
.d-chips{display:flex;gap:8px;padding:14px 16px 4px;flex-wrap:wrap}
.d-chips .chip{background:var(--card);box-shadow:inset 0 0 0 1px var(--line);height:34px;color:var(--ink);font-size:13px}
.d-chips .chip .ic{color:var(--ink2)}
.notes{margin:10px 16px 0;background:#FBF3E2;border-radius:16px;padding:12px 14px;font-size:14px;line-height:1.7;color:#4A3A22;white-space:pre-line}
.notes .k{display:flex;align-items:center;gap:6px;font-size:12px;color:#8A6A3A;margin-bottom:4px;font-weight:600}
.acts{padding:10px 16px 0;list-style:none;margin:0}
.act{display:grid;grid-template-columns:48px 1fr;gap:10px}
.act + .act{margin-top:8px}
.act time{font-size:15px;font-weight:600;padding-top:14px;text-align:right}
.act time.any{font-size:11.5px;font-weight:500;color:var(--ink3);padding-top:16px;line-height:1.2}
.act .box{background:var(--card);border-radius:18px;padding:12px 14px;box-shadow:inset 0 0 0 1px var(--line2);text-align:start;width:100%;display:block}
.act .t{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:600;line-height:1.35}
.act .t .ic{font-size:18px;color:var(--ink2)}
.act .pl{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink2);margin-top:3px}
.act .pl .ic{font-size:14px}
.act .pl .map{margin-inline-start:auto;display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-weight:600;font-size:12.5px;padding:6px 0 6px 2px}
.act .row2{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:2px 9px;border-radius:8px;font-size:12px;font-weight:500;background:var(--line2);color:var(--ink2)}
.pill .ic{font-size:13px}
.pill.ok{background:var(--pos-soft);color:var(--pos)}
.pill.note{background:#FBF0D9;color:#7A4A0E}
.act.done .box{background:transparent}
.act.done time,.act.done .t,.act.done .pl{color:var(--ink3)}
.act.done .t .okc{color:var(--pos)}
.act.nxt .box{box-shadow:0 0 0 2px var(--accent);background:var(--card)}
.act.nxt time{color:var(--accent)}
.nxt-tag{font-size:11px;font-weight:600;color:#fff;background:var(--accent);padding:1px 7px;border-radius:999px;margin-inline-start:auto}
.fab{position:fixed;bottom:calc(var(--nav) + var(--sb) + 16px);left:max(16px, calc(50% - 244px));z-index:31;height:52px;padding:0 18px 0 20px;border-radius:18px;background:var(--accent);color:#fff;display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:600;box-shadow:0 14px 26px -12px rgba(44,58,148,.7)}
.fab .ic{font-size:20px}

/* ---------- layer: sheets & modals ---------- */
#layer{position:fixed;inset:0;z-index:60;display:none}
#layer.on{display:block}
.dim{position:absolute;inset:0;background:rgba(16,12,8,.5)}
.sheet{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;max-height:92vh;max-height:92dvh;overflow:auto;background:var(--card);border-radius:28px 28px 0 0;padding:0 20px calc(var(--sb) + 24px);box-shadow:0 -20px 40px -20px rgba(0,0,0,.35);animation:up .26s cubic-bezier(.32,.72,0,1)}
@keyframes up{from{transform:translate(-50%,40px);opacity:.4}}
@media (prefers-reduced-motion: reduce){.sheet{animation:none}}
.grab{width:40px;height:5px;border-radius:3px;background:#D8CEBF;margin:9px auto 0}
.sh-h{display:flex;gap:12px;align-items:center;margin-top:14px}
.sh-h h2{margin:0;font-size:20px;font-weight:600;line-height:1.3}
.sh-h p{margin:2px 0 0;font-size:13px;color:var(--ink2)}
.x{margin-inline-start:auto;width:36px;height:36px;border-radius:50%;background:var(--line2);display:grid;place-items:center;font-size:18px;color:var(--ink2);align-self:flex-start;flex:none}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.fact{background:var(--paper);border-radius:14px;padding:10px 12px;min-width:0}
.fact .k{font-size:12px;color:var(--ink3)}
.fact .v{font-size:15.5px;font-weight:600;display:flex;align-items:center;gap:6px;margin-top:2px;word-break:break-word}
.fact .v .ic{font-size:16px;color:var(--accent)}
.blk{margin-top:16px}
.blk>.k{font-size:12.5px;color:var(--ink3);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.loc{display:flex;gap:10px;align-items:flex-start}
.loc .pin{width:38px;height:38px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:19px;flex:none}
.loc b{display:block;font-size:15px;font-weight:600}
.loc small{display:block;font-size:12.5px;color:var(--ink2)}
.two-btn{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.note-b{background:#FBF3E2;border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.7;color:#4A3A22;white-space:pre-line}
.by{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink3);margin-top:14px}

.modal{position:absolute;inset:0;background:var(--paper);overflow:auto;animation:up2 .22s ease-out}
@keyframes up2{from{transform:translateY(24px);opacity:.5}}
@media (prefers-reduced-motion: reduce){.modal{animation:none}}
.modal-in{max-width:520px;margin:0 auto;padding:0 16px calc(var(--sb) + 110px)}
.modal-top{position:sticky;top:0;z-index:2;background:var(--paper);display:flex;align-items:center;justify-content:space-between;height:calc(56px + var(--st));padding-top:var(--st);margin:0 -16px;padding-inline:16px}
.modal-top h2{margin:0;font-size:17px;font-weight:600;position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}
.modal-top .lk{font-size:15px;color:var(--accent);font-weight:500;min-height:44px;display:flex;align-items:center}
.save-bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;padding:12px 16px calc(var(--sb) + 14px);background:linear-gradient(to top, var(--paper) 70%, rgba(244,238,227,0))}
.save-bar .when{display:flex;justify-content:center;gap:6px;font-size:12.5px;color:var(--ink3);margin-bottom:8px;align-items:center}

/* form controls */
.fld{background:var(--card);border-radius:18px;padding:12px 14px;margin-top:10px;box-shadow:inset 0 0 0 1px var(--line2)}
.fld>.k{font-size:12.5px;color:var(--ink3);margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.fld>.k button{color:var(--accent);font-weight:500;font-size:12.5px}
.inp{width:100%;min-height:46px;border:0;border-radius:12px;background:var(--paper);padding:10px 12px;font-size:16px;outline:none;box-shadow:inset 0 0 0 1.5px var(--line)}
.inp:focus{box-shadow:inset 0 0 0 2px var(--accent);background:#fff}
textarea.inp{min-height:84px;resize:vertical;line-height:1.6}
.row{display:flex;gap:8px}
.row>*{flex:1;min-width:0}
.lbl{display:block;font-size:12.5px;color:var(--ink3);margin:12px 2px 6px}
.lbl:first-child{margin-top:0}
.amt-box{text-align:center;padding:10px 0 4px}
.amt-row{display:flex;align-items:center;justify-content:center;gap:10px}
.amt-in{width:180px;font-size:48px;font-weight:600;line-height:1.1;text-align:center;border:0;background:transparent;outline:none;direction:ltr;font-feature-settings:"tnum" 1;padding:0}
.amt-in::placeholder{color:#CDBFAE}
.cur-chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 10px 0 12px;border-radius:12px;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--line);font-size:14px;font-weight:600}
.cur-chip .ic{font-size:15px;color:var(--ink3)}
.amt-sar{font-size:14px;color:var(--ink2);margin-top:2px}
.auto{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--ink3);margin-top:4px}
.auto .ic{font-size:13px}
.cats{display:flex;gap:6px;flex-wrap:wrap}
.cat{min-width:44px;height:40px;padding:0 10px;border-radius:12px;background:var(--line2);display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:13px;color:var(--ink3)}
.cat .ic{font-size:17px}
.cat.on{background:#F6E3D2;color:#9A4A1E;box-shadow:inset 0 0 0 1.5px #E2B48C;font-weight:600}
.people{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-start}
.pp{display:flex;flex-direction:column;align-items:center;gap:5px;width:68px;font-size:12.5px;color:var(--ink2);position:relative;padding:4px 0}
.pp .av{width:44px;height:44px;font-size:16px}
.pp.sel .av{box-shadow:0 0 0 3px var(--card),0 0 0 5px var(--accent)}
.pp.sel{color:var(--ink);font-weight:600}
.pp.off .av{filter:grayscale(1);opacity:.35}
.pp.off{color:#AFA392}
.pp .ck{position:absolute;top:30px;left:10px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12px;box-shadow:0 0 0 2px var(--card)}
.pp span.nm{max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seg{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;background:var(--line2);border-radius:12px;padding:3px}
.seg>button{min-height:38px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:14px;font-weight:500;color:var(--ink2);border-radius:10px}
.seg>button.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 2px 6px -2px rgba(60,40,20,.25)}
.each{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--paper);font-size:14px;gap:8px}
.each b{font-size:16px}
.srow{display:flex;align-items:center;gap:10px;min-height:52px}
.srow + .srow{border-top:1px solid var(--line2)}
.srow .nm{font-size:14.5px;font-weight:500;flex:1}
.srow .sar{font-size:12px;color:var(--ink3);width:62px;text-align:left}
.srow .inp{width:112px;flex:none;direction:ltr;text-align:left;min-height:42px}
.match{display:flex;align-items:center;gap:8px;margin-top:8px;padding:10px 12px;border-radius:12px;font-size:13.5px;font-weight:600;background:#FBF0D9;color:#7A4A0E}
.match.ok{background:var(--pos-soft);color:var(--pos)}
.match.over{background:var(--neg-soft);color:var(--neg)}
.match .ic{font-size:17px}
.match .bar{flex:1;height:6px;border-radius:3px;background:rgba(0,0,0,.08);overflow:hidden}
.match .bar i{display:block;height:100%;background:currentColor}
.match button{font-size:12.5px;text-decoration:underline}
.methods{display:flex;gap:8px;flex-wrap:wrap}
.mth{min-height:40px;padding:0 12px;border-radius:12px;display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:500;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--ink2)}
.mth.on{box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent-ink);background:var(--accent-soft);font-weight:600}
.mth .ic{font-size:16px}
.photo-box{position:relative;height:160px;border-radius:14px;overflow:hidden;background:#333}
.photo-box .ph-btns{position:absolute;bottom:10px;inset-inline:10px;display:flex;gap:8px}
.photo-box .btn{min-height:38px;font-size:13px;background:rgba(20,16,12,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.file-in{position:absolute;opacity:0;width:1px;height:1px}

/* ---------- qatta ---------- */
.q-head{padding:calc(var(--st) + 22px) 20px 0;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.q-head h1{font-family:var(--d);font-size:32px;margin:0;line-height:1.2}
.q-head p{margin:0;font-size:13px;color:var(--ink2)}
.stack{display:flex}
.stack .av{box-shadow:0 0 0 2.5px var(--paper);margin-inline-start:-8px}
.stack .av:first-child{margin-inline-start:0}
.eq{margin:14px 16px 0;padding:16px 18px}
.eq-top{display:grid;grid-template-columns:1fr 26px 1fr;align-items:center}
.eq .k{font-size:12.5px;color:var(--ink3);display:flex;align-items:center;gap:5px}
.eq .k .ic{font-size:14px}
.eq .v{font-size:24px;font-weight:600;line-height:1.25}
.eq .v small{font-size:13px;font-weight:500;color:var(--ink2);margin-inline-start:3px}
.eq .op{font-size:22px;color:#B7AB99;text-align:center}
.eq-tr{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink2);margin-top:10px;padding:6px 2px 0;border-top:1px dashed var(--line)}
.eq-res{margin-top:12px;padding:12px 14px;border-radius:16px;background:var(--pos-soft);display:flex;align-items:center;justify-content:space-between;gap:8px}
.eq-res .k{color:var(--pos);font-weight:600;font-size:14px}
.eq-res .v{font-size:32px;color:var(--pos);font-weight:700;line-height:1.1}
.eq-res .v small{color:var(--pos);font-size:15px;font-weight:600}
.eq-res .hint{font-size:12px;color:#2F6A4A;margin-top:1px}
.eq-res.owe{background:var(--neg-soft)} .eq-res.owe .k,.eq-res.owe .v,.eq-res.owe .v small{color:var(--neg)} .eq-res.owe .hint{color:#8A3A30}
.eq-res.even{background:var(--line2)} .eq-res.even .k,.eq-res.even .v,.eq-res.even .v small{color:var(--ink2)} .eq-res.even .hint{color:var(--ink3)}
.eq .tot{display:flex;justify-content:space-between;font-size:12px;color:var(--ink3);margin-top:10px}
.lst{margin:0 16px}
.trow{display:flex;align-items:center;gap:8px;padding:10px 12px;min-height:56px}
.trow + .trow{border-top:1px solid var(--line2)}
.trow .who{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;min-width:0}
.trow .who span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70px}
.trow .arr{color:#B3A796;font-size:16px}
.trow .amt{margin-inline-start:auto;font-size:16px;font-weight:600;white-space:nowrap}
.trow .amt small{font-size:12px;font-weight:500;color:var(--ink2)}
.trow .go{min-height:34px;padding:0 10px;border-radius:10px;background:var(--accent-soft);color:var(--accent-ink);font-size:12.5px;font-weight:600;display:inline-flex;align-items:center}
.trow.other{opacity:.62}
.bal{display:flex;gap:8px;overflow-x:auto;padding:2px 16px 4px;scrollbar-width:none}
.bal::-webkit-scrollbar{display:none}
.bal div{flex:none;display:flex;align-items:center;gap:8px;background:var(--card);border-radius:14px;padding:8px 12px 8px 10px;box-shadow:inset 0 0 0 1px var(--line2)}
.bal b{display:block;font-size:13px;font-weight:600;line-height:1.3}
.bal small{display:block;font-size:12px;font-weight:600}
.lrow{display:flex;align-items:center;gap:11px;padding:10px 12px;width:100%;text-align:start}
.lrow + .lrow{border-top:1px solid var(--line2)}
.lrow .li{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:18px;flex:none}
.lrow .tx{min-width:0;flex:1}
.lrow .tx b{display:block;font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lrow .tx small{display:block;font-size:12px;color:var(--ink3)}
.lrow .am{text-align:left;font-size:15px;font-weight:600;white-space:nowrap}
.lrow .am small{display:block;font-size:12px;font-weight:500;color:var(--ink3)}
.k-set{background:var(--pos-soft);color:var(--pos)}

/* transfer */
.tf-who{display:flex;align-items:flex-start;justify-content:center;gap:14px;margin-top:8px}
.tf-who .mid{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink3);font-size:12px;padding-top:12px}
.tf-who .mid .ic{font-size:22px;color:var(--ink2)}
.due{text-align:center;font-size:13px;color:var(--ink2);margin-top:8px}
.due b{color:var(--ink)}
.after{margin-top:10px;background:var(--card);border-radius:18px;padding:14px;box-shadow:inset 0 0 0 1px var(--line2)}
.after>.k{font-size:12.5px;color:var(--ink3)}
.prog{height:10px;border-radius:5px;background:var(--neg-soft);overflow:hidden;margin:10px 0 6px;display:flex}
.prog i{display:block;height:100%;background:var(--pos)}
.prog-l{display:flex;justify-content:space-between;font-size:12px;color:var(--ink3)}
.after .two{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.after .two>div{background:var(--paper);border-radius:12px;padding:10px 12px}
.after .two .t{font-size:12px;color:var(--ink3)}
.after .two .n{font-size:19px;font-weight:600;line-height:1.3}
.after .two .n small{font-size:12px;font-weight:500}
.after .two .w{font-size:11.5px;color:var(--ink3)}
.quick{display:flex;gap:6px;justify-content:center;margin-top:8px;flex-wrap:wrap}
.quick>button{min-height:34px;padding:0 12px;border-radius:999px;font-size:13px;display:inline-flex;align-items:center;gap:4px;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--ink2);font-weight:500}

/* ---------- converter ---------- */
.fx{padding:calc(var(--st) + 18px) 20px 0}
.fx-h{display:flex;align-items:center;gap:12px}
.fx-h .flag{width:44px;height:31px;border-radius:6px}
.fx-h .nm b{display:block;font-size:20px;font-weight:600;line-height:1.3}
.fx-h .nm span{display:block;font-size:13px;color:var(--ink2)}
.fx-h .chg{margin-inline-start:auto;min-height:40px;padding:0 12px;border-radius:12px;box-shadow:inset 0 0 0 1.5px var(--line);display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:600;background:var(--card)}
.fx-h .chg .ic{font-size:15px;color:var(--ink3)}
.autoline{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:12.5px;color:var(--ink2);flex-wrap:wrap}
.autoline .ic{font-size:14px;color:var(--accent)}
.autoline b{font-weight:600;color:var(--ink)}
.autoline button{color:var(--accent);font-weight:600;text-decoration:underline}
.fx-switch{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;border-radius:16px;background:#FFF4DC;box-shadow:inset 0 0 0 1px #F1D9A4}
.fx-switch .sw{display:flex;align-items:center;gap:4px;font-weight:700;font-size:13px;direction:ltr;flex:none}
.fx-switch .sw s{color:#A08A66;font-weight:600}
.fx-switch .sw .ic{font-size:14px;color:#8A6A2A}
.fx-switch p{margin:0;font-size:13px;line-height:1.5;color:#4A3A1A;flex:1}
.fx-switch .x{width:30px;height:30px;font-size:15px;background:rgba(0,0,0,.05);align-self:center}
.io{margin-top:12px;border-radius:22px;background:var(--card);padding:14px 16px 16px;box-shadow:inset 0 0 0 1px var(--line2)}
.io .row-in{display:flex;align-items:center;justify-content:space-between;gap:8px}
.io .lab{font-size:12.5px;color:var(--ink3)}
.io .inv{direction:ltr;display:flex;align-items:baseline;gap:6px;font-size:34px;font-weight:600;line-height:1.2;min-width:0;overflow:hidden}
.io .inv .sym{font-size:22px;color:var(--ink3);font-weight:500}
.io .inv .ph{color:#CDBFAE}
.caret{display:inline-block;width:2px;height:30px;background:var(--accent);margin-inline-start:2px;vertical-align:-4px;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.io .eqs{display:flex;align-items:center;gap:8px;margin:8px 0;color:#B5A994}
.io .eqs::before,.io .eqs::after{content:"";flex:1;height:1px;background:var(--line)}
.io .eqs .ic{font-size:16px}
.out .lab{display:flex;align-items:center;gap:6px}
.out .lab .flag{width:16px;height:11px}
.out .big{font-size:54px;font-weight:700;line-height:1.08;letter-spacing:-1px;margin-top:2px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.out .big.mid{font-size:42px}
.out .big small{font-size:22px;font-weight:600;letter-spacing:0;color:var(--ink2)}
.rate{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink3);margin-top:10px;justify-content:center;flex-wrap:wrap;text-align:center}
.rate .ic{font-size:13px}
.rate .apx{color:#8A4B12;font-weight:600}
.keys{direction:ltr;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.keys button{height:52px;border-radius:14px;background:var(--line2);display:grid;place-items:center;font-size:23px;font-weight:500}
.keys button:active{background:var(--line)}
.keys button .ic{font-size:22px}
.nextc{display:flex;align-items:center;gap:6px;justify-content:center;font-size:12px;color:var(--ink3);margin-top:10px;flex-wrap:wrap}
.nextc .flag{width:15px;height:10px}
.src{display:block;text-align:center;font-size:11px;color:#A69A8B;margin-top:6px}

/* picker */
.toggle-row{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;border-radius:16px;background:var(--paper);width:100%;text-align:start}
.toggle-row b{display:block;font-size:14.5px;font-weight:600}
.toggle-row small{display:block;font-size:12px;color:var(--ink2);line-height:1.5}
.tgl{margin-inline-start:auto;width:50px;height:30px;border-radius:15px;background:#CFC5B6;position:relative;flex:none}
.tgl::after{content:"";position:absolute;top:3px;right:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:right .2s}
.tgl.on{background:var(--pos)}
.tgl.on::after{right:23px}
.grp{font-size:12.5px;color:var(--ink3);margin:14px 4px 4px;font-weight:500}
.crow{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 4px;width:100%;text-align:start}
.crow + .crow{border-top:1px solid var(--line2)}
.crow .flag{width:30px;height:21px;border-radius:4px}
.crow .nm{flex:1}
.crow .nm b{display:block;font-size:15px;font-weight:600;line-height:1.3}
.crow .nm>span{display:block;font-size:12px;color:var(--ink3)}
.crow .cd{font-size:13px;font-weight:600;color:var(--ink2);direction:ltr}
.crow .ck{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:14px}
.crow .rd{width:24px;height:24px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--line)}
.crow.sel{background:var(--accent-soft);border-radius:14px;padding:0 10px}
.ptag{font-size:11px;font-weight:600;padding:1px 7px;border-radius:999px;background:var(--pos-soft);color:var(--pos);margin-inline-start:6px;vertical-align:1px}

/* ---------- onboarding & settings ---------- */
.gate{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.gate .hero{height:calc(300px + var(--st))}
.gate-in{padding:0 20px 40px;margin-top:-34px;position:relative}
.gate h1{font-family:var(--d);font-size:30px;margin:0 0 4px;line-height:1.25}
.gate p.lead{margin:0 0 16px;color:var(--ink2);font-size:14.5px}
.gate .card{padding:18px}
.err{color:var(--neg);font-size:13.5px;margin-top:8px;font-weight:500}
.name-row{display:flex;gap:8px;align-items:center}
.name-row + .name-row{margin-top:8px}
.name-row .x{align-self:center}
.who{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.who button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;border-radius:18px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line2);font-weight:600}
.set{margin:12px 16px 0;padding:6px 0}
.set-row{display:flex;align-items:center;gap:12px;min-height:54px;padding:0 16px;width:100%;text-align:start}
.set-row + .set-row{border-top:1px solid var(--line2)}
.set-row .ic.lead{font-size:20px;color:var(--ink2)}
.set-row b{font-weight:500;font-size:15px}
.set-row small{display:block;font-size:12.5px;color:var(--ink3)}
.set-row .end{margin-inline-start:auto;color:var(--ink3);font-size:13px;display:flex;align-items:center;gap:6px}
.steps{margin:8px 0 0;padding-inline-start:20px;font-size:14px;line-height:1.9;color:var(--ink2)}
.ver{text-align:center;font-size:11.5px;color:#A69A8B;margin:18px 0 0}
