/* The integrated phone, loaded after the legacy app styles. Existing app and
   gameplay logic is retained. Every app now lives inside .duber-device. */
:root {
 --phone-ink:#f3f7fc;
 --phone-muted:#acbdcf;
 --phone-surface:#08121d;
 --phone-panel:#101f2c;
 --phone-line:#8caac72e;
 --phone-green:#31eab1;
 --phone-blue:#5bc7ff;
 --phone-purple:#d28dff;
 --phone-red:#ff93a6;
 --os-up:#52edbb;
 --os-down:#ff93a6;
 --os-flat:#b9c7d3;
}

#duber-phone {
 --app-accent:var(--phone-blue);
 display:grid;
 grid-template-rows:minmax(0,1fr);
 padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
 background:#02070cb8;
 -webkit-backdrop-filter:blur(8px);
 backdrop-filter:blur(8px);
 color:var(--phone-ink);
 font-family:Inter,Arial,sans-serif;
 font-size:14px;
 line-height:1.45;
 color-scheme:dark;
}
#duber-phone[hidden],#duber-phone [hidden] {display:none!important}
#duber-phone[data-app="duber"] {--app-accent:#ff9fcf}
#duber-phone[data-app="bluefin"] {--app-accent:var(--phone-blue)}
#duber-phone[data-app="exchange"] {--app-accent:var(--phone-green)}
#duber-phone[data-app="outside"] {--app-accent:#ffb897}
#duber-phone[data-app="vibecheck"] {--app-accent:var(--phone-purple)}
#duber-phone[data-app="wallet"] {--app-accent:#b6dedc}
#duber-phone[data-app] .duber-device {
 position:relative;
 width:min(450px,100%);
 max-height:min(900px,calc(100dvh - 36px));
 min-height:0;
 border:1px solid #a0bdd777;
 border-radius:32px;
 background:radial-gradient(ellipse at 95% 0%,#153045 0,transparent 38%),linear-gradient(155deg,#07111b,#030a0e 70%);
 box-shadow:0 24px 90px #000b,0 0 0 3px #101b2b,inset 0 1px 0 #e8f6ff44;
 overflow:hidden;
 isolation:isolate;
}
#duber-phone[data-app] .duber-bar {
 flex:none;
 gap:8px;
 padding:13px 15px;
 border-bottom:1px solid var(--phone-line);
 background:linear-gradient(135deg,#152b3eea,#09121dee);
 color:var(--phone-ink);
}
#duber-phone #phone-title {
 min-width:0;
 margin:0 auto 0 0;
 color:var(--app-accent);
 font:750 17px/1.2 Inter,Arial,sans-serif;
 letter-spacing:-.02em;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
#duber-phone :is(#phone-back,#phone-home,#duber-close) {
 min-width:44px;
 min-height:44px;
 margin:0;
 padding:9px;
 border:1px solid var(--phone-line);
 border-radius:12px;
 background:#d9ecff08;
 color:var(--phone-ink);
 font:650 11px/1.2 Inter,Arial,sans-serif;
 letter-spacing:0;
 touch-action:manipulation;
}
#duber-phone #duber-close {border-color:#98bad052;background:#e2f3ff12}
#duber-phone :is(button,a,input,select,textarea,summary):focus-visible,
#duber-phone .menu-pad-focus {
 outline:3px solid #e2f5ff;
 outline-offset:3px;
 box-shadow:0 0 0 5px #258cce70;
}
#duber-phone button {font-family:inherit;cursor:pointer;touch-action:pan-y}
#duber-phone button:disabled {cursor:not-allowed;opacity:.55}
#duber-phone :is(.phone-home,.duber-screen,.bluefin-screen,.wallet-screen,.outside-screen,.settings-screen) {
 flex:1 1 auto;
 width:100%;
 min-width:0;
 min-height:0;
 max-height:none;
 padding:18px;
 display:grid;
 gap:13px;
 align-content:start;
 overflow-x:hidden;
 overflow-y:auto;
 overscroll-behavior:contain;
 -webkit-overflow-scrolling:touch;
 border:0;
 border-radius:0;
 background:transparent;
 box-shadow:none;
 scrollbar-width:thin;
 scrollbar-color:#55728b #07121b;
 scroll-padding:16px;
}

