/* Studio de creation Sportwear Factory : feuille de style du Studio Crea + 3D (DGE 4.76), isolee sous #swf-studio
   et rehabillee aux couleurs du site. Fichier GENERE par MD/swf/studio-dge/port-studio.py : ne pas editer a la main,
   les reglages propres au PLM sont en fin de fichier. */
#swf-studio * { margin:0; padding:0; box-sizing:border-box; }
#swf-studio { font-family:"Segoe UI", system-ui, sans-serif; background:#ece9f0; color:#1c1620; height:100vh; display:flex; flex-direction:column; overflow:hidden; user-select:none; }
#swf-studio a { color:#0B0D0C; }
#swf-studio a:hover { color:#15181A; }
#swf-studio button { font:inherit; cursor:pointer; }
#swf-studio .btn, #swf-studio .cb, #swf-studio .tool, #swf-studio .hbtn, #swf-studio .pcRow, #swf-studio .poRow, #swf-studio .fontbtn, #swf-studio .step, #swf-studio .addG button, #swf-studio #viewSw button, #swf-studio .wback { transition:background .12s ease, color .12s ease, border-color .12s ease; }
#swf-studio .cb:hover { border-color:#0B0D0C; }
#swf-studio #side .body, #swf-studio #right .zone, #swf-studio #wSteps { scrollbar-width:thin; scrollbar-color:#d9d4e0 transparent; }
#swf-studio header { background:#000; height:56px; flex:0 0 auto; display:flex; align-items:center; gap:8px; padding:0 12px; color:#fff; white-space:nowrap; position:relative; z-index:60; }
#swf-studio header > * { flex:0 0 auto; }
#swf-studio header h1 { font-size:14px; font-weight:700; letter-spacing:.04em; }
#swf-studio .menuWrap { position:relative; }
#swf-studio .menu { display:none; position:absolute; right:0; top:46px; background:#fff; color:#1c1620; border-radius:12px; box-shadow:0 18px 44px rgba(13,42,78,.28); padding:6px; min-width:290px; z-index:90; }
#swf-studio .menu.on { display:block; }
#swf-studio .menu button, #swf-studio .menu label { display:flex; flex-direction:column; align-items:flex-start; gap:2px; width:100%; text-align:left; border:none; background:none; padding:9px 12px; border-radius:8px; font-size:13px; cursor:pointer; color:#1c1620; }
#swf-studio .menu button:hover, #swf-studio .menu label:hover { background:#f2f0f6; }
#swf-studio .menu small { color:#6d6478; font-size:11.5px; }
#swf-studio .menu .msep { height:1px; background:#eee9f1; margin:4px 8px; }
#swf-studio #zoomPill { position:absolute; left:16px; bottom:16px; display:flex; align-items:center; gap:2px; background:#fff; border-radius:10px; box-shadow:0 4px 16px rgba(28,22,32,.14); padding:3px; z-index:6; }
#swf-studio #zoomPill button { border:none; background:none; width:30px; height:30px; border-radius:7px; font-size:15px; color:#0B0D0C; }
#swf-studio #zoomPill button:hover { background:#f2f0f6; }
#swf-studio #zoomPct { font-size:11.5px; font-weight:700; color:#3c3546; min-width:44px; text-align:center; }
#swf-studio .rsep { width:52px; font-size:8.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#9a94a6; text-align:center; margin:10px 0 2px; padding-top:8px; border-top:1px solid #eee9f1; }
#swf-studio .rgrow { flex:1; }
@media (max-width:1400px){
#swf-studio .hbtn .lb { display:none; }
#swf-studio header h1 small { display:none; }
#swf-studio header .sep { display:none; }
#swf-studio .hbtn { padding:7px 9px; }
}
#swf-studio header h1 small { display:block; font-size:10px; font-weight:400; color:#9aa4bd; letter-spacing:.08em; text-transform:uppercase; }
#swf-studio header .sep { width:1px; height:28px; background:#333; }
#swf-studio .hbtn { background:#1a1a22; color:#fff; border:1px solid #2c2c34; border-radius:8px; padding:7px 11px; font-size:12.5px; font-weight:600; display:flex; align-items:center; gap:6px; }
#swf-studio .hbtn:hover { border-color:#8DC63F; color:#8DC63F; }
#swf-studio .hbtn:disabled { opacity:.35; cursor:default; }
#swf-studio .hbtn.y { background:#8DC63F; color:#000; border-color:#8DC63F; }
#swf-studio .hbtn.y:hover { background:#B6E06E; color:#000; }
#swf-studio header .grow { flex:1 1 0; min-width:0; }
#swf-studio #projName { flex:0 1 auto !important; min-width:0; overflow:hidden; text-overflow:ellipsis; font-size:13px; color:#cfd6e6; padding-left:14px; border-left:1px solid #333; }
@media (max-width:1100px){
#swf-studio #projName { display:none; }
}
#swf-studio #ver { font-size:11px; color:#7d8296; border:1px solid #2c2c34; border-radius:20px; padding:4px 10px; }
#swf-studio main { flex:1; min-height:0; display:flex; position:relative; }
#swf-studio #rail { width:64px; background:#fff; border-right:1px solid #ddd8e4; display:flex; flex-direction:column; align-items:center; padding:10px 0; gap:4px; z-index:5; }
#swf-studio .tool { width:52px; height:52px; border:none; background:transparent; border-radius:10px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:#4a4456; font-size:9.5px; font-weight:700; letter-spacing:.03em; }
#swf-studio .tool svg { width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#swf-studio .tool:hover { background:#f2f0f6; }
#swf-studio .tool.on { background:#0B0D0C; color:#fff; }
#swf-studio #side { flex:0 0 292px; width:292px; min-width:292px; max-width:292px; overflow:hidden; background:#fff; border-right:1px solid #ddd8e4; display:flex; flex-direction:column; z-index:4; }
#swf-studio #side .inner { width:292px; display:flex; flex-direction:column; min-height:0; flex:1 1 auto; }
#swf-studio #side h2 { font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#0B0D0C; padding:16px 16px 8px; }
#swf-studio #side .body { flex:1; overflow-y:auto; padding:0 16px 16px; display:flex; flex-direction:column; gap:12px; }
#swf-studio .grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
#swf-studio .swatch { aspect-ratio:1; border-radius:10px; border:2px solid #e6e1ec; cursor:pointer; overflow:hidden; position:relative; background:#fafafa; }
#swf-studio .swatch:hover { border-color:#0B0D0C; }
#swf-studio .swatch.pdCard { border-color:#d9d3e3; box-shadow:0 1px 4px rgba(13,42,78,.14); transition:transform .15s, box-shadow .15s; }
#swf-studio .swatch.pdCard:hover { transform:translateY(-2px); box-shadow:0 6px 14px rgba(13,42,78,.22); }
#swf-studio .swatch.pdCard { aspect-ratio:auto; display:flex; flex-direction:column; }
#swf-studio .swatch.pdCard span { position:static; background:#fff; color:#0B0D0C; font-size:12px; font-weight:800; letter-spacing:.03em; padding:6px 4px 7px; border-top:1px solid #ece8f1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#swf-studio .grid.pdGrid { grid-template-columns:repeat(2,1fr); gap:10px; }
#swf-studio .swatch canvas, #swf-studio .swatch svg { width:100%; height:100%; display:block; }
#swf-studio .swatch span { position:absolute; left:0; right:0; bottom:0; font-size:9px; font-weight:700; text-align:center; background:rgba(29,49,83,.85); color:#fff; padding:2px 0; }
#swf-studio .lbl { font-size:11px; font-weight:700; color:#6d6478; text-transform:uppercase; letter-spacing:.08em; }
#swf-studio .row { display:flex; gap:8px; align-items:center; }
#swf-studio .row input[type=range] { flex:1; accent-color:#0B0D0C; }
#swf-studio .row input[type=text], #swf-studio .row select, #swf-studio .row textarea { flex:1; font:inherit; font-size:13px; padding:7px 9px; border:1px solid #c9c3d4; border-radius:8px; background:#fff; color:#1c1620; }
#swf-studio .pal { display:flex; flex-wrap:wrap; gap:6px; }
#swf-studio .pal .c { width:26px; height:26px; border-radius:7px; border:2px solid #fff; box-shadow:0 0 0 1px #c9c3d4; cursor:pointer; }
#swf-studio .pal .c.on { box-shadow:0 0 0 2px #0B0D0C; }
#swf-studio .pal .add { width:26px; height:26px; border-radius:7px; border:1px dashed #9a94a6; background:none; font-size:15px; color:#6d6478; }
#swf-studio .btn { border:1px solid #c9c3d4; background:#fff; border-radius:8px; padding:7px 10px; font-size:12.5px; font-weight:600; color:#1c1620; }
#swf-studio .btn:hover { border-color:#0B0D0C; background:#f4f6fb; }
#swf-studio .btn.dark { background:#0B0D0C; color:#fff; border-color:#0B0D0C; }
#swf-studio .btn.dark:hover { background:#15181A; }
#swf-studio .btn.warn { color:#b3261e; }
#swf-studio .fontbtn { border:1px solid #c9c3d4; background:#fff; border-radius:8px; padding:8px 10px; text-align:left; font-size:18px; line-height:1; color:#1c1620; }
#swf-studio .fontbtn:hover, #swf-studio .fontbtn.on { border-color:#0B0D0C; background:#f4f6fb; }
#swf-studio .drop { border:2px dashed #b8b2c4; border-radius:10px; min-height:90px; display:flex; align-items:center; justify-content:center; text-align:center; padding:12px; font-size:12.5px; color:#6d6478; cursor:pointer; }
#swf-studio .drop:hover, #swf-studio .drop.over { border-color:#0B0D0C; background:#f4f6fb; }
#swf-studio .drop input { display:none; }
#swf-studio .fold { border:1px solid #e6e1ec; border-radius:12px; overflow:hidden; }
#swf-studio .fold summary { list-style:none; display:flex; align-items:center; gap:8px; padding:10px 12px; cursor:pointer; background:#faf9fc; user-select:none; }
#swf-studio .fold summary::-webkit-details-marker { display:none; }
#swf-studio .fold summary .arr { display:inline-block; font-size:12px; color:#0B0D0C; transition:transform .15s; }
#swf-studio .fold[open] summary .arr { transform:rotate(90deg); }
#swf-studio .fold summary b { font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#0B0D0C; }
#swf-studio .fold summary small { margin-left:auto; font-size:11px; font-weight:700; color:#9a94a6; }
#swf-studio .foldBody { padding:10px 12px 12px; }
#swf-studio .foldEmpty { font-size:12px; color:#6d6478; line-height:1.45; }
#swf-studio #side .body { overflow-x:hidden; }
#swf-studio .row input[type=text], #swf-studio .row select { min-width:0; }
#swf-studio .swatch .swx { position:absolute; right:4px; top:4px; width:18px; height:18px; border-radius:50%; border:none; background:rgba(15,23,42,.75); color:#fff; font-size:12px; line-height:18px; display:none; }
#swf-studio .swatch:hover .swx { display:block; }
#swf-studio #impWin { position:fixed; inset:0; background:rgba(15,23,42,.55); z-index:70; display:none; align-items:center; justify-content:center; }
#swf-studio #impWin.on { display:flex; }
#swf-studio #impWin .card { background:#fff; border-radius:16px; width:640px; max-width:94%; box-shadow:0 20px 60px rgba(0,0,0,.3); overflow:hidden; }
#swf-studio #impWin .ch { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid #eee9f1; }
#swf-studio #impWin h3 { font-size:16px; font-weight:800; color:#0B0D0C; }
#swf-studio #impWin .cx { border:none; background:none; font-size:22px; color:#6d6478; width:32px; height:32px; border-radius:8px; }
#swf-studio #impWin .steps2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:18px 20px; }
#swf-studio #impWin .stp { border:1px solid #e6e1ec; border-radius:12px; padding:14px; display:flex; flex-direction:column; gap:8px; }
#swf-studio #impWin .stp i { font-style:normal; display:inline-flex; width:22px; height:22px; border-radius:50%; background:#0B0D0C; color:#fff; font:800 11px/1 system-ui; align-items:center; justify-content:center; }
#swf-studio #impWin .stp b { font-size:13.5px; }
#swf-studio #impWin .stp p { font-size:12px; color:#6d6478; line-height:1.45; }
#swf-studio #impWin .drop { min-height:120px; }
#swf-studio #impWin .cf { display:flex; align-items:center; gap:10px; padding:12px 20px 16px; border-top:1px solid #eee9f1; background:#faf9fc; font-size:12.5px; }
#swf-studio #impWin .cf select { font:inherit; font-size:12.5px; padding:6px 9px; border:1px solid #c9c3d4; border-radius:8px; background:#fff; }
#swf-studio #stage { flex:1 1 0; min-width:0; position:relative; overflow:hidden; background:#ece9f0; background-image:radial-gradient(#d9d4e0 1px, transparent 1px); background-size:22px 22px; cursor:default; }
#swf-studio #stage canvas { position:absolute; left:0; top:0; }
#swf-studio #hint { position:absolute; left:0; right:0; width:fit-content; margin:0 auto; bottom:58px; z-index:8; max-width:min(560px, calc(100% - 40px)); white-space:normal; line-height:1.35; text-align:center; background:rgba(15,23,42,.88); color:#fff; font-size:12.5px; padding:8px 14px; border-radius:14px; pointer-events:none; opacity:0; transition:opacity .4s; }
#swf-studio #hint.on { opacity:1; }
#swf-studio #ctx { display:none; flex-direction:column; align-items:stretch; gap:5px; padding:0 12px 16px; }
#swf-studio #ctx.on { display:flex; }
#swf-studio #ctx .cb { width:100%; justify-content:space-between; height:36px; }
#swf-studio #ctx .sep { width:auto; height:1px; background:#eee9f1; margin:5px 0; }
#swf-studio #ctx select { width:100%; }
#swf-studio #ctx .cb input[type=range] { width:120px; }
#swf-studio .cb { border:1px solid #e6e1ec; background:#fff; border-radius:8px; height:34px; min-width:34px; padding:0 9px; font-size:12px; font-weight:600; color:#1c1620; display:flex; align-items:center; gap:5px; }
#swf-studio #ctxActions, #swf-studio #ctxOrder { display:grid; grid-template-columns:1fr 1fr; gap:5px; }
#swf-studio #ctxActions .cb, #swf-studio #ctxOrder .cb { width:100%; justify-content:center; }
#swf-studio #ctx .cb[disabled] { opacity:.4; }
#swf-studio #ctx .cb.y { background:#0B0D0C; border-color:#0B0D0C; color:#fff; }
#swf-studio .stk { padding:2px 0 1px; }
#swf-studio .stkN { font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#9a94a6; }
#swf-studio .cb:hover { border-color:#0B0D0C; background:#f4f6fb; }
#swf-studio .cb.warn { color:#b3261e; }
#swf-studio .cb input[type=color] { width:22px; height:22px; border:none; padding:0; background:none; cursor:pointer; }
#swf-studio .cb input[type=range] { width:90px; accent-color:#0B0D0C; }
#swf-studio .cb select { border:none; font:inherit; font-weight:600; background:none; }
#swf-studio .cb .sep { width:1px; height:20px; background:#e6e1ec; margin:0 2px; }
#swf-studio #zoomPill .pSep { width:1px; height:18px; background:#e6e1ec; margin:0 2px; }
#swf-studio #chart { position:absolute; inset:0; z-index:26; display:none; align-items:center; justify-content:center; background:rgba(15,23,42,.55); cursor:pointer; }
#swf-studio #chart.on { display:flex; }
#swf-studio #chartImg { background:#fff; padding:14px; border-radius:14px; box-shadow:0 12px 40px rgba(0,0,0,.25); max-width:min(1000px, 92%); }
#swf-studio #chartImg img { display:block; width:100%; height:auto; }
#swf-studio #tabsBar { flex:0 0 auto; height:40px; background:#0B0D0C; display:none; align-items:flex-end; gap:6px; padding:0 14px; }
#swf-studio #tabsBar.on { display:flex; }
#swf-studio #tabsList { display:flex; gap:4px; align-items:flex-end; min-width:0; overflow-x:auto; }
#swf-studio .ctab { display:flex; align-items:center; gap:8px; height:32px; padding:0 8px 0 12px; border-radius:9px 9px 0 0; background:rgba(255,255,255,.1); color:#cfd6e6; font-size:12.5px; font-weight:700; white-space:nowrap; cursor:pointer; border:none; }
#swf-studio .ctab:hover { background:rgba(255,255,255,.18); color:#fff; }
#swf-studio .ctab.on { background:#f4f6fb; color:#0B0D0C; }
#swf-studio .ctab small { font-weight:600; opacity:.7; font-size:11px; }
#swf-studio .ctab .tl { max-width:230px; overflow:hidden; text-overflow:ellipsis; }
#swf-studio .ctab .x { width:18px; height:18px; border-radius:50%; border:none; background:none; color:inherit; font-size:13px; line-height:18px; opacity:.6; }
#swf-studio .ctab .x:hover { opacity:1; background:rgba(0,0,0,.12); }
#swf-studio .ctab.on .x:hover { background:#ddd8e4; }
#swf-studio #tabAdd { margin-left:auto; height:28px; margin-bottom:6px; border:1px dashed rgba(255,255,255,.4); background:none; color:#fff; border-radius:8px; padding:0 11px; font-size:12px; font-weight:700; }
#swf-studio #tabAdd:hover { background:rgba(255,255,255,.12); border-color:#8DC63F; color:#8DC63F; }
#swf-studio #steps { flex:0 0 auto; height:40px; background:#fff; border-bottom:1px solid #ddd8e4; display:flex; align-items:center; gap:2px; padding:0 14px; overflow-x:auto; }
#swf-studio .step { border:none; background:none; display:flex; align-items:center; gap:7px; padding:5px 10px; border-radius:8px; font-size:12px; font-weight:600; color:#6d6478; white-space:nowrap; }
#swf-studio .step i { width:19px; height:19px; border-radius:50%; background:#eee9f1; color:#6d6478; font:800 10px/1 system-ui; font-style:normal; display:flex; align-items:center; justify-content:center; }
#swf-studio .step:hover { background:#f2f0f6; }
#swf-studio .step.on { color:#0B0D0C; background:#f4f6fb; }
#swf-studio .step.on i { background:#0B0D0C; color:#fff; }
#swf-studio .step.done i { background:#8DC63F; color:#000; }
#swf-studio .stepArrow { color:#d9d4e0; font-size:10px; flex:0 0 auto; }
#swf-studio #right { flex:0 0 306px; width:306px; background:#fff; border-left:1px solid #ddd8e4; display:flex; flex-direction:column; min-height:0; z-index:4; }
#swf-studio #right .zone { min-height:0; overflow-y:auto; }
#swf-studio #zPieces { flex:0 1 auto; max-height:38%; border-bottom:1px solid #eee9f1; }
#swf-studio #zCtx { flex:1 1 auto; }
#swf-studio #side.hide { display:none; }
#swf-studio #right.hide { display:none; }
#swf-studio #right.over { position:absolute; top:0; right:0; bottom:0; z-index:20; box-shadow:-14px 0 40px rgba(28,22,32,.22); }
#swf-studio #right.over { transform:translateX(100%); transition:transform .18s ease; box-shadow:none; }
#swf-studio #right.over.open { transform:none; box-shadow:-14px 0 40px rgba(28,22,32,.22); }
#swf-studio #rightHandle { display:none; position:absolute; right:0; top:50%; transform:translateY(-50%); z-index:21; writing-mode:vertical-rl; text-orientation:mixed; background:#0B0D0C; color:#fff; border:none; border-radius:8px 0 0 8px; padding:12px 6px; font:700 10.5px/1 system-ui; letter-spacing:.08em; cursor:pointer; }
#swf-studio #rightHandle.on { display:block; }
#swf-studio #right.over.open ~ #rightHandle { right:306px; }
@media (max-width:1440px){
#swf-studio #right { flex-basis:272px; width:272px; }
}

