/* Shared, locally served UI foundations. Existing offline assets remain valid. */
body.loop-unified{--ui-ink:#14223b;--ui-muted:#52627a;--ui-line:#dbe4ef;--ui-blue:#0866e9;--ui-bg:#f5f7fb;--ui-radius:12px;font-family:"Segoe UI",system-ui,-apple-system,sans-serif!important;line-height:1.5}
.loop-unified *{box-sizing:border-box}
.loop-unified :where(button,input,select,textarea){font:inherit}
.loop-unified :where(button,.btn,.loop-btn,.actions>a){min-height:44px;border-radius:8px}
.loop-unified :where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=color]),select,textarea){max-width:100%;min-height:44px;border-radius:8px}
.loop-unified :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #0866e9!important;outline-offset:3px!important;box-shadow:0 0 0 5px white}
.loop-unified :where(main,.shell,.app,.card,.panel,.loop-card,.grid>*){min-width:0}
.loop-unified :where(h1,h2,h3,p,td,dd){overflow-wrap:anywhere}
.loop-unified :where(.card,.panel,.loop-card){border-radius:var(--ui-radius)}
.loop-unified :where(.actions,.top,.topbar,.mpd-nav){flex-wrap:wrap}
.loop-unified :where(.card,.panel,main) img{max-width:100%}
.loop-unified .ui-table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-gutter:stable;border:1px solid var(--ui-line);border-radius:8px;margin-block:12px}
.loop-unified .ui-table-scroll table{width:100%;min-width:600px;border-collapse:collapse}
.loop-unified .ui-table-scroll :where(th,td){padding:12px;text-align:left;vertical-align:top}
.loop-unified .ui-table-scroll th{background:#eef3f9;color:var(--ui-ink)}
.loop-unified .ui-skip{position:fixed;left:12px;top:-100px;z-index:10000;background:white;color:#14223b;padding:12px 18px;border:2px solid #0866e9;border-radius:8px}
.loop-unified .ui-skip:focus{top:12px}
.loop-unified nav a[aria-current=page]{text-decoration-thickness:2px;text-underline-offset:5px;font-weight:700}
body.loop-unified:not(.loop-public):not(.loop-mobile-app){background-color:var(--ui-bg)}
.loop-unified:not(.loop-public):not(.loop-mobile-app) :where(main>header h1,.shell>.hero h1,.mpd-hero h1){font-size:clamp(26px,3vw,36px);line-height:1.2;letter-spacing:-.025em}
.loop-unified.marketplace-detail .mpd-nav{margin-bottom:24px}
.loop-unified.marketplace-detail .mpd-header{padding-bottom:28px}
@media(max-width:720px){
 .loop-unified :where(.shell,.app){padding-inline:12px}
 .loop-unified :where(.two,.three){grid-template-columns:minmax(0,1fr)}
 .loop-unified .ui-table-scroll{margin-inline:0}
 .loop-unified :where(input,select,textarea){font-size:16px}
 .loop-unified :where(.actions,.top,.mpd-nav){gap:10px}
 .loop-unified :where(pre){max-width:100%;overflow:auto}
}
@media(prefers-reduced-motion:reduce){.loop-unified *{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{.loop-unified .ui-skip{display:none}.loop-unified .ui-table-scroll{overflow:visible;border:0}.loop-unified .ui-table-scroll table{min-width:0}}
