/* Personal device overlay. All coordinates/navigation remain in the existing World. */
.smartphone[hidden] { display:none !important; }
.smartphone { position:fixed; inset:0; z-index:78; display:grid; place-items:center; padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left)); background:rgba(6,12,22,.42); color:#f7fbff; }
body[data-phone-open="true"] > :not(#application):not(.smartphone) { visibility:hidden !important; pointer-events:none !important; }
.smartphone-frame { position:relative; isolation:isolate; display:flex; flex-direction:column; width:min(390px,100%); height:min(780px,calc(100dvh - 24px)); overflow:hidden; border:5px solid #17202c; border-radius:40px; box-shadow:0 24px 90px #0009,inset 0 0 0 1px #ffffff38; background:linear-gradient(145deg,#174e71 0%,#287783 48%,#d3ad74 100%); }
.smartphone-frame[data-wallpaper="night"] { background:linear-gradient(160deg,#102333,#42496c 65%,#927780); }
.smartphone-frame[data-wallpaper="mint"] { background:linear-gradient(140deg,#276d70,#88c4aa); }
.smartphone-wallpaper { position:absolute; z-index:-1; inset:0; width:100%; height:100%; object-fit:cover; filter:brightness(.7); }
.smartphone-statusbar { display:flex; align-items:center; justify-content:space-between; height:30px; flex:none; padding:7px 22px 0; font-size:11px; }
.smartphone-island { width:90px; height:17px; background:#17202c; border-radius:20px; }
.smartphone-header { display:flex; flex:none; align-items:center; justify-content:space-between; padding:4px 8px; gap:8px; }
.smartphone-header h2 { font-size:14px; letter-spacing:.07em; margin:0; text-align:center; }
.smartphone button, .smartphone select { font:inherit; color:inherit; border:1px solid #ffffff30; border-radius:12px; background:#142d4699; min-height:44px; padding:8px 12px; cursor:pointer; }
.smartphone button:focus-visible,.smartphone select:focus-visible { outline:3px solid #ffe9a4; outline-offset:2px; }
.smartphone button:disabled { opacity:.5; cursor:default; }
/* Full Map buttons are invisible 44px hit targets. Phone's general button chrome
   must not paint their wrapper; the icon alone owns the circular visual layer. */
.smartphone .full-map-poi {
  width:44px; height:44px; min-height:44px; padding:0; border:0;
  border-radius:50%; background:transparent; box-shadow:none;
  backdrop-filter:none; -webkit-tap-highlight-color:transparent;
  /* Rasterize the inverse-scaled marker independently of the zoomed map layer. */
  will-change:transform;
}
.smartphone .full-map-poi:focus { outline:none; }
.smartphone .full-map-poi:focus-visible { outline:2px solid #fff2b2; outline-offset:1px; }
.smartphone-header button { font-size:26px; width:44px; padding:0; background:transparent; border:0; }
.smartphone-content { flex:1; min-height:0; overflow:auto; padding:10px 16px; overscroll-behavior:contain; }
@media (prefers-reduced-motion:reduce) { .smartphone *, .smartphone-frame { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
.smartphone-content h3 { font-size:16px; }
.smartphone-content p { line-height:1.5; font-size:13px; }
.smartphone-content select { width:100%; margin:8px 0; background:#203e54; }
.smartphone-clock { font-size:48px; font-weight:300; text-align:center; padding:14px 0 24px; font-variant-numeric:tabular-nums; }
.smartphone-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 6px; }
.smartphone .smartphone-app { border:0; min-height:70px; padding:0; background:transparent; display:flex; flex-direction:column; align-items:center; gap:5px; touch-action:none; user-select:none; }
.smartphone-app-icon { display:grid; place-items:center; width:58px; height:58px; font-size:29px; border-radius:17px; background:linear-gradient(140deg,#fffffff0,#dce9edf0); box-shadow:0 3px 8px #102c4430; }
.smartphone-app-name { font-size:11px; text-shadow:0 1px 4px #000; }
.smartphone .smartphone-empty { visibility:hidden; }
.smartphone[data-state="HOME_EDIT"] .smartphone-empty { visibility:visible; border:1px dashed #ffffff50; border-radius:15px; }
.smartphone-app[data-selected="true"] .smartphone-app-icon { outline:3px solid #ffe9a4; }
.smartphone-dock { position:sticky; bottom:0; z-index:1; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin:20px 0 12px; padding:12px 7px; border-radius:24px; background:#efffff24; backdrop-filter:blur(12px); }
.smartphone-dock .smartphone-app-icon { width:52px; height:52px; }
.smartphone[data-state="HOME_EDIT"] .smartphone-app { cursor:grab; }
.smartphone-actions { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; }
.smartphone-message { flex:none; margin:0; padding:0 16px; font-size:12px; background:#142d4666; line-height:1.5; }
.smartphone-message:not(:empty) { padding:8px 16px; }
.smartphone-footer { display:flex; justify-content:center; padding:6px 0 10px; flex:none; }
.smartphone .smartphone-home-button { width:110px; min-height:36px; font-size:12px; background:#142d4644; }
.smartphone-hint { opacity:.9; font-size:12px; }
.smartphone-student-card { border-radius:22px; padding:20px; color:#153549; background:linear-gradient(135deg,#ffffff,#d7eaf1); text-align:center; }
.smartphone-student-card .smartphone-eyebrow { font-size:10px; letter-spacing:.08em; }
.smartphone-student-avatar { font-size:60px; padding:12px; }
.smartphone-student-card small { font-size:10px; display:block; margin-top:14px; }
.smartphone-badges { display:flex; flex-wrap:wrap; gap:6px; font-size:12px; }
.smartphone-badges span { padding:8px; border-radius:10px; background:#142d4688; }
.smartphone progress { width:100%; accent-color:#ffe9a4; }
.smartphone-album-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.smartphone-album-grid button { padding:0; overflow:hidden; font-size:10px; }
.smartphone-album-grid img { width:100%; aspect-ratio:1; object-fit:cover; display:block; }
.smartphone-photo { display:block; width:100%; max-height:360px; object-fit:contain; border-radius:12px; }
.smartphone-content > button { margin:4px 4px 4px 0; }
.smartphone-empty-state { text-align:center; padding:50px 0 20px; }
.smartphone-page-controls { display:flex; align-items:center; justify-content:center; gap:8px; }
.smartphone-map-tools { font-size:12px; margin-bottom:8px; }
.smartphone-map-history summary { padding:8px; cursor:pointer; }
.smartphone .full-map-panel[data-phone-hosted="true"] { position:static; display:block; padding:0; background:none; backdrop-filter:none; }
.smartphone .full-map-card { width:100%; max-height:none; overflow:visible; border-radius:14px; }
.smartphone .full-map-header { padding:12px; }
.smartphone .full-map-body { width:100%; margin-inline:0; box-sizing:border-box; display:flex; flex-direction:column; padding:0 8px 8px; gap:10px; }
.smartphone .full-map-stage { display:block; max-width:100%; width:100%; }
.smartphone .full-map-surface { width:100%; height:auto; aspect-ratio:1; }
.smartphone .full-map-search { margin:0 8px 8px; }
.smartphone .full-map-search-panel { z-index:2; }
.smartphone .full-map-info { width:100%; box-sizing:border-box; max-height:none; overflow:visible; }
.smartphone .full-map-controls { position:static; display:flex; flex-wrap:wrap; margin-top:8px; }
/* The Phone content is the single vertical scroller. A nested auto-scroller with
   overscroll-behavior:contain swallows Android swipe gestures when unbounded. */
.smartphone-content { overflow-x:hidden; overflow-y:auto; touch-action:pan-y; -webkit-overflow-scrolling:touch; }
.smartphone .view-settings[data-phone-hosted="true"] {
  display:block; position:relative; inset:auto; transform:none;
  width:100%; max-width:none; max-height:none; min-height:0; box-sizing:border-box;
  margin:0; padding:0 0 14px; border:0; border-radius:0; box-shadow:none;
  background:transparent; overflow:visible; overscroll-behavior:auto; touch-action:pan-y;
}
.smartphone .view-settings[data-phone-hosted="true"] .settings2-header {
  top:-10px; padding-inline:2px; border-radius:12px 12px 0 0;
}
/* Existing Quiz / Attendance DOM and server-bound controllers stay unchanged.
   Only their standalone modal chrome is neutralized inside the Phone surface. */
.smartphone .daily-quiz-panel[data-phone-hosted="true"],
.smartphone .attendance-panel[data-phone-hosted="true"] {
  display:block; position:relative; inset:auto; left:auto; top:auto; transform:none;
  width:100%; min-width:0; max-width:none; max-height:none; margin:0;
  padding:12px; box-sizing:border-box; overflow:visible; z-index:auto;
  background:#142d46ed; border-radius:16px; box-shadow:none;
}
.smartphone .daily-quiz-panel[data-phone-hosted="true"] .shop-panel-body,
.smartphone .attendance-panel[data-phone-hosted="true"] .shop-panel-body {
  max-height:none; overflow:visible; overscroll-behavior:contain;
}
.smartphone .daily-quiz-panel[data-phone-hosted="true"] .profile-close,
.smartphone .attendance-panel[data-phone-hosted="true"] .profile-close {
  position:static; flex:none;
}
#phone-toggle { pointer-events:auto; min-width:44px; min-height:44px; border:1px solid #ffffff32; border-radius:13px; color:#f7fbff; background:#172e42df; font-size:20px; cursor:pointer; }
.campus-topbar { grid-template-columns:auto minmax(0,1fr) auto auto; }
@media (pointer:coarse), (max-width:600px) { .smartphone { padding:max(4px,env(safe-area-inset-top)) max(4px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left)); } .smartphone-frame { height:100%; max-height:100%; width:100%; border-width:3px; border-radius:26px; } }
@media (max-height:500px) { .smartphone-frame { border-radius:20px; } .smartphone-clock { font-size:30px; padding:4px; } .smartphone-grid { gap:6px; } .smartphone-statusbar { height:20px; } .smartphone-content { padding-top:0; } }
.smartphone-album-manager { padding:10px; margin-block:8px; border:1px solid #ffffff32; border-radius:12px; overflow-wrap:anywhere; }
.smartphone-album-manager progress { width:100%; }
.smartphone-album-grid button[data-selecting="true"] { border:2px solid #89a7c4; }
.smartphone-album-grid button[aria-pressed="true"] { border-color:#83f2c9; background:#28574e; }
.smartphone-album-grid button[aria-pressed="true"]::before { content:'✓ 선택됨'; display:block; }
.smartphone-album-grid small { display:block; }
/* JSL-A · Jeongseok access on the Student ID screen (game-only; no QR / barcode). */
.smartphone-student-mail { font-size:12px; font-weight:700; }
.smartphone-student-mail[data-verified="true"] { color:#0b6b4c; }
.smartphone-jeongseok-card { border-radius:22px; padding:18px; color:#153549; background:linear-gradient(135deg,#ffffff,#dfe9f6); display:grid; gap:6px; }
.smartphone-jeongseok-card p { margin:0; }
.smartphone-jeongseok-card small { font-size:10px; display:block; margin-top:8px; }
.smartphone-jeongseok-ok { font-weight:800; color:#0b6b4c; }
.smartphone-jeongseok-error { color:#ffd2cc; font-weight:700; }
.smartphone-jeongseok-gate { font-size:13px; }
.smartphone-jeongseok-offer { display:grid; grid-template-columns:auto 1fr; gap:4px 12px; margin:6px 0; font-size:13px; }
.smartphone-jeongseok-offer dt { opacity:.75; }
.smartphone-jeongseok-offer dd { margin:0; font-weight:700; text-align:right; }
.smartphone-jeongseok-tag { position:relative; height:86px; display:flex; align-items:center; justify-content:center; gap:18px; }
.smartphone-jeongseok-tag-card { font-size:40px; transition:transform .5s ease; }
.smartphone-jeongseok-tag-reader { width:44px; height:58px; border-radius:10px; background:#24384a; box-shadow:inset 0 0 0 3px #4d6a82; }
.smartphone-jeongseok-tag[data-state="SCANNING"] .smartphone-jeongseok-tag-card { transform:translateX(22px) rotate(-8deg); animation:jeongseok-tap .7s ease-in-out infinite alternate; }
.smartphone-jeongseok-tag[data-state="SCANNING"] .smartphone-jeongseok-tag-reader { box-shadow:inset 0 0 0 3px #7fc8ff, 0 0 14px #7fc8ff; }
.smartphone-jeongseok-tag:is([data-state="GRANTED"],[data-state="OPENING"],[data-state="READY_TO_ENTER"]) .smartphone-jeongseok-tag-reader { background:#167a4c; box-shadow:inset 0 0 0 3px #7dffb8, 0 0 18px #3dff98; }
@keyframes jeongseok-tap { to { transform:translateX(30px) rotate(-4deg); } }
@media (prefers-reduced-motion: reduce) { .smartphone-jeongseok-tag-card { animation:none !important; transition:none; } }

/* PHONE-MENU-02A · single account-scoped Hub messages view inside the Phone. */
.smartphone .smartphone-app { position:relative; }
.smartphone .smartphone-notification-badge { position:absolute; top:0; right:8px; z-index:2; min-width:18px; padding:2px 5px; color:#132e45; background:#ffe393; border-radius:20px; font-size:11px; }
.smartphone .smartphone-notification-badge[hidden] { display:none; }
.phone-messages { display:grid; gap:10px; min-width:0; }
.phone-messages h3 { margin:0; }
.phone-messages-controls { display:flex; gap:8px; flex-wrap:wrap; align-items:center; justify-content:space-between; }
.phone-messages-unread { font-size:12px; }
.phone-messages-new { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; }
.phone-messages input, .phone-messages textarea { min-width:0; width:100%; box-sizing:border-box; border:1px solid #ffffff55; border-radius:10px; background:#15394e; color:#fff; font:inherit; padding:10px; }
.phone-messages input:focus-visible, .phone-messages textarea:focus-visible { outline:3px solid #ffe9a4; }
.phone-messages-inbox { display:grid; gap:6px; }
.smartphone .phone-messages-inbox-item { display:grid; grid-template-columns:1fr auto; text-align:left; gap:3px; overflow-wrap:anywhere; width:100%; }
.phone-messages-inbox-item small { grid-column:1 / -1; font-size:12px; opacity:.85; }
.phone-messages-count { color:#172d3c; background:#ffe393; border-radius:30px; padding:2px 7px; }
.phone-messages-thread { display:grid; gap:8px; max-height:none; }
.phone-messages-entry { padding:10px; min-width:0; overflow-wrap:anywhere; background:#17374dcc; border-radius:14px; }
.phone-messages-entry.is-mine { background:#24645dcc; margin-left:14px; }
.phone-messages-entry p { margin:0 0 6px; white-space:pre-wrap; }
.phone-messages-entry small { opacity:.75; }
.phone-messages-composer { display:grid; gap:6px; }
.phone-messages-report { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.phone-messages-report select { width:auto; min-width:0; flex:1; }
.phone-messages-notice { margin:0; padding:8px; border-radius:8px; background:#15394e; }
@media(max-width:380px) { .phone-messages-new { grid-template-columns:1fr; } }

/* PHONE-NOTI-01B: compact and accessible mobile notification inbox. */
.phone-notifications { display:grid; gap:14px; padding:6px 2px max(24px,env(safe-area-inset-bottom)); min-width:0; }
.phone-notifications-hero { display:flex; justify-content:space-between; align-items:center; gap:14px; min-width:0; }
.phone-notifications-hero-copy { min-width:0; }
.phone-notifications h3 { margin:0; font-size:19px; line-height:1.3; }
.phone-notifications-summary { margin:5px 0 0; font-size:13px; color:#d8eaf5; }
.phone-notifications-hero-icon { display:grid; place-items:center; min-width:42px; height:42px; border-radius:14px; background:#13334b9e; font-size:24px; }
.phone-notifications-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.smartphone .phone-notifications-filter { min-width:0; min-height:44px; padding:7px 6px; font-size:12px; display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:4px; white-space:nowrap; }
.smartphone .phone-notifications-filter[aria-pressed="true"] { background:#f3dba4; border-color:#ffe8a4; color:#1b2934; font-weight:700; }
.phone-notifications-count { min-width:16px; border-radius:10px; padding:1px 5px; background:#ffffff27; font-size:11px; font-variant-numeric:tabular-nums; }
.smartphone .phone-notifications-filter[aria-pressed="true"] .phone-notifications-count { background:#132b4222; }
.phone-notifications-list { display:grid; gap:8px; }
.phone-notification-item { display:grid; grid-template-columns:40px minmax(0,1fr); gap:8px 10px; padding:12px; border:1px solid #ffffff29; border-radius:16px; background:#102c46d9; min-width:0; }
.phone-notification-item[data-unread="true"] { border-left:3px solid #ffe19e; background:#143851ed; }
.phone-notification-item[data-unread="false"] { opacity:.85; }
.phone-notification-icon { display:grid; place-items:center; border-radius:13px; width:40px; height:40px; background:#ffffff1e; font-size:22px; grid-row:1; }
.phone-notification-copy { min-width:0; grid-column:2; overflow-wrap:anywhere; }
.phone-notification-heading { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.phone-notification-heading strong { font-size:14px; line-height:1.35; }
.phone-notification-unread { display:inline-flex; align-items:center; gap:4px; color:#ffe39c; font-size:11px; font-weight:600; }
.phone-notification-unread:before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.phone-notification-copy p { margin:5px 0 0; font-size:12px; line-height:1.5; color:#dbe9f2; }
.smartphone .phone-notification-action { grid-column:2; justify-self:end; min-height:44px; padding:8px 12px; font-size:13px; background:#235273d9; }
.phone-notifications-empty { display:grid; justify-items:center; text-align:center; gap:8px; padding:24px 12px; border-radius:16px; border:1px dashed #ffffff48; background:#122e4777; }
.phone-notifications-empty-icon { font-size:28px; }
.phone-notifications-empty strong { font-size:14px; }
.phone-notifications-empty p { font-size:12px; line-height:1.5; color:#d6e7f2; margin:0; }
.phone-notifications-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; }
.smartphone .phone-notifications-footer button { min-height:44px; font-size:12px; }
.smartphone .phone-notifications-settings-button { margin-left:auto; }
.phone-notifications-preferences { display:grid; gap:8px; padding:12px; border:1px solid #ffffff33; border-radius:14px; background:#102c46da; }
.phone-notifications-preferences[hidden] { display:none; }
.phone-notifications-setting { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:13px; }
.smartphone .phone-notifications-switch { position:relative; min-height:44px; min-width:74px; padding:8px 10px; border:1px solid #ffffff44; border-radius:30px; font-size:12px; background:#394b5b; }
.smartphone .phone-notifications-switch[aria-checked="true"] { background:#226b5f; border-color:#88f5c9; }
.phone-notifications-hint,.phone-notifications-footnote { margin:0; color:#c6dfed; font-size:11px; line-height:1.5; }
.phone-notifications-error { color:#ffe4ad; margin:0; font-size:12px; }
@media (max-width:365px) {
  .smartphone .phone-notifications-filter { white-space:normal; font-size:11px; }
  .phone-notification-item { padding:10px; }
}
@media (prefers-reduced-motion:reduce) { .phone-notification-item { transition:none; } }

/* NOTI-01B switch affordance and keyboard focus retention. */
.smartphone .phone-notifications-switch { width:82px; text-align:right; padding:8px 11px 8px 31px; }
.smartphone .phone-notifications-switch::before { content:""; position:absolute; top:50%; left:6px; width:18px; height:18px; border-radius:50%; background:#edf5fa; transform:translateY(-50%); box-shadow:0 1px 3px #0005; }
.smartphone .phone-notifications-switch[aria-checked="true"] { text-align:left; padding:8px 29px 8px 11px; }
.smartphone .phone-notifications-switch[aria-checked="true"]::before { left:calc(100% - 24px); background:#dcffe8; }

/* NOTI-01C-A: compact server-verified current activity (not a durable event ledger). */
.phone-notifications-screen-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; background:#102c46a8; border-radius:13px; padding:4px; }
.smartphone .phone-notifications-screen-tab { min-width:0; min-height:44px; border-radius:10px; font-size:13px; }
.smartphone .phone-notifications-screen-tab[aria-pressed="true"] { background:#e9d9b1; color:#172d3c; font-weight:700; }
.phone-notifications-history-controls { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; }
.smartphone .phone-notifications-history-filter,.smartphone .phone-notifications-history-refresh { padding:6px 4px; font-size:11px; min-width:0; min-height:44px; }
.smartphone .phone-notifications-history-filter[aria-pressed="true"] { background:#f3dba4; color:#1b2934; font-weight:700; }
.phone-notifications-history-note { font-size:12px; margin:0; line-height:1.5; color:#d6e7f2; }
.phone-notifications-history-time { display:block; margin-top:6px; font-size:11px; color:#cde0ef; }
@media (max-width:350px) {
  .phone-notifications-history-controls { grid-template-columns:repeat(2,minmax(0,1fr)); }
}


/* INHA OS 0.2.1: original appmarket viewport stays inside Phone's input owner. */
.smartphone .smartphone-content.phone-store-host {
  display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0;
}
.smartphone .phone-store-iframe {
  display:block;width:100%;min-width:0;min-height:0;flex:1;border:0;background:#fafaf7;
}
.smartphone .phone-store-iframe:focus-visible { outline:3px solid #7bd7bc;outline-offset:-3px; }
.smartphone .phone-store-external { display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:10px 16px;border-radius:12px;background:#d9e7f3;color:#193346;font-weight:700;text-decoration:none; }
.smartphone .phone-store-external:focus-visible { outline:3px solid #f8d77b;outline-offset:3px; }

/* PHONE-MOTION-02 phase 1. JS animates only the newly active surface; shell teardown is synchronous. */
.smartphone-frame::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:transparent; transition:backdrop-filter .18s,background .18s; }
.smartphone[data-state="HOME_EDIT"] .smartphone-frame::before { backdrop-filter:blur(10px); background:#10283a4d; }
.smartphone[data-state="HOME_EDIT"] .smartphone-wallpaper { filter:brightness(.58) blur(9px); transform:scale(1.05); }
.smartphone-app-cell { position:relative; min-width:0; }
.smartphone-app-cell > .smartphone-app { width:100%; }
.smartphone[data-state="HOME_EDIT"] .smartphone-app-icon { animation:phone-edit-wiggle .28s ease-in-out infinite alternate; transform-origin:50% 70%; }
.smartphone[data-state="HOME_EDIT"] .smartphone-app-cell:nth-child(even) .smartphone-app-icon { animation-delay:-.16s; animation-direction:alternate-reverse; }
@keyframes phone-edit-wiggle { from { transform:rotate(-3deg) translateY(-1px); } to { transform:rotate(3deg) translateY(1px); } }
.smartphone .smartphone-remove { position:absolute; z-index:3; top:-13px; left:-5px; width:44px; height:44px; min-height:44px; padding:0; border:0; background:transparent; font-size:0; }
.smartphone .smartphone-remove::before { content:'−'; display:grid; place-items:center; width:24px; height:24px; margin:auto; background:#edf3f8; color:#263647; border:1px solid #fff; border-radius:50%; font-size:21px; box-shadow:0 2px 7px #0006; }
.smartphone-hide-confirm { position:sticky; top:0; z-index:5; padding:14px; margin-bottom:14px; border:1px solid #f9dea5; border-radius:16px; background:#153447; box-shadow:0 8px 24px #0007; }
.smartphone-hide-confirm button { margin-right:8px; }
.smartphone-hidden-apps { margin:12px 0; padding:8px; border-radius:12px; background:#142d4688; }
.smartphone-hidden-apps summary { min-height:44px; display:flex; align-items:center; cursor:pointer; }
.smartphone-hidden-apps button { margin:4px; }
.smartphone .smartphone-notification-handle { display:block; min-height:44px; touch-action:none; font-size:12px; }
.smartphone .smartphone-notification-handle[hidden] { display:none; }
.smartphone-statusbar { position:relative; }
.smartphone-statusbar .smartphone-notification-handle { position:absolute; left:50%; top:0; transform:translateX(-50%); width:110px; background:transparent; border:0; padding:13px 0 0; z-index:2; }
.smartphone-content > .smartphone-notification-handle { width:100%; margin:0 0 8px; }
@media (prefers-reduced-motion:reduce) { .smartphone[data-state="HOME_EDIT"] .smartphone-app-icon { animation:none !important; } .smartphone-frame::before { transition:none; } }
