/* FYCOM v1.4.4 — workspace composition · TEST ONLY */
:root{--fy144-gap:clamp(16px,2vw,28px);--fy144-radius:18px;--fy144-line:var(--line,var(--border,rgba(127,142,160,.24)));--fy144-shadow:0 14px 44px rgba(17,25,39,.07);--fy144-green:#80b83b}
/* Header & navigation are distinct, consistently aligned surfaces. */
body .top{padding-inline:clamp(16px,2vw,34px);gap:14px}
body .top .brand{flex-shrink:0}
body .top-right{margin-left:auto;gap:10px}
body .shell{min-width:0}
body .sidebar{padding:clamp(14px,1.6vw,24px);gap:4px}
body .sidebar .side-heading{margin-top:13px;margin-bottom:9px;letter-spacing:.15em;font-size:10px;font-weight:800;opacity:.72}
body .sidebar .side-heading:first-child{margin-top:3px}
body .sidebar .nav{width:100%;min-height:45px;padding:10px 12px;display:flex;align-items:center;gap:11px;border-radius:12px;transition:background .16s ease,border-color .16s ease,transform .16s ease}
body .sidebar .nav .nav-meta{margin-left:auto;font-variant-numeric:tabular-nums}
body .sidebar .nav.active{font-weight:750}
body .sidebar .nav:not(.active):hover{transform:translateX(2px)}
body .sidebar .side-bottom{margin-top:auto;padding-top:18px;line-height:1.5}
/* Page introduction becomes a purposeful first row, not a loose heading. */
body .content{min-width:0;padding:var(--fy144-gap)}
body .content .intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:clamp(22px,2.7vw,36px);padding-bottom:clamp(15px,1.6vw,23px);border-bottom:1px solid var(--fy144-line)}
body .content .intro>div{min-width:0}
body .intro .eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em}
body .intro h1{letter-spacing:-.045em;line-height:1.07;margin:8px 0 10px}
body .intro p{max-width:700px;line-height:1.5}
body .intro #upload-main{flex-shrink:0;min-height:46px;padding-inline:19px;border-radius:13px}
/* Gallery filtering and cards share a recognizable rhythm. */
body #gallery-view .filterbar{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:20px}
body #gallery-view .filterbar .tool{min-height:43px;padding:10px 14px;border-radius:12px}
body #gallery-view .gallery{gap:clamp(14px,1.6vw,22px)}
body :is(.gallery-card,.project-card,.admin-card){border-radius:18px;overflow:hidden;transition:box-shadow .18s ease,transform .18s ease}
body :is(.gallery-card,.project-card):hover{box-shadow:0 15px 36px rgba(15,28,44,.13);transform:translateY(-2px)}
/* Viewer: title, canvas, controls and actions read as a single workflow. */
body .viewer-section{min-width:0}
body .viewer-section .viewer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:17px}
body .viewer-header h2{letter-spacing:-.04em;line-height:1.1;margin:6px 0 9px}
body .viewer-header p{line-height:1.5}
body .viewer-header #back-button{flex-shrink:0;min-height:42px;border-radius:12px}
body .viewer-section .stage{position:relative;overflow:hidden;border-radius:20px;box-shadow:var(--fy144-shadow)}
body .viewer-section>.toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 14px;margin:14px 0 10px;border:1px solid var(--fy144-line);border-radius:16px;box-shadow:var(--fy144-shadow)}
body .viewer-section>.toolbar .toolgroup{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
body .viewer-section>.toolbar .tool{border-radius:11px;min-height:42px}
body #fy-editor-entry-v133{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:16px 18px;margin-block:16px;border-radius:16px}
body #fy-editor-entry-v133 :is(a,button){flex:0 1 auto;min-height:44px;border-radius:12px}
/* Supporting configuration and approval sections are visually subordinate to the 3D stage. */
body .viewer-section :is(.spec-panel,.annotations-panel,#approval-panel,#agreement-panel,.approval-card,.agreement-card){margin-block:16px;border-radius:18px}
body .viewer-section .details-controls{gap:12px 16px;border-radius:16px;margin-block:16px}
body .fycom-exposure-agreement-tools{gap:10px;border-radius:16px}
body .fycom-exposure-agreement-tools .fycom-exposure-control{min-width:0;flex:1 1 225px}
body :is(.content,.viewer-section) :is(input,textarea,select,button,a):focus-visible{outline:2px solid var(--fy144-green);outline-offset:3px}
@media(max-width:900px){body .content{padding:18px}body .content .intro{gap:12px}body .viewer-section>.toolbar{padding:11px}body #fy-editor-entry-v133{padding:13px}}
@media(max-width:620px){body .content{padding:12px}body .content .intro{align-items:flex-start;flex-direction:column}body .content .intro #upload-main{width:100%}body .viewer-section .viewer-header{flex-wrap:wrap}body .viewer-header #back-button{width:100%}body .viewer-section>.toolbar .toolgroup{width:100%}body .viewer-section>.toolbar .tool{flex:1 1 auto}body #fy-editor-entry-v133 :is(a,button){flex:1 1 100%}body .top-right{gap:7px}}
@media(prefers-reduced-motion:reduce){body :is(.sidebar .nav,.gallery-card,.project-card){transition:none!important;transform:none!important}}
