/* OmoSpace original image-generated icon family. See images/icons/manifest.json.
   Legacy ph classes remain an API only; no icon font or external CDN is loaded. */
:is(.ph, .ph-fill, .ph-bold, .omo-icon) {
    display: inline-block;
    width: 1.25em;
    height: 1.25em;
    flex: 0 0 auto;
    vertical-align: -.25em;
    line-height: 1;
    font-style: normal;
    position: relative;
}
:is(.ph, .ph-fill, .ph-bold, .omo-icon)::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: var(--omo-icon-image) center / contain no-repeat;
    transform: rotate(var(--omo-icon-turn, 0deg));
    filter: var(--omo-icon-filter, none);
}
[data-theme="light"] { --omo-icon-filter: contrast(1.15) brightness(.8); }
:is(.btn.primary, .nav-btn.primary, .hero-btn.primary, .auth-btn.primary, .modal-btn.primary, .sidebar-new-session) {
    --omo-icon-filter: none;
}
.ph-arrow-left, .ph-caret-left { --omo-icon-turn: 180deg; }
.ph-arrow-up, .ph-caret-up { --omo-icon-turn: -90deg; }
.ph-caret-down, .omo-turn-down { --omo-icon-turn: 90deg; }
.ph-spinner-gap::before { animation: omo-icon-spin 1.1s linear infinite; }
@keyframes omo-icon-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ph-spinner-gap::before { animation: none; } }
/* Use the actual brand artwork in every page header and navigation shell. */
.floating-brand > .omo-icon, .workspace-brand > .omo-icon, .sidebar-brand > .omo-icon,
.brand-mark > .omo-icon {
    width: 40px !important; height: 40px !important;
    --omo-icon-image: url('../images/logo.png');
    --omo-icon-filter: none;
}
:is(.floating-brand, .workspace-brand, .sidebar-brand, .brand-mark) > .omo-icon::before {
    border-radius: 8px;
}
[data-theme="dark"] :is(.floating-brand, .workspace-brand, .sidebar-brand, .brand-mark) > .omo-icon {
    --omo-icon-image: url('../images/logo-dark.png');
}
.lang-switcher__btn > .omo-icon { width: 24px; height: 24px; }
.theme-toggle :is(.omo-icon, .ph-fill) { width: 24px; height: 24px; }
.hub-nav-item > :is(.ph-fill, .ph-bold), .sidebar-link > :is(.ph-fill, .ph-bold), .workspace-link > :is(.ph-fill, .ph-bold) {
    width: 30px; height: 30px;
}
.dropdown-arrow > .omo-icon { width: 12px; height: 12px; }
.omo-icon[style] { min-width: 18px; min-height: 18px; }
:is(.password-toggle, .pw-toggle) > .omo-icon { width: 22px !important; height: 22px !important; }
.gamemode-arrow.omo-icon { width: 20px !important; height: 20px !important; }
.omo-chevron-down { --omo-icon-image: url('../images/icons/chevron-down.webp'); }
.rating-star:not(.filled) .omo-icon { opacity: .25; filter: grayscale(1); }
.pt-start-emoji > .omo-icon { width: 40px; height: 40px; }
.ph-glass > :is(.ph, .ph-fill, .ph-bold) { width: 80%; height: 80%; }
:is(.btn, .nav-btn, .sidebar-new-session, .messenger-icon) > :is(.ph, .ph-fill, .ph-bold) { min-width: 24px; min-height: 24px; }
.bell-btn > .omo-icon { width: 24px !important; height: 24px !important; }
/* Large icons need reachable navigation even on short laptop/mobile screens. */
body.dashboard-shell .dashboard-sidebar, body.workspace-page .workspace-sidebar {
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: none;
}
body.dashboard-shell .dashboard-sidebar::-webkit-scrollbar,
body.workspace-page .workspace-sidebar::-webkit-scrollbar { display: none; }
.dashboard-shell .sidebar-utilities .sidebar-link { width: 42px; min-height: 42px; padding: 6px; }
.btn-clear > .omo-icon { width: 20px; height: 20px; }
body.dashboard-shell .hub-feed-list:has(> .hub-empty:only-child)::before {
    width: 36px; height: 44px;
    background: url('../images/icons/drop.webp') center / contain no-repeat;
    border-radius: 0;
    transform: none;
    opacity: 1;
}
@media (max-height: 600px) {
    .hub-nav-item > :is(.ph-fill, .ph-bold), .sidebar-link > :is(.ph-fill, .ph-bold), .workspace-link > :is(.ph-fill, .ph-bold) { width: 26px; height: 26px; }
}
.ph-arrow-clockwise, .ph-arrows-clockwise, .ph-spinner-gap, .omo-refresh { --omo-icon-image: url('../images/icons/refresh.webp'); }
.ph-arrow-left, .ph-arrow-up, .ph-arrow-right, .omo-arrow { --omo-icon-image: url('../images/icons/arrow.webp'); }
.ph-arrow-square-out, .omo-external { --omo-icon-image: url('../images/icons/external.webp'); }
.ph-baby, .omo-diaper { --omo-icon-image: url('../images/icons/diaper.webp'); }
.ph-bed, .omo-bed { --omo-icon-image: url('../images/icons/bed.webp'); }
.ph-calendar-check, .omo-calendar { --omo-icon-image: url('../images/icons/calendar.webp'); }
.ph-chart-bar, .omo-chart { --omo-icon-image: url('../images/icons/chart.webp'); }
.ph-chat-circle, .ph-chat-circle-dots, .ph-chat-teardrop-text, .omo-chat { --omo-icon-image: url('../images/icons/chat.webp'); }
.ph-chats-circle, .omo-forum { --omo-icon-image: url('../images/icons/forum.webp'); }
.ph-check-circle, .omo-check { --omo-icon-image: url('../images/icons/check.webp'); }
.ph-circle, .omo-circle { --omo-icon-image: url('../images/icons/circle.webp'); }
.ph-clock, .ph-timer, .omo-timer { --omo-icon-image: url('../images/icons/timer.webp'); }
.ph-coffee, .omo-coffee { --omo-icon-image: url('../images/icons/coffee.webp'); }
.ph-coins, .omo-coins { --omo-icon-image: url('../images/icons/coins.webp'); }
.ph-confetti, .ph-sparkle, .omo-sparkle { --omo-icon-image: url('../images/icons/sparkle.webp'); }
.ph-cookie, .omo-cookie { --omo-icon-image: url('../images/icons/cookie.webp'); }
.ph-crosshair, .omo-crosshair { --omo-icon-image: url('../images/icons/crosshair.webp'); }
.ph-crown, .omo-crown { --omo-icon-image: url('../images/icons/crown.webp'); }
.ph-cup, .omo-cup { --omo-icon-image: url('../images/icons/cup.webp'); }
.ph-cursor-click, .omo-cursor { --omo-icon-image: url('../images/icons/cursor.webp'); }
.ph-drop, .omo-drop { --omo-icon-image: url('../images/icons/drop.webp'); }
.ph-drop-half-bottom, .omo-drop-half { --omo-icon-image: url('../images/icons/drop-half.webp'); }
.ph-drops, .omo-drops { --omo-icon-image: url('../images/icons/drops.webp'); }
.ph-envelope-simple, .omo-mail { --omo-icon-image: url('../images/icons/mail.webp'); }
.ph-fire, .omo-fire { --omo-icon-image: url('../images/icons/fire.webp'); }
.ph-first-aid-kit, .omo-medical { --omo-icon-image: url('../images/icons/medical.webp'); }
.ph-flag, .ph-flag-banner, .omo-flag { --omo-icon-image: url('../images/icons/flag.webp'); }
.ph-fork-knife, .omo-food { --omo-icon-image: url('../images/icons/food.webp'); }
.ph-game-controller, .omo-game-controller { --omo-icon-image: url('../images/icons/game-controller.webp'); }
.ph-gauge, .ph-speedometer, .omo-gauge { --omo-icon-image: url('../images/icons/gauge.webp'); }
.ph-gavel, .omo-gavel { --omo-icon-image: url('../images/icons/gavel.webp'); }
.ph-gear-six, .omo-settings { --omo-icon-image: url('../images/icons/settings.webp'); }
.ph-globe, .ph-globe-hemisphere-west, .omo-globe { --omo-icon-image: url('../images/icons/globe.webp'); }
.ph-hand-palm, .omo-hand { --omo-icon-image: url('../images/icons/hand.webp'); }
.ph-head-circuit, .omo-brain { --omo-icon-image: url('../images/icons/brain.webp'); }
.ph-heart, .omo-heart { --omo-icon-image: url('../images/icons/heart.webp'); }
.ph-heartbeat, .omo-pulse { --omo-icon-image: url('../images/icons/pulse.webp'); }
.ph-hourglass-high, .ph-hourglass-low, .omo-hourglass { --omo-icon-image: url('../images/icons/hourglass.webp'); }
.ph-house, .omo-house { --omo-icon-image: url('../images/icons/house.webp'); }
.ph-image, .omo-image { --omo-icon-image: url('../images/icons/image.webp'); }
.ph-key, .omo-key { --omo-icon-image: url('../images/icons/key.webp'); }
.ph-leaf, .omo-leaf { --omo-icon-image: url('../images/icons/leaf.webp'); }
.ph-lightning, .omo-lightning { --omo-icon-image: url('../images/icons/lightning.webp'); }
.ph-list, .omo-menu { --omo-icon-image: url('../images/icons/menu.webp'); }
.ph-lock, .ph-lock-key, .ph-lock-simple, .omo-lock { --omo-icon-image: url('../images/icons/lock.webp'); }
.ph-lock-key-open, .omo-unlock { --omo-icon-image: url('../images/icons/unlock.webp'); }
.ph-magnifying-glass, .omo-search { --omo-icon-image: url('../images/icons/search.webp'); }
.ph-map-trifold, .omo-map { --omo-icon-image: url('../images/icons/map.webp'); }
.ph-mask-happy, .omo-mask { --omo-icon-image: url('../images/icons/mask.webp'); }
.ph-moon, .omo-moon { --omo-icon-image: url('../images/icons/moon.webp'); }
.ph-paper-plane-tilt, .omo-send { --omo-icon-image: url('../images/icons/send.webp'); }
.ph-pencil, .ph-pencil-simple, .omo-edit { --omo-icon-image: url('../images/icons/edit.webp'); }
.ph-play, .ph-play-circle, .omo-play { --omo-icon-image: url('../images/icons/play.webp'); }
.ph-plus, .omo-plus { --omo-icon-image: url('../images/icons/plus.webp'); }
.ph-poop, .omo-poop { --omo-icon-image: url('../images/icons/poop.webp'); }
.ph-prohibit, .omo-prohibit { --omo-icon-image: url('../images/icons/prohibit.webp'); }
.ph-ranking, .omo-ranking { --omo-icon-image: url('../images/icons/ranking.webp'); }
.ph-robot, .omo-robot { --omo-icon-image: url('../images/icons/robot.webp'); }
.ph-rss, .omo-rss { --omo-icon-image: url('../images/icons/rss.webp'); }
.ph-scales, .omo-scales { --omo-icon-image: url('../images/icons/scales.webp'); }
.ph-scroll, .omo-scroll { --omo-icon-image: url('../images/icons/scroll.webp'); }
.ph-shield-check, .ph-shield-star, .omo-shield { --omo-icon-image: url('../images/icons/shield.webp'); }
.ph-shopping-bag, .omo-bag { --omo-icon-image: url('../images/icons/bag.webp'); }
.ph-shower, .omo-shower { --omo-icon-image: url('../images/icons/shower.webp'); }
.ph-sign-out, .omo-logout { --omo-icon-image: url('../images/icons/logout.webp'); }
.ph-smiley, .omo-smile { --omo-icon-image: url('../images/icons/smile.webp'); }
.ph-smiley-angry, .omo-angry { --omo-icon-image: url('../images/icons/angry.webp'); }
.ph-smiley-meh, .omo-neutral { --omo-icon-image: url('../images/icons/neutral.webp'); }
.ph-smiley-nervous, .omo-nervous { --omo-icon-image: url('../images/icons/nervous.webp'); }
.ph-smiley-wink, .omo-wink { --omo-icon-image: url('../images/icons/wink.webp'); }
.ph-star, .omo-star { --omo-icon-image: url('../images/icons/star.webp'); }
.ph-sun, .omo-sun { --omo-icon-image: url('../images/icons/sun.webp'); }
.ph-swap, .omo-swap { --omo-icon-image: url('../images/icons/swap.webp'); }
.ph-t-shirt, .omo-shirt { --omo-icon-image: url('../images/icons/shirt.webp'); }
.ph-thumbs-up, .omo-thumbs { --omo-icon-image: url('../images/icons/thumbs.webp'); }
.ph-toilet, .omo-toilet { --omo-icon-image: url('../images/icons/toilet.webp'); }
.ph-trash, .omo-trash { --omo-icon-image: url('../images/icons/trash.webp'); }
.ph-trophy, .omo-trophy { --omo-icon-image: url('../images/icons/trophy.webp'); }
.ph-user, .ph-user-circle, .omo-user { --omo-icon-image: url('../images/icons/user.webp'); }
.ph-user-plus, .omo-user-plus { --omo-icon-image: url('../images/icons/user-plus.webp'); }
.ph-users, .ph-users-three, .omo-users { --omo-icon-image: url('../images/icons/users.webp'); }
.ph-video, .omo-video { --omo-icon-image: url('../images/icons/video.webp'); }
.ph-warning, .ph-warning-circle, .ph-warning-octagon, .omo-warning { --omo-icon-image: url('../images/icons/warning.webp'); }
.ph-wifi-high, .omo-wifi { --omo-icon-image: url('../images/icons/wifi.webp'); }
.ph-wind, .omo-wind { --omo-icon-image: url('../images/icons/wind.webp'); }
.ph-wrench, .omo-wrench { --omo-icon-image: url('../images/icons/wrench.webp'); }
.ph-x, .ph-x-circle, .omo-close { --omo-icon-image: url('../images/icons/close.webp'); }
.ph-caret-right, .ph-caret-down, .ph-caret-left, .ph-caret-up, .omo-chevron { --omo-icon-image: url('../images/icons/chevron.webp'); }
.ph-bell, .omo-bell { --omo-icon-image: url('../images/icons/bell.webp'); }
.ph-camera, .omo-camera { --omo-icon-image: url('../images/icons/camera.webp'); }
.ph-eye, .omo-eye { --omo-icon-image: url('../images/icons/eye.webp'); }
.ph-eye-slash, .omo-eye-off { --omo-icon-image: url('../images/icons/eye-off.webp'); }
.ph-info, .omo-info { --omo-icon-image: url('../images/icons/info.webp'); }
