/* FYCOM 3D Viewer 1.4.1 — visual hierarchy, test only; appearance only */
:root{--fy41-green:#85bd40;--fy41-green-pressed:#6f9f32;--fy41-radius:14px;--fy41-radius-lg:20px;--fy41-shadow:0 8px 28px rgba(17,28,42,.055);--fy41-motion:160ms ease}
/* Restrict styling to the original app surface; never touch canvas or iframe internals. */
body .shell{gap:clamp(14px,2vw,24px)}
body .top{gap:16px;padding-inline:clamp(18px,2vw,34px)}
body .top .brand{display:inline-flex;align-items:center;gap:10px;letter-spacing:-.025em}
body .top-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
body .sidebar{border-radius:0 0 var(--fy41-radius-lg) 0}
body .sidebar .side-heading{font-size:10px;letter-spacing:.13em;font-weight:750;opacity:.75}
body .sidebar .nav{min-height:46px;border-radius:12px;transition:background var(--fy41-motion),border-color var(--fy41-motion),transform var(--fy41-motion)}
body .sidebar .nav:hover{transform:translateX(2px)}
body .sidebar .nav.active{font-weight:750}
body :is(.filterbar,.toolbar,.toolgroup){gap:10px;flex-wrap:wrap}
body .filterbar{padding-block:8px 14px}
body :is(.gallery,.admin-list){gap:16px}
body :is(.gallery-card,.project-card,.admin-card){border-radius:var(--fy41-radius-lg);box-shadow:var(--fy41-shadow);transition:box-shadow var(--fy41-motion),transform var(--fy41-motion)}
body :is(.gallery-card,.project-card,.admin-card):hover{box-shadow:0 12px 32px rgba(17,28,42,.10)}
body .viewer-header{display:flex;gap:18px;justify-content:space-between;align-items:center;margin-bottom:14px}
body .viewer-header h2{letter-spacing:-.035em;line-height:1.2}
body .stage{border-radius:var(--fy41-radius-lg);overflow:hidden}
body :is(.annotations-panel,.spec-panel,.approval-card,.agreement-card){border-radius:var(--fy41-radius-lg);box-shadow:var(--fy41-shadow)}
body :is(.spec-head,.admin-heading){gap:16px}
body :is(.spec-head h3,.admin-heading h2){letter-spacing:-.025em}
body :is(.tool,.primary,.subtle,.glass,.nav,.fy-3d-preview-link,.fy-3d-approval-link){min-height:42px;border-radius:12px;transition:background var(--fy41-motion),border-color var(--fy41-motion),box-shadow var(--fy41-motion)}
body :is(.tool,.primary,.subtle,.glass):focus-visible{outline:3px solid var(--fy41-green);outline-offset:2px}
body :is(.primary,.fy-action-v139){font-weight:750}
body :is(.toolbar,.fycom-exposure-agreement-tools){row-gap:10px}
body .fycom-exposure-agreement-tools{padding:14px 0 18px;border-top:1px solid var(--fy-ui-border,#d7e0ea)}
body .fycom-exposure-agreement-tools :is(button,a){min-height:44px}
body :is(#approval-panel,#agreement-panel,.approval-card,.agreement-card) :is(input,textarea,select){min-height:44px;border-radius:11px}
body :is(.admin-panel,.viewer-section){min-width:0}
/* Respect hidden panels and existing functionality: do not modify display of .hidden. */
@media(max-width:820px){body .viewer-header{align-items:flex-start;flex-direction:column}body .viewer-header #back-button{align-self:flex-start}body :is(.filterbar,.toolbar){gap:8px}}
@media(max-width:520px){body .top{padding-inline:12px}body :is(.gallery,.admin-list){gap:12px}body :is(.toolgroup,.filterbar){width:100%}body .fycom-exposure-agreement-tools{gap:10px}}
@media(prefers-reduced-motion:reduce){body .sidebar .nav,body :is(.gallery-card,.project-card,.admin-card),body :is(.tool,.primary,.subtle,.glass){transition:none!important;transform:none!important}}
