/* UI-only overrides. Artwork and approved logo are not recolored. */
.professional [hidden]{display:none!important}
.professional :is(button,input,select){accent-color:#202020}
.professional .section-title{min-height:44px;display:flex;align-items:center;justify-content:space-between;padding:8px 4px;font-size:11px;letter-spacing:.04em;cursor:pointer}
.professional .section-title::after{content:'−';font-size:23px;line-height:28px;min-width:32px;text-align:center;color:#333;transform:none}
.professional .collapsed>.section-title::after{content:'+';transform:none}
.professional .section-title:hover{background:#f4f4f4}
.professional .section-title:focus-visible{outline:2px solid #222;outline-offset:2px}
.professional #panel .section{gap:12px}
.professional #panel :is(label,.section-title){color:#444}
.professional .notice{border-color:#aaa;color:#222;background:#fff}
.professional .notice .notice-icon{color:#333}
.professional #panel summary{min-height:44px;padding:10px 4px;cursor:pointer;line-height:24px}
.professional #panel summary::marker{font-size:16px;color:#444}
.professional .size-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}
.professional .size-buttons button,.professional #silhouette-picker{border:1px solid #ccc;border-radius:6px;background:#fff;color:#333;min-height:44px;padding:8px;font-size:12px}
.professional .size-buttons button[aria-pressed=true]{background:#222;color:#fff;border-color:#222}
.professional #silhouette-picker{width:100%;text-align:left;white-space:normal}
.professional #tile-orientation .tile-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.professional #tile-orientation button{padding:6px 3px;min-height:44px;font-size:11px;white-space:nowrap;overflow-wrap:normal}
/* The legacy .tile-options flex row must not put these two groups side by side. */
.professional #tile-panel>.tile-options{display:flex;flex-direction:column;flex-wrap:nowrap;gap:16px;width:100%;min-width:0}
.professional #tile-panel>.tile-options>label{display:block;flex:none;width:100%;min-width:0}
.professional #tile-panel>.tile-options .size-buttons{grid-template-columns:repeat(2,minmax(0,1fr));margin:8px 0 0}
.professional #tile-panel>.tile-options .size-buttons button{min-width:0;white-space:nowrap}
.professional #tile-orientation{width:100%;min-width:0}
.professional #tile-orientation .tile-tabs{margin:8px 0 0}
.professional #tile-orientation button[aria-pressed=true]{background:#222;border-color:#222;color:#fff}
.professional :is(#btn-svg,#btn-jpg,#mobile-properties){color:#333;border-color:#ccc}
.professional .mode-seg .active{background:#222;color:white}
.workspace-dialog{border:1px solid #ddd;border-radius:14px;background:#fff;color:#222;box-shadow:0 24px 90px #0003;padding:28px;width:min(480px,calc(100vw - 32px));max-height:90dvh;overflow:auto}
.workspace-dialog::backdrop{background:#20202066;backdrop-filter:blur(4px)}
.workspace-dialog h2{font-size:20px;line-height:1.35;margin:0 0 20px;font-weight:650}
.workspace-dialog p{line-height:1.6;overflow-wrap:anywhere}
.workspace-dialog button{min-height:44px;border:1px solid #ccc;border-radius:7px;background:white;color:#222;padding:10px 16px;cursor:pointer;font:inherit}
.workspace-dialog button:disabled{opacity:.45;cursor:default}
.workspace-dialog :is(button,input):focus-visible{outline:3px solid #555;outline-offset:2px}
#workspace-error>button,.workspace-dialog footer button:last-child{background:#222;color:white;border-color:#222}
#workspace-error>button{min-width:100px;margin-top:14px}
#workspace-busy{text-align:center;pointer-events:auto}
#workspace-busy::backdrop{background:#f4f4f4aa}
.processing-spinner{width:32px;height:32px;border:3px solid #ddd;border-top-color:#222;border-radius:50%;margin:4px auto 24px;animation:workspace-spin 1s linear infinite}
@keyframes workspace-spin{to{transform:rotate(360deg)}}
#silhouette-library{width:min(900px,calc(100vw - 40px));padding:24px}
#silhouette-search{width:100%;box-sizing:border-box;min-height:46px;border:1px solid #bbb;border-radius:7px;padding:12px;font:inherit;margin-bottom:18px}
.library-body{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;min-height:250px}
.library-categories{display:flex;flex-direction:column;gap:4px}
.library-categories button{text-align:left;border-color:transparent;padding:9px 12px}
.library-categories button[aria-pressed=true]{background:#eee;border-color:#aaa;font-weight:650}
.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:max-content;gap:12px;align-content:start;overflow:auto;max-height:52dvh;padding:4px}
.library-grid .silhouette-card{padding:8px;min-width:0;display:flex;flex-direction:column;gap:6px;text-align:center;align-items:center;font-size:12px}
.silhouette-card :is(canvas,img){width:100%;height:auto;aspect-ratio:8/5;object-fit:contain;flex:none;background:#fafafa;border-radius:4px}
.library-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px;flex:0 0 auto}
.library-tabs button[aria-pressed=true]{background:#222;color:#fff;border-color:#222}
.library-more,.library-grid>p{grid-column:1/-1}
.professional #properties-photo{width:100%;min-height:44px;background:#fff;color:#222;border:1px solid #ccc;border-radius:6px}
.professional .start-presets{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.silhouette-card[aria-pressed=true]{outline:2px solid #222;outline-offset:0;background:#f0f0f0}
.silhouette-card small{font-size:10px;line-height:1.4}
.workspace-dialog footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #ddd;margin-top:20px;padding-top:18px}
@media(prefers-reduced-motion:reduce){.processing-spinner{animation:none}}
/* Mobile sheet: explicit bounds, no desktop centering or capped card height. */
@media(max-width:600px){
 html:has(#silhouette-library[open]){overflow:hidden;overscroll-behavior:none}
 #silhouette-library{position:fixed;inset:0;top:var(--library-top,0px);bottom:auto;width:100%;max-width:100%;min-width:0;height:100vh;height:var(--library-height,100dvh);max-height:none;margin:0;transform:none;box-sizing:border-box;border:0;border-radius:0;overflow:hidden;padding:20px 20px 0}
 #silhouette-library *{box-sizing:border-box;min-width:0;max-width:100%}
 #silhouette-library[open]{display:flex;flex-direction:column}
 #silhouette-library>h2{font-size:18px}
 #silhouette-library>h2:focus-visible{outline:2px solid #777;outline-offset:3px}
 #silhouette-library :is(input,select,textarea){font-size:16px}
 #silhouette-library>h2,#silhouette-library>#silhouette-search{flex:0 0 auto}
 #silhouette-library .library-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;min-height:0;overflow:hidden}
 #silhouette-library .library-categories{flex:0 0 auto;flex-direction:row;flex-wrap:nowrap;width:100%;gap:4px;padding:3px;overflow-x:auto;overscroll-behavior:contain}
 #silhouette-library .library-categories button{flex:0 0 auto;font-size:12px;padding:6px 10px}
 #silhouette-library .library-grid{grid-template-columns:repeat(2,minmax(0,1fr));flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 #silhouette-library>footer{position:static;flex:0 0 auto;margin-top:12px;padding:16px 0 max(16px,env(safe-area-inset-bottom));background:white}
}

/* Project home and the single, shared source-selection flow. */
.professional .wordmark{border:0;background:transparent;padding:0;border-radius:4px}
.professional .wordmark:hover{background:transparent}
.professional.home-view #app,.professional.source-chooser #app{grid-template-columns:minmax(0,1fr)}
.professional.home-view :is(#workflow,#panel,#mobile-properties,#workspace-top,#canvas-sheet,#canvas-toolbar),
.professional.source-chooser :is(#workflow,#panel,#mobile-properties,#workspace-top,#canvas-sheet,#canvas-toolbar){display:none!important}
.professional.home-view #workspace-start,.professional.source-chooser #workspace-start{display:block}
.professional.home-view #canvas-viewport,.professional.source-chooser #canvas-viewport{padding:clamp(24px,5vw,72px);overflow:auto}
.professional #workspace-start{width:min(100%,980px);margin:0 auto;padding:0;text-align:left}
.professional #workspace-start>h2{margin:0 0 28px;font-size:clamp(26px,3vw,40px);letter-spacing:-.04em}
.source-choice-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.professional #workspace-start .source-choice-card{box-sizing:border-box;width:100%;min-height:190px;padding:28px;border:1px solid #d4d4d4;border-radius:12px;background:#fff;color:#202020;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;text-decoration:none;gap:10px}
.professional #workspace-start #drop.source-choice-card{display:flex;border:1px solid #d4d4d4;background:#fff;color:#202020;border-radius:12px;padding:28px;text-align:left}
.professional #workspace-start .source-choice-card:hover{background:#f5f5f5;border-color:#9a9a9a}
.professional #workspace-start .source-choice-card strong{font-size:17px;line-height:1.35;color:#202020}
.professional #workspace-start .source-choice-card small{font-size:12px;line-height:1.55;color:#747474}
.source-choice-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:14px;border:1px solid #d2d2d2;border-radius:10px;background:#f5f5f5;font-size:23px;font-weight:500}
#continue-project{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:38px;padding:18px 20px;border:1px solid #d8d8d8;border-radius:10px;background:#fff}
#continue-project[hidden]{display:none}
#continue-project-button{display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 20px;border:1px solid #222;border-radius:7px;background:#222;color:#fff}
#continue-project-button span{color:inherit}
#source-choice-cancel{display:block;margin:22px 0 0 auto;min-height:44px;padding:9px 16px;border:1px solid #cfcfcf;border-radius:7px;background:#fff}
#source-choice-cancel[hidden]{display:none}
.legacy-source-picker,.professional #sec-shape>#drop,.professional #properties-photo{display:none!important}
#current-source-card{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:12px;border:1px solid #d8d8d8;border-radius:8px;background:#fafafa}
#current-source-card>span{font-size:10px;color:#777;text-transform:uppercase;letter-spacing:.06em}
#current-source-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#current-source-type{font-size:11px;color:#6f6f6f}
.professional #current-source-card #properties-replace{margin-top:6px;border-style:solid;background:#fff}
.workspace-empty #current-source-card{display:none}

@media(max-width:800px){
 .source-choice-cards{grid-template-columns:1fr}
 .professional #workspace-start{width:min(100%,560px)}
 .professional #workspace-start .source-choice-card{min-height:132px;padding:20px;display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto;column-gap:16px;align-content:center}
 .professional #workspace-start #drop.source-choice-card{display:grid;padding:20px}
 .professional #workspace-start .source-choice-card .source-choice-icon{grid-row:1/3;margin:0}
}
@media(max-width:600px){
 .professional.home-view #app,.professional.source-chooser #app{min-height:calc(100dvh - 58px)}
 .professional.home-view #stage,.professional.source-chooser #stage{min-height:calc(100dvh - 58px)}
 .professional.home-view #canvas-viewport,.professional.source-chooser #canvas-viewport{height:auto;min-height:calc(100dvh - 58px);padding:30px 18px;align-items:flex-start}
 .professional #workspace-start>h2{font-size:26px;margin-bottom:22px}
 .professional #workspace-start .source-choice-card{min-height:116px;padding:18px}
 .professional #workspace-start #drop.source-choice-card{padding:18px}
 #continue-project{align-items:flex-start;flex-direction:column;margin-bottom:28px}
 #continue-project-button{width:100%;justify-content:center}
}