@media (max-width:1240px){
#swf-studio #side { flex:0 0 252px; width:252px; min-width:252px; max-width:252px; }
#swf-studio #side .inner { width:252px; }
}

@media (max-width:1080px){
#swf-studio #right { flex-basis:236px; width:236px; }
}

@media (max-height:700px){
#swf-studio .panelH { padding:10px 14px 5px; }
}
#swf-studio .panelH { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#0B0D0C; padding:14px 14px 7px; display:flex; align-items:center; gap:6px; }
#swf-studio .panelH .n { margin-left:auto; font-size:10px; font-weight:700; color:#9a94a6; letter-spacing:.04em; text-transform:none; }
#swf-studio #addBar { flex:0 0 auto; border-bottom:1px solid #eee9f1; padding-bottom:10px; }
#swf-studio .addG { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; padding:0 8px; }
#swf-studio .addG button { border:1px solid #e6e1ec; background:#fff; border-radius:11px; padding:11px 2px 8px; display:flex; flex-direction:column; align-items:center; gap:5px; font:800 16px/1 "Segoe UI",system-ui; color:#0B0D0C; }
#swf-studio .addG button:hover { border-color:#0B0D0C; background:#f4f6fb; }
#swf-studio .addG button span { font:700 8.5px/1 system-ui; letter-spacing:.04em; text-transform:uppercase; color:#6d6478; }
#swf-studio #persoList { display:flex; flex-direction:column; gap:1px; padding:0 8px 10px; }
#swf-studio .poRow { display:flex; align-items:center; gap:8px; padding:5px 7px; border-radius:7px; cursor:pointer; font-size:12.5px; }
#swf-studio .poRow:hover { background:#f4f6fb; }
#swf-studio .poRow.on { background:#0B0D0C; color:#fff; }
#swf-studio .poRow i { font-style:normal; font-size:11px; opacity:.6; }
#swf-studio .poRow .nm { flex:1 1 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#swf-studio #pieceList { display:flex; flex-direction:column; gap:1px; padding:0 8px 10px; }
#swf-studio .pcRow { display:flex; align-items:center; gap:9px; padding:5px 7px; border-radius:7px; cursor:pointer; font-size:12.5px; color:#1c1620; }
#swf-studio .pcRow:hover { background:#f4f6fb; }
#swf-studio .pcRow.on { background:#0B0D0C; color:#fff; }
#swf-studio .pcRow .chip { width:15px; height:15px; border-radius:6px; box-shadow:0 0 0 1px rgba(0,0,0,.18); flex:0 0 auto; }
#swf-studio .pcRow .nm { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#swf-studio .pcRow .cnt { font-size:10px; font-weight:700; opacity:.55; flex:0 0 auto; }
#swf-studio .pcEmpty { padding:0 14px 12px; font-size:12px; color:#6d6478; }
#swf-studio #work { flex:1 1 0; min-width:0; display:flex; }
#swf-studio #v3d { position:relative; background:radial-gradient(ellipse at 50% 35%, #fff 0%, #f4f2f7 60%, #e6e2ec 100%); overflow:hidden; border-left:1px solid #ddd8e4; }
#swf-studio #v3d .dec { position:absolute; left:10px; top:44px; display:flex; gap:3px; background:rgba(255,255,255,.9); border-radius:9px; padding:3px; z-index:3; }
#swf-studio #v3d .dec label { font:700 10.5px/1 system-ui; letter-spacing:.04em; text-transform:uppercase; color:#6d6478; padding:0 4px 0 8px; align-self:center; }
#swf-studio #v3d .dec select { border:none; background:#fff; border-radius:7px; padding:5px 8px; font:700 11.5px/1 system-ui; color:#0B0D0C; cursor:pointer; }
#swf-studio #v3d .dec select:focus { outline:2px solid #0B0D0C; }
#swf-studio #v3d .vign { position:absolute; inset:0; pointer-events:none; z-index:2; background:radial-gradient(ellipse at 50% 42%, rgba(0,0,0,0) 45%, rgba(0,0,0,.22) 100%); }
#swf-studio #giz { position:absolute; inset:0; pointer-events:none; z-index:3; }
#swf-studio .gh { position:absolute; width:14px; height:14px; margin:0; border-radius:4px; background:#fff; box-shadow:0 0 0 1.5px #0B0D0C, 0 2px 6px rgba(0,0,0,.3); pointer-events:auto; cursor:nwse-resize; touch-action:none; }
#swf-studio .gh.rot { width:18px; height:18px; border-radius:50%; background:#8DC63F; cursor:grab; }
#swf-studio #work.v2d #v3d { display:none; }
#swf-studio #work.v2d #stage { flex:1 1 0; }
#swf-studio #work.vsplit #stage { flex:1 1 0; min-width:300px; }
#swf-studio #work.vsplit #v3d { flex:1 1 0; min-width:260px; }
#swf-studio #work.v3d #stage { display:none; }
#swf-studio #work.v3d #v3d { flex:1 1 0; }
#swf-studio #viewSw { display:flex; gap:2px; background:#f2f0f6; border-radius:9px; padding:2px; margin-left:auto; }
#swf-studio #viewSw button { border:none; background:none; border-radius:7px; padding:5px 11px; font-size:11.5px; font-weight:700; color:#6d6478; }
#swf-studio #viewSw button:hover { background:#fff; }
#swf-studio #viewSw button.on { background:#0B0D0C; color:#fff; }
#swf-studio #v3d.hide { display:none; }
#swf-studio #v3d .bar { position:absolute; left:0; right:0; top:0; height:40px; display:flex; align-items:center; gap:6px; padding:0 10px; z-index:2; }
#swf-studio #v3d .bar span { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#6d6478; flex:1; }
#swf-studio #v3d .bar button { border:none; background:#fff; border-radius:7px; width:28px; height:28px; font-size:13px; color:#0B0D0C; box-shadow:0 1px 4px rgba(28,22,32,.12); }
#swf-studio #v3d canvas { display:block; width:100%; height:100%; }
#swf-studio #v3d .views { position:absolute; left:0; right:0; bottom:10px; display:flex; justify-content:center; gap:4px; flex-wrap:wrap; padding:0 8px; }
#swf-studio #v3d .views button { border:none; background:#fff; border-radius:8px; padding:5px 9px; font-size:11px; font-weight:700; color:#0B0D0C; box-shadow:0 1px 4px rgba(28,22,32,.12); }
#swf-studio #v3d .views button:hover { background:#0B0D0C; color:#fff; }
#swf-studio #v3d .views button.on { background:#0B0D0C; color:#fff; }
#swf-studio #welcome { position:fixed; inset:0; z-index:65; background:#f4f6fb; display:flex; flex-direction:column; overflow:hidden; }
#swf-studio #wTop { height:56px; flex:0 0 auto; background:#0B0D0C; color:#fff; display:flex; align-items:center; gap:14px; padding:0 22px; }
#swf-studio #wTop .brand { font-size:14px; font-weight:600; color:#cfd6e6; }
#swf-studio #wTop .brand b { color:#8DC63F; font-weight:900; letter-spacing:.06em; margin-right:8px; }
#swf-studio #wTop .sp, #swf-studio .s2head .sp { flex:1; }
#swf-studio #wCrumb { display:flex; align-items:center; gap:8px; font-size:12.5px; color:#cfd6e6; margin-left:14px; }
#swf-studio #wCrumb b { color:#fff; }
#swf-studio #wCrumb i { font-style:normal; opacity:.5; }
#swf-studio .wbtn { border:1px solid rgba(255,255,255,.28); background:none; color:#fff; border-radius:9px; padding:7px 12px; font-size:12.5px; font-weight:700; cursor:pointer; text-decoration:none; }
#swf-studio .wbtn:hover { background:rgba(255,255,255,.1); color:#fff; }
#swf-studio #wSteps { flex:1; min-height:0; overflow-y:auto; padding:34px 40px 60px; }
#swf-studio .wstep { max-width:1180px; margin:0 auto; }
#swf-studio .wstep h1 { margin:0 0 6px; font-size:26px; font-weight:800; color:#0B0D0C; letter-spacing:-.01em; }
#swf-studio .wstep .lead { margin:0 0 24px; color:#3c3546; font-size:14px; max-width:640px; text-wrap:pretty; }
#swf-studio #wSports { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:16px; }
#swf-studio .gcard { position:relative; border:none; border-radius:18px; overflow:hidden; text-align:left; cursor:pointer; aspect-ratio:4/3; display:flex; flex-direction:column; justify-content:flex-end; padding:18px; color:#fff; background:var(--g1); transition:transform .18s, box-shadow .18s; box-shadow:0 2px 0 rgba(0,0,0,.05); }
#swf-studio .gcard .ph { position:absolute; left:42%; bottom:0; height:100%; width:auto; max-width:none; filter:drop-shadow(0 12px 18px rgba(0,0,0,.35)); transition:transform .25s; transform-origin:bottom center; }
#swf-studio .gcard.wide .ph { left:auto; right:-6%; height:auto; width:82%; bottom:8%; }
#swf-studio .gcard.bust .ph { height:108%; left:46%; }
#swf-studio .gcard .tags { max-width:72%; }
#swf-studio .gcard small { max-width:60%; }
#swf-studio .gcard:hover .ph { transform:scale(1.03); }
#swf-studio .gcard::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.05) 45%, transparent 70%), linear-gradient(0deg, rgba(0,0,0,.35) 0%, transparent 45%); pointer-events:none; }
#swf-studio .gcard > b, #swf-studio .gcard > small, #swf-studio .gcard > .tags { z-index:1; }
#swf-studio .gcard b { max-width:60%; }
#swf-studio .gcard::before { content:""; position:absolute; inset:0; background:radial-gradient(120% 90% at 85% 10%, var(--g2) 0%, transparent 60%); }
#swf-studio .gcard:hover { transform:translateY(-3px); box-shadow:0 14px 30px -12px rgba(13,42,78,.45); }
#swf-studio .gcard .pic { position:absolute; left:16px; top:14px; width:34px; height:34px; opacity:.85; z-index:1; }
#swf-studio .gcard .pic svg { width:100%; height:100%; fill:none; stroke:#fff; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
#swf-studio .gcard b { position:relative; font-size:19px; font-weight:800; line-height:1.15; }
#swf-studio .gcard small { position:relative; font-size:12px; font-weight:600; opacity:.85; margin-top:4px; }
#swf-studio .gcard .tags { position:relative; display:flex; gap:5px; margin-top:10px; flex-wrap:wrap; }
#swf-studio .gcard .tags span { font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; background:rgba(255,255,255,.18); border-radius:5px; padding:3px 7px; }
#swf-studio .gcard.empty { background:#e6e2ec; color:#6d6478; cursor:default; }
#swf-studio .gcard.empty::before { display:none; }
#swf-studio .gcard.empty:hover { transform:none; box-shadow:none; }
#swf-studio .gcard.empty .pic svg { stroke:#9a94a6; }
#swf-studio .s2head { display:flex; align-items:center; gap:10px; margin-bottom:16px; flex-wrap:wrap; }
#swf-studio #wHero { position:relative; height:150px; border-radius:18px; background:var(--g1); overflow:hidden; margin-bottom:18px; display:flex; align-items:center; padding:0 26px; color:#fff; }
#swf-studio #wHero img { position:absolute; right:4%; bottom:0; height:100%; max-width:60%; object-fit:contain; object-position:right bottom; filter:drop-shadow(0 10px 16px rgba(0,0,0,.35)); }
#swf-studio #wHero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.15) 45%, transparent 70%); pointer-events:none; }
#swf-studio #wHero > span { position:relative; z-index:1; text-shadow:0 1px 3px rgba(0,0,0,.5); max-width:60%; }
#swf-studio #wHero b { font-size:28px; font-weight:800; letter-spacing:-.01em; z-index:1; }
#swf-studio #wHero small { display:block; font-size:13px; opacity:.9; margin-top:4px; z-index:1; }
#swf-studio .s2head h1 { margin:0; }
#swf-studio .wback { white-space:nowrap; border:1px solid #ddd8e4; background:#fff; border-radius:9px; padding:8px 12px; font-size:12.5px; font-weight:700; color:#0B0D0C; cursor:pointer; }
#swf-studio .wback:hover { border-color:#0B0D0C; }
#swf-studio #wGenre, #swf-studio #wSearch { font:inherit; font-size:12.5px; padding:8px 11px; border:1px solid #ddd8e4; border-radius:9px; background:#fff; }
#swf-studio #wSearch { width:190px; }
#swf-studio #wSearch:focus, #swf-studio #wGenre:focus { outline:none; border-color:#0B0D0C; }
#swf-studio #wTypes { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:18px; }
#swf-studio #wTypes button { border:1px solid #ddd8e4; background:#fff; border-radius:20px; padding:7px 14px; font-size:12.5px; font-weight:700; color:#3c3546; cursor:pointer; }
#swf-studio #wTypes button:hover { border-color:#0B0D0C; }
#swf-studio #wTypes button.on { background:#0B0D0C; border-color:#0B0D0C; color:#fff; }
#swf-studio #wTypes button small { font-weight:600; opacity:.6; margin-left:5px; }
#swf-studio #wList { display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:14px; }
#swf-studio .pcard { border:none; border-radius:18px; overflow:hidden; text-align:left; cursor:pointer; display:flex; flex-direction:column; background:var(--g1); color:#fff; transition:transform .18s, box-shadow .18s; }
#swf-studio .pcard:hover { transform:translateY(-3px); box-shadow:0 16px 34px -14px rgba(13,42,78,.45); }
#swf-studio .pcard .vis { aspect-ratio:2/3; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
#swf-studio .pcard .vis::before { content:""; position:absolute; inset:0; background:radial-gradient(120% 90% at 80% 12%, rgba(255,255,255,.22) 0%, transparent 62%); }
#swf-studio .pcard .vis svg { width:60%; height:60%; fill:#fff; stroke:none; opacity:.9; position:relative; }
#swf-studio .pcard .vis.photo svg { display:none; }
#swf-studio .pcard .vis img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
#swf-studio .pcard .vis .gn { position:absolute; left:11px; top:11px; z-index:2; font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:#fff; background:rgba(0,0,0,.42); backdrop-filter:blur(3px); border-radius:6px; padding:3px 8px; }
#swf-studio .pcard .inf { padding:12px 14px 0; z-index:2; }
#swf-studio .pcard .inf b { display:block; font-size:15px; font-weight:800; line-height:1.2; }
#swf-studio .pcard .inf small { display:block; font-size:12px; font-weight:600; opacity:.9; margin-top:3px; }
#swf-studio .pcard .go { margin:10px 14px 14px; align-self:flex-start; font-size:12px; font-weight:800; color:#fff; background:rgba(0,0,0,.25); border-radius:20px; padding:5px 11px; z-index:2; }
#swf-studio .pcard:hover .go { background:#8DC63F; color:#000; }
#swf-studio #wRecent { margin:0 0 26px; }
#swf-studio #wRecent .rhead { display:flex; align-items:baseline; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
#swf-studio #wRecent h2 { margin:0; font-size:18px; font-weight:800; color:#0B0D0C; }
#swf-studio #wRecent .rhead small { color:#6d6478; font-size:12.5px; }
#swf-studio #wRecent .sp { flex:1; }
#swf-studio .rgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:14px; }
#swf-studio .rcard { position:relative; background:#fff; border:1px solid #e4e0ea; border-radius:16px; overflow:hidden; cursor:pointer; display:flex; flex-direction:column; transition:transform .18s, box-shadow .18s; }
#swf-studio .rcard:hover, #swf-studio .rcard:focus-visible { transform:translateY(-3px); box-shadow:0 14px 30px -14px rgba(13,42,78,.45); outline:none; }
#swf-studio .rcard.cur { border-color:#0B0D0C; box-shadow:0 0 0 2px #0B0D0C inset; }
#swf-studio .rvis { aspect-ratio:3/2; display:flex; background:radial-gradient(120% 100% at 50% 20%, #fff 0%, #e6e2ec 100%); }
#swf-studio .rvis img { flex:1 1 0; min-width:0; height:100%; object-fit:cover; }
#swf-studio .rvis.n2 img + img, #swf-studio .rvis.n3 img + img { border-left:1px solid #fff; }
#swf-studio .rvis .rph { margin:auto; width:34%; opacity:.35; }
#swf-studio .rvis .rph svg { width:100%; height:auto; fill:#0B0D0C; }
#swf-studio .rinf { padding:10px 12px 12px; }
#swf-studio .rinf b { display:block; font-size:14px; font-weight:800; color:#0B0D0C; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#swf-studio .rinf small { display:block; font-size:12px; color:#6d6478; margin-top:2px; }
#swf-studio .rnow { position:absolute; left:10px; top:10px; font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; background:#0B0D0C; color:#fff; border-radius:6px; padding:3px 8px; }
#swf-studio .rdel { position:absolute; right:8px; top:8px; width:28px; height:28px; border-radius:50%; border:none; background:rgba(0,0,0,.45); color:#fff; font-size:16px; line-height:1; cursor:pointer; opacity:0; transition:opacity .15s; }
#swf-studio .rcard:hover .rdel, #swf-studio .rcard:focus-within .rdel { opacity:1; }
#swf-studio .rdel:hover { background:#c0182c; }
@media (hover:none) {
#swf-studio .rdel { opacity:1; }
}