/* Supplied artwork remains one unchanged file. CSS only selects each tile. */
#duber-phone .app-icon,.phone-toast .app-icon {
 display:block;
 width:88px;
 height:88px;
 aspect-ratio:1;
 flex:none;
 border:0;
 border-radius:23%;
 background-color:#000;
 background-image:url('../assets/phone/app-icons.jpeg');
 background-size:350.27933% 350.27933%;
 background-repeat:no-repeat;
 color:transparent;
 font-size:0;
 box-shadow:0 7px 16px #0008;
}
.app-icon.app-duber {background-position:6.25% 5.36%}
.app-icon.app-bluefin {background-position:50.22% 5.36%}
.app-icon.app-exchange,.app-icon.app-hoodrich {background-position:94.2% 5.36%}
.app-icon.app-outside,.app-icon.app-weoutside {background-position:6.25% 46.43%}
.app-icon.app-vibecheck,.app-icon.app-betthat {background-position:50.22% 46.43%}
.app-icon.app-wallet {background-position:94.2% 46.43%}
.app-icon.app-radio {background-position:6.25% 88.17%}
.app-icon.app-map,.app-icon.app-maps {background-position:50.22% 88.17%}
.app-icon.app-settings {background-position:94.2% 88.17%}

#duber-phone .phone-home {gap:17px;padding:22px 24px 20px}
#duber-phone .home-top {
 align-items:center;
 padding:0;
 border:0;
 gap:10px;
}
#duber-phone #home-carrier {font-size:10px;letter-spacing:.12em;color:var(--phone-muted)}
#duber-phone #home-cash {font:700 21px/1.2 Inter,Arial,sans-serif;font-variant-numeric:tabular-nums}
.phone-brand {text-align:center;padding:4px 0 7px}
.phone-brand strong {display:block;color:#f4f9ff;font:800 italic 31px/1 Inter,Arial,sans-serif;letter-spacing:-.07em;text-shadow:0 0 26px #97bce433}
.phone-brand small {display:block;margin-top:8px;color:#bfd0df;font-size:9px;letter-spacing:.22em}
.phone-brand small:first-child {margin:0 0 6px}
.phone-brand span {display:block;margin-top:7px;color:#bfd0df;font-size:9px;letter-spacing:.17em}
#phone-time {font-size:11px;font-variant-numeric:tabular-nums;color:#c0d2e1}
#duber-phone .home-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:17px 8px}
#duber-phone .home-app {min-width:0;gap:7px;padding:0 0 2px;border-radius:14px;background:transparent}
#duber-phone .home-app span {font-size:14px;font-weight:500;letter-spacing:-.02em;line-height:1.25;color:#edf4fb}
#duber-phone .home-app em {max-width:100%;min-height:12px;color:#b9cadd;font-size:9px;line-height:1.25;letter-spacing:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
#duber-phone .home-app em:empty {display:none}
#duber-phone .home-app em:not(:empty) {position:absolute;top:0;right:0;max-width:100%;min-height:0;padding:3px 5px;border:1px solid #94b5cf54;border-radius:7px;background:#07131eeb;box-shadow:0 2px 6px #0006}
#duber-phone .home-app em[data-tone="on"] {color:#70e6c3}
#duber-phone .home-app em[data-tone="live"] {color:#ffb5da}
#duber-phone .home-app em[data-tone="own"] {color:#8cdaff}
.phone-overview {
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;
 padding:12px 4px;border:1px solid #a8c6de36;border-radius:19px;
 background:linear-gradient(135deg,#e4f4ff10,#18304840);box-shadow:inset 0 1px 0 #e6f5ff13;
}
.phone-overview>* {min-width:0;display:grid;align-content:center;justify-items:center;gap:6px;min-height:52px;margin:0;padding:4px;border:0;border-right:1px solid #c9deef26;background:none;color:var(--phone-ink);text-align:center}
.phone-overview>:last-child {border-right:0}
.phone-overview small {color:#b4c7d8;font-size:9px;font-weight:500;letter-spacing:.1em}
.phone-overview strong {font-size:15px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.phone-clock-note,#duber-phone .home-hint {margin:0;color:#adc1d0;font-size:11px;line-height:1.55;text-align:center}
.phone-clock-note b {color:#e6f3fa;font-weight:600}
.phone-home>.phone-clock-note:last-child {font-size:8px;letter-spacing:.14em}
.phone-resume {min-height:49px;padding:13px;border:1px solid #a7c8e169;border-radius:18px;background:linear-gradient(160deg,#a1bed226,#536c851c);color:#eff9ff;font-size:12px;font-weight:750;letter-spacing:.1em;box-shadow:inset 0 1px 0 #daeaff2c}

/* Common app furniture makes the familiar tasks recognizable across apps. */
.phone-app-brand {display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--phone-line)}
#duber-phone .phone-app-brand .app-icon {width:44px;height:44px;border-radius:11px}
.phone-app-brand strong {display:block;color:var(--app-accent);font-size:25px;line-height:1.2;font-weight:800;letter-spacing:-.05em}
.phone-app-brand small {display:block;color:var(--phone-muted);font-size:10px;letter-spacing:.08em}
.phone-app-brand:has(h2) {display:grid;gap:5px}
.phone-app-brand h2 {margin:0;color:var(--app-accent);font-size:29px;line-height:1.2;font-weight:800;letter-spacing:-.05em}
.phone-app-brand p {margin:0;color:var(--phone-muted);font-size:12px;line-height:1.5}
.phone-finance {display:grid;gap:13px;min-width:0}
.phone-card,.phone-review {display:grid;gap:10px;padding:15px;border:1px solid var(--phone-line);border-radius:17px;background:linear-gradient(135deg,#d4edff09,#bed4ec03)}
.phone-card :is(h2,h3,h4,p),.phone-review :is(h2,h3,h4,p) {margin:0}
.phone-card :is(h3,h4),.phone-review :is(h3,h4) {color:#eff7ff;font-size:16px;line-height:1.4}
.phone-card p,.phone-review p {color:#b4c6d5;font-size:12px;line-height:1.55}
.phone-card .bf-where {padding:0}
.phone-card>small,.phone-review>small {color:var(--phone-muted);font-size:11px;line-height:1.5}
.phone-card>strong {font-size:22px;line-height:1.2;font-variant-numeric:tabular-nums}
.phone-card.is-owned {border-color:#55d8b64a}
.phone-summary {display:grid;gap:0;margin:0;font-variant-numeric:tabular-nums}
.phone-summary>div {display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid #e0eeff13}
.phone-summary>div:last-child {border:0}
.phone-summary dt,.phone-summary small {color:#aebfcf;font-size:12px}
.phone-summary dd,.phone-summary b {margin:0;text-align:right;color:#eff6fc;font-size:13px;font-weight:650}
.phone-summary .phone-total {padding-top:12px;color:#fff;font-size:17px;font-weight:750}
.phone-actions {display:flex;flex-wrap:wrap;gap:8px}
.phone-actions>button {flex:1 1 110px;min-height:44px;padding:10px;border:1px solid #9dcee048;border-radius:11px;background:#a0cbe012;color:#e6f5ff;font-size:12px;line-height:1.35;font-weight:650}
.phone-actions>button.primary,.phone-actions>button[data-primary] {border-color:transparent;background:var(--app-accent);color:#04131c}
.phone-actions>button.danger {border-color:#f59db15e;color:#ffb6c6;background:#f09eb00b}
.phone-status {margin:0;padding:11px 13px;border:1px solid #91b9d648;border-radius:11px;background:#72b9ea12;color:#d5ecff;font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.phone-status:empty {display:none}
.phone-status[data-tone="error"],.phone-status.error {border-color:#ff8da55c;color:#ffc5d3;background:#dd566c0f}
.phone-status[data-tone="success"],.phone-status.success {border-color:#62dabc5a;color:#91efce;background:#2a977c0e}
.phone-quote-status,.os-quote-status {display:flex;align-items:center;gap:6px;margin:0;padding:7px 10px;border:1px solid #8db4d03d;border-radius:9px;background:#aac8df08;color:#b9ccd9;font-size:10px;line-height:1.5;font-variant-numeric:tabular-nums}
.phone-quote-status::before,.os-quote-status::before {content:"";width:6px;height:6px;flex:none;border-radius:50%;background:#4addb0}
.phone-quote-status[data-state="syncing"],.os-quote-status[data-state="syncing"] {color:#c8d7e3;border-color:#8dabc960}
.phone-quote-status[data-state="syncing"]::before,.os-quote-status[data-state="syncing"]::before {background:#9bc7ff}
.phone-quote-status[data-state="stale"],.os-quote-status[data-state="stale"] {color:#ffe0ab;border-color:#eab8656b;background:#b47e1710}
.phone-quote-status[data-state="stale"]::before,.os-quote-status[data-state="stale"]::before {background:#f8c776}
.phone-review {border-color:#91ddf480;background:#122535;box-shadow:0 7px 20px #0003}
.phone-tabs {display:flex;flex-wrap:wrap;gap:6px}
.phone-tabs button {flex:1;min-height:44px;padding:8px;border:1px solid transparent;border-radius:10px;background:#a8cce810;color:#afc2d2;font-size:12px;font-weight:650}
.phone-tabs button.is-on,.phone-tabs button[aria-selected="true"],.phone-tabs button[aria-pressed="true"] {color:var(--app-accent);border-color:#9ec8dd4a;background:#b3dff019}
#duber-phone :is(.phone-card,.phone-review,.phone-finance) label {display:grid;gap:7px;color:#bdd0df;font-size:12px}
#duber-phone :is(.phone-card,.phone-review,.phone-finance) :is(input,select,textarea) {width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #a4c5dd52;border-radius:10px;background:#030b14;color:#f4f8ff;font:inherit;font-size:16px;touch-action:manipulation}
#duber-phone :is(.phone-card,.phone-review,.phone-finance) input[type="checkbox"] {width:22px;min-height:22px;accent-color:var(--app-accent)}
#duber-phone progress {width:100%;height:9px;accent-color:var(--app-accent)}
#duber-phone summary {min-height:44px;padding:10px 0;color:var(--phone-ink);cursor:pointer;font-size:12px}
#duber-phone .wallet-hero {text-align:left;padding:5px 0 12px}
#duber-phone .wallet-hero h2 {font:750 39px/1.1 Inter,Arial,sans-serif;letter-spacing:-.05em}
#duber-phone .wallet-hero p {font-size:12px;color:var(--phone-muted)}
#duber-phone #wallet-rows>div {border-color:var(--phone-line);background:#b1d8ef08}
#duber-phone #wallet-rows dt {color:var(--phone-muted);font-size:10px}
#duber-phone #wallet-rows dd {color:#eaf5ff}
#duber-phone .bf-hero {text-align:left}
#duber-phone .bf-hero h2 {font:750 30px/1.15 Inter,Arial,sans-serif;letter-spacing:-.04em}
#duber-phone .bf-card {border-color:#6ebdd848;background:linear-gradient(140deg,#0c2231,#09131d);border-radius:17px}
#duber-phone .bf-shot {height:106px}
#duber-phone .bf-price {font-family:Inter,Arial,sans-serif;letter-spacing:-.03em}
#duber-phone .bf-specs li {font-size:11px}
#duber-phone :is(.duber-row,.duber-stats>div) {border-color:var(--phone-line);background:#c1deef08}
#duber-phone .duber-row small {color:#e1afc9}
#duber-phone .duber-row span {font-size:13px;color:#e2edf5}
#duber-phone .duber-stats small {font-size:10px;letter-spacing:.03em;color:#b5c8d8}
#duber-phone .duber-stats strong {font:700 19px/1.2 Inter,Arial,sans-serif;letter-spacing:-.03em}
#duber-phone .duber-dock {flex:none;padding:12px 18px max(14px,env(safe-area-inset-bottom));background:#081420;border-top-color:var(--phone-line)}
#duber-phone :is(#duber-online-note,#bf-note) {font-size:12px;color:#b8c9d5}
#duber-phone :is(#duber-toggle,#bf-buy) {letter-spacing:.02em}

/* A scrolling app has one fixed phone bar; avoid several stacked sticky rows
   consuming most of a short screen. Only its compact tab bar remains sticky. */
#duber-phone .os-head {position:static;margin:0;padding:0 0 8px;border:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}
#duber-phone .os-stats {gap:7px}
#duber-phone .os-stat {height:auto;min-height:62px;padding:10px 6px;text-align:left;border-color:var(--phone-line);background:#cce8ff07;border-radius:12px}
#duber-phone .os-stat small {color:#b1c7d4;font-size:9px;letter-spacing:.05em;line-height:1.3}
#duber-phone .os-stat strong {font:700 18px/1.25 Inter,Arial,sans-serif;letter-spacing:-.04em}
#duber-phone .os-exchange:has(.os-asset-head) .os-stats {grid-template-columns:repeat(2,minmax(0,1fr))}
#duber-phone .os-exchange:has(.os-asset-head) .os-stat:nth-child(n+3) {display:none}
#duber-phone .os-exchange:has(.os-confirm) .os-head {display:none}
#duber-phone .os-tabs {top:-18px;margin:0 -18px;padding:8px 18px;background:#07131bf5;border-block:1px solid #bde3ff15;gap:3px}
#duber-phone .os-tab {min-height:44px;font-size:10px;letter-spacing:.015em;padding:8px;color:#b9c9d4}
#duber-phone .os-tab.is-on {color:var(--app-accent);background:#abdcf410;border-color:#d2edff2e}
#duber-phone .os-legal {font-size:10px;letter-spacing:.025em;color:#b8cbd9;line-height:1.6;background:#8cbdd809;border-color:var(--phone-line)}
#duber-phone :is(.os-note,.os-empty,.os-sub,.os-tx em) {color:#b4c6d3;font-size:12px;letter-spacing:.015em;line-height:1.55}
#duber-phone :is(.os-sub,.os-news small) {font-size:10px}
#duber-phone .os-row {min-height:66px;padding:11px;border-color:var(--phone-line);border-radius:13px;background:#b6def107}
#duber-phone .os-row-mid strong {font-size:14px}
#duber-phone .os-row-mid small {font-size:11px;color:#aec4d3;line-height:1.4}
#duber-phone .os-row-right strong {font-size:14px}
#duber-phone .os-row-right small {font-size:11px}
#duber-phone :is(.os-icon,.os-avatar) {width:38px;height:38px;border-radius:10px}
#duber-phone .os-chart {max-width:none;border-color:#91c7d626;background:linear-gradient(#031316aa,#061b2144);border-radius:13px}
#duber-phone :is(.os-range,.os-chip,.os-back,.os-star,.os-side,.os-step,.os-mode,.os-ticker,.os-act) {min-height:44px;letter-spacing:.02em}
#duber-phone :is(.os-go,.os-cancel) {min-height:48px;font-size:13px;letter-spacing:.025em}
#duber-phone .os-go {background:var(--app-accent);color:#06131b}
#duber-phone .os-go.is-on {background:#9cb7c818;color:#e8f4fd}
#duber-phone .os-go:disabled {background:#8fb0c418;color:#b9c9d4}
#duber-phone .os-side.is-on {background:var(--app-accent);color:#03130c}
#duber-phone .os-input {min-height:44px;font-size:16px;background:#020a12}
#duber-phone :is(.os-trade,.os-confirm,.os-news,.os-tx,.os-alloc,.os-wager) {border-color:var(--phone-line);background:#acd8ef06;border-radius:14px}
#duber-phone .os-confirm {border-color:#80d2b56e;background:#0c2525}
#duber-phone .os-confirm-row small {color:#b4c9d3;font-size:12px}
#duber-phone .os-confirm-row b {font-size:13px}
#duber-phone .os-tx .os-note {grid-column:1/-1;font-size:11px}
#duber-phone .os-asset-head strong {font-size:19px;letter-spacing:-.03em}
#duber-phone .os-rush {height:auto;min-height:51px;flex-wrap:wrap;gap:4px 9px;padding:10px;border-color:#cf8bff66;background:linear-gradient(110deg,#4d16514d,#282c5944);animation:none}
#duber-phone .os-rush b {font:700 12px/1.4 Inter,Arial,sans-serif;letter-spacing:0}
#duber-phone .os-rush span {font-size:10px;line-height:1.4}
#duber-phone .os-rush em {font-size:12px;font-weight:700;color:#e7c6ff}
#duber-phone .os-vibe-note {font-size:11px;color:#d9c4eb}
#duber-phone .os-post {border-color:var(--phone-line);padding:13px 11px;background:#a9d6ed04}
#duber-phone .os-post-top {position:static;height:auto;min-height:0;padding:0;background:none;border:0;box-shadow:none;backdrop-filter:none}
#duber-phone .os-post-text {font-size:14px;line-height:1.55;color:#e5eff7}
#duber-phone .os-who strong {font-size:13px}
#duber-phone .os-who small {color:#b5c7d5;font-size:11px}
#duber-phone .os-post-acts {border-color:var(--phone-line)}
#duber-phone .os-act {font-size:11px;color:#b4c9d9}
#duber-phone .os-act.is-on {color:#ffb5ca}
#duber-phone .os-wager>strong {font-size:15px;line-height:1.4}
#duber-phone .os-wager>small,#duber-phone .os-terms {font-size:12px;color:#b7cbd9;line-height:1.55}
#duber-phone .os-warn {padding:10px;border:1px solid #ff91ab50;border-radius:9px;background:#fd8fa10c;color:#ffc1cf;font-size:12px}

/* Two static live tickers. Existing navigation and touch controls keep their
   positions; no marquee or screen-centre animation competes with driving. */
#market-hud {
 position:fixed;z-index:15;left:var(--drive-edge,14px);top:238px;
 display:grid;gap:6px;width:242px;max-width:30vw;pointer-events:auto;
 font-family:Inter,Arial,sans-serif;
}
#market-hud[hidden],#market-hud [hidden] {display:none!important}
#market-hud button {color:#eef7ff;touch-action:manipulation;font-family:inherit}
#market-hud .market-portfolio {
 display:grid;grid-template-columns:1fr auto;gap:4px 8px;min-height:74px;padding:10px 12px;
 text-align:left;border:1px solid #81aaca69;border-radius:14px;
 background:linear-gradient(140deg,#142b42ec,#071019ec);
 box-shadow:inset 0 1px 0 #dcefff29,0 6px 18px #0004;
}
.market-portfolio strong {font-size:19px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.market-portfolio small {font-size:9px;line-height:1.4;color:#b5c9db}
.market-portfolio .phone-quote-status,.market-portfolio .os-quote-status {padding:2px 0;border:0;background:none;font-size:8px}
.market-portfolio em {font-size:11px;font-style:normal;font-weight:650;font-variant-numeric:tabular-nums;text-align:right;align-self:center}
.market-portfolio>small,.market-portfolio>strong,.market-portfolio>span,.market-portfolio>em {grid-column:1/-1}
.market-portfolio>span {font-size:12px;color:#f4f9ff;font-variant-numeric:tabular-nums}
.market-portfolio>strong {font-size:16px}
.market-portfolio>em {text-align:left}
.market-portfolio [data-tone="up"] {color:var(--os-up)}
.market-portfolio [data-tone="down"] {color:var(--os-down)}
.market-portfolio canvas {width:100%;height:28px;grid-column:1/-1}
.market-symbols {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border:1px solid #81aaca60;border-radius:11px;background:#0b1b2bec}
.market-symbols>small {grid-column:1/-1;text-align:center;color:#a8bfd3;font-size:8px;letter-spacing:.035em;line-height:1.4}
.market-symbols button {flex:1;min-width:0;min-height:44px;display:grid;gap:2px;padding:5px 3px;border:0;border-radius:7px;background:none;text-align:center;font-size:10px;line-height:1.3;font-variant-numeric:tabular-nums}
.market-symbols button strong {font-size:10px}
.market-symbols button em,.market-symbols button small {font-size:9px;font-style:normal}
#market-hud button:focus-visible,.phone-toast:focus-visible {outline:3px solid #d5f2ff;outline-offset:3px}
#market-hud .up {color:var(--os-up)}
#market-hud .down {color:var(--os-down)}
.phone-toast {
 position:fixed;z-index:24;left:var(--drive-edge,14px);bottom:calc(145px + var(--guide-height,0px));
 display:flex;align-items:center;gap:10px;width:300px;max-width:calc(100vw - 28px);min-height:70px;
 padding:11px 13px;text-align:left;border:1px solid #86bcdb78;border-radius:16px;
 background:linear-gradient(135deg,#183147f5,#10121cf5);box-shadow:inset 0 1px 0 #d9f3ff29,0 10px 26px #0005;
 color:#f0f7ff;font:13px/1.4 Inter,Arial,sans-serif;touch-action:manipulation;
}
.phone-toast[hidden] {display:none}
.phone-toast .app-icon {width:42px;height:42px;border-radius:11px}
.phone-toast strong {display:block;font-size:13px}
.phone-toast small {display:block;color:#bfcfdd;font-size:11px}
.phone-toast span {min-width:0}

@media(max-width:600px) and (min-height:521px) {
 #duber-phone {padding:8px}
 #duber-phone[data-app] .duber-device {max-height:calc(100dvh - 16px);width:100%;border-radius:25px}
 #duber-phone .phone-home {padding:20px 20px 16px}
 #duber-phone .app-icon {width:clamp(72px,22vw,88px);height:clamp(72px,22vw,88px)}
 #duber-phone .phone-app-brand .app-icon {width:44px;height:44px}
 #duber-phone .home-grid {gap:17px 5px}
 #duber-phone .home-app span {font-size:13px}
 .phone-brand strong {font-size:30px}
 #market-hud {top:122px;left:auto;right:14px;width:175px;max-width:46vw}
 .market-portfolio canvas {display:none}
 #market-hud .market-portfolio {min-height:55px;padding:8px}
 .market-portfolio strong {font-size:15px}
 .market-symbols button {min-height:44px;font-size:9px}
 .phone-toast {bottom:calc(140px + var(--guide-height,0px));width:270px}
}
@media(max-width:1000px),(max-height:600px) {
 .market-symbols button:nth-of-type(n+4) {display:none}
}
@media(max-width:360px) {
 #duber-phone .phone-home {padding:16px 13px}
 #duber-phone .home-app span {font-size:12px}
 .phone-overview strong {font-size:13px}
 #duber-phone .os-spark {display:none}
 #duber-phone .os-facts {grid-template-columns:repeat(2,minmax(0,1fr))}
 #duber-phone .os-stat strong {font-size:16px}
}
@media(min-height:601px) and (max-height:800px) {
 #duber-phone .phone-home {gap:10px;padding:13px 22px}
 #duber-phone .phone-brand {padding:0}
 #duber-phone .phone-brand strong {font-size:26px}
 #duber-phone .phone-brand small {margin-top:5px;font-size:8px}
 #duber-phone .phone-brand small:first-child {margin:0 0 4px}
 #duber-phone .phone-brand span {margin-top:4px;font-size:8px}
 #duber-phone .home-grid {gap:11px 8px}
 #duber-phone .home-app {gap:5px}
 #duber-phone .app-icon {width:64px;height:64px}
 #duber-phone .phone-app-brand .app-icon {width:44px;height:44px}
 .phone-overview {padding:7px 3px}
 .phone-overview>* {min-height:44px}
 .phone-resume {min-height:44px;padding:10px}
}
@media(max-height:600px) {
 #duber-phone {padding:8px max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left))}
 #duber-phone[data-app] .duber-device {width:min(600px,100%);max-height:calc(100dvh - 16px);border-radius:21px}
 #duber-phone[data-app] .duber-bar {padding:7px 12px}
 #duber-phone :is(.phone-home,.duber-screen,.bluefin-screen,.wallet-screen,.outside-screen,.settings-screen) {padding:12px 16px;gap:10px}
 #duber-phone .phone-home {grid-template-columns:minmax(0,1fr) minmax(160px,.7fr);align-items:start;column-gap:20px}
 #duber-phone .home-top {grid-column:1/-1}
 #duber-phone .phone-brand {display:none}
 #duber-phone .home-grid {grid-column:1;grid-row:2/7;gap:9px 7px}
 #duber-phone .app-icon {width:53px;height:53px}
 #duber-phone .home-app {gap:4px}
 #duber-phone .home-app span {font-size:11px}
 #duber-phone .home-app em {min-height:0;font-size:8px}
 #duber-phone .home-app em:empty {display:none}
 .phone-overview {grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;gap:3px}
 .phone-overview>* {min-height:48px;padding:6px 2px;border:0;border-bottom:1px solid #c9deef20}
 .phone-overview small {font-size:8px}
 .phone-overview strong {font-size:13px}
 .phone-resume {font-size:10px;letter-spacing:.06em;min-height:44px;padding:10px}
 #duber-phone .phone-clock-note,#duber-phone .home-hint {font-size:10px}
 #duber-phone .os-head,#duber-phone .os-tabs {position:static}
 #duber-phone .os-tabs {margin:0;padding:5px 0;background:none}
 #duber-phone .os-stat {min-height:48px;padding:7px}
 #duber-phone .os-stat strong {font-size:16px}
 #duber-phone .duber-dock {padding:8px 16px}
 #duber-phone .duber-dock :is(#duber-toggle,#bf-buy) {min-height:44px}
 #market-hud {top:62px;left:50%;width:215px;max-width:28vw;transform:translateX(-50%);gap:3px}
 #market-hud .market-portfolio {min-height:44px;padding:5px 8px;border-radius:10px;gap:1px 5px}
 .market-portfolio strong {font-size:14px}
 .market-portfolio em {font-size:9px}
 .market-portfolio small {font-size:8px}
 .market-portfolio canvas {display:none}
 .market-symbols {padding:1px}
 .market-symbols button {min-height:44px;padding:3px 1px;font-size:9px}
 .market-symbols button strong {font-size:9px}
 .market-symbols button em,.market-symbols button small {font-size:8px}
 .phone-toast {left:50%;transform:translateX(-50%);bottom:74px;width:280px;min-height:48px;padding:7px 10px;font-size:11px}
 .phone-toast .app-icon {width:34px;height:34px}
 .phone-toast strong {font-size:11px}
 .phone-toast small {font-size:10px}
 .is-driving:has(#duber-card:not([hidden])) #market-hud {top:136px}
}
@media(max-width:480px) and (max-height:600px) {
 #duber-phone .phone-home {display:grid;grid-template-columns:1fr}
 #duber-phone .home-grid {grid-column:1;grid-row:auto}
 #duber-phone .app-icon {width:57px;height:57px}
 .phone-overview {grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(min-width:1900px) and (min-height:900px) {
 #market-hud {top:210px;width:290px;max-width:25vw}
 .market-portfolio strong {font-size:24px}
 .market-portfolio small,.market-symbols button strong {font-size:11px}
 .market-symbols button {min-height:48px}
}
@media(prefers-reduced-motion:reduce) {
 #duber-phone *,#market-hud *, .phone-toast {scroll-behavior:auto;animation:none;transition:none}
}
.phone-reduced-motion #duber-phone *, .phone-reduced-motion #market-hud *, .phone-reduced-motion .phone-toast {scroll-behavior:auto;animation:none;transition:none}
