:root{color-scheme:dark;--ink:#f1ebe0;--muted:#bfcccc;--line:#526b75;--bronze:#d0ae85;--bronze-light:#e0c49e;--canvas:#142832;font-family:system-ui,-apple-system,sans-serif;background:var(--canvas);color:var(--ink)}
*{box-sizing:border-box}body{margin:0;min-width:280px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a{touch-action:manipulation}button,.fiore-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 15px;border:1px solid var(--line);border-radius:4px;background:#243c47;color:var(--ink);font-weight:600;text-align:center;white-space:normal;text-decoration:none}button:disabled{opacity:.55;cursor:default}.primary{background:var(--bronze);border-color:var(--bronze);color:#132731;font-weight:750}a{color:var(--bronze-light)}:is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #f1d2a6;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3{overflow-wrap:anywhere}h1{font:500 clamp(1.9rem,5vw,2.6rem)/1.15 Georgia,serif;margin:12px 0}h2{font:500 1.5rem/1.25 Georgia,serif}h3{font-size:1.1rem}p{line-height:1.5}.fiore-hint,.hint{font-size:.875rem;color:var(--muted);line-height:1.5}.fiore-kicker{color:var(--bronze-light);font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px}
.fiore-header{max-width:1080px;margin:auto;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}.fiore-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);min-width:0}.fiore-brand img{border-radius:6px;flex:none}.fiore-brand>span{font:500 1.7rem/1.15 Georgia,serif}.fiore-brand small{display:block;margin-top:6px;font:500 .68rem/1.4 system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--bronze-light)}#fiore-menu{background:transparent;font-size:.8125rem;padding:8px 12px}.fiore-account{max-width:1032px;margin:0 auto 16px;padding:16px 20px;background:#1e3540;border:1px solid var(--line);display:flex;gap:12px;align-items:center;flex-wrap:wrap}.fiore-account p{margin:0}.fiore-account .fiore-hint{flex-basis:100%}
#fiore-nav{max-width:1032px;margin:6px auto 20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#fiore-nav button{background:transparent;border-color:transparent;color:var(--muted)}#fiore-nav button[aria-current=page]{background:#293e47;border-color:#a58b6c;color:#f1d5af;box-shadow:inset 0 3px #c6a47c}#fiore-nav button>span{font-size:1.3rem}#fiore-main{max-width:1080px;margin:auto;padding:0 24px 40px}#fiore-status{font-size:.875rem;color:var(--bronze-light);margin:4px 0;min-height:0}#fiore-status:empty{display:none}#fiore-content{outline:none;min-width:0}.fiore-subhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:6px 0 16px}.fiore-subhead h1{margin:0}.fiore-subhead button{background:transparent;font-size:.85rem}.fiore-date{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 22px}.fiore-date label{font-size:.875rem;color:var(--muted)}input,select,textarea{border:1px solid #748a94;background:#102630;color:var(--ink);border-radius:4px;min-height:46px;padding:10px;max-width:100%;min-width:0}label input,label select,label textarea{display:block;width:100%;margin-top:6px}.fiore-date input{width:auto}.fiore-date button{font-size:.85rem}
.fiore-course{border:1px solid #5c747d90;border-radius:4px;padding:20px;margin:14px 0;background:linear-gradient(110deg,#213a43,#172d36)}.fiore-course.is-now{border-left:3px solid var(--bronze)}.fiore-course h2{margin:5px 0 10px}.fiore-course p{margin:8px 0}.fiore-course .fiore-course-meta{font-size:.875rem;color:var(--muted)}.fiore-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.fiore-actions>*{flex:1;min-width:130px}.fiore-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0}.fiore-choice{border:1px solid var(--line);border-radius:4px;padding:24px;background:#1c333e}.fiore-choice h2{margin:0 0 10px}.fiore-choice p{color:var(--muted);min-height:3em}.fiore-choice button{width:100%;margin-top:8px}.fiore-empty{padding:24px;border-left:2px solid #b89a73;background:#1d343e;margin:20px 0}.fiore-empty h2{margin-top:0}.fiore-list{margin:24px 0}.fiore-list>summary{color:var(--bronze-light);min-height:44px;padding:12px 0;cursor:pointer}.fiore-free-run{padding:14px 0;border-top:1px solid #526b7560;display:flex;justify-content:space-between;gap:16px;align-items:center}.fiore-free-run p{margin:4px 0}.fiore-login{max-width:460px;margin:25px auto;border:1px solid var(--line);padding:24px;border-radius:4px}.fiore-login label{display:block;margin:16px 0}.fiore-login button{width:100%}.fiore-error{color:#ffcfbf}
dialog{background:#1c333e;color:var(--ink);border:1px solid #85979b;border-radius:6px;padding:24px;width:calc(100% - 32px);max-width:580px;max-height:calc(100dvh - 32px);overflow:auto}dialog::backdrop{background:#07141ad9}.fiore-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.fiore-dialog-head h2{margin:0}.fiore-dialog-head button{font-size:1.5rem;min-width:46px}.fiore-dialog-head+img{display:block;margin:16px auto}#fiore-install label{display:block;margin:14px 0}#fiore-install li{margin:10px 0;line-height:1.5}.fiore-skip{position:fixed;top:-100px;left:16px;z-index:1000;background:#142832;padding:12px}.fiore-skip:focus{top:8px}
/* The existing scientific tools keep their full behavior inside this shell. */
.fiore-page .lab-root{--lab-muted:#bfcccc;--lab-line:#59737d;--lab-accent:#dfbf96}.fiore-page .lab-root .panel{background:#1c333e;border:1px solid #526b7580}.fiore-page .lab-root .lab-workspace-heading{margin-top:0}.fiore-page .lab-root .lab-workspace-heading h1{font-family:Georgia,serif}.fiore-page .lab-root .lab-workspace-heading .lab-kicker{color:var(--bronze-light)}.fiore-page .lab-root .lab-notice{background:#233a44}.fiore-page .lab-root :is(input,select,textarea){background:#102630;color:var(--ink);border:1px solid #748a94}.fiore-page .lab-root input[type=checkbox]{accent-color:#d0ae85}.fiore-page .lab-root .lab-error{color:#ffbfb0}.fiore-page .lab-root .lab-tabs{border-bottom:1px solid #526b7560;padding-bottom:10px}.fiore-page .lab-root .lab-measure{background:#1c333e}.fiore-page .lab-root .lab-kicker{color:var(--bronze-light)}.fiore-page .lab-root details{border-color:#526b75}.fiore-page .lab-root .text-action{background:transparent;color:#dfbf96}.fiore-page .lab-root .error{color:#ffbfb0}.fiore-page .afl-update-notice{background:#283e48;border:1px solid #b89a73;padding:16px;position:relative;z-index:500;display:flex;align-items:center;gap:12px}
@media(max-width:640px){.fiore-header{padding:14px 16px}.fiore-brand img{width:48px;height:48px}.fiore-brand>span{font-size:1.5rem}.fiore-brand small{font-size:.59rem;max-width:190px}#fiore-main{padding:4px 16px calc(100px + env(safe-area-inset-bottom,0px))}#fiore-nav{position:fixed;z-index:90;bottom:0;left:0;right:0;background:#203741f5;backdrop-filter:blur(8px);margin:0;padding:8px 10px max(8px,env(safe-area-inset-bottom,0px));border-top:1px solid #4b636d;gap:6px}#fiore-nav button{display:flex;flex-direction:column;gap:3px;min-height:59px;font-size:.82rem;padding:6px}.fiore-account{margin:0 16px 12px}.fiore-cards{grid-template-columns:1fr;gap:12px}.fiore-choice{padding:20px}.fiore-course{padding:18px}.fiore-choice p{min-height:0}.fiore-page .lab-workspace-heading{align-items:flex-start}.fiore-page .lab-workspace-heading h1{font-size:1.8rem}.fiore-page .lab-workspace-heading>button{font-size:.85rem}.fiore-free-run{align-items:stretch;flex-direction:column}.fiore-page .lab-root .lab-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
#fiore-nav svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;flex:none}
.fiore-page .lab-progress-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:4px;align-items:center}.fiore-page .lab-progress-list li>span{grid-column:1;font-weight:600}.fiore-page .lab-progress-list li>small{grid-column:1;text-align:left}.fiore-page .lab-progress-list li>button{grid-column:2;grid-row:1/3;min-width:96px;overflow-wrap:normal}.fiore-page .lab-detail-heading>button{display:none}
.fiore-page .lab-root:has([data-lab-preparation])>.lab-workspace-heading{display:none}.fiore-page .lab-prep-header>[data-prep-exit]{display:none}
#fiore-open-chrome,#fiore-install-now{width:100%;margin:6px 0}