@media (max-width:700px) {
#swf-studio .rgrid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
#swf-studio #wRecent .rhead small { display:none; }
}
#swf-studio .wempty { grid-column:1/-1; padding:30px; text-align:center; color:#6d6478; font-size:13px; background:#fff; border:1px dashed #ddd8e4; border-radius:14px; }
@media (max-width:700px) {
#swf-studio #wSteps { padding:20px 14px 40px; }
#swf-studio .wstep h1 { font-size:22px; }
#swf-studio .wstep .lead { font-size:13.5px; margin-bottom:16px; }
#swf-studio #wHero { height:120px; padding:0 18px; }
#swf-studio #wHero b { font-size:22px; }
#swf-studio #wHero img { opacity:.9; }
#swf-studio #wGenre { flex:1 1 auto; }
#swf-studio #wSearch { flex:1 1 100%; width:auto; order:5; }
#swf-studio #wList { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
#swf-studio .pcard .inf { padding:10px 11px 0; }
#swf-studio .pcard .inf b { font-size:14px; }
#swf-studio .pcard .go { margin:8px 11px 11px; }
}
#swf-studio #wDrop { position:absolute; inset:0; display:none; align-items:center; justify-content:center; background:rgba(13,42,78,.85); color:#fff; font-size:20px; font-weight:800; z-index:5; pointer-events:none; }
#swf-studio #wDrop.on { display:flex; }
#swf-studio #help { position:absolute; inset:0; background:rgba(15,23,42,.55); z-index:25; display:none; align-items:center; justify-content:center; }
#swf-studio #help.on { display:flex; }
#swf-studio #help .card { background:#fff; border-radius:14px; padding:22px 26px; width:520px; max-width:92%; font-size:13px; line-height:1.7; box-shadow:0 12px 40px rgba(0,0,0,.25); }
#swf-studio #help h3 { color:#0B0D0C; font-size:14px; margin-bottom:8px; }
#swf-studio #help kbd { background:#f2f0f6; border:1px solid #d9d4e0; border-radius:5px; padding:1px 6px; font:600 11px monospace; }
#swf-studio #help .grid2 { display:grid; grid-template-columns:1fr 1fr; gap:2px 18px; }
#swf-studio #loader { position:absolute; inset:0; background:rgba(236,233,240,.85); z-index:30; display:none; align-items:center; justify-content:center; font-weight:600; color:#0B0D0C; gap:12px; }
#swf-studio #loader.on { display:flex; }
#swf-studio .spin { width:26px; height:26px; border:3px solid #cfd6e6; border-top-color:#0B0D0C; border-radius:50%; animation:sp .8s linear infinite; }
@keyframes sp { to { transform:rotate(360deg); } }
#swf-studio header { background:#0B0D0C !important; gap:6px; }
#swf-studio header h1 small { color:#9fb0cc; }
#swf-studio header .sep { background:rgba(255,255,255,.15); }
#swf-studio .hbtn { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.14); color:#fff; border-radius:10px; font-weight:600; }
#swf-studio .hbtn:hover { border-color:rgba(255,255,255,.4); color:#fff; background:rgba(255,255,255,.14); }
#swf-studio .hbtn.y { background:#8DC63F; border-color:#8DC63F; color:#000; }
#swf-studio .hbtn.y:hover { background:#B6E06E; color:#000; }
#swf-studio .hbtn.dgesw span:first-child { color:#cfd6e6 !important; }
#swf-studio #ver { border-color:rgba(255,255,255,.14); color:#9fb0cc; }
#swf-studio #projName { border-left-color:rgba(255,255,255,.15); }
#swf-studio .hgroup { display:flex; align-items:center; gap:6px; }
#swf-studio .hbtn.act { background:rgba(255,255,255,.22); border-color:rgba(255,255,255,.5); }
#swf-studio .hgap { width:24px; flex:0 0 auto; }
#swf-studio #tabsBar { background:#15181A; height:42px; gap:8px; }
#swf-studio .ctab { background:rgba(255,255,255,.08); color:#cfd6e6; border-radius:10px 10px 0 0; height:34px; gap:10px; padding:0 10px 0 14px; font-weight:600; }
#swf-studio .ctab.on { background:#fff; color:#0B0D0C; }
#swf-studio .ctab small { font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; font-weight:700; opacity:.6; }
#swf-studio .ctab .x { opacity:0; margin-left:2px; }
#swf-studio .ctab:hover .x, #swf-studio .ctab.on:hover .x { opacity:.7; }
#swf-studio #tabAdd { border:1px solid rgba(255,255,255,.4); border-style:solid; height:30px; border-radius:10px; }
#swf-studio #tabAdd:hover { border-color:#fff; color:#fff; background:rgba(255,255,255,.1); }
#swf-studio #steps { height:38px; }
#swf-studio .step { font-weight:600; gap:8px; }
#swf-studio .step i { background:none; border:1px solid #d9d4e0; color:#9a94a6; font-weight:700; }
#swf-studio .step.on { background:none; color:#0B0D0C; font-weight:700; }
#swf-studio .step.on i { background:#0B0D0C; border-color:#0B0D0C; color:#fff; }
#swf-studio .step.done i { background:none; border-color:#c9c3d4; color:#6d6478; }
#swf-studio .tool { border-radius:10px; color:#4a4456; font-size:10.5px; position:relative; }
#swf-studio .tool.on { background:#f4f6fb; color:#0B0D0C; }
#swf-studio .tool.on::before { content:""; position:absolute; left:-6px; top:10px; bottom:10px; width:3px; border-radius:2px; background:#0B0D0C; }
#swf-studio .rsep { font-size:10.5px; margin-top:16px; border-top:none; padding-top:0; }
#swf-studio .grid { gap:10px 10px; }
#swf-studio .swatch { border:1px solid #e6e1ec; border-radius:8px; background:#fff; aspect-ratio:auto; display:flex; flex-direction:column; }
#swf-studio .swatch canvas, #swf-studio .swatch svg { aspect-ratio:1; height:auto; border-radius:7px 7px 0 0; }
#swf-studio .swatch span { position:static; background:none; color:#6d6478; font-size:11px; font-weight:600; padding:5px 4px 6px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#swf-studio .mgrid .swatch span { white-space:normal; line-height:1.2; font-size:10.5px; padding:4px 3px 5px; min-height:2.4em; display:flex; align-items:center; justify-content:center; }
#swf-studio .swatch:hover { border-color:#0B0D0C; }
#swf-studio .fold { border:none; border-radius:0; border-bottom:1px solid #eee9f1; overflow:visible; flex:0 0 auto; }
#swf-studio #side .body > * { flex:0 0 auto; }
#swf-studio .fold summary { min-height:40px; }
#swf-studio .fold summary { background:none; padding:12px 0; }
#swf-studio .fold summary b { font-size:11px; letter-spacing:.1em; color:#0B0D0C; }
#swf-studio .fold summary .arr { font-size:11px; color:#9a94a6; }
#swf-studio .foldBody { padding:2px 0 14px; }
#swf-studio .btn, #swf-studio .cb, #swf-studio .fontbtn, #swf-studio .drop, #swf-studio .row input[type=text], #swf-studio .row select, #swf-studio .row textarea { border-radius:10px; border-color:#e6e1ec; }
#swf-studio .btn.dark { border-color:#0B0D0C; }
#swf-studio #stage { background:#f4f6fb; background-image:none; }
#swf-studio #v3d .bar { height:44px; padding:0 10px; background:linear-gradient(rgba(0,0,0,.45), rgba(0,0,0,0)); }
#swf-studio #v3d .bar span { color:rgba(255,255,255,.75); flex:0 0 auto; }
#swf-studio #v3d .bar button { background:rgba(0,0,0,.45); color:#fff; box-shadow:none; border-radius:8px; }
#swf-studio #v3d .bar button:hover { background:rgba(0,0,0,.7); }
#swf-studio #v3d .dec { position:static; background:none; padding:0; gap:4px; margin:0; display:flex; align-items:center; }
#swf-studio #v3d .bar { gap:8px; flex-wrap:nowrap; overflow:hidden; }
#swf-studio #v3d .dec select { max-width:150px; }
#swf-studio #v3d .bar #v3dFront, #swf-studio #v3d .bar #v3dSpin { flex:0 0 auto; }
#swf-studio #work.vsplit #v3d .dec label { display:none; }
#swf-studio #work.vsplit #v3d .dec select { max-width:110px; }
#swf-studio #v3d .dec label { color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.6); }
#swf-studio #v3d .dec select { background:rgba(0,0,0,.45); color:#fff; border-radius:8px; padding:6px 8px; }
#swf-studio #v3d .dec select option { color:#1c1620; }
#swf-studio #v3d .dec.tex { position:absolute; left:10px; top:46px; z-index:2; }
#swf-studio #work.vsplit #v3d .dec.tex label { display:inline; }
#swf-studio #v3d .dec.tex input[type=range] { width:96px; accent-color:#8DC63F; margin:0 4px 0 6px; cursor:pointer; }
#swf-studio #v3d .dec.tex.lisse input[type=range] { display:none; }
#swf-studio #v3d .views button { background:rgba(0,0,0,.45); color:#fff; box-shadow:none; border-radius:8px; padding:6px 11px; }
#swf-studio #v3d .views button:hover { background:rgba(0,0,0,.7); }
#swf-studio #v3d .views button.on { background:#fff; color:#0B0D0C; }
#swf-studio #v3d .vign { display:none; }
#swf-studio #v3d.amb .vign { display:block; }
#swf-studio .panelH { font-size:11px; letter-spacing:.1em; padding:16px 16px 8px; }
#swf-studio #addBar { padding-bottom:12px; }
#swf-studio .addG { gap:8px; padding:12px 12px 0; }
#swf-studio .addG button { border-radius:10px; padding:12px 2px 9px; }
#swf-studio #ctx .cb, #swf-studio #ctx select { border-radius:10px; }
#swf-studio #ctx .cb.warn { color:#b3261e; margin-top:6px; }
#swf-studio #cart .card, #swf-studio #impWin .card, #swf-studio #help .card { border-radius:16px; box-shadow:0 24px 60px rgba(13,42,78,.28); }
#swf-studio #cart .ch, #swf-studio #impWin .ch { padding:16px 20px; }
#swf-studio #cart h3, #swf-studio #impWin h3 { font-size:16px; font-weight:800; }
#swf-studio #valWin { position:fixed; inset:0; z-index:95; background:rgba(13,42,78,.55); display:flex; align-items:center; justify-content:center; padding:16px; }
#swf-studio #valWin .vcard { background:#fff; border-radius:16px; padding:22px 24px; width:720px; max-width:100%; max-height:calc(100vh - 32px); overflow:auto; display:flex; flex-direction:column; gap:10px; box-shadow:0 24px 60px rgba(0,0,0,.3); }
#swf-studio #valWin h3 { font-size:19px; font-weight:800; color:#0B0D0C; margin:0; }
#swf-studio #valWin .vlead { font-size:13px; color:#3c3546; margin:0; line-height:1.5; }
#swf-studio #valWin .vsec { font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#0B0D0C; margin-top:8px; border-bottom:1px solid #eee9f1; padding-bottom:4px; }
#swf-studio #valWin .vgrid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
#swf-studio #valWin .vf { display:flex; flex-direction:column; gap:4px; font-size:12.5px; font-weight:600; color:#3c3546; }
#swf-studio #valWin .vf b { color:#c0392b; }
#swf-studio #valWin input[type=text], #swf-studio #valWin input[type=email], #swf-studio #valWin input[type=tel], #swf-studio #valWin textarea { font:inherit; font-size:14px; padding:9px 11px; border:1px solid #c9c3d4; border-radius:9px; background:#fff; color:#1c1620; }
#swf-studio #valWin input:focus, #swf-studio #valWin textarea:focus { outline:none; border-color:#0B0D0C; box-shadow:0 0 0 3px rgba(13,42,78,.12); }
#swf-studio #valWin textarea { resize:vertical; min-height:96px; }
#swf-studio #valWin .vprods { display:flex; flex-direction:column; gap:6px; }
#swf-studio #valWin .vprod { display:flex; gap:10px; align-items:flex-start; border:1px solid #e6e1ec; border-radius:10px; padding:10px 12px; cursor:pointer; }
#swf-studio #valWin .vprod:has(input:checked) { border-color:#0B0D0C; background:#f4f6fb; }
#swf-studio #valWin .vprod input { margin-top:3px; accent-color:#0B0D0C; width:16px; height:16px; }
#swf-studio #valWin .vpi { display:flex; flex-direction:column; gap:2px; font-size:12.5px; color:#3c3546; }
#swf-studio #valWin .vpi b { font-size:14px; color:#0B0D0C; }
#swf-studio #valWin .vsw { display:flex; gap:3px; margin-top:3px; }
#swf-studio #valWin .vsw i { width:14px; height:14px; border-radius:3px; border:1px solid rgba(0,0,0,.15); }
#swf-studio #valWin .vhp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
#swf-studio #valWin .verr { color:#c0392b; font-size:13px; font-weight:700; margin:0; }
#swf-studio #valWin .verr:empty, #swf-studio #valWin .vprog:empty { display:none; }
#swf-studio #valWin .vprog { color:#0B0D0C; font-size:13px; font-weight:700; margin:0; }
#swf-studio #valWin .vbtns { display:flex; justify-content:flex-end; gap:8px; margin-top:6px; }
#swf-studio #valWin .vbtns .btn { padding:10px 16px; font-size:13.5px; font-weight:700; text-decoration:none; }
#swf-studio #valWin .vbtns .btn:disabled { opacity:.5; }
#swf-studio #valWin .vrecap { width:100%; border-radius:10px; border:1px solid #eee9f1; }
@media (max-width:600px){
#swf-studio #valWin .vgrid { grid-template-columns:1fr; }
#swf-studio #valWin .vcard { padding:18px 16px; }
}
#swf-studio .dgesw { display:inline-flex; align-items:center; gap:6px; }
#swf-studio .dgesw .dgenum { font-size:11px; font-weight:800; color:#0B0D0C; white-space:nowrap; }
#swf-studio #hint { white-space:nowrap; max-width:min(640px, calc(100% - 40px)); overflow:hidden; text-overflow:ellipsis; font-size:12.5px; padding:8px 14px; }
#swf-studio { --band:55px; --navy:#0B0D0C; --mut:#6d6478; --line:#e6e1ec; --yel:#8DC63F; --mag:#e6007d; --cya:#009fe3; }
#swf-studio { background:#f4f6fb; }
#swf-studio header#brand { height:var(--band); background:#000 !important; gap:8px; padding:0 12px 0 8px; z-index:70; border-bottom:3px solid transparent; border-image:linear-gradient(90deg,var(--mag) 0 33.3%,var(--cya) 33.3% 66.6%,var(--yel) 66.6% 100%) 1; }
#swf-studio .bLogo { display:flex; align-items:center; flex:0 0 auto; border-radius:50%; }
#swf-studio .bLogo img { width:42px; height:42px; display:block; transition:transform .3s ease; }
#swf-studio .bLogo:hover img { transform:rotate(-10deg) scale(1.05); }
#swf-studio .bTitle { display:flex; flex-direction:column; justify-content:center; line-height:1.05; padding:0 12px; border-left:1px solid rgba(255,255,255,.2); flex:0 0 auto; }
#swf-studio .bTitle b { font:700 18px/1 "Barlow Condensed","Segoe UI",system-ui; letter-spacing:.05em; text-transform:uppercase; color:#fff; }
#swf-studio .bTitle small { font-size:9.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#8f96a8; margin-top:3px; }
#swf-studio .bNav { margin-left:auto; display:flex; align-items:center; gap:2px; }
#swf-studio .bNav a { color:#fff; text-decoration:none; font:600 12px/1 "Segoe UI",system-ui; letter-spacing:.12em; text-transform:uppercase; padding:11px 11px; opacity:.75; transition:opacity .15s; }
#swf-studio .bNav a:hover { opacity:1; color:#fff; }
#swf-studio .bNav a.on { opacity:1; box-shadow:inset 0 -2px 0 var(--yel); }
#swf-studio.home .studioOnly, #swf-studio:not(.home) .homeOnly { display:none !important; }
#swf-studio.home main > :not(#welcome):not(#loader):not(#impWin):not(#help) { display:none !important; }
#swf-studio.home #tabsBar { display:none !important; }
#swf-studio .hActs { display:flex; align-items:center; gap:6px; flex:0 0 auto; }
#swf-studio.home .hActs { margin-left:8px; }
#swf-studio header#brand .grow { flex:1 1 0; min-width:6px; }
#swf-studio .hbtn.ic { width:34px; padding:6px 0; justify-content:center; font-size:15px; }
#swf-studio #tabsBar { display:flex !important; align-items:center; gap:6px; height:auto; background:none !important; padding:0 0 0 4px; min-width:0; flex:0 1 auto; }
#swf-studio #tabsList { display:flex; gap:4px; align-items:center; min-width:0; overflow-x:auto; scrollbar-width:none; }
#swf-studio .ctab { height:34px; border-radius:10px; background:rgba(255,255,255,.1); color:#d9deea; padding:0 6px 0 12px; gap:8px; font-size:12.5px; font-weight:700; }
#swf-studio .ctab:hover { background:rgba(255,255,255,.18); color:#fff; }
#swf-studio .ctab.on { background:#fff; color:var(--navy); }
#swf-studio .ctab small { font-size:10px; letter-spacing:.06em; text-transform:uppercase; opacity:.6; }
#swf-studio .ctab .x { opacity:.35; }
#swf-studio .ctab:hover .x { opacity:.8; }
#swf-studio #tabAdd { height:34px; margin:0; border:1px dashed rgba(255,255,255,.4); border-radius:10px; background:none; color:#fff; padding:0 11px; font-size:12.5px; font-weight:700; white-space:nowrap; }
#swf-studio #tabAdd:hover { border-color:var(--yel); color:var(--yel); background:none; }
#swf-studio header #viewSw { background:rgba(255,255,255,.1); border-radius:10px; padding:3px; margin:0 2px; }
#swf-studio header #viewSw button { color:#cfd6e6; padding:6px 10px; border-radius:7px; font-size:12px; }
#swf-studio header #viewSw button:hover { background:rgba(255,255,255,.14); color:#fff; }
#swf-studio header #viewSw button.on { background:#fff; color:var(--navy); }
#swf-studio .menu { top:44px; }
#swf-studio .menu .mhead { font-size:10.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#9a94a6; padding:6px 12px 2px; }
#swf-studio .menu .mfoot { font-size:11px; color:#9a94a6; padding:8px 12px 4px; border-top:1px solid #eee9f1; margin-top:4px; }
@media (max-width:1400px){
#swf-studio header#brand .hbtn .lb { display:inline; }
}

