/* V0.397 FreeCell — competitor-grade game-first rewrite */
body.freecell-v0397{--fc397-green1:#126b4a;--fc397-green2:#084833;--fc397-card:#fffdf8;--fc397-red:#c9364b}
.freecell-v0397 .fc397-page{max-width:1220px;padding-top:18px;padding-bottom:36px}
.fc397-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:0 0 10px}
.fc397-heading h1{margin:2px 0 3px;font-size:clamp(34px,5vw,52px);line-height:1}.fc397-heading p{margin:0;color:var(--muted);max-width:720px}.fc397-heading .eyebrow{font-size:.72rem}
.fc397-deal-chip{display:grid;grid-template-columns:auto auto;column-gap:8px;row-gap:1px;align-items:center;min-width:190px;padding:9px 12px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);font:inherit;text-align:left;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.fc397-deal-chip span{font-size:.68rem;color:var(--muted);font-weight:900;letter-spacing:.05em;text-transform:uppercase}.fc397-deal-chip strong{grid-row:1/3;grid-column:2;font-size:1.05rem;text-align:right}.fc397-deal-chip small{font-size:.67rem;color:var(--muted)}.fc397-deal-chip:hover{background:var(--soft)}
.fc397-shell{padding:12px;border-radius:20px;overflow:visible}.fc397-scorebar{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:8px}.fc397-scorebar>div{padding:6px 9px;border:1px solid var(--line);border-radius:10px;background:var(--soft);min-width:0}.fc397-scorebar small{display:block;color:var(--muted);font-size:.6rem;font-weight:900;letter-spacing:.05em}.fc397-scorebar strong{display:block;margin-top:1px;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc397-scorebar #fcFair.assisted{color:#b55a19}
.fc397-table{--fcw:clamp(52px,7.5vw,91px);--fch:calc(var(--fcw)*1.37);position:relative;border-radius:18px;padding:14px;background:linear-gradient(145deg,var(--fc397-green1),var(--fc397-green2));box-shadow:inset 0 0 0 1px rgba(255,255,255,.14),0 10px 26px rgba(0,0,0,.09);overflow:hidden;min-height:420px}
body[data-fc-theme="midnight"] .fc397-table{background:linear-gradient(145deg,#2b3140,#121722)}body[data-fc-theme="blue"] .fc397-table{background:linear-gradient(145deg,#17698f,#0a3c5d)}body[data-fc-theme="plum"] .fc397-table{background:linear-gradient(145deg,#744b71,#3d263f)}
body.fc397-large .fc397-table{--fcw:clamp(57px,8vw,98px)}
.fc397-table-inner{transition:filter .16s ease,opacity .16s ease}.fc397-pause-cover{display:none;position:absolute;inset:0;z-index:400;align-items:center;justify-content:center;background:rgba(7,20,15,.73);backdrop-filter:blur(4px);text-align:center;color:#fff;padding:24px}.fc397-pause-cover>div{max-width:320px}.fc397-pause-cover strong{display:block;font-size:2rem}.fc397-pause-cover span{display:block;margin:6px 0 14px;color:rgba(255,255,255,.78);line-height:1.4}.fc397-pause-cover .btn{min-width:150px}.freecell-v0397.fc397-paused .fc397-pause-cover{display:flex}.freecell-v0397.fc397-paused .fc397-table-inner{filter:blur(12px);opacity:.12;pointer-events:none;user-select:none}
.fc397-toprow{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:14px}.fc397-pile-group>small{display:block;margin:0 0 5px;color:rgba(255,255,255,.72);font-size:.61rem;font-weight:900;letter-spacing:.08em}.fc397-foundation-group>small{text-align:right}.fc397-foundation-group .fc-slots{justify-content:end}.freecell-v0397 .fc-slots{display:grid;grid-template-columns:repeat(4,var(--fcw));gap:5px}
.freecell-v0397 .fc-slot{position:relative;width:var(--fcw);height:var(--fch);border:1px dashed rgba(255,255,255,.36);border-radius:10px;background:rgba(255,255,255,.055);color:#fff;padding:0;font:inherit;cursor:pointer}.freecell-v0397 .fc-slot:not(:empty){border-style:solid;border-color:#dedede;background:var(--fc397-card);color:#111820;box-shadow:0 4px 12px rgba(0,0,0,.18)}.freecell-v0397 .fc-slot-mark{font-size:.5rem;color:rgba(255,255,255,.5);font-weight:900;letter-spacing:.05em}.freecell-v0397 .fc-foundation-mark{font-size:clamp(1.2rem,3vw,2rem);color:rgba(255,255,255,.5)}
.freecell-v0397 .fc-columns{display:grid;grid-template-columns:repeat(8,minmax(0,var(--fcw)));gap:5px;align-items:start;justify-content:space-between}.freecell-v0397 .fc-column{position:relative;min-width:0;height:calc(var(--fch) + (var(--count) - 1)*clamp(27px,3.2vw,42px));border-radius:10px;outline:1px solid transparent}.freecell-v0397 .fc-column.empty{min-height:var(--fch);outline:1px dashed rgba(255,255,255,.28)}.freecell-v0397 .fc-empty-label{display:none;position:absolute;inset:0;align-items:center;justify-content:center;color:rgba(255,255,255,.32);font-size:.55rem;font-weight:900}.freecell-v0397 .fc-column.empty .fc-empty-label{display:flex;pointer-events:none}
.freecell-v0397 .fc-card{position:absolute;left:0;top:calc(var(--i)*clamp(27px,3.2vw,42px));width:var(--fcw);height:var(--fch);border:1px solid #d7dadd;border-radius:10px;background:linear-gradient(#fff,#fffdfa);color:#111820;box-shadow:0 3px 8px rgba(0,0,0,.19);padding:5px 6px;touch-action:none;user-select:none;font:inherit;text-align:left;cursor:pointer;transition:transform .11s ease,box-shadow .11s ease}.freecell-v0397 .fc-card:hover{transform:translateY(-2px);box-shadow:0 5px 12px rgba(0,0,0,.23)}.freecell-v0397 .fc-card:focus-visible,.freecell-v0397 .fc-slot:focus-visible{outline:3px solid #ffd35a;outline-offset:1px;z-index:160}.freecell-v0397 .fc-card.fc-selected,.freecell-v0397 .fc-slot.fc-selected{box-shadow:0 0 0 3px #ffd35a,0 7px 16px rgba(0,0,0,.28);z-index:170}.freecell-v0397 .fc-rank{display:block;font-size:clamp(.8rem,1.7vw,1.15rem);font-weight:950;line-height:1}.freecell-v0397 .fc-suit{display:block;text-align:center;font-size:clamp(1.15rem,3vw,2rem);line-height:1.05;margin-top:5px}.freecell-v0397 .fc-rank.red,.freecell-v0397 .fc-suit.red,.freecell-v0397 .fc-card.red{color:var(--fc397-red)}
.freecell-v0397 .fc-card.fc-hint-source,.freecell-v0397 .fc-slot.fc-hint-source{box-shadow:0 0 0 4px #ffd35a,0 6px 16px rgba(0,0,0,.3)!important;z-index:190}.freecell-v0397 .fc-column.fc-hint-dest,.freecell-v0397 .fc-slot.fc-hint-dest{outline:4px solid #6be2ff!important;outline-offset:2px;z-index:185}
.fc397-toolbar{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:8px}.fc397-tool{display:flex;align-items:center;justify-content:center;gap:7px;min-height:45px;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--text);font:inherit;font-weight:850;cursor:pointer}.fc397-tool span{font-size:1rem;color:var(--muted)}.fc397-tool.primary{background:var(--text);color:#fff;border-color:var(--text)}.fc397-tool.primary span{color:#fff}.fc397-tool:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,0,0,.07)}.fc397-tool:disabled{opacity:.42;cursor:not-allowed}.fc397-status-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px}.fc397-status-row .status{flex:1;margin:0;padding:8px 10px;font-size:.76rem}.fc397-mode-badge{flex:0 0 auto;padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.68rem;font-weight:850;background:var(--soft)}
.fc397-details{margin-top:10px;border:1px solid var(--line);border-radius:15px;background:var(--card);overflow:hidden}.fc397-details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;cursor:pointer;padding:11px 13px;font-weight:900}.fc397-details>summary::-webkit-details-marker{display:none}.fc397-details>summary::after{content:'＋';color:var(--muted);margin-left:auto}.fc397-details[open]>summary::after{content:'−'}.fc397-details>summary small{color:var(--muted);font-size:.68rem;font-weight:700;margin-left:6px}.fc397-detail-body{border-top:1px solid var(--line);padding:12px}.fc397-statgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.fc397-statgrid>div{padding:9px;border:1px solid var(--line);border-radius:11px;background:var(--soft)}.fc397-statgrid small{display:block;color:var(--muted);font-size:.62rem;font-weight:850}.fc397-statgrid strong{display:block;margin-top:2px}.fc397-statgrid span{display:block;margin-top:2px;color:var(--muted);font-size:.68rem}.fc397-section-title{display:flex;align-items:center;justify-content:space-between;margin:13px 0 7px}.fc397-section-title small{display:block;color:var(--muted);font-size:.61rem;font-weight:900;letter-spacing:.06em}.fc397-section-title strong{display:block;margin-top:2px}.fc397-recent{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.fc397-recent button,.fc397-recent .fc397-empty{padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--text);font:inherit;text-align:left}.fc397-recent button{cursor:pointer}.fc397-recent button:hover{background:var(--soft)}.fc397-recent strong,.fc397-recent span{display:block}.fc397-recent span{margin-top:2px;color:var(--muted);font-size:.67rem}.fc397-empty{color:var(--muted)!important;grid-column:1/-1}.fc397-coach{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--soft);margin-bottom:9px}.fc397-coach small{display:block;color:var(--muted);font-size:.61rem;font-weight:900}.fc397-coach strong{display:block;margin:2px 0}.fc397-coach p{margin:0;color:var(--muted);font-size:.8rem}.fc397-coach>div:last-child{text-align:right;min-width:110px}.fc397-coach>div:last-child strong{font-size:1.15rem}.fc397-guidegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.fc397-guidegrid>div{padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--soft)}.fc397-guidegrid small{display:block;color:var(--muted);font-size:.6rem;font-weight:900}.fc397-guidegrid strong{display:block;margin:3px 0}.fc397-guidegrid p{margin:0;color:var(--muted);font-size:.75rem;line-height:1.45}
/* Planner reuses the transparent analyzer, but stays below the game. */
#fcPlannerResult:empty{display:none}#fcPlannerResult{margin-top:9px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.fc397-plan-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px;background:var(--soft)}.fc397-plan-head small{display:block;color:var(--muted);font-size:.61rem;font-weight:900}.fc397-plan-head strong{display:block;margin:2px 0}.fc397-plan-head p{margin:0;color:var(--muted);font-size:.75rem}.fc397-plan-list{padding:5px 10px}.fc397-plan-row{display:grid;grid-template-columns:26px minmax(0,1fr) 62px;gap:8px;align-items:center;padding:7px 2px;border-bottom:1px solid var(--line)}.fc397-plan-row:last-child{border-bottom:0}.fc397-plan-row.best{background:var(--soft);border-radius:8px}.fc397-plan-row>span:first-child{text-align:center;color:var(--muted);font-weight:900}.fc397-plan-row strong{display:block;font-size:.8rem}.fc397-plan-row small{display:block;color:var(--muted);font-size:.68rem}.fc397-plan-row>span:last-child{text-align:right;font-weight:900}.fc397-plan-note{margin:0;padding:8px 11px;border-top:1px solid var(--line);color:var(--muted);font-size:.68rem}
/* Dialogs */
.fc397-dialog{width:min(560px,calc(100vw - 24px));max-height:min(86vh,760px);overflow:auto;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--text);padding:0;box-shadow:0 24px 80px rgba(0,0,0,.28)}.fc397-dialog::backdrop{background:rgba(0,0,0,.5);backdrop-filter:blur(2px)}.fc397-dialog form{padding:18px}.fc397-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:10px;margin-bottom:12px}.fc397-dialog-head small{display:block;color:var(--muted);font-size:.65rem;font-weight:900;letter-spacing:.08em}.fc397-dialog-head h2{margin:2px 0}.fc397-dialog-head>button{border:0;background:transparent;color:var(--text);font-size:1.7rem;line-height:1;cursor:pointer}.fc397-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fc397-mode-card{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--card);color:var(--text);font:inherit;text-align:left;cursor:pointer}.fc397-mode-card>span{grid-row:1/3;align-self:center;display:flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;background:var(--soft);font-weight:950}.fc397-mode-card strong,.fc397-mode-card small{display:block}.fc397-mode-card small{color:var(--muted);font-size:.68rem;margin-top:2px}.fc397-mode-card.featured{border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}.fc397-mode-card:hover{background:var(--soft)}.fc397-new-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.fc397-new-row label span,.fc397-dialog>form>label:not(.fc397-check){display:block;font-size:.72rem;font-weight:850;color:var(--muted)}.fc397-new-row input,.fc397-dialog select{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);font:inherit}.fc397-challenges{margin-top:10px;border:1px solid var(--line);border-radius:12px}.fc397-challenges>summary{padding:9px 10px;cursor:pointer;font-size:.78rem;font-weight:850}.fc397-challenges>div{display:flex;flex-wrap:wrap;gap:5px;padding:0 9px 9px}.fc397-challenges button{padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--text);font:inherit;font-size:.7rem;cursor:pointer}.fc397-challenges button.danger{color:#a82d3b;border-color:#e5b7bd}.fc397-dialog-recent{margin-top:12px}.fc397-dialog .fc397-recent{grid-template-columns:1fr 1fr}.fc397-dialog>form>label{display:block;margin:11px 0}.fc397-check{display:flex!important;align-items:flex-start;gap:8px;font-size:.79rem;font-weight:720;line-height:1.35}.fc397-check input{margin-top:2px}.fc397-note{color:var(--muted);font-size:.72rem;line-height:1.45;padding:9px;border-radius:10px;background:var(--soft)}.fc397-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.fc397-more-grid button{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);font:inherit;text-align:left;cursor:pointer}.fc397-more-grid button:hover:not(:disabled){background:var(--soft)}.fc397-more-grid button:disabled{opacity:.4}.fc397-more-grid button>span{grid-row:1/3;align-self:center;font-size:1.05rem}.fc397-more-grid strong,.fc397-more-grid small{display:block}.fc397-more-grid small{margin-top:2px;color:var(--muted);font-size:.67rem}.fc397-win-dialog{text-align:center;width:min(430px,calc(100vw - 24px))}.fc397-win-mark{width:54px;height:54px;margin:2px auto 8px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#dff6e8;color:#197847;font-weight:950;font-size:1.6rem}.fc397-win-dialog>form>small{color:var(--muted);font-weight:900;font-size:.65rem;letter-spacing:.08em}.fc397-win-dialog h2{margin:4px 0 12px}.fc397-win-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.fc397-win-stats>div{padding:9px;border:1px solid var(--line);border-radius:11px;background:var(--soft)}.fc397-win-stats small{display:block;color:var(--muted);font-size:.6rem;font-weight:900}.fc397-win-stats strong{display:block;margin-top:2px}.fc397-win-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:12px}
body.fc397-reduce-motion .fc397-page *,body.fc397-reduce-motion .fc397-dialog *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:900px){.fc397-statgrid{grid-template-columns:repeat(3,1fr)}.fc397-recent{grid-template-columns:repeat(2,1fr)}.fc397-guidegrid{grid-template-columns:1fr 1fr}.fc397-table{--fcw:clamp(48px,9.5vw,78px)}}
@media(max-width:700px){body.freecell-v0397 .mobile-dock{display:none!important}.freecell-v0397 .preview-note{display:none}.freecell-v0397 .topbar{min-height:48px}.freecell-v0397 .fc397-page{padding-top:8px;padding-bottom:20px}.fc397-heading{align-items:center;margin-bottom:6px}.fc397-heading .eyebrow,.fc397-heading p{display:none}.fc397-heading h1{font-size:31px;margin:0}.fc397-deal-chip{min-width:150px;padding:6px 9px;border-radius:11px}.fc397-deal-chip span,.fc397-deal-chip small{font-size:.56rem}.fc397-deal-chip strong{font-size:.85rem}.fc397-shell{padding:6px;border-radius:15px}.fc397-scorebar{gap:3px;margin-bottom:5px}.fc397-scorebar>div{padding:4px 3px;text-align:center;border-radius:8px}.fc397-scorebar small{font-size:.47rem;letter-spacing:0}.fc397-scorebar strong{font-size:.68rem}.fc397-table{--fcw:calc((100vw - 52px)/8);padding:7px;border-radius:13px;min-height:0}.fc397-toprow{gap:6px;margin-bottom:7px}.fc397-pile-group>small{font-size:.46rem;margin-bottom:3px}.freecell-v0397 .fc-slots,.freecell-v0397 .fc-columns{gap:3px}.freecell-v0397 .fc-slot{border-radius:6px}.freecell-v0397 .fc-column{height:calc(var(--fch) + (var(--count) - 1)*clamp(20px,5.1vw,28px));border-radius:6px}.freecell-v0397 .fc-card{top:calc(var(--i)*clamp(20px,5.1vw,28px));padding:2px 3px;border-radius:6px}.freecell-v0397 .fc-rank{font-size:clamp(.59rem,2.65vw,.78rem)}.freecell-v0397 .fc-suit{font-size:clamp(.77rem,4.2vw,1.1rem);margin-top:2px}.fc397-toolbar{gap:3px;margin-top:5px}.fc397-tool{min-height:42px;padding:3px;display:grid;grid-template-rows:auto auto;gap:0;border-radius:8px}.fc397-tool span{font-size:.85rem;line-height:1}.fc397-tool strong{font-size:.58rem;line-height:1.1}.fc397-status-row{margin-top:5px;gap:5px}.fc397-status-row .status{font-size:.62rem;padding:6px 7px}.fc397-mode-badge{font-size:.55rem;padding:4px 6px}.fc397-details{margin-top:6px;border-radius:11px}.fc397-details>summary{padding:8px 9px;font-size:.72rem}.fc397-details>summary small{display:none}.fc397-statgrid{grid-template-columns:repeat(3,1fr);gap:4px}.fc397-statgrid>div{padding:6px}.fc397-statgrid small{font-size:.51rem}.fc397-statgrid strong{font-size:.76rem}.fc397-statgrid span{font-size:.55rem}.fc397-recent{grid-template-columns:1fr 1fr}.fc397-guidegrid{grid-template-columns:1fr}.fc397-coach{grid-template-columns:1fr;padding:8px}.fc397-coach>div:last-child{text-align:left}.fc397-dialog form{padding:14px}.fc397-dialog .fc397-recent{grid-template-columns:1fr}.fc397-win-actions{grid-template-columns:1fr}.fc397-more-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.fc397-scorebar>div:nth-child(5){display:none}.fc397-scorebar{grid-template-columns:repeat(5,1fr)}.fc397-mode-grid{grid-template-columns:1fr}.fc397-new-row{grid-template-columns:1fr auto}.fc397-dialog{width:calc(100vw - 14px)}.fc397-more-grid{grid-template-columns:1fr}.fc397-table{--fcw:calc((100vw - 48px)/8)}.fc397-status-row .status{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
