
/* Scoped boxes-only additions. Existing workspace, legal footer and themes stay intact. */
#boxStructureControl{margin-bottom:12px}#boxTinFields{padding:10px 0;border-bottom:1px solid var(--line);margin-bottom:12px}#boxTinFields>label{margin-bottom:8px}#boxTinSource{color:var(--red);font-size:12px}#boxUnfoldControl{flex:0 0 auto;min-width:0;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff);color:var(--ink)}.box-unfold-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.box-unfold-heading label{font-weight:650;text-transform:uppercase;letter-spacing:.06em;font-size:10px}.box-unfold-heading output{font-size:11px;color:var(--muted)}.box-unfold-range{display:flex;align-items:center;gap:12px;font-size:11px}.box-unfold-range input{flex:1;min-width:0;height:26px;margin:0}.box-unfold-range span{flex-shrink:0}#boxUnfoldNote{font-size:10px;line-height:1.35}.presentation #boxUnfoldControl{display:none!important}html[data-theme=dark] #boxUnfoldControl,body[data-theme=dark] #boxUnfoldControl{background:#222c34;color:#dce7ea}html[data-theme=dark] #boxTinSource,body[data-theme=dark] #boxTinSource{color:#61dbcf}@media(max-width:920px){#boxUnfoldControl{padding:5px 8px}.box-unfold-heading output{max-width:72%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#boxUnfoldNote{display:none}.box-unfold-range{gap:8px}.box-unfold-range input{height:30px}}