@media (max-width:1100px){
#swf-studio header#brand .hbtn .lb, #swf-studio #tabAdd .lb { display:none; }
}

@media (max-width:1180px){
#swf-studio .bTitle small { display:none; }
}

@media (max-width:1000px){
#swf-studio:not(.home) .bTitle { display:none; }
#swf-studio .ctab small { display:none; }
}
#swf-studio #rail { width:74px; padding:12px 0; gap:6px; }
#swf-studio .tool { width:64px; height:auto; min-height:60px; padding:9px 2px 8px; font-size:10.5px; line-height:1.15; text-align:center; gap:5px; }
#swf-studio .tool .stn { position:absolute; top:5px; right:7px; width:15px; height:15px; border-radius:50%; font:800 9px/15px system-ui; font-style:normal; background:#eee9f1; color:#6d6478; }
#swf-studio .tool.on .stn { background:var(--navy); color:#fff; }
#swf-studio .tool.done .stn { background:var(--yel); color:#000; }
#swf-studio .mobOnly { display:none !important; }
#swf-studio .sideH { display:flex; align-items:center; gap:6px; padding:14px 10px 8px 16px; }
#swf-studio #side .sideH h2 { padding:0; flex:1; min-width:0; }
#swf-studio #sideClose, #swf-studio #rClose { border:none; background:none; width:28px; height:28px; border-radius:8px; color:#9a94a6; font-size:18px; line-height:1; flex:0 0 auto; }
#swf-studio #sideClose:hover, #swf-studio #rClose:hover { background:#f2f0f6; color:var(--navy); }
#swf-studio #work { position:relative; }
#swf-studio #hint { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.35; max-width:min(560px, calc(100% - 40px)); }
#swf-studio #chart { position:fixed; inset:0; z-index:96; }
#swf-studio #chartImg p { font-size:12px; color:#6d6478; text-align:center; margin-top:8px; }
#swf-studio #v3d .bar { right:auto; height:auto; padding:10px; background:none; overflow:visible; }
#swf-studio .rWrap { position:relative; }
#swf-studio #v3d .bar #bRendu { width:auto; height:32px; padding:0 12px; border-radius:10px; background:rgba(0,0,0,.55); color:#fff; font:700 12px/1 "Segoe UI",system-ui; backdrop-filter:blur(4px); }
#swf-studio #v3d .bar #bRendu:hover { background:rgba(0,0,0,.75); }
#swf-studio #v3d #rendu { display:none; position:absolute; left:0; top:38px; background:#fff; border-radius:12px; box-shadow:0 14px 34px rgba(13,42,78,.28); padding:8px; width:270px; flex-direction:column; gap:4px; z-index:6; }
#swf-studio #v3d #rendu.on { display:flex; }
#swf-studio #v3d #rendu .rRow { position:static; display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:8px; font-size:12.5px; color:#1c1620; background:none; margin:0; }
#swf-studio #v3d #rendu .rRow > span { flex:0 0 44px; font:700 10.5px/1 system-ui; color:#6d6478; text-transform:uppercase; letter-spacing:.06em; text-shadow:none; }
#swf-studio #v3d #rendu select { flex:1; min-width:0; max-width:none; font:inherit; font-size:12.5px; padding:6px 8px; border:1px solid var(--line); border-radius:8px; background:#fff; color:#1c1620; }
#swf-studio #v3d #rendu input[type=range] { width:74px; accent-color:var(--navy); margin:0; }
#swf-studio #v3d #rendu .dec.tex.lisse input[type=range] { display:none; }
#swf-studio #v3d #rendu #bgOp { flex:1; width:auto; }
#swf-studio #v3d #rendu #bgOpV { flex:0 0 38px; text-align:right; font:700 12px/1 system-ui; color:#1c1620; }
#swf-studio #v3d #rendu .rTog { width:auto; height:auto; justify-content:center; border:1px solid var(--line); background:#fff; color:#1c1620; font-weight:700; cursor:pointer; box-shadow:none; }
#swf-studio #v3d #rendu .rTog:hover { border-color:var(--navy); background:#fff; }
#swf-studio #v3d #rendu .rTog.on { background:var(--navy); color:#fff; border-color:var(--navy); }
#swf-studio #right { overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; scrollbar-color:#d9d4e0 transparent; }
#swf-studio #right .zone { overflow:visible; flex:0 0 auto; max-height:none; min-height:0; }
#swf-studio .rTop { display:flex; align-items:center; padding:10px 8px 2px 16px; position:sticky; top:0; background:#fff; z-index:3; }
#swf-studio .rTop span { flex:1; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--navy); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#swf-studio #pcFold > summary { list-style:none; cursor:pointer; user-select:none; }
#swf-studio #pcFold > summary::-webkit-details-marker { display:none; }
#swf-studio #pcFold > summary .arr { font-size:10px; color:#9a94a6; transition:transform .15s; display:inline-block; }
#swf-studio #pcFold[open] > summary .arr { transform:rotate(90deg); }
#swf-studio #zPieces { border-bottom:1px solid #eee9f1; }
#swf-studio .pcRow .tag { font-size:9.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; padding:2px 5px; border-radius:5px; background:#eef1f7; color:var(--navy); flex:0 0 auto; }
#swf-studio .pcRow.on .tag { background:rgba(255,255,255,.2); color:#fff; }
#swf-studio .dcard { margin:6px 12px 12px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:0 1px 3px rgba(13,42,78,.07); overflow:hidden; }
#swf-studio #side .dcard { margin:0; }
#swf-studio .dcH { display:flex; align-items:center; gap:6px; padding:11px 10px 6px 12px; }
#swf-studio .dcH .t { flex:1; min-width:0; display:flex; flex-direction:column; }
#swf-studio .dcH b { font-size:13px; font-weight:800; color:var(--navy); }
#swf-studio .dcH small { font-size:11px; color:var(--mut); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#swf-studio .dcIc { border:1px solid var(--line); background:#fff; border-radius:8px; height:28px; min-width:28px; padding:0 8px; font:700 12px/1 "Segoe UI",system-ui; color:var(--navy); cursor:pointer; white-space:nowrap; display:inline-flex; align-items:center; justify-content:center; gap:4px; }
#swf-studio .dcIc:hover { border-color:var(--navy); background:#f4f6fb; }
#swf-studio .dcIc.on { background:var(--navy); color:#fff; border-color:var(--navy); }
#swf-studio .dcIc[disabled] { opacity:.4; cursor:default; }
#swf-studio .dcScope { display:flex; flex-wrap:wrap; align-items:center; gap:4px; padding:0 12px 9px; }
#swf-studio .dcScope .l { font-size:11px; color:var(--mut); margin-right:2px; }
#swf-studio .dcScope button { border:1px solid var(--line); background:#fff; border-radius:999px; padding:4px 10px; font:700 11.5px/1.2 "Segoe UI",system-ui; color:#3c3546; cursor:pointer; }
#swf-studio .dcScope button:hover { border-color:var(--navy); }
#swf-studio .dcScope button.on { background:var(--navy); border-color:var(--navy); color:#fff; }
#swf-studio .dcRow { display:flex; align-items:center; gap:10px; padding:8px 12px; border:none; border-top:1px solid #f0edf4; cursor:pointer; background:none; width:100%; text-align:left; font:inherit; color:inherit; }
#swf-studio .dcRow:hover, #swf-studio .dcRow.open { background:#f4f6fb; }
#swf-studio .dcRow.open { box-shadow:inset 3px 0 0 var(--navy); }
#swf-studio .dcSw { width:36px; height:36px; border-radius:10px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.14); flex:0 0 auto; display:flex; align-items:center; justify-content:center; font:800 11px/1 system-ui; }
#swf-studio .dcInfo { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
#swf-studio .dcInfo b { font-size:13px; font-weight:800; color:#1c1620; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
#swf-studio .dcInfo small { font-size:11px; color:var(--mut); }
#swf-studio .dcInfo .was { display:inline-flex; align-items:center; gap:4px; font-size:10.5px; font-weight:600; color:var(--mut); }
#swf-studio .dcInfo .was i { width:12px; height:12px; border-radius:3px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.18); display:inline-block; }
#swf-studio .dcBar { height:4px; border-radius:2px; background:#ece9f0; overflow:hidden; margin-top:2px; }
#swf-studio .dcBar i { display:block; height:100%; background:#9fb0cc; border-radius:2px; }
#swf-studio .dcGo { font-size:16px; color:#9a94a6; flex:0 0 auto; }
#swf-studio .dcPal { padding:9px 12px 12px; background:#f4f6fb; border-top:1px solid #eee9f1; }
#swf-studio .dcPalH { font-size:11.5px; color:#3c3546; margin-bottom:7px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
#swf-studio .dcPalH b { color:var(--navy); }
#swf-studio .pgrid { display:grid; grid-template-columns:repeat(8,1fr); gap:5px; }
#swf-studio .pgrid .pc, #swf-studio .pClub .pc { aspect-ratio:1; border-radius:7px; cursor:pointer; display:flex; align-items:center; justify-content:center; font:800 10px/1 system-ui; box-shadow:0 0 0 1px rgba(0,0,0,.12); border:none; padding:0; transition:transform .08s; }
#swf-studio .pgrid .pc:hover, #swf-studio .pClub .pc:hover { transform:scale(1.14); box-shadow:0 0 0 2px var(--navy); z-index:1; position:relative; }
#swf-studio .pgrid .pc.on { box-shadow:0 0 0 3px var(--navy); }
#swf-studio .pClub { display:flex; align-items:center; gap:5px; margin-bottom:8px; font-size:11px; font-weight:600; color:var(--mut); flex-wrap:wrap; }
#swf-studio .pClub .pc { width:26px; height:26px; }
#swf-studio .pLink { border:none; background:none; color:var(--navy); font:600 11.5px/1 "Segoe UI",system-ui; text-decoration:underline; cursor:pointer; padding:8px 0 0; }
#swf-studio .dcFoot { display:flex; flex-wrap:wrap; gap:6px; padding:9px 12px 11px; border-top:1px solid #f0edf4; }
#swf-studio .dcClub { display:flex; align-items:center; gap:6px; padding:9px 12px 12px; border-top:1px solid #f0edf4; flex-wrap:wrap; background:#fbfaff; }
#swf-studio .dcClub .l { font-size:11.5px; font-weight:700; color:#3c3546; flex:1 1 100%; display:flex; justify-content:space-between; gap:8px; }
#swf-studio .dcClub .l small { font-weight:600; color:var(--mut); }
#swf-studio .clubSw { width:30px; height:30px; border-radius:8px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.15); border:none; cursor:pointer; font:800 10px/1 system-ui; padding:0; }
#swf-studio .clubSw.empty { background:repeating-linear-gradient(45deg,#fff 0 4px,#eee9f1 4px 8px); color:#9a94a6; }
#swf-studio.pickFam #ov, #swf-studio.pickFam #v3d canvas { cursor:crosshair !important; }
#swf-studio.pickFam #bPickFam { animation:pulse 1s ease-in-out infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 4px rgba(13,42,78,.2); } }
#swf-studio .pcDesign { display:flex; align-items:center; gap:8px; padding:4px 2px 2px; font-size:12px; color:#3c3546; flex-wrap:wrap; }
#swf-studio .pcDesign .lk { margin-left:auto; border:none; background:none; color:#b3261e; font:600 11.5px/1 "Segoe UI",system-ui; text-decoration:underline; cursor:pointer; padding:4px 0; }
#swf-studio .dfilt { display:flex; flex-wrap:wrap; gap:5px; }
#swf-studio .dfilt button { border:1px solid var(--line); background:#fff; border-radius:999px; padding:6px 11px; font:700 12px/1 "Segoe UI",system-ui; color:#3c3546; cursor:pointer; display:inline-flex; gap:6px; align-items:center; }
#swf-studio .dfilt button small { font-weight:700; opacity:.55; font-size:11px; }
#swf-studio .dfilt button:hover { border-color:var(--navy); }
#swf-studio .dfilt button.on { background:var(--navy); border-color:var(--navy); color:#fff; }
#swf-studio .dsearch { width:100%; font:inherit; font-size:13px; padding:8px 11px; border:1px solid var(--line); border-radius:10px; background:#fff; }
#swf-studio .dsearch:focus { outline:none; border-color:var(--navy); }
#swf-studio .dnote { font-size:12px; color:var(--mut); line-height:1.45; margin:0; }
#swf-studio .dgh { font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#9a94a6; margin:6px 0 -2px; }
#swf-studio .imp2 { display:grid; gap:6px; }
#swf-studio .imp2 .btn { text-align:left; display:flex; flex-direction:column; gap:2px; }
#swf-studio .imp2 .btn small { font-weight:500; color:var(--mut); font-size:11.5px; }
#swf-studio .qadd { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
#swf-studio .qadd button { border:1px solid var(--line); background:#fff; border-radius:12px; padding:12px 8px 10px; display:flex; flex-direction:column; align-items:center; gap:5px; font:800 18px/1 "Segoe UI",system-ui; color:var(--navy); cursor:pointer; }
#swf-studio .qadd button:hover { border-color:var(--navy); background:#f4f6fb; }
#swf-studio .qadd button span { font:700 10.5px/1.2 system-ui; letter-spacing:.04em; text-transform:uppercase; color:var(--mut); }
#swf-studio .fgrid { display:grid; grid-template-columns:repeat(2,1fr); gap:6px; }
#swf-studio .fgrid .fontbtn { font-size:17px; padding:8px 8px 9px; overflow:hidden; white-space:nowrap; }
#swf-studio #welcome { top:var(--band); }
#swf-studio #wSteps { padding:26px 40px 60px; }
#swf-studio #wCrumb { max-width:1180px; margin:0 auto 12px; font-size:12px; color:var(--mut); display:flex; align-items:center; gap:8px; }
#swf-studio #wCrumb b { color:var(--navy); font-weight:700; }
#swf-studio #wCrumb i { font-style:normal; opacity:.5; }
#swf-studio .wIntro { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:22px; flex-wrap:wrap; }
#swf-studio .wIntroT { max-width:620px; }
#swf-studio .wIntro .lead { margin:0; }
#swf-studio .wHow { list-style:none; display:flex; gap:10px; margin:0; padding:0; }
#swf-studio .wHow li { display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:9px 14px 9px 10px; font-size:12px; font-weight:600; color:#3c3546; line-height:1.25; }
#swf-studio .wHow i { font-style:normal; width:26px; height:26px; border-radius:50%; background:#000; color:var(--yel); font:800 12px/26px system-ui; text-align:center; flex:0 0 auto; }
#swf-studio #wHero { height:110px; }
@media (max-width:980px){
#swf-studio .wHow { display:none; }
}

