.formation-page{--sf-wrap-max: 1500px;--sf-card-bg: #ffffff;--sf-card-border: #e2e8f0;--sf-shadow: 0 12px 28px rgba(15, 23, 42, .08);--sf-accent: #2563eb;--sf-accent-ghost: #e0e7ff;--sf-text: #0f172a;--sf-muted: #475569}.formation-page *{box-sizing:border-box}.formation-wrap{max-width:var(--sf-wrap-max);margin:0 auto;display:grid;gap:18px}.formation-header{display:grid;gap:8px}.formation-title-input{max-width:260px}.formation-title-input input::-moz-placeholder{color:#64748b99}.formation-title-input input::placeholder{color:#64748b99}.formation-title{margin:0;font-size:clamp(1.7rem,2.6vw,2.4rem);color:var(--sf-text);letter-spacing:.01em}.formation-lead{margin:0;color:var(--sf-muted);line-height:1.7}.formation-layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(300px,.9fr);gap:18px;align-items:start}.formation-stage-card{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--sf-card-border);border-radius:18px;padding:16px;box-shadow:var(--sf-shadow);display:grid;gap:16px}.formation-toolbar{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center}.formation-toolbar__group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.formation-label{display:flex;flex-direction:column;gap:4px;font-size:.88rem;font-weight:600;color:var(--sf-muted)}.formation-label--inline{flex-direction:row;align-items:center;gap:10px}.formation-label input,.formation-label select{border:1px solid #cbd5e1;border-radius:10px;padding:.35rem .6rem;font-size:.95rem;background:#f8fafc;color:var(--sf-text);min-width:140px}.formation-toggle{flex-direction:row;gap:8px;align-items:center;font-weight:600}.formation-toggle--button{border:1px solid #cbd5e1;border-radius:999px;padding:.35rem .75rem;background:#f8fafc;color:var(--sf-text);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .15s ease}.formation-toggle--button input{accent-color:var(--sf-accent)}.formation-toggle--button:has(input:checked){background:var(--sf-accent-ghost);border-color:#2563eb80;color:#1e3a8a}.formation-toggle--button:hover{transform:translateY(-1px)}.formation-stage canvas{width:100%;height:auto;border-radius:16px;border:1px solid #d7dde7;background:#0f172a;display:block;touch-action:none}.formation-hint{margin-top:8px;color:#64748b;font-size:.9rem}.formation-panel{display:grid;gap:14px;align-items:start}.formation-panel.has-floating-selected{padding-top:var(--sf-floating-selected-space, 0px)}.formation-card{background:var(--sf-card-bg);border:1px solid var(--sf-card-border);border-radius:16px;padding:14px 16px;box-shadow:var(--sf-shadow);display:grid;gap:12px}.formation-card--selected{border-color:#2563eb8c;box-shadow:0 14px 30px #2563eb2e}.formation-card--selected.is-floating{position:fixed;z-index:60;margin:0}.formation-card--selected.is-spotlight{animation:formationSpotlight 1.25s ease}@keyframes formationSpotlight{0%{box-shadow:0 0 #2563eb00;border-color:#2563eb40;transform:translateY(0)}40%{box-shadow:0 0 0 10px #3b82f647;border-color:#3b82f6f2;transform:translateY(-2px)}to{box-shadow:0 16px 34px #2563eb38;border-color:#2563eb99;transform:translateY(0)}}.formation-card h2{margin:0;font-size:1.05rem;color:var(--sf-text)}.formation-card__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.formation-card__close{display:none;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#334155;font-size:1rem;line-height:1;cursor:pointer}.formation-card__close:hover{background:#e2e8f0}.formation-card--selected.is-floating .formation-card__close{display:inline-flex}.formation-inspector{display:grid;gap:10px}.formation-field{display:grid;gap:6px}.formation-field--inline{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:nowrap;width:100%;overflow:hidden}.formation-field--inline input[type=checkbox]{-moz-appearance:checkbox;-webkit-appearance:checkbox;appearance:auto;display:inline-block;float:none;opacity:1;z-index:1;margin:0;width:1rem;height:1rem;flex:0 0 auto}.formation-field--inline label{display:inline-block;font-size:.9rem;font-weight:600;color:var(--sf-muted);margin:0;padding:0;white-space:nowrap;max-width:calc(100% - 1.5rem);overflow:hidden;text-overflow:ellipsis}.formation-field--inline input[type=checkbox]+label:before{content:none;display:none}.formation-field label{font-size:.85rem;color:var(--sf-muted);font-weight:600}.formation-field input,.formation-field select,.formation-field textarea{border:1px solid #cbd5e1;border-radius:10px;padding:.4rem .6rem;font-size:.95rem;background:#f8fafc;color:var(--sf-text);width:100%}.formation-field textarea{resize:vertical;min-height:2.4rem;line-height:1.4}.formation-actions{display:flex;flex-wrap:wrap;gap:8px}.formation-share{display:grid;gap:8px;padding-top:6px;border-top:1px dashed #e2e8f0}.formation-share__row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.formation-share__url{border:1px solid #cbd5e1;border-radius:10px;padding:.4rem .6rem;font-size:.95rem;background:#f8fafc;color:var(--sf-text);width:100%}.formation-share__note{margin:0;font-size:.85rem;color:#64748b}.formation-share__note.is-error{color:#b91c1c}.formation-download{display:grid;gap:10px}.formation-download__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.formation-roster{display:grid;gap:8px}.formation-roster__row{display:grid;grid-template-columns:38px 72px minmax(0,1fr) 150px;gap:8px;align-items:center;padding:8px 10px;border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc;transition:border .15s ease,box-shadow .15s ease,transform .15s ease}.formation-roster__row.is-selected{border-color:#2563eb8c;box-shadow:0 8px 18px #2563eb26;transform:translateY(-1px)}.formation-roster__badge{width:34px;height:34px;border-radius:999px;background:var(--sf-accent);color:#fff;font-weight:700;border:none;cursor:pointer}.formation-roster__number{border:1px solid #cbd5e1;border-radius:10px;padding:.35rem .4rem;font-size:.9rem;background:#fff;width:100%}.formation-roster__name{border:1px solid #cbd5e1;border-radius:10px;padding:.35rem .5rem;font-size:.92rem;background:#fff;resize:vertical;min-height:2.4rem;line-height:1.4}.formation-roster__color{border:1px solid #cbd5e1;border-radius:10px;padding:.35rem .5rem;font-size:.9rem;background:#fff}.formation-help ul{margin:0;padding-left:1.2em;color:#475569;line-height:1.7}.formation-page .btn{border:1px solid transparent;border-radius:10px;background:var(--sf-accent);color:#fff;padding:.45rem .85rem;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.formation-page .btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.formation-page .btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #2563eb33}.formation-page .btn:active{transform:translateY(0);box-shadow:none}.formation-page .btn.ghost{background:var(--sf-accent-ghost);color:#1e3a8a;border-color:#2563eb4d}@media (max-width: 980px){.formation-layout{grid-template-columns:1fr}.formation-panel.has-floating-selected{padding-top:0}.formation-card--selected.is-floating{position:static}}@media (max-width: 640px){.formation-toolbar{flex-direction:column;align-items:stretch}.formation-toolbar__group{justify-content:space-between}.formation-label input,.formation-label select{width:100%}.formation-roster__row{grid-template-columns:32px 1fr}.formation-roster__number,.formation-roster__name,.formation-roster__color{grid-column:1 / -1}.formation-actions{flex-direction:column}.formation-download__actions,.formation-share__row{flex-direction:column;align-items:stretch}.formation-page .btn{width:100%}}
