/* Home: round, raised badges. Visit: compact beveled action surfaces. */
.app-service-icon {
    border-radius: 50%;
    border: 1px solid #ffffffb3;
    background-image: linear-gradient(135deg, #ffffffb8, #ffffff08 52%, #102a431c);
    box-shadow: inset 2px 2px 3px #ffffffd9, inset -2px -2px 4px #102a431a, 0 4px 0 #102a4312, 0 7px 12px #102a431c;
}
.app-service-icon svg, .app-home-shortcut svg {
    filter: drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 1px #102a4326);
}
.app-service-icon img {
    width: 78%; height: 78%; object-fit: contain;
    filter: drop-shadow(0 2px 1px #102a4326);
}
.portal-native .app-home-shortcut {
    background: transparent;
    border-radius: 20px;
    gap: 10px;
}
.portal-native .app-home-shortcut > svg {
    box-sizing: content-box;
    width: 22px; height: 22px; padding: 12px;
    border-radius: 50%;
    background: linear-gradient(135deg, #fff, var(--app-accent-light, #e6f4f1));
    box-shadow: inset 2px 2px 3px #fff, inset -2px -2px 3px #102a4315, 0 4px 0 #102a4312, 0 6px 10px #102a431a;
}
.portal-native .portal-tool-tile {
    background-image: linear-gradient(135deg, #fff, #f1f7f6);
    box-shadow: inset 1px 1px 0 #fff, inset -1px -1px 2px #102a4310, 0 3px 0 #102a4310, 0 6px 12px #102a430a;
}
#booking-dashboard .dashboard-actions-card .button, [data-job-detail] .job-actions button {
    border-radius: 10px;
    background-image: linear-gradient(135deg, #ffffff38, #ffffff00 55%, #102a431c);
    box-shadow: inset 1px 1px 1px #ffffff99, inset -1px -1px 2px #102a4320, 0 3px 0 #102a4320, 0 5px 10px #102a4312;
}
:is(.app-service-tile, .app-home-shortcut, .portal-tool-tile, #booking-dashboard .dashboard-actions-card .button, [data-job-detail] .job-actions button) {
    position: relative;
    isolation: isolate;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}
:is(.app-service-tile, .app-home-shortcut, .portal-tool-tile, #booking-dashboard .dashboard-actions-card .button, [data-job-detail] .job-actions button):focus-visible {
    outline: 3px solid var(--app-accent, #0f766e);
    outline-offset: 4px;
}
.tool-tap-halo {
    position: absolute; inset: 0; z-index: -1;
    pointer-events: none; border-radius: inherit;
    background: radial-gradient(ellipse, #ffffff80 0%, transparent 70%);
    box-shadow: inset 0 0 0 2px currentColor;
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .app-service-icon, .app-home-shortcut > svg { transition: translate .2s ease, box-shadow .2s ease; }
    .app-service-tile:hover .app-service-icon, .app-home-shortcut:hover > svg { translate: 0 -3px; }
}
@media (prefers-reduced-motion: reduce) {
    .tool-tap-halo { display: none; }
}
:is(.app-home-shortcut, .portal-tool-tile, #booking-dashboard .dashboard-actions-card .button, [data-job-detail] .job-actions button):active {
    box-shadow: inset 2px 2px 5px #102a4329, inset -1px -1px 2px #fff9;
}