@media (max-width:760px){
#swf-studio { --band:51px; }
#swf-studio header#brand { padding:0 8px 0 6px; gap:6px; }
#swf-studio .bLogo img { width:38px; height:38px; }
#swf-studio .bNav { display:none; }
#swf-studio.home .bTitle { display:flex; }
#swf-studio #wSteps { padding:16px 14px 40px; }
#swf-studio main { padding-bottom:64px; }
#swf-studio #rail { position:fixed; left:0; right:0; bottom:0; width:auto; height:64px; flex-direction:row; justify-content:space-around; align-items:center; padding:4px; border-right:none; border-top:1px solid #ddd8e4; z-index:46; }
#swf-studio #rail .rgrow { display:none; }
#swf-studio .tool { flex:1 1 0; width:auto; min-height:54px; padding:6px 1px; font-size:9.5px; }
#swf-studio .tool.on::before { left:25%; right:25%; top:-4px; bottom:auto; width:auto; height:3px; }
#swf-studio .mobOnly { display:flex !important; }
#swf-studio header #viewSw, #swf-studio #bExp4 { display:none; }
#swf-studio #work.vsplit #stage, #swf-studio #work.v2d #stage { display:none; }
#swf-studio #work.vsplit #v3d, #swf-studio #work.v2d #v3d { display:block; flex:1 1 0; min-width:0; }
#swf-studio #side { position:fixed; left:0; right:0; bottom:64px; height:min(64vh,600px); width:auto !important; min-width:0 !important; max-width:none !important; flex:none !important; z-index:44; border-radius:18px 18px 0 0; border-right:none; box-shadow:0 -14px 36px rgba(13,42,78,.24); }
#swf-studio #side .inner { width:auto !important; }
#swf-studio #right, #swf-studio #right.over { position:fixed !important; left:0; right:0; bottom:64px; top:auto; height:min(64vh,600px); width:auto !important; flex:none !important; z-index:44; border-radius:18px 18px 0 0; border-left:none; box-shadow:0 -14px 36px rgba(13,42,78,.24); transform:none !important; display:none; }
#swf-studio #right.msheet { display:flex; }
#swf-studio #rightHandle, #swf-studio #rClose { display:none !important; }
#swf-studio #hint { bottom:84px; }
#swf-studio .ctab { padding:0 4px 0 9px; font-size:12px; }
#swf-studio #tabAdd { padding:0 9px; }
}
#swf-studio main { overflow:clip; }
#swf-studio #right.over { visibility:hidden; transition:transform .18s ease, visibility 0s linear .18s; }
#swf-studio #right.over.open { visibility:visible; transition:transform .18s ease; }
@media (max-width:1440px){
#swf-studio #right.over.open ~ #rightHandle { right:272px; }
}