:root{--issue-text:#a62135;--issue-bg:#fff0f2;--issue-border:#d97282}
html[data-theme=dark]{--issue-text:#ffacb5;--issue-bg:#452b34;--issue-border:#be6375}
.polish-group{display:flex;position:relative;align-items:center;gap:4px;padding:13px 10px 0 0;border-right:1px solid var(--app-border);flex:none;min-width:0}
.polish-group:last-child{border-right:0;padding-right:0}
.polish-caption{position:absolute;left:0;top:-1px;font-size:9px!important;line-height:11px!important;letter-spacing:.085em;text-transform:uppercase;font-weight:650;color:var(--app-muted)}
#appActions,#appRight{gap:10px}#appActions button{min-height:29px;padding:5px 9px;font-size:11px}
#appRight #historyBar{border:0;padding:0}#appRight #historyBar button,#appTheme{min-height:29px;width:30px;font-size:19px}
#appSaveState{display:block!important;padding:0 5px;max-width:135px;white-space:normal;line-height:1.3;border:0;background:none;border-radius:0;cursor:default}
#appToolbar{gap:10px;padding:7px 14px;flex-wrap:nowrap;align-items:center;justify-content:flex-start}
#appToolbar #modelGroup{flex:0 1 320px;min-width:175px;max-width:360px}
#appToolbar #modelGroup .jar-switch{min-width:0;padding:0;border:0;max-width:100%!important;width:100%!important;flex:1}
#appToolbar #presetSelectTop{width:100%;max-width:100%;text-overflow:ellipsis;white-space:nowrap}
#appToolbar #viewsGroup{margin-left:auto}
#appToolbar button{min-height:30px!important;font-size:11px!important;padding:6px 8px!important}
#appToolbar #familyNav button{padding:6px 9px!important}
#appToolbar .toolbar{padding:0;border:0;gap:4px}
#appToolbar .toolbar:not(:has(button:not([class*=client-only]))){margin-left:0!important}
#appToolbar .toolbar:has(.client-only){display:none}
#fullscreen{font-size:18px!important;min-width:32px}
#issueBadge{position:absolute;right:10px;top:34px;z-index:4;min-height:32px;padding:5px 9px;font-weight:750;box-shadow:0 2px 8px #0002}
html[data-theme] #issueBadge,html[data-theme] .has-issues#collectionMessage,html[data-theme] #warnings.has-issues,html[data-theme] .card-issues{background:var(--issue-bg)!important;color:var(--issue-text)!important;border:1px solid var(--issue-border);border-radius:6px;padding:8px;white-space:pre-line}
html[data-theme] #issueBadge:hover{filter:brightness(1.08)}
html[data-theme] .card-issue-badge{color:var(--issue-text)!important;font-weight:750;margin-left:5px}
html[data-theme] #controls .labelcard.has-issues,html[data-theme] #boxStickerList details.has-issues{border-color:var(--issue-border)}
#deliveryMessage{border-left:3px solid var(--app-accent);padding:8px;background:var(--app-hover);color:var(--app-text)!important;font-size:12px}
#collectionMessage{font-size:12px;line-height:1.5;color:var(--app-text)}
.polish-attention{animation:polishAttention 2.2s ease-out}
@keyframes polishAttention{0%,35%{box-shadow:inset 3px 0 var(--app-accent);background:var(--app-hover)}100%{box-shadow:inset 0 0 transparent}}
#designStatus .stats{border:0;background:none!important;padding:4px 0;overflow:visible}
#designStatus .stats-grid{grid-template-columns:1fr 1fr;gap:8px}
#designStatus #warnings{max-height:none;overflow:visible;line-height:1.6}
#designStatus .legend{line-height:1.5}
.presentation #issueBadge,.presentation #designStatus,.presentation .card-issue-badge,.presentation .card-issues,.presentation #warnings,.presentation .stats{display:none!important}
.presentation #projectActions,.presentation #outputActions>button:not(#presentationToggle){display:none!important}
.presentation #outputActions{padding:0;border:0}.presentation #outputActions .polish-caption{display:none}
.presentation #envGroup,.presentation #modelGroup,.presentation #designGroup{display:none!important}
.presentation #appToolbar .toolbar{display:flex!important}
.presentation #appToolbar #viewsGroup{margin-left:0}
.presentation #appToolbar{justify-content:center}
@media(min-width:921px){
 html{height:100%;overflow:hidden}
 body{height:100dvh;overflow:hidden;display:grid;grid-template-rows:56px auto minmax(0,1fr);padding:0 0 var(--polish-footer-height,32px)!important}
 body>header{grid-row:1;min-width:0;height:56px}
 body>#appToolbar{grid-row:2}
 body>main{grid-row:3;height:auto!important;min-height:0;overflow:hidden;display:grid;grid-template-columns:340px minmax(0,1fr)}
 #controls{height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;padding-bottom:22px!important}
 #stage{height:100%;min-height:0;overflow:hidden;padding:8px!important;gap:6px}
 #canvasframe{min-height:0;overflow:hidden}
 #stage.expanded{height:100dvh;padding-bottom:calc(var(--polish-footer-height,32px) + 8px)!important}
 .presentation body{height:100dvh}
 body.presentation>main{display:block}
 body.presentation>#clientNotes{grid-row:2;max-height:70px;overflow:auto}
 body.presentation #stage{min-height:0}
 #stage>#appToolbar{margin:0!important;padding:6px!important}
}
@media(min-width:921px) and (max-width:1270px){
 #appToolbar{flex-wrap:wrap;gap:7px 12px}
 #appToolbar #viewsGroup{margin-left:0}
 #appToolbar #modelGroup{flex-basis:260px}
 #appToolbar #viewerGroup{margin-left:auto}
 header{gap:10px;padding-inline:10px}header #mobileBrand{font-size:16px}header #mobileBrand #packformaIcon{width:28px;height:28px}
 #appActions,#appRight{gap:6px}.polish-group{padding-right:7px}
 #appSaveState{font-size:9px;max-width:98px}
 body>main{grid-template-columns:310px minmax(0,1fr)}
}
@media(max-width:920px){
 #mobileActionMenu .polish-group{padding:15px 0 0;border:0;flex-wrap:wrap;gap:5px}
 #mobileActionMenu #appActions{display:flex;flex-direction:column;align-items:stretch}
 #mobileActionMenu #appActions .polish-group{display:grid;grid-template-columns:1fr 1fr}
 #mobileActionMenu #appActions button{width:100%}
 #mobileActionMenu #appRight{gap:8px;align-items:center}
 #mobileActionMenu #appSaveState{max-width:none;min-width:85px}
 #mobileActionMenu #historyActions,#mobileActionMenu #appearanceActions{min-height:57px}
 #mobileActionMenu #appRight button{min-height:38px;width:38px}
 #issueBadge{top:31px;right:8px;font-size:12px;min-height:34px}
 #warnings.has-issues{max-height:76px;line-height:1.4}
 .presentation #mobileActionMenu #projectActions{display:none!important}
 .presentation #mobileActionMenu #outputActions{display:block;padding:0}
}
@media(prefers-reduced-motion:reduce){.polish-attention{animation:none;outline:1px solid var(--app-accent)}}
#appearanceActions{min-width:66px;justify-content:center}
html[data-theme] #familyNav button[aria-pressed=true],html[data-theme] #familyNav button[aria-pressed=true]:hover,html[data-theme] [data-view][aria-pressed=true],html[data-theme] [data-view][aria-pressed=true]:hover{background:#0b626d!important;color:#fff!important;border-color:#1ba9a7!important;box-shadow:inset 0 -2px #4de0c8}
#fullscreen svg{display:block;width:16px;height:16px}


/* Readable desktop tools; the mobile header keeps its existing dimensions. */
@media(min-width:921px){
 body{grid-template-rows:64px auto minmax(0,1fr)}
 body>header{height:64px;padding:6px 14px}
 .polish-caption{font-size:10px!important;line-height:12px!important;letter-spacing:.06em}
 .polish-group{gap:6px;padding-top:14px}
 #appActions button{font-size:14px;min-height:38px;padding:7px 13px}
 #appActions,#appRight{gap:14px}
 #appRight #historyBar button,#appTheme{width:38px;min-height:38px;font-size:23px}
 #appSaveState{font-size:12px;max-width:145px;line-height:1.35}
 #appearanceActions{min-width:72px}
 #appToolbar{gap:12px;padding:7px 14px}
 #appToolbar button{font-size:14px!important;min-height:38px!important;padding:7px 11px!important}
 #appToolbar #familyNav button{padding:7px 11px!important;font-size:14px!important}
 #appToolbar #presetSelectTop{height:38px;font-size:14px;padding:7px 26px 7px 10px}
 #appToolbar #modelGroup{flex:0 1 300px;min-width:190px;max-width:340px}
 #appToolbar #fullscreen{min-width:38px}
 #fullscreen svg{width:19px;height:19px}
 #stage>.stats{display:block;flex:none;margin:0;padding:10px 12px;border:1px solid var(--app-border);border-radius:8px;background:var(--app-panel);color:var(--app-text)}
 #stage>.stats .stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
 #stage>.stats .stat span{font-size:11px;line-height:1.3}
 #stage>.stats .stat b{font-size:18px;line-height:1.3;margin-top:3px}
 #stage>.stats #warnings{font-size:12px;line-height:1.45;max-height:64px;overflow:auto;margin-top:7px}
 #stage>.stats .legend{font-size:11px;line-height:1.45;margin-top:7px}
 .presentation #stage>.stats,.expanded#stage>.stats{display:none!important}
}
@media(min-width:921px) and (max-width:1399px){
 #appActions button{font-size:13px;padding:7px 10px;min-height:36px}
 #appActions,#appRight{gap:8px}
 #appRight #historyBar button,#appTheme{width:34px;min-height:36px;font-size:22px}
 #appSaveState{font-size:11px;max-width:110px}
 body>header{gap:9px;padding-inline:10px}
 #appToolbar{flex-wrap:wrap;gap:7px 12px}
 #appToolbar button,#appToolbar #familyNav button{font-size:13px!important;min-height:40px!important;padding:7px 10px!important}
 #appToolbar #presetSelectTop{height:36px;font-size:13px}
 #appToolbar #modelGroup{flex-basis:250px;min-width:190px}
 #appToolbar #viewsGroup{margin-left:0}
 #appToolbar #viewerGroup{margin-left:auto}
}


/* Align the existing application menu; mobile dimensions and DOM stay unchanged. */
@media(min-width:921px){
 body>header{padding-inline:20px;gap:14px;align-items:center}
 body>header .polish-group{align-items:center;padding-top:14px}
 body>header .polish-caption{top:0;line-height:12px!important}
 body>header #appActions,body>header #appRight{align-items:center;min-width:0}
 body>header #appRight{padding-right:0}
 #appToolbar{padding-inline:20px}
}
@media(min-width:921px) and (max-width:1270px){
 body{grid-template-rows:auto auto minmax(0,1fr)}
 body>header{height:auto;min-height:64px;flex-wrap:wrap;padding:7px 16px;gap:7px 12px}
 body>header #appActions{flex:1 1 auto;flex-wrap:wrap;gap:8px}
 body>header #appRight{margin-left:auto;justify-content:flex-end;gap:10px}
 body>header #appActions button{font-size:12px;min-height:34px;padding:6px 9px}
 body>header #pfToolSearchShell{width:155px;min-width:145px}
}

@media(min-width:921px){body>header #pfTextOpen span{padding:0;border:0;border-radius:0;font-size:inherit}body>header #mobileBrand{padding:0;border:0;border-radius:0;height:auto}}
