
.fff-pd-landing{max-width:1040px;margin:clamp(60px,9vw,130px) auto;padding:0 24px 90px}.fff-pd-landing__eyebrow{font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:800}.fff-pd-landing h1{font-size:clamp(42px,7vw,84px);max-width:900px;line-height:.98;letter-spacing:-.055em;margin:.25em 0}.fff-pd-landing>p:not(.fff-pd-landing__eyebrow){max-width:720px;font-size:clamp(17px,2vw,22px);line-height:1.55;opacity:.78}.fff-pd-landing__actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:32px 0}.fff-pd-landing__primary,.fff-pd-landing__secondary{display:inline-flex;padding:13px 18px;border-radius:999px;text-decoration:none;font-weight:750}.fff-pd-landing__primary{background:#1d2d3e;color:#fff}.fff-pd-landing__secondary{border:1px solid rgba(29,45,62,.3);color:#1d2d3e;background:transparent}.fff-pd-landing__notice{display:inline-block;padding:12px 16px;border:1px solid currentColor;border-radius:12px}.fff-pd-landing__flow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:52px}.fff-pd-landing__flow span{padding:9px 12px;border:1px solid rgba(29,45,62,.18);border-radius:999px}.fff-pd-teacher-tool{margin:20px 0;padding:22px;border:1px solid rgba(29,45,62,.14);border-radius:18px;background:#f7f4ec}.fff-pd-teacher-tool__eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;opacity:.64}.fff-pd-teacher-tool h2{margin:5px 0 7px;font-size:26px}.fff-pd-teacher-tool p{margin:0 0 16px;max-width:720px}.fff-pd-teacher-tool a{display:inline-flex;padding:10px 15px;border-radius:999px;background:#1d2d3e;color:white;text-decoration:none;font-weight:700}.fff-pd-guest-note{max-width:1180px;margin:16px auto 0;padding:12px 16px;border:1px solid rgba(110,175,143,.45);border-radius:14px;background:rgba(104,177,136,.12);color:#d9ffe5;line-height:1.45}.fff-pd-debug-only{display:none!important}body.fff-pd-debug .fff-pd-debug-only{display:block!important}

.fff-pd-assignment-manager{max-width:1180px;margin:28px auto;padding:26px;border:1px solid rgba(180,218,196,.18);border-radius:22px;background:rgba(7,28,22,.72)}
.fff-pd-assignment-manager__head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.fff-pd-assignment-manager__head h2{margin:.25rem 0 .5rem}.fff-pd-assignment-manager__head p:not(.section-label){max-width:760px;margin:0;opacity:.72;line-height:1.45}.fff-pd-assignment-manager__status{min-height:1.4em;margin:18px 0 10px;font-size:13px;opacity:.7}.fff-pd-server-assignments{display:grid;gap:10px}.fff-pd-server-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;border:1px solid rgba(180,218,196,.14);border-radius:16px;background:rgba(255,255,255,.025)}.fff-pd-server-card__title{display:flex;align-items:center;gap:10px}.fff-pd-server-card__main p{margin:5px 0 4px}.fff-pd-server-card__main small{display:block;opacity:.62;line-height:1.45}.fff-pd-server-card__status{padding:4px 8px;border-radius:999px;font-size:10px;letter-spacing:.06em;text-transform:uppercase}.fff-pd-server-card__status.active{background:rgba(128,219,159,.14);color:#bff2ce}.fff-pd-server-card__status.revoked,.fff-pd-server-card__status.expired{background:rgba(255,255,255,.08);opacity:.7}.fff-pd-server-card__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.fff-pd-server-card__actions .danger{border-color:rgba(237,132,132,.35);color:#ffc0c0}@media(max-width:720px){.fff-pd-assignment-manager{margin:20px 14px;padding:18px}.fff-pd-assignment-manager__head,.fff-pd-server-card{align-items:stretch;flex-direction:column}.fff-pd-server-card__actions{justify-content:stretch}.fff-pd-server-card__actions button{flex:1}}

/* Wizard workspace · FFF Lab visual system */
body.fff-pd-route{background:#fbf9ed;color:#1d2d3e}
.fff-pd-app{--bg:#fbf9ed;--panel:#fffdf7;--panel-2:#f1ece2;--line:rgba(29,45,62,.16);--text:#1d2d3e;--muted:#617080;--lime:#bf5b37;--mint:#bf5b37;--paper:#fffdf7;--ink:#1d2d3e;--danger:#a5422d;color:var(--text)}
.fff-pd-app .topbar{border-color:var(--line)}.fff-pd-app .brand-mark{background:#1d2d3e;color:#fbf9ed}.fff-pd-app .brand small,.fff-pd-app .status{color:var(--muted)}.fff-pd-app .status{border-color:var(--line)}.fff-pd-app .status span{background:#bf5b37}.fff-pd-app .status.ready span{background:#3c8a68}
.fff-pd-app .wizard-progress{margin:24px 0 32px;padding:18px 20px 16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.58)}
.wizard-progress__top{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;color:#617080;font-size:11px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.wizard-progress__top span:last-child{color:#bf5b37}.wizard-progress__track{height:5px;border-radius:999px;background:rgba(29,45,62,.1);overflow:hidden}.wizard-progress__track i{display:block;width:16.666%;height:100%;border-radius:inherit;background:#bf5b37;transition:width .35s ease}
.wizard-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:16px 0 0;padding:0;list-style:none}.wizard-steps li{min-width:0}.wizard-steps button{width:100%;display:flex;align-items:center;gap:8px;border:0;background:transparent;color:#7a8791;padding:0;text-align:left;cursor:pointer}.wizard-steps button span{display:grid;place-items:center;width:27px;height:27px;flex:0 0 27px;border:1px solid rgba(29,45,62,.2);border-radius:50%;font-size:11px;font-weight:800}.wizard-steps button b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:750}.wizard-steps li.is-active button{color:#1d2d3e}.wizard-steps li.is-active button span{border-color:#bf5b37;background:#bf5b37;color:#fff}.wizard-steps li.is-complete button{color:#3c8a68}.wizard-steps li.is-complete button span{border-color:#3c8a68;color:#3c8a68}
.wizard-step{display:none;min-height:500px;padding-bottom:8px}.wizard-step.is-active{display:block;animation:wizard-step-in .28s ease both}.wizard-step[hidden]{display:none!important}@keyframes wizard-step-in{from{opacity:.35;transform:translateY(7px)}to{opacity:1;transform:none}}
.wizard-step__head{max-width:850px;margin:0 0 26px}.wizard-step__head .section-label{color:#bf5b37}.wizard-step__head h1{font-size:clamp(38px,5vw,68px);color:#1d2d3e;line-height:1.01}.wizard-step__intro{max-width:690px;margin:16px 0 0;color:#617080;font-size:15px;line-height:1.55}.wizard-hint{display:flex;gap:12px;align-items:flex-start;margin:18px 0;padding:14px 16px;border-left:3px solid #bf5b37;background:rgba(191,91,55,.07)}.wizard-hint span{color:#bf5b37;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.wizard-hint p{margin:0;color:#617080;font-size:12px;line-height:1.5}
.fff-pd-app .import-card,.fff-pd-app .selection-card,.fff-pd-app .diagnosis-card,.fff-pd-app .recommendation-panel,.fff-pd-app .prescription-panel,.fff-pd-app .score-card{border-color:var(--line);background:#fffdf7;box-shadow:0 8px 28px rgba(29,45,62,.06)}.fff-pd-app .import-card{margin-bottom:0}.fff-pd-app .source-panel{border-color:var(--line)}.fff-pd-app .section-label,.fff-pd-app .eyebrow{color:#bf5b37}.fff-pd-app .dropzone{border-color:rgba(191,91,55,.42);background:rgba(191,91,55,.045)}.fff-pd-app .dropzone:hover,.fff-pd-app .dropzone.dragover{border-color:#bf5b37;background:rgba(191,91,55,.1)}.fff-pd-app .drop-icon{background:#bf5b37;color:#fff}.fff-pd-app .dropzone small,.fff-pd-app .source-panel>p:not(.section-label),.fff-pd-app .source-stats span,.fff-pd-app .selection-controls label,.fff-pd-app .diagnosis-heading>p,.fff-pd-app .why{color:#617080}.fff-pd-app .source-stats span,.fff-pd-app .score-meta span,.fff-pd-app .engine-summary span{border-color:var(--line)}.fff-pd-app .source-stats b,.fff-pd-app .engine-summary span b{color:#bf5b37}.fff-pd-app .selection-controls select{color:#1d2d3e;background:#f1ece2;border-color:var(--line)}.fff-pd-app .selection-summary strong{background:#bf5b37;color:#fff}.fff-pd-app .selection-summary span{border-color:var(--line);color:#617080}
.fff-pd-app .diagnosis-card,.fff-pd-app .recommendation-panel,.fff-pd-app .prescription-panel{background:#fffdf7}.fff-pd-app .diagnosis-chip{border-color:var(--line);background:#f1ece2;color:#1d2d3e}.fff-pd-app .diagnosis-chip span{color:#bf5b37}.fff-pd-app .diagnosis-chip:hover{border-color:rgba(191,91,55,.55)}.fff-pd-app .diagnosis-chip.active{background:rgba(191,91,55,.1);border-color:#bf5b37}.fff-pd-app .diagnosis-chip.active span{color:#bf5b37}.fff-pd-app .analysis-chips{border-color:var(--line)}.fff-pd-app .analysis-chips span{border-color:var(--line);color:#617080}.fff-pd-app .smart-analysis{border-color:rgba(191,91,55,.2);background:rgba(191,91,55,.045)}.fff-pd-app .pattern-card,.fff-pd-app .recommendation-card,.fff-pd-app .rx-item,.fff-pd-app .parameter-editor label{border-color:var(--line);background:#f7f3eb;color:#1d2d3e}.fff-pd-app .recommendation-card:hover,.fff-pd-app .recommendation-card.previewing,.fff-pd-app .rx-item.active{border-color:#bf5b37;background:rgba(191,91,55,.07)}.fff-pd-app .rank,.fff-pd-app .rx-num{background:#ebe4d8;color:#617080}.fff-pd-app .rec-copy p,.fff-pd-app .rec-copy small,.fff-pd-app .rx-main small,.fff-pd-app .empty-state,.fff-pd-app .wizard-complete{color:#617080}.fff-pd-app .family,.fff-pd-app .match-score{color:#bf5b37;border-color:rgba(191,91,55,.25)}.fff-pd-app .add-method{border-color:rgba(191,91,55,.35);background:rgba(191,91,55,.08);color:#a5422d}.fff-pd-app .time-pill{background:#bf5b37;color:#fff}.fff-pd-app .empty-state{border-color:var(--line)}.fff-pd-app .rx-order button,.fff-pd-app .ghost-button,.fff-pd-app .icon-button{border-color:var(--line);color:#1d2d3e;background:transparent}.fff-pd-app .secondary-button{background:#bf5b37;color:#fff}.fff-pd-app .ghost-button:hover,.fff-pd-app .icon-button:hover{background:rgba(29,45,62,.07)}.fff-pd-app .icon-button.primary{background:#bf5b37;color:#fff}.fff-pd-app .treatment-card{background:#fffdf7}.fff-pd-app .treatment-accent{border-color:rgba(191,91,55,.24);box-shadow:0 0 80px rgba(191,91,55,.08)}.fff-pd-app .notation{background:#fbf9ed}.fff-pd-app .notation .is-playing path,.fff-pd-app .notation .is-playing use,.fff-pd-app .notation .is-playing polygon{fill:#bf5b37!important;stroke:#bf5b37!important}
.wizard-variant-score .notation{min-height:360px}.wizard-transport{margin:18px 0 0}.fff-pd-app .wizard-transport{background:#fffdf7;border-color:var(--line);box-shadow:0 8px 28px rgba(29,45,62,.06)}.fff-pd-app .wizard-transport p{color:#617080}.wizard-method-workspace{margin:0}.wizard-export-panel{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:22px;padding:24px 26px;border:1px solid rgba(191,91,55,.25);border-radius:20px;background:#1d2d3e;color:#fff;box-shadow:0 12px 32px rgba(29,45,62,.14)}.wizard-export-panel__copy{display:flex;align-items:flex-start;gap:16px}.wizard-export-panel__number{font-size:34px;line-height:1;font-weight:800;color:#e5b39e}.wizard-export-panel h2{margin:3px 0 7px;color:#fff;font-size:24px}.wizard-export-panel p:not(.section-label){max-width:620px;margin:0;color:rgba(255,255,255,.72);font-size:12px;line-height:1.5}.wizard-export-panel .section-label{color:#e5b39e}.wizard-export-panel__actions{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end}.wizard-export-panel__actions .secondary-button{background:#bf5b37}.wizard-export-panel__actions .ghost-button{border-color:rgba(255,255,255,.28);color:#fff}.wizard-export-panel__actions .ghost-button:hover{background:rgba(255,255,255,.1)}.fff-pd-app .fff-pd-assignment-manager{background:#fffdf7;border-color:var(--line);color:#1d2d3e;box-shadow:0 8px 28px rgba(29,45,62,.06)}.fff-pd-app .fff-pd-assignment-manager__head p:not(.section-label),.fff-pd-app .fff-pd-assignment-manager__status{color:#617080}.fff-pd-app .fff-pd-server-card{background:#f7f3eb;border-color:var(--line)}.fff-pd-app footer{color:#73808a}.wizard-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}.wizard-controls button{min-height:42px}.wizard-controls .wizard-next b,.wizard-controls .wizard-prev b{font-size:16px;margin-left:5px}.wizard-controls .wizard-prev b{margin:0 5px 0 0}.wizard-controls button:disabled{opacity:.35;cursor:default}.wizard-complete{font-size:11px}
.fff-pd-app .share-dialog-card{background:#fffdf7;border-color:var(--line);color:#1d2d3e}.fff-pd-app .share-dialog::backdrop{background:rgba(29,45,62,.45);backdrop-filter:blur(8px)}.fff-pd-app .share-dialog-head h2{color:#1d2d3e}.fff-pd-app .share-fields label{color:#617080}.fff-pd-app .share-fields input,.fff-pd-app .share-fields textarea,.fff-pd-app .share-link-block input{background:#f1ece2;border-color:var(--line);color:#1d2d3e}.fff-pd-app .dialog-close{border-color:var(--line);color:#1d2d3e}.fff-pd-app .share-result{border-color:var(--line)}.fff-pd-app .share-link-block p,.fff-pd-app .share-status{color:#617080}.fff-pd-app .share-mode{border-color:rgba(191,91,55,.35);color:#a5422d}
@media(max-width:820px){.wizard-export-panel{align-items:flex-start;flex-direction:column}.wizard-export-panel__actions{justify-content:flex-start}.wizard-method-workspace{grid-template-columns:1fr}.wizard-variant-score .notation{min-height:280px}}
@media(max-width:620px){.fff-pd-app{width:min(100% - 22px,760px)}.fff-pd-app .wizard-progress{padding:14px 12px}.wizard-steps{gap:3px}.wizard-steps button{display:grid;justify-items:center;gap:4px;text-align:center}.wizard-steps button span{width:25px;height:25px;flex-basis:25px}.wizard-steps button b{font-size:8px;max-width:100%;white-space:normal;line-height:1.1}.wizard-step{min-height:460px}.wizard-step__head h1{font-size:clamp(34px,10vw,48px)}.wizard-step__intro{font-size:13px}.wizard-controls{position:sticky;bottom:0;z-index:4;margin-left:-11px;margin-right:-11px;padding:13px 11px calc(13px + env(safe-area-inset-bottom));background:rgba(251,249,237,.96);backdrop-filter:blur(10px)}.wizard-controls .wizard-next,.wizard-controls .wizard-prev{font-size:10px}.wizard-export-panel{padding:20px}.wizard-export-panel__number{font-size:28px}.wizard-export-panel h2{font-size:21px}.wizard-export-panel__actions{width:100%}.wizard-export-panel__actions button{flex:1}.wizard-hint{margin-bottom:12px}.fff-pd-app .fff-pd-assignment-manager{margin-left:0;margin-right:0}.fff-pd-app footer{padding-bottom:88px}}
/* Generated method previews */
.generated-variants{margin:28px 0 0}.generated-variants__head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin:0 0 14px}.generated-variants__head h2{margin:.25rem 0 0;color:#1d2d3e;font-size:clamp(22px,3vw,32px)}.generated-variants__head>p{max-width:360px;margin:0;color:#617080;font-size:12px;line-height:1.45}.generated-variants__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.generated-variant-card{padding:16px;border:1px solid var(--line);border-radius:18px;background:#fffdf7;box-shadow:0 8px 24px rgba(29,45,62,.05);transition:border-color .2s ease,box-shadow .2s ease}.generated-variant-card.is-active{border-color:#bf5b37;box-shadow:0 10px 30px rgba(191,91,55,.12)}.generated-variant-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.generated-variant-card__head span{display:block;color:#bf5b37;font-size:10px;font-weight:800;letter-spacing:.12em}.generated-variant-card h3{margin:4px 0 0;color:#1d2d3e;font-size:18px;line-height:1.1}.generated-variant-card__head .ghost-button{flex:0 0 auto;padding:8px 10px;font-size:11px}.generated-variant-card>p{margin:10px 0 12px;color:#617080;font-size:12px;line-height:1.45}.generated-variant-card .notation{min-height:190px;margin:0;border-color:var(--line);background:#fbf9ed}.generated-variant-card .notation svg{max-height:220px}
@media(max-width:820px){.generated-variants__list{grid-template-columns:1fr}}
@media(max-width:620px){.generated-variants__head{display:block}.generated-variants__head>p{margin-top:8px}.generated-variant-card .notation{min-height:160px}}
@media(max-width:820px){.fff-pd-app .wizard-step,.fff-pd-app .score-card,.fff-pd-app .generated-variant-card,.fff-pd-app .transport{min-width:0;max-width:100%;box-sizing:border-box}.fff-pd-app .notation{min-width:0;max-width:100%;box-sizing:border-box;overflow-x:auto}.fff-pd-app .notation svg{min-width:0;max-width:100%;width:100%;height:auto}}
@media(max-width:620px){.fff-pd-landing{width:min(100% - 32px,680px);margin:36px auto;padding:0 0 64px}.fff-pd-landing h1{font-size:clamp(38px,12vw,58px);line-height:1.01;letter-spacing:-.045em}.fff-pd-landing>p:not(.fff-pd-landing__eyebrow){font-size:17px;line-height:1.45}.fff-pd-landing__actions{display:grid;grid-template-columns:1fr;gap:10px;margin:26px 0}.fff-pd-landing__primary,.fff-pd-landing__secondary{width:100%;box-sizing:border-box;justify-content:center;text-align:center;padding:15px 18px}.fff-pd-landing__flow{display:grid;grid-template-columns:1fr;justify-items:stretch;gap:6px;margin-top:34px}.fff-pd-landing__flow span{text-align:center}.fff-pd-landing__flow b{text-align:center;transform:rotate(90deg);height:14px}}
/* Verovio must scale to the available column at every breakpoint. */
.fff-pd-app .notation svg{min-width:0;max-width:100%;width:100%;height:auto}
.fff-pd-app .generated-variant-card .notation svg{max-height:none}
