:root{--app-bg:#111216;--app-panel:#202126;--app-panel-deep:#17181c;--app-border:#666055;--app-accent:#eac789;--app-text:#fffaf0;--app-muted:#d1cec5;--theme-brand:#45413a;--theme-glow:#303036;--theme-band:#2c2d32;--theme-button-text:#fff;--theme-focus:#f4dba9;--app-width:1120px}
html{height:auto!important;min-height:100%;overflow:auto!important;background:var(--app-bg)!important}
body.polished-app{min-height:100vh!important;min-height:100dvh!important;height:auto!important;margin:0!important;padding:clamp(12px,2.4vw,28px)!important;padding-bottom:max(24px,env(safe-area-inset-bottom))!important;display:block!important;overflow:visible!important;background:radial-gradient(ellipse at top left,var(--theme-glow) 0,transparent 48rem),var(--app-bg)!important;color:var(--app-text);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;line-height:1.55}
body.polished-app *{box-sizing:border-box}body.polished-app .app-container{display:flex!important;flex-direction:column!important;flex:none!important;width:100%!important;max-width:var(--app-width)!important;min-height:0!important;height:auto!important;margin:0 auto!important;padding:0!important;background:transparent!important;border:0!important;gap:16px}
body.polished-app .app-header{width:100%!important;max-width:none!important;margin:0!important;padding:20px!important;background:linear-gradient(135deg,var(--app-panel),var(--app-panel-deep))!important;border:1px solid var(--app-border)!important;border-radius:20px!important;flex-shrink:0;box-shadow:0 18px 50px #0002}
.app-brand-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.app-brand{display:flex;align-items:center;gap:12px;text-decoration:none!important}.app-brand img{width:60px;height:60px;object-fit:contain}.app-brand>span{font-size:25px;letter-spacing:-.04em;font-weight:800;line-height:1.1}.app-brand small{display:block;font-size:10px;letter-spacing:.18em;color:var(--app-muted);margin-top:7px}.app-trademark{font-size:.45em;vertical-align:super;line-height:0;margin-left:.08em}.app-site-link{font-size:12px;color:var(--app-muted)!important;text-decoration:none}body.polished-app .songbook-stats{margin:12px 0 0!important;padding:0!important;font-size:12px!important;color:var(--app-muted)!important;text-align:left!important;background:transparent!important;line-height:1.6!important}.app-show-status{margin-top:4px}.app-show-status a{color:var(--app-accent)!important}body.polished-app #headerNotificationLink{display:inline-flex;gap:5px;align-items:center;color:var(--app-accent);padding:5px 10px;border:1px solid var(--app-border);border-radius:8px;text-decoration:none;margin-top:8px}
.app-nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-top:18px;padding:5px;background:var(--app-panel-deep);border-radius:12px}.app-nav a{text-align:center;font-size:13px;font-weight:700;text-decoration:none;padding:12px 5px;border-radius:8px;white-space:nowrap}.app-nav a[aria-current=page]{background:var(--theme-brand);color:#fff!important;box-shadow:0 2px 10px #0003}.app-nav a:hover{background:var(--theme-band)}.app-extra-nav{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px}.app-extra-nav a{font-size:12px;color:var(--app-muted)!important;text-decoration:none;min-height:32px;display:inline-flex;align-items:center}.app-extra-nav a:hover{color:#fff!important;text-decoration:underline}
body.polished-app :is(.app-card,.browse-card-unified,.results-card,.favorites-section,.kamikaze-card,.share-card,.tip-card,.request-card,.app-card-table){width:100%!important;max-width:none!important;height:auto!important;margin:0!important;padding:20px!important;background:var(--app-panel)!important;border:1px solid var(--app-border)!important;border-radius:18px!important;box-shadow:0 10px 30px #0001;flex:none!important;min-width:0}
body.polished-app .results-section{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;flex:none!important;min-width:0}
body.polished-app :is(.artist-list-header,.static-header,.chat-header-row){min-height:56px;padding:10px!important;background:var(--app-panel-deep)!important;border:1px solid var(--app-border);border-radius:12px!important;margin-bottom:12px!important;gap:10px}
body.polished-app :is(.header-title,.artist-header-text){font-size:15px!important;line-height:1.45;overflow-wrap:anywhere;min-width:0}body.polished-app :is(.scrollable-list-container,.scrollable-artist-container,.scrollable-fav-container){flex:none!important;min-height:180px!important;height:auto!important;max-height:65vh!important;overflow-y:auto!important;background:var(--app-panel-deep)!important;border:1px solid var(--app-border)!important;border-radius:12px!important;scrollbar-color:var(--app-border) var(--app-panel-deep)}
body.polished-app :is(.song-item,.artist-item,.fav-song-item){padding:14px 12px!important;min-height:52px;gap:12px!important;border-bottom-color:var(--app-border)!important;font-size:14px!important}body.polished-app :is(.song-item,.artist-item,.fav-song-item):hover{background:var(--theme-band)}body.polished-app .song-item>span{white-space:normal!important;overflow-wrap:anywhere}body.polished-app .fav-song-title,body.polished-app .fav-song-artist{white-space:normal!important;overflow-wrap:anywhere}
body.polished-app :is(.btn,.nav-btn,.home-icon-btn,.request-btn,.fav-btn,.sort-chip,.fav-tab-btn,.browse-tab,.alpha-btn){min-height:44px!important;border-radius:10px!important;font-family:inherit!important;cursor:pointer}body.polished-app :is(.btn,.nav-btn,.home-icon-btn,.request-btn){background:var(--theme-brand)!important;border:1px solid var(--app-border)!important;color:#fff!important;font-size:14px!important;font-weight:700!important;box-shadow:none!important}body.polished-app :is(.btn,.nav-btn,.request-btn):hover{background:var(--theme-brand)!important}body.polished-app .fav-btn{min-width:44px;flex-shrink:0;background:transparent!important}
body.polished-app input:not([type=button]):not([type=submit]):not([type=hidden]):not([type=checkbox]):not([type=radio]),body.polished-app select,body.polished-app textarea{font-family:inherit!important;font-size:16px!important;min-height:46px!important;padding:11px 12px!important;border:1px solid var(--app-border)!important;border-radius:10px!important;background:var(--app-panel-deep)!important;color:#fff!important;max-width:100%;min-width:0}body.polished-app input::placeholder,body.polished-app textarea::placeholder{color:var(--app-muted)!important}body.polished-app :focus-visible{outline:3px solid var(--theme-focus)!important;outline-offset:3px!important}
body.polished-app .search-input-group{max-width:760px!important;gap:10px!important;margin:16px auto 0!important}body.polished-app .search-input-group input[type=text]{min-width:0!important;flex:1}body.polished-app .browse-hero-card{padding:0!important;overflow:hidden}body.polished-app .btn-browse-hero{padding:20px!important;min-height:86px;background:transparent!important;color:#fff;border:0;width:100%;border-radius:18px!important}body.polished-app .browse-hero-title{font-size:17px!important}body.polished-app .browse-hero-sub{font-size:13px!important;color:var(--app-muted)!important}body.polished-app .nav-buttons-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important;gap:12px!important}body.polished-app .btn-calendar-tile{min-height:92px!important;background:var(--theme-band)!important}body.polished-app .btn-calendar-tile .label{font-size:13px!important}
body.polished-app .browse-tabs{width:100%;margin:0!important;gap:8px!important}body.polished-app .browse-tab{max-width:none!important;flex:1;padding:12px 6px!important;font-size:12px!important}body.polished-app .alpha-bar{display:flex;flex-wrap:wrap;gap:5px!important;justify-content:flex-start}body.polished-app .alpha-btn{min-width:32px;padding:8px!important}body.polished-app .control-row{flex-wrap:wrap!important;gap:10px!important}body.polished-app .control-row select{flex:1;min-width:140px}body.polished-app :is(.legend-box,.tip-message-box,.pwa-tip-box,.tip-message){padding:14px!important;background:var(--app-panel-deep)!important;border:1px solid var(--app-border)!important;border-radius:12px!important;font-size:13px!important;line-height:1.6!important;margin-top:14px!important}
body.polished-app .chat-box{height:clamp(280px,50vh,600px)!important;border:1px solid var(--app-border)!important;border-radius:12px!important;padding:14px!important;background:var(--app-panel-deep)!important}body.polished-app .chat-message{border-radius:12px!important;padding:12px!important}body.polished-app .chat-input-row{gap:8px;flex-wrap:wrap}body.polished-app .chat-input-row>*{min-width:0;max-width:100%}body.polished-app .notification-card{border-radius:12px!important;padding:16px!important}body.polished-app .payment-grid{gap:20px!important}body.polished-app .qr-frame{padding:14px!important;background:#fff!important;border-radius:16px!important}body.polished-app .qr-image{max-width:100%;height:auto}
body.polished-app .table-container{overflow-x:auto!important;border-radius:12px!important;border:1px solid var(--app-border)!important}body.polished-app table{width:100%!important;max-width:100%;border-collapse:collapse}body.polished-app th,body.polished-app td{font-family:inherit;font-size:14px;padding:12px 10px!important;overflow-wrap:anywhere}body.polished-app .browse-footer{width:100%!important;max-width:var(--app-width)!important;position:static!important;height:auto!important;min-height:0!important;max-height:none!important;margin:24px auto 0!important;padding:20px!important;background:transparent!important;border:0!important;text-align:center!important;flex:none!important}body.polished-app .browse-footer img{width:72px!important;height:72px!important;max-height:72px!important;object-fit:contain;display:block;margin:0 auto 10px!important}body.polished-app .browse-footer .rules{font-size:12px!important;color:var(--app-muted)!important}
@media(max-width:600px){body.polished-app{padding:10px!important}body.polished-app .app-container{gap:12px}body.polished-app .app-header{padding:16px!important;border-radius:16px!important}.app-brand>span{font-size:23px}.app-brand img{width:48px;height:48px}.app-site-link{font-size:11px}.app-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.app-extra-nav{gap:4px 12px}body.polished-app :is(.app-card,.browse-card-unified,.results-card,.favorites-section,.kamikaze-card,.share-card,.tip-card,.request-card,.app-card-table){padding:14px!important;border-radius:16px!important}body.polished-app .browse-hero-card{padding:0!important}body.polished-app th,body.polished-app td{padding:8px 5px!important;font-size:12px}body.polished-app .search-input-group{gap:6px!important}body.polished-app .static-header{flex-wrap:wrap}body.polished-app .browse-footer{padding:16px!important}}
@media(min-width:900px){body.polished-app.app-home .app-container{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:start}body.polished-app.app-home .app-header,body.polished-app.app-home #offlineBanner,body.polished-app.app-home .app-container>.app-card:first-of-type,body.polished-app.app-home .app-container>.app-card:last-of-type{grid-column:1/-1}body.polished-app .payment-grid{max-width:740px;margin:0 auto}body.polished-app .kamikaze-card,body.polished-app .share-card{padding:32px!important}body.polished-app .request-card form{max-width:740px;margin:0 auto}}
@media(prefers-reduced-motion:reduce){body.polished-app *, body.polished-app *::before,body.polished-app *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

body.polished-app .browse-hero-content{display:flex!important;align-items:center;gap:14px;width:100%;text-align:left}body.polished-app .browse-hero-text{display:grid;gap:3px;min-width:0}body.polished-app .browse-hero-arrow{color:var(--app-accent)!important;margin-left:auto;font-size:24px}body.polished-app .btn-browse-hero{display:flex!important;align-items:center;gap:14px;text-align:left}body.polished-app .browse-hero-title{text-transform:none!important}body.polished-app .browse-hero-icon{font-size:26px!important;flex-shrink:0}
body.polished-app .nav-buttons-grid{display:grid!important}body.polished-app .btn-calendar-tile{width:100%!important;min-width:0!important}.polished-app .btn-calendar-tile .label{white-space:normal!important;overflow-wrap:anywhere}

html{margin:0!important;padding:0!important;max-height:none!important;box-sizing:border-box!important;scrollbar-gutter:stable}body.polished-app{max-height:none!important}
body.polished-app :is(.detail-section,.form-card){width:100%!important;max-width:none!important;margin:0!important;padding:20px!important;background:var(--app-panel)!important;border:1px solid var(--app-border)!important;border-radius:18px!important;flex:none!important;min-width:0;overflow:visible!important}body.polished-app .scrollable-detail-container{flex:none!important;height:auto!important;max-height:65vh!important;overflow-y:auto!important;border:1px solid var(--app-border)!important;border-radius:12px!important;background:var(--app-panel-deep)!important}body.polished-app .form-card form{max-width:740px;margin:0 auto}body.polished-app .chat-header-row{flex-wrap:wrap}body.polished-app .chat-header-row>div{min-width:0;max-width:100%;flex-wrap:wrap}@media(max-width:600px){body.polished-app :is(.detail-section,.form-card){padding:14px!important}}

body.polished-app .captcha-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}body.polished-app .captcha-row img{max-width:100%;height:auto;border-radius:10px}body.polished-app .app-help{font-size:13px;color:var(--app-muted);line-height:1.6}body.polished-app .captcha-input{width:140px!important}body.polished-app .request-card form{max-width:740px;margin:0 auto}

.app-site-link{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.app-site-link img{width:32px;height:32px;object-fit:contain}@media(max-width:400px){.app-site-link img{width:26px;height:26px}.app-brand>span{font-size:21px}.app-brand{gap:8px}.app-brand img{width:44px;height:44px}.app-site-link{gap:4px;font-size:10px}}
/* Give page titles their own row on narrow phones. */
@media (max-width: 480px) {
  body.polished-app .request-header { flex-wrap: wrap !important; gap: 10px !important; }
  body.polished-app .request-header .header-title-text { order: 3; flex: 0 0 100% !important; max-width: none !important; text-align: left !important; white-space: normal !important; }
  body.polished-app .artist-list-header { flex-wrap: wrap !important; gap: 8px !important; }
  body.polished-app .artist-list-header .header-title { order: 3; flex: 0 0 100% !important; max-width: none !important; white-space: normal !important; overflow-wrap: anywhere; }
}

/* Extra links stay visible on desktop and collapse on phones/tablets. */
.app-more-menu > summary { display: none; }
.app-more-menu:not([open]) > .app-extra-nav { display: flex; }
@media (max-width: 768px) {
  .app-more-menu { margin-top: 12px; }
  .app-more-menu > summary { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--app-border); border-radius: 10px; color: #fff; background: var(--theme-band); font-size: 14px; font-weight: 700; cursor: pointer; list-style: none; }
  .app-more-menu > summary::-webkit-details-marker { display: none; }
  .app-more-menu > summary:focus-visible { outline: 2px solid var(--app-accent); outline-offset: 3px; }
  .app-more-menu:not([open]) > .app-extra-nav { display: none; }
  .app-more-menu[open] > .app-extra-nav { display: grid; grid-template-columns: 1fr; gap: 4px; padding: 8px; border: 1px solid var(--app-border); border-radius: 12px; background: var(--app-panel-deep); }
  .app-more-menu .app-extra-nav a { min-height: 44px; padding: 0 10px; font-size: 14px; }
}

/* Mobile app shell: stationary compact header and a separate content viewport. */
.app-content { display: contents; }
.app-menu-panel { display: contents; }
.app-mobile-info { display: none; }
.app-more-menu:not([open]) > .app-menu-panel { display: contents; }
@media (max-width:768px) {
 html { height:100%!important; min-height:0!important; overflow:hidden!important; scrollbar-gutter:auto; }
 body.polished-app { height:100vh!important; height:100dvh!important; min-height:0!important; max-height:100dvh!important; overflow:hidden!important; padding: max(6px,env(safe-area-inset-top)) 6px max(6px,env(safe-area-inset-bottom))!important; }
 body.polished-app .app-container { height:100%!important; max-height:100%!important; min-height:0!important; gap:8px!important; overflow:visible!important; }
 body.polished-app .app-header { position:relative; z-index:20; padding:10px!important; border-radius:12px!important; flex:0 0 auto!important; }
 .app-brand-row { min-height:38px; padding-right:88px; }
 .app-brand { gap:8px; min-width:0; }
 .app-brand img { width:36px!important; height:36px!important; }
 .app-brand>span { font-size:19px!important; }
 .app-brand small { font-size:8px; letter-spacing:.12em; margin-top:4px; }
 .app-site-link { display:none; }
 body.polished-app .songbook-stats { margin:0!important; }
 .songbook-stats>span,.songbook-stats>.app-show-status { display:none; }
 body.polished-app #headerNotificationLink { margin-top:5px; padding:3px 8px; }
 .app-more-menu { margin:0; }
 .app-more-menu>summary { position:absolute; right:10px; top:8px; padding:0 10px; min-height:44px; }
 .app-more-menu:not([open])>.app-menu-panel { display:none; }
 .app-more-menu[open]>.app-menu-panel { display:block; position:absolute; top:calc(100% + 4px); left:0; right:0; max-height:calc(100dvh - 110px); overflow-y:auto; overscroll-behavior:contain; padding:12px; background:var(--app-panel); border:1px solid var(--app-border); border-radius:12px; box-shadow:0 12px 35px #0008; }
 .app-mobile-info { display:grid; gap:6px; font-size:12px; color:var(--app-muted); }
 .app-menu-panel .app-nav { margin-top:12px; grid-template-columns:repeat(3,minmax(0,1fr)); }
 .app-menu-panel .app-extra-nav { display:grid!important; grid-template-columns:1fr 1fr; gap:4px; margin-top:8px; }
 .app-menu-panel .app-extra-nav a { min-height:44px; padding:6px; white-space:normal; }
 body.polished-app .app-content { display:flex; flex-direction:column; gap:12px; flex:1 1 0; min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:0 2px 12px; scroll-padding:12px; }
 body.polished-app .browse-footer { display:none!important; }
 body.polished-app :is(.scrollable-list-container,.scrollable-artist-container,.scrollable-fav-container,.scrollable-detail-container) { min-height:100px!important; max-height:45dvh!important; }
 body.polished-app .chat-box { height:clamp(150px,38dvh,420px)!important; }
}

/* Keep songbook details visible; use a simple, explicitly dismissible menu. */
.app-menu-toggle { display:none; }
@media (max-width:768px) {
  .app-brand-row { padding-right:46px; gap:6px; }
  .app-brand { flex:1 1 auto; }
  .app-brand small { letter-spacing:.07em; }
  .app-site-link { display:inline-flex; flex:0 0 auto; font-size:10px!important; gap:3px; }
  .app-site-link img { width:22px!important; height:22px!important; }
  body.polished-app .songbook-stats { margin:6px 0 0!important; font-size:11px!important; line-height:1.5!important; }
  .songbook-stats>span { display:block; }
  .songbook-stats>.app-show-status { display:block; margin-top:3px; overflow-wrap:anywhere; }
  .app-menu-toggle { display:inline-flex; position:absolute; top:8px; right:6px; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; border-radius:8px; background:transparent; color:var(--app-text); font-family:inherit; font-size:25px; cursor:pointer; touch-action:manipulation; }
  .app-menu-toggle:hover,.app-menu-toggle[aria-expanded=true] { background:var(--app-border); }
  .app-more-menu[open]>.app-menu-panel { max-height:calc(100dvh - 170px); padding:6px; }
  .app-menu-panel .app-nav,.app-menu-panel .app-extra-nav { display:flex!important; flex-direction:column; gap:0; padding:0; margin:0; border:0; border-radius:0; background:transparent; }
  .app-menu-panel .app-nav a,.app-menu-panel .app-extra-nav a { display:flex; align-items:center; text-align:left; width:100%; min-height:44px; padding:10px 12px; font-size:14px; line-height:1.4; border-radius:6px; white-space:normal; }
  .app-menu-panel .app-extra-nav { border-top:1px solid var(--app-border); margin-top:4px; padding-top:4px; }
}
@media (max-width:350px) {
  .app-brand img { width:30px!important; height:30px!important; }
  .app-brand>span { font-size:17px!important; }
  .app-brand { gap:5px; }
  .app-brand small { font-size:7px; }
  .app-site-link { font-size:9px!important; }
  .app-site-link img { width:18px!important; height:18px!important; }
}

/* Compact letter strip and readable filters without truncating venue names. */
@media (max-width:768px) {
 body.polished-app { padding-top:calc(env(safe-area-inset-top,0px) + 12px)!important; }
 body.polished-app .alpha-container { min-width:0; width:100%; }
 body.polished-app .alpha-bar { flex-wrap:nowrap!important; min-width:0; overflow-x:auto; overflow-y:hidden; gap:4px!important; padding-bottom:4px; overscroll-behavior-x:contain; }
 body.polished-app .alpha-btn { flex:0 0 36px; display:flex; align-items:center; justify-content:center; padding:0!important; min-height:44px!important; height:44px; line-height:1; }
 body.polished-app .control-row { display:grid!important; grid-template-columns:minmax(0,1fr) 44px; align-items:center; gap:6px!important; }
 body.polished-app .control-row select { width:100%!important; min-width:0!important; max-width:100%; grid-column:1; font-size:14px!important; padding:8px!important; min-height:44px!important; text-overflow:clip!important; }
 body.polished-app .control-row>span { grid-column:1/-1; }
 body.polished-app .control-row>.icon-btn { grid-column:2; grid-row:1; padding:0!important; width:44px; }
 body.polished-app .filter-bar { display:grid!important; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px!important; }
 body.polished-app .filter-select { flex:none; width:100%!important; min-width:0!important; font-size:14px!important; padding:8px!important; min-height:44px!important; text-overflow:clip!important; }
 body.polished-app #filter-location { grid-column:1/-1; }
 body.polished-app .filter-bar>.home-icon-btn { display:none; }
 body.polished-app .calendar-table :is(.date-col,.location-col,.location-col a) { white-space:normal!important; overflow:visible!important; text-overflow:clip!important; overflow-wrap:anywhere!important; }
 body.polished-app .calendar-table :is(.date-col,.location-col) { vertical-align:top; }
 body.polished-app .calendar-table .location-col a { display:inline!important; }
}
@media (max-width:768px) and (display-mode:standalone) {
 body.polished-app { padding-top:calc(env(safe-area-inset-top,0px) + 24px)!important; }
}
body.polished-app .songbook-stats { text-align:center!important; }
.app-filter-location-label { display:none; }
@media(max-width:768px) {
 body.polished-app .control-row>span { display:none; }
 body.polished-app .app-filter-location-label:not([hidden]) { display:block; grid-column:1/-1; font-size:12px; line-height:1.5; overflow-wrap:anywhere; color:var(--app-muted); }
}

/* Remove redundant Home controls; the brand link always returns home. */
body.polished-app button[title="Home"],body.polished-app .chat-header-row>a[href="index.php"] { display:none!important; }
body.polished-app .header-actions-left:has(>button[title="Home"]:only-child) { display:none; }
/* Kamikaze choices use the same artist-first hierarchy as search results. */
body.polished-app .kamikaze-table thead tr:nth-child(2) { display:none; }
body.polished-app .kamikaze-table tbody tr { display:block; padding:12px; border-bottom:1px solid var(--app-border); }
body.polished-app .kamikaze-table tbody td { display:block; width:100%!important; text-align:left!important; border:0!important; padding:2px 0!important; white-space:normal!important; overflow-wrap:anywhere; }
body.polished-app .kamikaze-table tbody .artist-col { font-size:17px!important; font-weight:700; line-height:1.4!important; }
body.polished-app .kamikaze-table tbody .artist-col+td { font-size:14px!important; color:var(--app-muted)!important; line-height:1.5!important; }
@media(max-width:768px) {
 body.polished-app .browse-tabs { display:flex!important; flex-wrap:nowrap!important; gap:4px!important; }
 body.polished-app .browse-tab { flex:1 1 0; min-width:0; padding:10px 3px!important; font-size:11px!important; line-height:1.2; white-space:nowrap!important; }
 body.polished-app .app-content>.app-card:has(.chat-box) { padding:7px!important; }
 body.polished-app .chat-box { padding:6px!important; }
 body.polished-app .chat-message { padding:8px!important; }
 body.polished-app .chat-header-row { padding:7px!important; gap:6px; }
 body.polished-app #search-container { width:100%!important; min-width:0; }
 body.polished-app #song-search-input { display:block; width:100%!important; max-width:none!important; }
 body.polished-app .request-card { padding:10px!important; }
 body.polished-app .request-header { flex-wrap:nowrap!important; gap:6px!important; margin-bottom:6px!important; }
 body.polished-app .request-header .header-title-text { order:0; flex:1 1 auto!important; max-width:none!important; font-size:13px!important; text-align:left!important; white-space:nowrap!important; letter-spacing:0; }
 body.polished-app .request-header .header-left-btns,body.polished-app .request-header .header-right-btns { flex:0 0 auto; gap:4px; }
 body.polished-app .request-header .icon-btn { width:36px; min-width:36px; padding:0!important; }
 body.polished-app .request-header .tipjar-header-btn { font-size:11px!important; padding:5px!important; }
 body.polished-app .request-card .form-group { margin-bottom:4px!important; }
 body.polished-app .request-card .form-group label { font-size:12px!important; line-height:1.3; margin-bottom:2px!important; }
 body.polished-app .request-card .form-control { min-height:44px!important; padding:8px 10px!important; }
 body.polished-app .request-card .captcha-row { gap:6px; }
 body.polished-app .request-card .captcha-row img { width:152px; height:48px; }
 body.polished-app .request-card .app-help { font-size:11px; line-height:1.4; margin:6px 0; }
}
@media(max-width:768px){body.polished-app .control-row{grid-template-columns:minmax(0,1fr)!important;}} @media(max-width:350px){body.polished-app .request-header .header-title-text{font-size:12px!important;}}

/* High-contrast header details and full-width striped song choices. */
body.polished-app .songbook-stats,body.polished-app .app-show-status,body.polished-app .app-show-status a { color:#fff!important; }
body.polished-app .kamikaze-table,body.polished-app .kamikaze-table thead,body.polished-app .kamikaze-table tbody { display:block; width:100%!important; }
body.polished-app .kamikaze-table thead tr:first-child,body.polished-app .kamikaze-table .kamikaze-title-row { display:block; width:100%; }
body.polished-app .kamikaze-table tbody tr { width:100%; background:var(--app-panel-deep); }
body.polished-app .kamikaze-table tbody tr:nth-child(even) { background:var(--theme-band); }
body.polished-app .kamikaze-table tbody td { background:transparent!important; }
@media(max-width:768px) {
 body.polished-app .control-row:has(select[name="sub_type"]) { grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important; }
 body.polished-app .control-row:has(select[name="sub_type"]) select { grid-column:auto; padding:8px 5px!important; font-size:13px!important; }
 body.polished-app.app-home .nav-buttons-grid { grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:8px!important; }
 body.polished-app.app-home .btn-calendar-tile { min-height:68px!important; padding:8px 4px!important; gap:4px!important; }
 body.polished-app.app-home .btn-calendar-tile .icon { font-size:22px!important; }
 body.polished-app.app-home .btn-calendar-tile .label { font-size:11px!important; }

}
body.polished-app .app-content>.table-container:has(>.kamikaze-table){flex:none!important;height:auto!important;min-height:0!important;}

body.polished-app .app-menu-dj-link { display:none; }
.app-mobile-schedule-title { display:block; margin:0; padding:12px 6px; text-align:center; font-size:17px; line-height:1.4; color:#fff; background:transparent; border:0; }
@media(max-width:768px) {
 .app-site-link { display:none!important; }
 .app-brand-row { padding-right:46px; }
 body.polished-app .app-menu-panel .app-menu-dj-link { display:flex; gap:10px; align-items:center; }
 .app-menu-dj-link img { width:28px; height:28px; object-fit:contain; }
 body.polished-app .app-content>.app-card:has(.filter-bar) { padding:7px!important; }
 body.polished-app .filter-bar { grid-template-columns:minmax(0,.85fr) minmax(0,.85fr) minmax(0,1.3fr); gap:4px!important; }
 body.polished-app .filter-bar .filter-select { font-size:12px!important; padding:6px 3px!important; min-height:44px!important; }
 body.polished-app #filter-location { grid-column:auto; }
 body.polished-app .app-card-table { padding:4px!important; }
 .app-mobile-schedule-title { display:block; margin:0; padding:10px 3px; text-align:center; font-size:15px; line-height:1.4; color:#fff; }
 body.polished-app .calendar-table { display:table!important; width:max-content!important; min-width:100%; max-width:none!important; table-layout:auto!important; }
 body.polished-app .calendar-table colgroup { display:none; }
 body.polished-app .calendar-table thead { display:table-header-group!important; }
 body.polished-app .calendar-table tbody { display:table-row-group!important; }
 body.polished-app .calendar-table .calendar-sub-header,body.polished-app .calendar-table .show-row { display:table-row!important; }
 body.polished-app .calendar-table :is(td,th) { display:table-cell!important; padding:9px 5px!important; position:static!important; white-space:nowrap!important; font-size:12px!important; border-bottom:1px solid var(--app-border); }
 body.polished-app .calendar-table .calendar-sub-header th { text-align:left; font-size:11px!important; color:var(--app-muted); }
 body.polished-app .calendar-table :is(.date-col,.location-col,.location-col a) { white-space:nowrap!important; overflow:visible!important; text-overflow:clip!important; }
 body.polished-app .calendar-table :is(td strong,td a) { font-size:12px!important; line-height:1.4!important; }
 body.polished-app .calendar-table .show-row:nth-child(odd) td { background:var(--app-panel-deep); }
 body.polished-app .calendar-table .show-row:nth-child(even) td { background:var(--theme-band); }
 body.polished-app .calendar-table .show-row .time-col::before { content:none!important; }
 body.polished-app .app-card-table>.table-container { overflow-x:auto!important; width:100%; }
}
@media(max-width:768px){body.polished-app .calendar-table .show-row.hidden{display:none!important;}}

/* Artist and genre details share compact cards, centered headings and song rows. */
body.polished-app .app-detail-panel { padding:10px!important; }
body.polished-app .app-detail-header { display:grid!important; grid-template-columns:44px minmax(0,1fr) 44px!important; align-items:center; min-height:48px; padding:4px!important; gap:4px!important; margin-bottom:8px!important; }
body.polished-app .app-detail-header .header-actions-left { grid-column:1; grid-row:1; display:flex; margin:0; }
body.polished-app .app-detail-header :is(.header-title,.artist-header-text) { grid-column:2!important; grid-row:1; order:0!important; flex:none!important; width:100%!important; max-width:none!important; text-align:center!important; font-size:14px!important; line-height:1.35!important; white-space:normal!important; overflow:visible!important; text-overflow:clip!important; margin:0!important; padding:0!important; }
body.polished-app .app-detail-header::after { content:''; grid-column:3; grid-row:1; width:44px; }
body.polished-app .app-detail-panel :is(.scrollable-detail-container,.scrollable-list-container) { padding:0!important; margin:0!important; }
body.polished-app .app-detail-panel .song-list { list-style:none; padding:0; margin:0; }
body.polished-app .app-detail-panel .detail-song-item { display:flex!important; align-items:center; justify-content:space-between; width:100%; min-height:52px; padding:8px!important; gap:8px!important; border-bottom:1px solid var(--app-border); background:var(--app-panel-deep); }
body.polished-app .app-detail-panel .detail-song-item:nth-child(even) { background:var(--theme-band); }
body.polished-app .app-detail-panel .detail-song-info { display:flex; flex-direction:column; flex:1 1 auto; min-width:0; gap:2px; }
body.polished-app .app-detail-panel .row-artist-name { font-size:15px!important; font-weight:700; line-height:1.35!important; white-space:normal!important; overflow:visible!important; overflow-wrap:anywhere; }
body.polished-app .app-detail-panel .row-song-title { font-size:13px!important; line-height:1.4!important; white-space:normal!important; overflow:visible!important; overflow-wrap:anywhere; }
body.polished-app .app-detail-panel :is(.heart-btn,.fav-btn) { flex:0 0 44px; width:44px; min-height:44px; }
body.polished-app .app-detail-panel .legend-box { padding:8px!important; margin-top:8px!important; font-size:11px!important; }
@media(max-width:768px) { body.polished-app .app-detail-panel { padding:7px!important; } }
.app-portrait-notice[hidden]{display:none!important;} .app-portrait-notice:not([hidden]){position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:24px;text-align:center;background:var(--app-bg);color:#fff;} .app-portrait-notice img{width:64px;height:64px;object-fit:contain;} .app-portrait-notice strong{font-size:20px;} .app-portrait-notice span{font-size:14px;color:var(--app-muted);}

/* Match Kamikaze's density to the two-line detail rows. */
body.polished-app .kamikaze-table tbody tr { display:flex; flex-direction:column; justify-content:center; min-height:52px; padding:8px; }
body.polished-app .kamikaze-table tbody .artist-col { font-size:15px!important; line-height:1.35!important; }
body.polished-app .kamikaze-table tbody .artist-col+td { font-size:13px!important; line-height:1.4!important; }
body.polished-app .kamikaze-table tbody td { padding:0!important; }
body.polished-app .kamikaze-table tbody .artist-col+td { margin-top:2px; }
/* Directional affordances remain part of the alphabet card. */
.app-alpha-viewport { position:relative; flex:1 1 auto; min-width:0; }
.app-alpha-viewport::before,.app-alpha-viewport::after { content:''; position:absolute; top:0; bottom:4px; width:18px; z-index:1; pointer-events:none; opacity:0; }
.app-alpha-viewport::before { left:0; background:linear-gradient(to right,var(--app-panel),transparent); }
.app-alpha-viewport::after { right:0; background:linear-gradient(to left,var(--app-panel),transparent); }
.app-alpha-viewport[data-left=true]::before,.app-alpha-viewport[data-right=true]::after { opacity:1; }
.app-alpha-arrow { display:none; }
@media(max-width:768px) {
 body.polished-app .app-content { padding-bottom:2px; }
 body.polished-app .app-content>:is(.results-section,.app-detail-panel,.favorites-section,.app-card-table) { display:flex!important; flex-direction:column; flex:1 1 0!important; min-height:220px!important; }
 body.polished-app .app-content :is(.scrollable-detail-container,.scrollable-list-container,.scrollable-artist-container,.scrollable-fav-container) { flex:1 1 0!important; min-height:100px!important; height:0!important; max-height:none!important; overflow-y:auto!important; }
 body.polished-app .app-content>:is(.results-section,.app-detail-panel,.favorites-section,.app-card-table)>:not(.scrollable-detail-container):not(.scrollable-list-container):not(.scrollable-artist-container):not(.scrollable-fav-container):not(.table-container) { flex-shrink:0; }
 body.polished-app .app-card-table>.table-container { flex:1 1 0!important; min-height:100px; overflow-y:auto!important; }
 body.polished-app .app-content>.table-container:has(>.kamikaze-table) { display:flex; flex-direction:column; flex:1 1 0!important; height:auto!important; min-height:180px!important; }
 body.polished-app .kamikaze-table { flex:1 1 0; height:0!important; min-height:100px; overflow-y:auto; }
 body.polished-app .kamikaze-table thead { position:sticky; top:0; z-index:1; }
 body.polished-app .app-content>:is(.kamikaze-card,.share-card,.tip-card,.request-card) { flex:1 0 auto!important; }
 body.polished-app .app-content>.app-card:has(#chatBox),body.polished-app .app-content>.app-card:has(#notificationInbox) { display:flex; flex-direction:column; flex:1 1 auto!important; min-height:400px; }
 body.polished-app .chat-container-wrapper { display:flex; flex-direction:column; flex:1 1 0; min-height:150px; }
 body.polished-app #chatBox { flex:1 1 0; height:0!important; min-height:150px; }
 body.polished-app .chat-input-group { flex-shrink:0; }
 body.polished-app.app-home .app-content>.app-card:last-child { flex:1 0 auto!important; }
 .app-alpha-arrow { display:flex; align-items:center; justify-content:center; flex:0 0 36px; width:36px; min-height:44px; padding:0; border:1px solid var(--app-border); border-radius:8px; background:var(--theme-band); color:#fff; font-size:26px; cursor:pointer; touch-action:manipulation; }
 .app-alpha-arrow:disabled { opacity:.3; cursor:default; }
 .alpha-container[data-overflow=false]>.app-alpha-arrow { display:none; }
}
@media(max-width:768px){body.polished-app #notificationInbox{flex:1 1 0;min-height:150px;overflow-y:auto;}}
@media(max-width:768px){body.polished-app .app-alpha-viewport .alpha-bar{scrollbar-width:none;}body.polished-app .app-alpha-viewport .alpha-bar::-webkit-scrollbar{display:none;}}

/* A recognizable Home control and more legible single-line header details. */
.app-header-home { display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; margin-left:auto; border:1px solid var(--app-border); border-radius:10px; color:#fff!important; background:var(--theme-band); text-decoration:none; }
.app-header-home:hover { background:var(--app-border); }
.app-header-home svg { display:block; }
.app-brand small { font-size:12px; }
.app-show-compact { display:none; }
body.polished-app .songbook-stats { font-size:13px!important; }
@media(max-width:768px) {
 .app-brand-row { padding-right:94px!important; }
 .app-header-home { position:absolute; top:8px; right:52px; margin:0; }
 .app-brand small { font-size:11px!important; letter-spacing:.06em; margin-top:4px; }
 body.polished-app .songbook-stats { font-size:13px!important; line-height:1.6!important; }
 .songbook-stats>span,.songbook-stats>.app-show-status { white-space:nowrap!important; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; }
 .songbook-stats>span::-webkit-scrollbar,.songbook-stats>.app-show-status::-webkit-scrollbar { display:none; }
 .app-show-full { display:none; }
 .app-show-compact { display:inline; }
 .app-show-status a { white-space:nowrap; }
}
@media(max-width:350px) {
 .app-brand small { font-size:10px!important; }
 body.polished-app .songbook-stats { font-size:12px!important; }
}
@media(max-width:768px){body.polished-app .songbook-stats>.app-show-status{text-align:left!important;}.app-show-compact{display:inline-block;min-width:100%;text-align:center;}}

/* Unboxed Home icon and a generous, recognizable Back control. */
.app-header-home,.app-header-home:hover { border:0; background:transparent; }
/* Keep menu content inside the visible screen and compact the SE shortcuts. */
@media(max-width:768px){
 body.polished-app .app-more-menu[open]>.app-menu-panel{padding:4px!important;max-height:var(--app-menu-available,calc(100dvh - 170px))!important;overflow-y:auto!important;--app-menu-safe-bottom:env(safe-area-inset-bottom,0px)}
 body.polished-app .app-menu-panel :is(.app-nav a,.app-extra-nav a){min-height:40px;padding:6px 8px;font-size:13px}
 body.polished-app .app-theme-control{gap:4px;margin-top:6px;padding-top:6px}
 body.polished-app .app-theme-control select{min-height:44px!important;font-size:13px!important;padding:6px 8px!important}
 body.polished-app.app-home .nav-buttons-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:4px!important}
 body.polished-app.app-home .btn-calendar-tile{min-height:52px!important;height:52px!important;padding:5px 1px!important;gap:3px!important}
 body.polished-app.app-home .btn-calendar-tile .icon{font-size:20px!important;margin-bottom:0!important}
 body.polished-app.app-home .btn-calendar-tile .label{font-size:8px!important;letter-spacing:0;white-space:nowrap}
 body.polished-app.app-home .app-content>.app-card:last-child{flex:1 1 0!important;min-height:72px!important;padding:8px!important}
}
/* The title and filters stay outside the scrolling rows; the columns stick. */
body.polished-app .calendar-table thead{position:sticky!important;top:0;z-index:3;background:var(--theme-brand)}
body.polished-app .calendar-table thead th{background:var(--theme-brand)!important;box-shadow:0 1px 0 var(--app-border)}
.app-header-home:hover { color:var(--app-accent)!important; }
body.polished-app .app-detail-header { grid-template-columns:76px minmax(0,1fr) 76px!important; }
body.polished-app .app-detail-header::after { width:76px; }
body.polished-app .app-detail-header button[title="Go Back"] { display:inline-flex; align-items:center; justify-content:center; gap:5px; flex:0 0 76px; width:76px; min-width:76px; min-height:44px; padding:6px!important; font-size:13px!important; }
body.polished-app .app-detail-header button[title="Go Back"] svg { flex-shrink:0; }

body.polished-app .results-section.app-detail-panel{background:var(--app-panel)!important;border:1px solid var(--app-border)!important;border-radius:18px!important}body.polished-app .app-detail-panel .artist-text-wrapper{margin-right:0!important}body.polished-app .app-detail-panel .artist-list{list-style:none;padding:0;margin:0}body.polished-app .app-detail-panel .scrollable-artist-container{margin:0!important;padding:0!important}

/* Center Browse labels within their existing touch targets. */
body.polished-app .browse-tab{display:flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;}

body.polished-app .favorites-backup-card h1{font-size:20px;margin:0 0 10px}body.polished-app .favorites-backup-card h2{font-size:15px;margin:18px 0 8px}body.polished-app .favorites-backup-card p,body.polished-app .favorites-backup-card label{font-size:13px;line-height:1.5}body.polished-app .favorites-backup-card input[type=file]{display:block;width:100%;margin:8px 0;font-size:13px}.backup-actions{display:flex;flex-wrap:wrap;gap:8px}.favorites-backup-card button:disabled{opacity:.5;cursor:default}.favorites-backup-card button[hidden]{display:none!important}.backup-note{color:var(--app-muted)}

body.polished-app .favorites-backup-card a{color:var(--app-accent)!important;}

/* Compact primary navigation and a remembered tools disclosure. */
body.polished-app .app-menu-panel .app-nav{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px!important;margin:8px 0!important;padding:0!important;background:transparent!important}
body.polished-app .app-menu-panel .app-nav a{display:flex!important;align-items:center;justify-content:center;text-align:center;width:auto;min-height:44px;padding:8px 4px!important;border:1px solid var(--app-border);background:var(--theme-brand);border-radius:10px;white-space:nowrap;font-size:13px}
body.polished-app .app-extra-features{border-top:1px solid var(--app-border);margin-top:8px}
body.polished-app .app-extra-features summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:6px 8px;list-style:none;cursor:pointer;font-size:13px;font-weight:700;color:var(--app-text)}
body.polished-app .app-extra-features summary::-webkit-details-marker{display:none}
body.polished-app .app-extra-features summary::after{content:'⌄';font-size:20px}
body.polished-app .app-extra-features[open] summary::after{content:'⌃'}
body.polished-app .app-extra-features:not([open])>.app-extra-nav{display:none!important}
body.polished-app .app-extra-features>.app-extra-nav{margin:0!important;padding:0!important;border:0!important}
body.polished-app .app-menu-panel>.app-menu-dj-link{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 8px;font-size:13px;text-decoration:none}
@media(max-width:768px){body.polished-app .app-menu-panel .app-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

body.polished-app .app-menu-panel .app-nav a{flex-direction:column;gap:4px;min-height:60px;font-size:12px}body.polished-app .app-nav-icon{flex-shrink:0;}

/* Keep the installed mobile shell anchored when returning from an external site. */
@media(max-width:768px){
 html{overscroll-behavior:none!important;}
 body.polished-app{position:fixed!important;inset:0!important;width:100%!important;box-sizing:border-box!important;overscroll-behavior:none!important;}
 body.polished-app .calendar-table .calendar-sub-header :is(.date-col,.location-col){text-align:center!important;}
 body.polished-app .app-menu-panel .app-nav{gap:4px!important;margin:2px 0 4px!important;}
 body.polished-app .app-menu-panel .app-nav a{min-height:52px!important;padding:4px 2px!important;gap:2px!important;}
 body.polished-app .app-nav-icon{width:18px;height:18px;}
 body.polished-app .app-extra-features summary{min-height:40px;padding:4px 7px;}
 body.polished-app .app-menu-panel>.app-menu-dj-link{min-height:40px;padding:4px 7px;}
 body.polished-app .app-theme-control{gap:3px!important;margin-top:4px!important;padding-top:4px!important;}
 body.polished-app .app-theme-control select{min-height:40px!important;height:40px;padding:4px 7px!important;}
 body.polished-app .app-theme-control span{display:block;min-height:14px;padding:0 2px 2px;line-height:1.25;}
}

body.polished-app .calendar-table .calendar-sub-header :is(.date-col,.location-col){text-align:center!important;}
@media(min-width:769px){
 body.polished-app .app-mobile-schedule-title{padding:15px 8px;font-size:20px;}
 body.polished-app .app-menu-panel>.app-menu-dj-link{display:none!important;}
}