@media (max-width:1080px){
#swf-studio #right.over.open ~ #rightHandle { right:236px; }
}
#swf-studio #ctx label.cb { white-space:nowrap; }
#swf-studio #ctx .cb .dgesw { width:auto; flex:0 0 auto; height:28px; border:none; padding:0 4px; }
#swf-studio .dcard { container-type:inline-size; }
#swf-studio .dcGo { flex:0 0 auto; font:700 11.5px/1 "Segoe UI",system-ui; color:var(--navy); border:1px solid var(--line); border-radius:999px; padding:7px 11px; background:#fff; }
#swf-studio .dcRow:hover .dcGo, #swf-studio .dcRow.open .dcGo { background:var(--navy); border-color:var(--navy); color:#fff; }
@container (max-width:250px){
#swf-studio .dcBar { display:none; }
#swf-studio .dcGo { padding:7px 8px; }
#swf-studio .dcH small { white-space:normal; }
}
#swf-studio .dcScope button.on { background:#eef1f7; color:var(--navy); border-color:var(--navy); }
#swf-studio .dcClub .l { flex-wrap:wrap; }
#swf-studio .dcClub .l small { flex-basis:100%; font-weight:500; }
#swf-studio .ctab small, #swf-studio .dfilt button small { opacity:.75; }
@media (max-width:1100px){
#swf-studio header#brand .hbtn .lb { display:inline; }
#swf-studio header#brand #bFile .lb, #swf-studio #tabAdd .lb { display:none; }
}
#swf-studio #sideClose, #swf-studio #rClose, #swf-studio .panelH .n, #swf-studio .stkN, #swf-studio .fold summary small, #swf-studio .fold summary .arr, #swf-studio #pcFold > summary .arr, #swf-studio .menu .mfoot { color:var(--mut); }
#swf-studio .menu #ver { border:none; padding:0; color:inherit; }
#swf-studio .ctab .x { opacity:.6; }
#swf-studio .pcRow .tag { background:none; padding:0; color:var(--mut); }
#swf-studio .pcRow.on .tag { background:none; color:rgba(255,255,255,.8); }
#swf-studio .lkRm { border:none; background:none; color:#b3261e; font:600 12px/1 "Segoe UI",system-ui; text-decoration:underline; cursor:pointer; padding:10px 2px; flex:0 0 auto; }
#swf-studio :focus-visible { outline:2px solid var(--navy); outline-offset:2px; }
#swf-studio header#brand :focus-visible { outline-color:var(--yel); }
@media (max-width:760px){
#swf-studio #side, #swf-studio #right, #swf-studio #right.over { height:min(46vh,420px); }
#swf-studio.sheet main { padding-bottom:calc(min(46vh,420px) + 64px); }
#swf-studio #side::before, #swf-studio #right.msheet::before { content:""; flex:0 0 auto; width:36px; height:4px; border-radius:2px; background:#d9d4e0; margin:8px auto 0; }
#swf-studio #sideClose { font-size:0; }
#swf-studio #sideClose::before { content:"✕"; font-size:15px; }
#swf-studio .menu { position:fixed; left:8px; right:8px; top:calc(var(--band) + 6px); min-width:0; max-height:calc(100dvh - var(--band) - 84px); overflow:auto; }
#swf-studio #bRedo:disabled { display:none; }
#swf-studio .ctab > span:first-child { max-width:96px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#swf-studio header#brand .hbtn, #swf-studio .ctab, #swf-studio #tabAdd { min-height:40px; }
#swf-studio header#brand .hbtn.ic { width:40px; }
#swf-studio #v3d .views button { min-height:40px; padding:0 13px; }
#swf-studio #v3d .bar #bRendu { height:40px; }
#swf-studio .dfilt button, #swf-studio .dcScope button { min-height:40px; padding:0 14px; }
#swf-studio .dcIc { height:40px; padding:0 12px; }
#swf-studio .clubSw, #swf-studio #sideClose { width:40px; height:40px; }
#swf-studio .btn, #swf-studio .cb, #swf-studio #v3d #rendu select, #swf-studio #v3d #rendu .rTog { min-height:40px; }
}

/* ===== Reglages propres au PLM (ecrits a la main dans port-studio.py) ===== */
#swf-studio { position:relative; height:calc(100vh - 64px); height:calc(100dvh - 64px); min-height:520px; display:flex; flex-direction:column; overflow:hidden; background:#f4f6fb; color:#1c1620; font-family:"Segoe UI", system-ui, sans-serif; border:0; border-radius:0; user-select:none; --band:55px; --navy:#0B0D0C; --mut:#6d6478; --line:#e6e1ec; --yel:#8DC63F; --mag:#8DC63F; --cya:#8DC63F; }
#swf-studio .hbtn .sum { margin-left:2px; padding:2px 8px; border-radius:999px; background:#8DC63F; color:#000; font-size:11px; font-weight:800; white-space:nowrap; }
#swf-studio .hbtn .sum:empty { display:none; }
#swf-studio:focus, #swf-studio:focus-visible { outline:none; }
#swf-studio .poRow .poDel { flex:0 0 auto; border:0; background:none; color:inherit; opacity:.55; font-size:12px; line-height:1; padding:3px 6px; border-radius:5px; cursor:pointer; }
#swf-studio .poRow .poDel:hover { opacity:1; background:rgba(0,0,0,.08); }
#swf-studio .poRow.on .poDel:hover { background:rgba(255,255,255,.22); }
#swf-studio[hidden] { display:none; }
#swf-studio #welcome, #swf-studio #tabsBar, #swf-studio #projName { display:none !important; }
#swf-studio header#brand { background:#0B0D0C !important; border-image:none; border-bottom:3px solid #8DC63F; }
#swf-studio .bTitle b { font-family:"Inter", system-ui, sans-serif; letter-spacing:.02em; text-transform:none; font-size:15px; }
#swf-studio .hbtn.y { background:#8DC63F; border-color:#8DC63F; color:#0B0D0C; }
#swf-studio .hbtn.y:hover { background:#B6E06E; color:#0B0D0C; }
#swf-studio #chartImg { max-width:min(1000px, 92%); max-height:86vh; overflow:auto; }
#swf-studio #chartImg .chGrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(96px, 1fr)); gap:10px; }
#swf-studio .chSw { display:flex; flex-direction:column; align-items:center; gap:4px; font-size:11px; text-align:center; }
#swf-studio .chSw i { display:block; width:100%; aspect-ratio:1; border-radius:8px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.12); }
#swf-studio .chSw b { font-weight:800; color:#0B0D0C; }
#swf-studio .chSw small { color:#6d6478; }
#swf-studio #valWin, #swf-studio #impWin, #swf-studio #chart { font-family:"Segoe UI", system-ui, sans-serif; }
#swf-studio .fontbtn, #swf-studio .fontbtn small { text-transform:none; }
@media (max-width:760px) {
  #swf-studio { height:calc(100vh - 64px); height:calc(100dvh - 64px); border-radius:0; }
}
