.account-page,.login-scene-preview{--account-ink: var(--text);--account-muted: color-mix(in srgb, var(--muted) 90%, var(--text));--account-accent: color-mix(in srgb, var(--brand) 65%, var(--text));--account-input-border: color-mix(in srgb, var(--muted) 80%, var(--surface));--account-focus-ring: color-mix(in srgb, var(--brand) 15%, var(--surface))}.account-page{min-height:100vh;display:grid;grid-template-columns:46% 54%;padding:20px;background:var(--surface);color:var(--account-ink);font-family:Arial,Helvetica,sans-serif}.account-brand{--account-pitch-size: min(38px, 10.5cqw);container-type:inline-size;display:flex;flex-direction:column;justify-content:flex-start;gap:64px;min-width:0;padding:36px 38px;border:1px solid #d4edf3;border-radius:24px;background:#e7f8fc;color:var(--account-ink)}.account-logo{display:flex;align-items:center}.account-wordmark{display:block;width:100%;max-width:363px;height:auto}.account-pitch{margin-block:auto;padding-block:40px}.account-pitch>p{margin:0;font-family:inherit;font-size:var(--account-pitch-size);font-weight:500;letter-spacing:-1px;line-height:1.35;color:var(--account-ink)}.account-pitch>p+p{margin-top:20px}.account-form{display:flex;align-items:center;justify-content:center;min-width:0;padding:40px}.account-card{position:relative;width:100%;max-width:492px;padding:36px;border:2px solid #b6bac2;border-radius:20px;background:#fff;box-shadow:0 10px 32px #18171c0d}.account-card h1{margin:0 0 14px;font-size:32px;font-weight:600;letter-spacing:-.6px;line-height:1.2;color:var(--account-ink)}.account-card-compact h1{margin:0 0 30px}.account-description{margin:0 0 26px;font-size:14px;line-height:1.8;color:var(--account-muted)}.account-field{display:block;margin:0 0 19px;font-size:13px;color:var(--account-muted)}.account-field-label{display:flex;align-items:center;gap:7px}.account-password-help{position:relative;display:inline-flex}.account-help-button{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;padding:0;border:1px solid var(--account-input-border);border-radius:50%;background:var(--surface);color:var(--account-muted);font:600 11px Arial,Helvetica,sans-serif;cursor:help}.account-help-button:hover{border-color:var(--account-ink);color:var(--account-ink)}.account-password-tooltip{position:absolute;z-index:5;top:calc(100% + 9px);left:-86px;width:220px;padding:10px 12px;border-radius:8px;background:var(--account-ink);color:var(--surface);font-size:12px;line-height:1.6;box-shadow:0 5px 18px #18171c26}.account-password-tooltip[hidden]{display:none}.account-field input{display:block;width:100%;min-height:46px;margin-top:8px;padding:12px 13px;border:1.5px solid var(--account-input-border);border-radius:10px;font:inherit;color:var(--account-ink);background:var(--surface);transition:border-color .15s,box-shadow .15s}.account-password-input{position:relative;margin-top:8px}.account-password-input input{margin-top:0;padding-right:48px}.account-password-input input::-ms-reveal{display:none}.account-eye-button{position:absolute;top:50%;right:8px;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:6px;border:0;border-radius:6px;background:transparent;color:var(--account-muted);cursor:pointer}.account-eye-button svg{display:block;width:20px;height:20px}.account-eye-button:hover{background:var(--canvas);color:var(--account-ink)}.account-eye-button:disabled{opacity:.5;cursor:wait}.account-field input:focus{outline:0;border-color:var(--account-accent);box-shadow:0 0 0 3px var(--account-focus-ring)}.account-field input:disabled{background:var(--canvas)}.account-field input::placeholder{color:var(--account-muted)}.account-hint{margin:-7px 0 0;font-size:11px;line-height:1.7;color:var(--account-muted)}.account-submit{display:block;width:100%;min-height:46px;margin-top:22px;padding:12px 16px;border:1px solid var(--account-ink);border-radius:10px;background:var(--account-ink);color:var(--surface);font:inherit;font-size:14px;text-align:center;cursor:pointer;transition:background .15s}.account-submit:hover:not(:disabled){background:#000}.account-submit:disabled{opacity:.6;cursor:not-allowed}.account-page form[aria-busy=true] .account-submit:disabled{cursor:wait}.account-sign-in{display:flex;align-items:center;justify-content:center;text-decoration:none}.account-links{display:flex;justify-content:center;flex-wrap:wrap;gap:14px 22px;margin-top:23px;font-size:13px}.account-links a{color:var(--account-accent);text-decoration:none}.account-links a:hover{color:var(--account-ink);text-decoration:underline}.account-page :is(a,button):focus-visible{outline:3px solid var(--account-accent);outline-offset:4px}.account-message{margin:16px 0;padding:12px 15px;border:1px solid #d5e9da;border-radius:10px;background:#edf8f0;color:#467553;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.account-message a{color:var(--account-accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}.account-success-toast{position:fixed;z-index:1000;top:24px;right:24px;display:flex;align-items:flex-start;gap:16px;width:360px;max-width:calc(100vw - 32px);margin:0;padding:18px 20px;border-radius:12px;font-size:16px;line-height:1.7;box-shadow:0 8px 28px #18171c18}.account-toast-content{flex:1;min-width:0}.account-toast-content p{margin:0}.account-toast-content p+p{margin-top:6px}.account-toast-close{display:flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;padding:0;border:0;border-radius:4px;background:transparent;color:#467553;font-size:20px;line-height:1;cursor:pointer}.account-toast-close:hover{background:#dceee1}.account-error{margin:12px 0;padding:12px 15px;border:1px solid #f2d3cf;border-radius:10px;background:#fff7f5;color:#b42318;font-size:13px;line-height:1.7}@media (min-width: 1440px){.account-brand{padding:42px 58px}}@media (max-width: 1000px){.account-page{grid-template-columns:43% 57%;padding:16px}.account-brand{padding:30px 26px}.account-form{padding:24px}.account-card{padding:28px}}@media (max-width: 720px){.account-success-toast{top:16px;right:16px}.account-page{grid-template-columns:1fr;padding:12px}.account-brand{gap:30px;padding:26px;border-radius:18px}.account-pitch{margin-block:0;padding-block:4px}.account-form{padding:24px 0 12px}.account-card{max-width:492px;padding:26px;border-radius:16px}.account-card h1{font-size:28px}}@media (prefers-reduced-motion: reduce){.account-page *{transition:none}}.login-scene{--scene-sky: #ffe8c7;--scene-horizon: #fff9e9;--scene-ink: var(--text);--scene-muted: var(--text);--scene-cloud: #fffaf7;--scene-hill-far: #d6dfbf;--scene-hill: #c1d5b9;--scene-hill-front: #9cbeac;--scene-path: #f5e6d3;--scene-tree: #a7c3a7;--scene-sun: #ffc96e;--scene-light: #ffe7a4;--scene-sunset: #f7c5ad;--scene-snow: #fffaf8;--scene-mist: #fffdf5;--scene-rain: #eff8ff;--scene-puddle: #b6d4df;--scene-cloud-face: #847b98;--scene-cloud-blush: #edb3c5;--scene-coat: #f3cd87;--scene-umbrella: #efb4b1;--scene-book: #d7c6ea;--scene-flower: #f3bac2;--scene-bird: #ac9a9f;--cloudy-sky: #d9dce8;--cloudy-horizon: #f8e9d8;--fog-sky: #d9e3da;--fog-horizon: #f2eadc;--rain-sky: #a9c5d0;--rain-horizon: #dce1dc;--snow-sky: #e4e6f5;--snow-horizon: #fff4e8;--storm-sky: #454361;--storm-horizon: #8f88ab;--scene-page-padding-block: clamp(24px, 4vw, 64px);--scene-page-padding-inline: clamp(24px, 4vw, 64px);--scene-column-gap: clamp(20px, 4vw, 80px);position:relative;isolation:isolate;min-height:100svh;overflow:clip;color:var(--scene-ink);background:linear-gradient(165deg,var(--scene-sky),var(--scene-horizon) 92%);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.login-scene[data-period=day]{--scene-sky: #bce9fa;--scene-horizon: #eef9e8;--scene-hill-far: #bad8b0;--scene-hill: #9fc9a4;--scene-hill-front: #77ae98;--scene-tree: #8db793;--scene-sun: #ffda7c;--scene-flower: #f6b6cd;--scene-book: #c1cbea;--cloudy-sky: #bfd3e2;--cloudy-horizon: #e3e5e5;--fog-sky: #d3e2df;--fog-horizon: #eff3e8;--rain-sky: #8faec5;--rain-horizon: #c8dcde;--snow-sky: #d3eafa;--snow-horizon: #f4faff;--storm-sky: #424f70;--storm-horizon: #8996b0}.login-scene[data-period=evening]{--scene-sky: #eeb1be;--scene-horizon: #ffdbb3;--scene-muted: var(--text);--scene-hill-far: #c6abc0;--scene-hill: #b6b5b4;--scene-hill-front: #8da7a2;--scene-tree: #b8a7b9;--scene-sun: #fcae83;--scene-light: #ffc5a0;--scene-sunset: #ffe0af;--scene-book: #dec1ce;--scene-flower: #f9d1c1;--scene-bird: #a487a6;--cloudy-sky: #c9b5d3;--cloudy-horizon: #edc7bc;--fog-sky: #c9c1d7;--fog-horizon: #f3e0d1;--rain-sky: #a8a6c5;--rain-horizon: #cfbbc9;--snow-sky: #d9c6eb;--snow-horizon: #f9e9f4;--storm-sky: #564c6b;--storm-horizon: #9b8ba8}.login-scene[data-period=night]{--scene-sky: #242e57;--scene-horizon: #637c9c;--scene-ink: var(--surface);--scene-muted: var(--surface);--scene-cloud: #8992af;--scene-cloud-blush: #cbb9df;--scene-hill-far: #536a83;--scene-hill: #477e80;--scene-hill-front: #315f69;--scene-path: #b4b1a3;--scene-tree: #72968e;--scene-light: #ffefbf;--scene-mist: #b7c8df;--scene-snow: #c9d8eb;--scene-rain: #a8c9e6;--scene-puddle: #638eab;--scene-book: #b5b6d6;--cloudy-sky: #343c5e;--cloudy-horizon: #6d7196;--fog-sky: #36415f;--fog-horizon: #8194aa;--rain-sky: #263d5a;--rain-horizon: #55748c;--snow-sky: #253e65;--snow-horizon: #819ab8;--storm-sky: #20253f;--storm-horizon: #4c5078}.login-scene[data-weather=cloudy]{--scene-sky: var(--cloudy-sky);--scene-horizon: var(--cloudy-horizon)}.login-scene[data-weather=fog]{--scene-sky: var(--fog-sky);--scene-horizon: var(--fog-horizon)}.login-scene[data-weather=rain]{--scene-sky: var(--rain-sky);--scene-horizon: var(--rain-horizon);--scene-cloud: #dce6ee;--scene-muted: var(--text)}.login-scene[data-weather=snow]{--scene-sky: var(--snow-sky);--scene-horizon: var(--snow-horizon);--scene-cloud: var(--scene-snow);--scene-hill-far: color-mix(in srgb, var(--scene-snow) 65%, #a9bfd5);--scene-hill: var(--scene-snow);--scene-hill-front: color-mix(in srgb, var(--scene-snow) 80%, #a6c8d6);--scene-path: color-mix(in srgb, var(--scene-snow) 75%, #a4b9d3);--scene-tree: #a8bac2}.login-scene[data-weather=storm]{--scene-sky: var(--storm-sky);--scene-horizon: var(--storm-horizon);--scene-cloud: #8e90b1;--scene-cloud-face: #515876;--scene-ink: var(--surface);--scene-muted: var(--surface);--scene-umbrella: #c6afd9;--scene-coat: #dbbce8}.login-scene[data-period=night][data-weather=rain]{--scene-cloud: #647d96;--scene-cloud-face: #d7e5f4;--scene-muted: var(--surface)}.login-scene[data-period=night][data-weather=storm]{--scene-cloud: #555d86;--scene-cloud-face: #c9d2ec}.login-scene[data-period=night][data-weather=cloudy]{--scene-cloud-face: #e2def3}.login-scene[data-period=night][data-weather=snow]{--scene-tree: #819cb1}.login-scene[data-period=night][data-weather=fog]{--scene-ink: var(--surface);--scene-muted: var(--surface)}.login-scene-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 34% 64%,var(--scene-light),transparent 65%);opacity:.13}.login-scene:is([data-weather=rain],[data-weather=storm]) .login-scene-veil{opacity:0}.login-scene[data-weather=fog] .login-scene-veil{background:radial-gradient(ellipse at 45% 45%,var(--scene-mist),transparent 65%);opacity:.24}.login-scene-illustration{position:absolute;z-index:-1;left:0;bottom:calc(-1 * var(--scene-page-padding-block));width:min(1000px,125svh,calc(100% + var(--scene-column-gap)));aspect-ratio:5 / 4;pointer-events:none}.login-landscape{display:block;width:100%;height:100%;min-height:0;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 90%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 90%,transparent)}.login-scene .account-page-weather{min-height:100svh;grid-template-columns:minmax(0,1.12fr) minmax(360px,1fr);gap:var(--scene-column-gap);padding:var(--scene-page-padding-block) var(--scene-page-padding-inline);background:transparent;color:var(--scene-ink);font-family:inherit}.login-scene .account-brand{position:relative;border:0;border-radius:0;background:transparent;padding:0;gap:0}.login-scene .account-logo{flex:0 0 auto;align-self:flex-start;padding:11px 16px;border-radius:15px;background:#fff8f0ed;box-shadow:0 2px #fff6}.login-scene .account-wordmark{width:clamp(155px,17vw,218px)}.login-welcome{display:flex;flex:1;flex-direction:column;align-items:flex-start;min-width:0}.login-moment{margin:clamp(40px,7vh,85px) 0 0;max-width:550px}.login-eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 17px;color:var(--scene-muted);font-size:12px;font-weight:600;letter-spacing:.06em}.login-eyebrow>span{width:7px;height:7px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px #fff3}.login-moment h2{margin:0;font-size:clamp(28px,10cqw,56px);line-height:1.14;letter-spacing:-.055em;font-weight:650;color:var(--scene-ink)}.login-scene .account-form{padding:20px 0}.login-scene .account-card{max-width:440px;border:1px solid #ffffffc7;border-radius:30px;padding:clamp(28px,3.2vw,46px);background:#fffdfaf5;box-shadow:0 22px 80px #45406112,inset 0 1px #fff}.login-scene .account-card h1{font-family:inherit;font-size:32px;color:var(--account-ink);letter-spacing:-.045em;font-weight:650}.login-scene .account-field{color:var(--account-muted);font-size:14px}.login-scene .account-field input{border:1px solid var(--account-input-border);border-radius:12px;background:#fffefd;min-height:48px;padding-block:10px;font-size:16px;line-height:1.5}.login-scene .account-field input:focus{border-color:var(--account-accent);box-shadow:0 0 0 3px var(--account-focus-ring)}.login-scene .account-eye-button{width:44px;height:44px;right:2px;padding:12px}.login-scene .account-submit{margin-top:27px;min-height:48px;border:1px solid var(--account-ink);border-radius:12px;background:var(--account-ink);color:var(--surface);font-weight:600;box-shadow:0 4px #000}.login-scene .account-submit:hover:not(:disabled){background:#000}.login-scene .account-links{font-size:14px}.login-scene .account-links a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;color:var(--account-accent)}.login-scene :is(a,button,summary):focus-visible{outline:3px solid var(--account-accent);outline-offset:4px}.login-scene-preview{position:fixed;z-index:10;right:12px;bottom:12px;width:max-content;max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);overflow:auto;box-sizing:border-box;border:1px solid var(--account-input-border);border-radius:12px;background:#fffdfa;color:var(--account-ink);font-size:13px;box-shadow:0 6px 24px #18171c20}.login-scene-preview[open]{width:min(300px,calc(100vw - 24px))}.login-scene-preview summary{min-height:44px;padding:12px 14px;box-sizing:border-box;cursor:pointer;font-weight:600;line-height:20px}.login-scene-preview summary span{margin-left:8px;color:var(--account-accent);font-size:11px;font-weight:400}.login-scene-preview summary:focus-visible{outline-offset:-4px}.login-scene-preview-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 12px 12px}.login-scene-preview-controls p{grid-column:1 / -1;margin:0;font-size:12px;line-height:1.5}.login-scene-preview-controls label{display:grid;gap:6px;min-width:0;font-size:12px}.login-scene-preview-controls select{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:8px;border:1px solid var(--account-input-border);border-radius:8px;background:#fffefd;color:var(--account-ink);font:inherit;font-size:16px}.login-scene-preview-controls select:focus-visible{outline:3px solid var(--account-accent);outline-offset:2px;border-color:var(--account-accent)}.login-scene-preview-controls button{grid-column:1 / -1;min-height:44px;padding:8px 12px;border:1px solid var(--account-ink);border-radius:8px;background:var(--account-ink);color:var(--surface);font:inherit;cursor:pointer}.login-scene-preview-controls button:hover:not(:disabled){background:#000}.login-scene-preview-controls button:disabled{opacity:.5;cursor:default}.scene-cloud-back{animation:scene-cloud-drift 14s ease-in-out infinite alternate;opacity:.62}.scene-cloud-front{animation:scene-cloud-drift 11s ease-in-out infinite alternate-reverse}.scene-cloud-distant{opacity:.5}.scene-cloud-main{opacity:1}.scene-sky-friend{animation:scene-friend-float 8s ease-in-out infinite alternate}.scene-stars{transition:opacity 1s}.scene-twinkle{animation:scene-twinkle 4s ease-in-out infinite alternate}.scene-twinkle-1{animation-delay:1.4s}.scene-twinkle-2{animation-delay:2.8s}.scene-rain path{animation:scene-rain 1.8s linear infinite}.scene-rain-far path{animation-duration:2.6s}.scene-snowflake{animation:scene-snow 8s ease-in-out infinite}.scene-snowflake-1{animation-duration:10s;animation-delay:-3s}.scene-snowflake-2{animation-duration:12s;animation-delay:-7s}.scene-contact-shadow{fill:#817b99;opacity:.18;stroke:none}.scene-bunny{transform-box:view-box;transform-origin:46px 79px;animation:scene-breathe 4.8s ease-in-out infinite}.scene-bunny-ears{transform-box:fill-box;transform-origin:50% 100%;animation:scene-ear-wiggle 9s ease-in-out infinite}.scene-bunny-eyes{transform-box:fill-box;transform-origin:center;animation:scene-blink 7s ease-in-out infinite}.scene-breakfast-cup{transform-box:fill-box;transform-origin:50% 100%;animation:scene-sip 9s ease-in-out infinite}.scene-turning-page{opacity:0;transform-box:view-box;transform-origin:0 0;animation:scene-page-turn 10s ease-in-out infinite}.scene-pencil{transform-box:fill-box;transform-origin:20% 85%;animation:scene-sketch 3.2s ease-in-out infinite}.scene-butterfly-flight{animation:scene-friend-float 5s ease-in-out infinite alternate}.scene-butterfly-wings{transform-box:fill-box;transform-origin:center;animation:scene-wing-flutter 1.8s ease-in-out infinite alternate}.scene-plant-sway{transform-box:fill-box;transform-origin:50% 100%;animation:scene-plant-sway 5s ease-in-out infinite alternate}.scene-morning-sprout .scene-plant-sway{transform-box:view-box;transform-origin:20px 2px}.scene-day-sunflower .scene-plant-sway{transform-box:view-box;transform-origin:0 16px}.scene-plant-sway:nth-child(2n){animation-delay:-2.5s;animation-direction:alternate-reverse}.scene-hanging-sway{transform-box:view-box;transform-origin:0 -31px;animation:scene-hanging-sway 6s ease-in-out infinite alternate}.scene-kite-sway{transform-box:view-box;transform-origin:37px 222px;animation:scene-kite-sway 7s ease-in-out infinite alternate}.scene-evening-leaves{transform-box:fill-box;transform-origin:center;animation:scene-leaf-drift 9s ease-in-out infinite alternate}.scene-water-bob{transform-box:fill-box;transform-origin:50% 100%;animation:scene-water-bob 4.5s ease-in-out infinite alternate}.scene-puddle-ripple{transform-box:fill-box;transform-origin:center;animation:scene-ripple 4.5s ease-out infinite}.scene-night-reflections .scene-puddle-ripple{animation-delay:-2.25s}.scene-fog-wisp{animation:scene-mist-drift 18s ease-in-out infinite alternate}.scene-fog-wisp:nth-child(2n){animation-duration:24s;animation-delay:-8s;animation-direction:alternate-reverse}.scene-wind-stroke{opacity:.55;animation:scene-breeze-sweep 9s ease-in-out infinite}.scene-lightning{opacity:.65;animation:scene-lightning-breathe 6s ease-in-out infinite}.scene-lantern-glow,.scene-shelter-lights circle{animation:scene-warm-glow 6s ease-in-out infinite alternate}.scene-shelter-lights circle:nth-child(2n){animation-delay:-3s}.scene-lamp-glow{animation:scene-lamp-glow 7s ease-in-out infinite alternate}.scene-cup-steam{opacity:.65;transform-box:view-box;transform-origin:0 0;animation:scene-steam 5s ease-out infinite}.scene-cup-steam:nth-child(2){animation-delay:-2.5s}.scene-sleeping-marks{animation:scene-rest 6s ease-in-out infinite alternate}.scene-firefly{animation:scene-friend-float 7s ease-in-out infinite alternate}.scene-firefly:nth-child(2n){animation-direction:alternate-reverse}.login-scene[data-period=night] .scene-bunny{animation-duration:6.5s}.login-scene[data-period=night] .scene-bunny-ears{animation:none}.login-scene[data-weather=cloudy] .scene-terrain{filter:saturate(.7)}.login-scene[data-weather=fog] .scene-far-terrain{opacity:.35}.login-scene[data-weather=fog] .scene-cloud-bank{opacity:.3}.login-scene[data-weather=rain] .scene-terrain{filter:saturate(.7) brightness(.88)}.login-scene[data-weather=storm] .scene-terrain{filter:saturate(.55) brightness(.8)}.login-scene[data-weather=storm] .scene-rain path{animation-duration:1.15s}.login-scene[data-weather=storm] .scene-rain-far path{animation-duration:1.7s}.login-scene[data-weather=storm] .scene-cloud{animation-duration:6s}.login-scene[data-period=evening] .scene-sun{opacity:.94}.login-scene[data-period=night][data-weather=fog] .login-moment{text-shadow:0 2px 8px #46516e60}@keyframes scene-cloud-drift{to{transform:translate(16px)}}@keyframes scene-friend-float{to{transform:translateY(-8px)}}@keyframes scene-twinkle{0%{opacity:.35}to{opacity:.95}}@keyframes scene-rain{0%{transform:translate(18px,-51px);opacity:0}20%,75%{opacity:.85}to{transform:translate(-24px,69px);opacity:0}}@keyframes scene-snow{0%{transform:translate(-4px,-13px);opacity:0}20%,75%{opacity:1}to{transform:translate(8px,21px);opacity:0}}@keyframes scene-breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.025)}}@keyframes scene-ear-wiggle{0%,65%,to{transform:rotate(0)}75%{transform:rotate(-4deg)}83%{transform:rotate(3deg)}91%{transform:rotate(-1deg)}}@keyframes scene-blink{0%,45%,51%,to{transform:scaleY(1)}48%{transform:scaleY(.1)}}@keyframes scene-sip{0%,55%,85%,to{transform:translateY(0) rotate(0)}65%,75%{transform:translateY(-4px) rotate(-5deg)}}@keyframes scene-page-turn{0%,56%{transform:scaleX(1) skewY(0);opacity:0}60%{transform:scaleX(1) skewY(0);opacity:1}66%{transform:scaleX(.78) skewY(-5deg);opacity:1}72%{transform:scaleX(.04) skewY(-9deg);opacity:1}78%{transform:scaleX(-.72) skewY(5deg);opacity:1}84%,88%{transform:scaleX(-1) skewY(0);opacity:1}92%,to{transform:scaleX(-1) skewY(0);opacity:0}}@keyframes scene-sketch{0%,to{transform:rotate(0)}25%,75%{transform:translate(-2px,1px) rotate(-8deg)}50%{transform:rotate(4deg)}}@keyframes scene-wing-flutter{0%{transform:scaleX(1) rotate(-3deg)}to{transform:scaleX(.65) rotate(3deg)}}@keyframes scene-plant-sway{0%{transform:rotate(-3deg)}to{transform:rotate(3deg)}}@keyframes scene-hanging-sway{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}@keyframes scene-kite-sway{0%{transform:rotate(-2deg)}to{transform:rotate(2deg)}}@keyframes scene-leaf-drift{0%{transform:translate(-4px,-5px) rotate(-4deg)}to{transform:translate(8px,9px) rotate(5deg)}}@keyframes scene-water-bob{0%{transform:translate(-3px,1px) rotate(-3deg)}to{transform:translate(3px,-2px) rotate(3deg)}}@keyframes scene-ripple{0%{transform:scale(.65);opacity:.6}to{transform:scale(1.65);opacity:0}}@keyframes scene-mist-drift{0%{transform:translate(-15px)}to{transform:translate(18px)}}@keyframes scene-breeze-sweep{0%{transform:translate(16px);opacity:0}50%{opacity:.65}to{transform:translate(-12px);opacity:0}}@keyframes scene-lightning-breathe{0%,to{opacity:.55}50%{opacity:.75}}@keyframes scene-warm-glow{0%{opacity:.65}to{opacity:1}}@keyframes scene-lamp-glow{0%{opacity:.6}to{opacity:.9}}@keyframes scene-steam{0%{opacity:0;transform:scaleY(.65) skew(-3deg)}25%,45%{opacity:.65}to{opacity:0;transform:scaleY(1.1) skew(3deg)}}@keyframes scene-rest{to{opacity:.5;transform:translateY(-6px)}}@media (min-width: 1550px){.login-scene .account-page-weather{padding-inline:max(64px,calc((100vw - 1420px)/2))}}@media (max-width: 1000px){.login-scene{--scene-page-padding-block: 28px;--scene-page-padding-inline: 28px;--scene-column-gap: 24px}.login-scene .account-page-weather{grid-template-columns:minmax(0,1fr) minmax(320px,.95fr)}}@media (min-width: 721px) and (max-height: 940px){.login-scene{--scene-page-padding-block: 24px}.login-moment{margin-top:20px}.login-eyebrow{margin-bottom:12px}.login-moment h2{font-size:clamp(32px,3.2vw,44px)}.login-scene .account-form{padding-block:12px}.login-scene .account-card{padding:28px}}@media (max-width: 720px){.login-scene .account-page-weather{grid-template-columns:1fr;align-content:start;gap:0;padding:24px 20px 30px}.login-scene .account-brand{display:contents}.login-scene .account-logo{width:fit-content;margin-bottom:24px;padding:9px 13px}.login-scene .account-wordmark{width:156px}.login-welcome{display:contents}.login-moment{container-type:inline-size;margin:0 0 24px}.login-moment h2{font-size:clamp(24px,10cqw,48px)}.login-eyebrow{margin-bottom:12px;font-size:11px}.login-scene .account-form{grid-row:3;padding:0;align-self:start}.login-scene .account-card{max-width:480px;border-radius:23px;padding:28px}.login-scene .account-card h1{font-size:27px}.login-scene-illustration{position:relative;inset:auto;grid-row:4;width:min(100%,300px);justify-self:center;margin:16px auto 0}.login-landscape>g{opacity:.7}.login-landscape>.scene-cloud-bank{opacity:1}.login-landscape>.scene-reader{opacity:1}.scene-character{transform-box:view-box;transform-origin:46px 79px;transform:scale(1.6)}.scene-character,.login-landscape>.scene-weather-companion{opacity:1}.scene-fine-detail{display:none}.login-scene[data-period=morning] .scene-character{--scene-bunny-outline: #aa899a}}@media (max-width: 360px){.login-scene .account-wordmark{width:132px}}@media (prefers-reduced-motion: reduce){.login-scene *,.login-scene *:before,.login-scene *:after{animation:none!important;transition:none!important}}.dashboard-schools-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:4px 0 22px}.dashboard-schools-heading h1{font-size:24px;font-weight:650;line-height:1.4;letter-spacing:-.5px}.dashboard-school-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:20px;align-items:stretch}.dashboard-school-card{display:flex;flex-direction:column;min-width:0;min-height:218px;padding:24px;border:1px solid #e0e3e8;border-radius:16px;background:var(--surface);color:var(--text);box-shadow:0 3px 12px #18171c04;transition:border-color .15s,box-shadow .15s,transform .15s}.dashboard-school-card{position:relative}.dashboard-school-card:has(.session-card-link):hover{border-color:#b7c6ce;box-shadow:0 8px 24px #18171c0b;transform:translateY(-2px)}.session-card-link{color:inherit}.session-card-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px}.session-card-link:focus-visible{outline:none}.session-card-link:focus-visible:after{outline:3px solid #52a6be;outline-offset:4px}.session-pagination{display:flex;align-items:center;gap:12px;margin-top:20px}.dashboard-school-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.dashboard-school-card h3{flex:1;min-width:0;margin:0;font-size:20px;font-weight:650;line-height:1.5;letter-spacing:-.4px;overflow-wrap:anywhere}.dashboard-school-top>.tag{flex-shrink:0;margin-top:3px}.dashboard-school-card .tag-info{background:#f0f1f3;color:#747981}.dashboard-school-card .tag-success{background:#effbec;color:#459c35}.dashboard-school-dates{display:flex;align-items:flex-start;gap:7px;margin-bottom:24px;color:var(--muted);font-size:12px;line-height:1.7}.dashboard-school-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:18px;border-top:1px solid #eef0f3;font-size:13px}.dashboard-school-students{color:var(--muted)}.dashboard-school-students strong{margin-right:3px;color:var(--text);font-size:15px;font-weight:650}@media (max-width: 600px){.dashboard-school-grid{gap:16px}.dashboard-school-card{padding:20px;min-height:200px}}@media (prefers-reduced-motion: reduce){.dashboard-school-card{transition:none}.dashboard-school-card:hover{transform:none}}.school-calendar{min-width:0;padding:24px;border-radius:16px;box-shadow:0 4px 18px #21324705}.school-calendar .cal-header{flex-wrap:wrap;gap:12px;margin-bottom:22px}.school-calendar .cal-title{font-size:18px;letter-spacing:-.3px}.school-calendar-scroll{max-width:100%;overflow-x:auto;border:1px solid #e6ebf0;border-radius:10px}.school-calendar-scroll:focus-visible{outline:2px solid #77bcd0;outline-offset:4px}.school-calendar .cal-weekdays,.school-calendar .cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0}.school-calendar .cal-weekdays{margin:0;background:#f8fafc}.school-calendar .cal-weekday{min-width:0;padding:12px 6px;font-weight:500;color:#8493a2}.school-calendar .cal-grid{grid-auto-rows:minmax(132px,auto)}.school-calendar .cal-cell{min-width:0;min-height:132px;padding:10px 8px;gap:8px;border:0;border-top:1px solid #e6ebf0;border-right:1px solid #e6ebf0;border-radius:0;background:#fff}.school-calendar .cal-cell:nth-child(7n){border-right:0}.school-calendar .cal-cell-out{opacity:1;background:#fafbfc}.school-calendar .cal-cell-out .cal-daynum{color:#b3bec8}.school-calendar .cal-cell-out .cal-chip{opacity:.55}.school-calendar .cal-daynum{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-bottom:2px;font-weight:500;color:#627286}.school-calendar .cal-daynum-today{color:#fff}.school-calendar .cal-chip{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;min-width:0;max-width:100%;padding:8px 9px;border:0;border-left:3px solid #55cfe6;border-radius:5px;background:#edf9fd;overflow:visible;white-space:normal;text-overflow:clip}.school-calendar .cal-chip:hover{background:#e0f3fa}.school-calendar .cal-chip:focus-visible{outline:2px solid #52a6be;outline-offset:2px}.school-calendar .cal-chip-time{display:block;min-width:0;margin:0;color:#829bb0;font-size:11px;line-height:1.5;white-space:normal}.school-calendar .cal-chip-name{display:block;min-width:0;overflow:visible;white-space:normal;overflow-wrap:anywhere;word-break:normal;text-overflow:clip;color:#35596f;font-size:12px;line-height:1.6}@media (max-width: 800px){.school-calendar{padding:16px}.school-calendar .cal-weekdays,.school-calendar .cal-grid{min-width:700px}}.school-timeline-workspace{width:100%;max-width:1000px;margin:28px auto 0}.school-timeline-toolbar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:16px;margin-bottom:32px}.school-timeline-toolbar>.btn{min-height:42px;padding:10px 18px;border-radius:10px}.school-timeline-toolbar .seg{padding:4px;border-radius:12px;background:#fff}.school-timeline-toolbar .seg-btn{padding:8px 18px;border-radius:8px}.school-timeline-workspace .tl-view{--tl-axis-width: 112px;--tl-card-gap: 30px;position:relative;display:flex;flex-direction:column;padding:8px 0 16px}.school-timeline-workspace .tl-view:before{content:"";position:absolute;z-index:0;left:calc(var(--tl-axis-width) - 1px);top:var(--tl-line-start, 0px);width:2px;height:var(--tl-line-height, 0px);background:#d6e1e7}.school-timeline-workspace .tl-now-label{position:relative;margin:0 0 20px calc(var(--tl-axis-width) + var(--tl-card-gap));padding:0;border:0;font-size:11px;font-weight:700;line-height:1.7;letter-spacing:1.8px;color:#8b97a4}.school-timeline-workspace .tl-now-label{display:flex;align-items:center;gap:16px;margin-top:24px;margin-bottom:28px;color:#34596c}.school-timeline-workspace .tl-now-label:after{content:"";flex:1;height:1px;background:#e2e8ed}.school-timeline-workspace .tl-past{margin-bottom:8px}.school-timeline-workspace .tl-fold{position:relative;display:flex;align-items:center;gap:12px;width:calc(100% - var(--tl-axis-width) - var(--tl-card-gap));min-height:58px;margin:0 0 24px calc(var(--tl-axis-width) + var(--tl-card-gap));padding:16px 20px;border:1px solid #e1e6ec;border-radius:12px;background:#fff;color:#687684;text-align:left;font:inherit;font-size:14px;opacity:1;cursor:pointer}.school-timeline-workspace .tl-fold:hover{border-color:#b2c4cf;background:#fbfdfe}.school-timeline-workspace .tl-fold:focus-visible,.school-timeline-workspace .timeline-card:focus-visible{outline:3px solid #77bcd0;outline-offset:4px}.school-timeline-workspace .tl-fold-label{font-weight:650;color:#3f4c59}.school-timeline-workspace .tl-fold-arrow{color:#96a2ac;font-size:17px}.school-timeline-workspace .tl-fold-dot,.school-timeline-workspace .tl-event-dot{position:absolute;z-index:1;left:calc(-1 * var(--tl-card-gap) - 7px);width:14px;height:14px;border:3px solid var(--canvas);border-radius:50%;background:#2599b8;box-shadow:0 0 0 2px #b8dce6}.school-timeline-workspace .tl-fold-dot{top:50%;transform:translateY(-50%);background:#94a6b4;box-shadow:0 0 0 2px #d8e1e8}.school-timeline-workspace .tl-days{display:flex;flex-direction:column}.school-timeline-workspace .tl-day{display:grid;grid-template-columns:var(--tl-axis-width) minmax(0,1fr);gap:var(--tl-card-gap);padding-bottom:28px}.school-timeline-workspace .tl-axis{display:block;padding:0;min-width:0}.school-timeline-workspace .tl-axis:before{display:none}.school-timeline-workspace .tl-axis-date{align-items:flex-end;padding:20px 28px 0 0}.school-timeline-workspace .tl-axis-date .tl-dow{font-size:11px;line-height:1.9;letter-spacing:.4px;color:#8b98a5}.school-timeline-workspace .tl-axis-date strong{font-size:16px;line-height:1.5;font-weight:650;white-space:nowrap}.school-timeline-workspace .tl-content{display:flex;flex-direction:column;padding:0}.school-timeline-workspace .tl-row{position:relative}.school-timeline-workspace .tl-row+.tl-row{margin-top:16px}.school-timeline-workspace .tl-event-dot{top:34px}.school-timeline-workspace .timeline-card{min-height:108px;padding:22px 24px;gap:18px;border:1px solid #e0e6ec;border-radius:16px;background:#fff;box-shadow:0 4px 18px #21324705;transition:border-color .15s,box-shadow .15s}.school-timeline-workspace .timeline-card:hover{border-color:#9dbdcb;box-shadow:0 7px 24px #2132470b}.school-timeline-workspace .timeline-icon{width:48px;height:48px;border:1px solid #e3edf1;border-radius:14px;background:#f1f8fa;font-size:23px}.school-timeline-workspace .timeline-card-main{gap:7px}.school-timeline-workspace .timeline-card-title{flex-direction:column;align-items:flex-start;gap:5px}.school-timeline-workspace .timeline-type{font-size:10px;letter-spacing:1.4px;color:#8b96a2}.school-timeline-workspace .timeline-name{font-size:17px;font-weight:650;line-height:1.5}.school-timeline-workspace .timeline-card-main>.muted{font-size:12px;line-height:1.6}.school-timeline-workspace .tl-day-past .tl-axis-date{opacity:.7}.school-timeline-workspace .tl-day-past .timeline-card{opacity:.78}.school-timeline-workspace .tl-day-past .timeline-card:hover{opacity:1}.school-timeline-workspace .tl-day-past .tl-event-dot{background:#94a6b4;box-shadow:0 0 0 2px #d8e1e8}.modal-overlay.modal-overlay-centered{align-items:center;padding:24px}.modal-overlay-centered>.modal{max-height:calc(100dvh - 48px);overflow-y:auto}.create-event-modal{border:1px solid #e3e8ec;border-radius:20px}.create-event-modal .modal-header{padding:26px 30px}.create-event-modal .modal-header h2{font-size:23px;font-weight:650;letter-spacing:-.5px}.create-event-modal .modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px}.create-event-modal .modal-close:hover{background:#f0f3f5;color:#18171c}.create-event-modal .modal-body{padding:28px 30px 32px}.create-event-modal .create-event-list{gap:18px}.create-event-modal .create-event-item{display:flex;align-items:center;gap:20px;min-height:104px;padding:22px;border:1px solid #e0e6ec;border-radius:14px;background:#fff;color:#18171c;text-align:left;font:inherit}.create-event-modal .create-event-item:hover{border-color:#9dbdcb;background:#fcfeff;box-shadow:0 5px 18px #21324708}.create-event-modal .create-event-item:focus-visible{outline:3px solid #77bcd0;outline-offset:3px}.create-event-modal .create-event-icon{display:flex;align-items:center;justify-content:center;flex:0 0 50px;width:50px;height:50px;border-radius:14px;background:#eff7fa;font-size:25px}.create-event-copy{flex:1;min-width:0}.create-event-copy strong{font-size:16px;font-weight:650}.create-event-description{display:block;margin-top:6px;color:#7e8896;font-size:13px;line-height:1.7}.create-event-arrow{color:#7c8d9a;font-size:21px}@media (max-width: 680px){.school-timeline-workspace{margin-top:22px}.school-timeline-workspace .tl-view{--tl-axis-width: 76px;--tl-card-gap: 20px}.school-timeline-workspace .tl-axis-date{padding-right:18px}.school-timeline-workspace .tl-axis-date strong{font-size:13px}.school-timeline-workspace .tl-fold{flex-wrap:wrap;gap:6px 10px;padding:14px}.school-timeline-workspace .timeline-card{flex-wrap:wrap;min-height:108px;padding:18px;gap:12px}.school-timeline-workspace .timeline-icon{width:38px;height:38px;border-radius:11px;font-size:20px}.school-timeline-workspace .timeline-card-main{flex-basis:calc(100% - 50px)}.school-timeline-workspace .timeline-name{font-size:15px}.school-timeline-workspace .timeline-card>.tag{margin-left:50px}.modal-overlay.modal-overlay-centered{padding:16px}.modal-overlay-centered>.modal{max-height:calc(100dvh - 32px)}.create-event-modal .modal-header,.create-event-modal .modal-body{padding:22px}.create-event-modal .create-event-item{padding:18px;gap:14px}.create-event-modal .create-event-icon{flex-basis:42px;width:42px;height:42px}}@media (prefers-reduced-motion: reduce){.school-timeline-workspace .timeline-card{transition:none}}.ui-tooltip-anchor{position:relative;display:inline-flex;min-width:0}.ui-tooltip{position:fixed;z-index:10000;max-width:min(320px,calc(100vw - 16px));padding:8px 11px;border-radius:7px;background:#18171c;color:#fff;box-shadow:0 4px 14px #18171c26;font-size:12px;font-weight:400;line-height:1.5;text-align:left;text-transform:none;letter-spacing:normal;overflow-wrap:anywhere;pointer-events:none}.app-main:has(.gradebook){max-width:none}.gradebook{--gb-student-width: clamp(112px, 20cqw, 180px);--gb-average-width: clamp(80px, 12cqw, 104px);--gb-lesson-min-width: 120px;container-type:inline-size;width:100%;max-width:100%;min-width:0;border-radius:16px;padding:clamp(16px,2vw,24px)}.gb-heading{display:flex;flex-direction:column;gap:16px;margin-bottom:22px}.gb-title{margin:0;font-size:18px;font-weight:650}.gradebook .gb-legend{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.gradebook .gb-cell{min-height:30px;padding:5px 11px;border-radius:7px;font-size:13px;line-height:1.5;font-weight:600;white-space:nowrap;opacity:1}.gradebook .gb-A{background:#006448;color:#fff}.gradebook .gb-B{background:#527520;color:#fff}.gradebook .gb-C{background:#52687e;color:#fff}.gradebook .gb-D{background:#b4482a;color:#fff}.gradebook .gb-E{background:#ae142e;color:#fff}.gradebook .gb-no-submission{background:#697277;color:#fff}.gradebook .gb-pending{border:1px solid #e8edf1;background:#fff;color:#8192a1}.gb-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid #e2e7ed;border-radius:12px;scrollbar-width:auto;scrollbar-color:#98a3ae #eef1f4}.gb-scroll::-webkit-scrollbar{height:12px}.gb-scroll::-webkit-scrollbar-track{background:#eef1f4}.gb-scroll::-webkit-scrollbar-thumb{border:3px solid #eef1f4;border-radius:10px;background:#98a3ae}.gb-scroll:focus-visible{outline:3px solid #77bcd0;outline-offset:4px}.gradebook .gb-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}.gradebook .gb-table th,.gradebook .gb-table td{padding:clamp(10px,1.6cqw,15px) clamp(8px,1.8cqw,16px);border-right:1px solid #f0f2f5;border-bottom:1px solid #e8ecf1;vertical-align:middle}.gradebook .gb-table th{height:90px;background:#f9fbfc}.gradebook .gb-course-header,.gradebook .gb-average-column,.gradebook .gb-grade-column{text-align:center}.gradebook .gb-course-header a{display:block;color:#586e81;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.gradebook .gb-course-header a:hover{color:#1b7188}.gb-course-meta{margin-top:6px;color:#8998a7;font-size:11px;font-weight:400;line-height:1.6}.gradebook .gb-student-column{position:sticky;left:0;z-index:1;background:#fff;box-shadow:2px 0 4px #18384e04}.gradebook .gb-average-column{position:sticky;left:var(--gb-student-width);z-index:1;background:#fff;box-shadow:3px 0 6px #18384e08}.gradebook thead .gb-student-column,.gradebook thead .gb-average-column{z-index:2;background:#f9fbfc}.gradebook .gb-student-column a{overflow-wrap:anywhere}.gradebook .gb-average-column strong{white-space:nowrap}.gradebook .gb-student-column>.tag{margin:5px 0 0}.gradebook .row-eliminated td{opacity:1}.gradebook .gb-table tbody tr:hover td{background:#fbfdfe}.gb-note{margin:14px 0 0;color:#82919f;font-size:12px;line-height:1.8}@media (max-width: 600px){.gradebook{padding:16px}}.gb-order-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px}.gb-sort-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:4px 0;border:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.gb-sort-button span{color:#8998a7;font-size:14px}.gb-sort-button:hover,.gb-sort-button.is-sorted,.gb-sort-button.is-sorted span{color:#087d80}.gb-sort-button:focus-visible,.gb-row-handle:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}.gb-course-title{display:flex;align-items:center;justify-content:center;gap:6px}.gb-course-title>a{min-width:0}.gb-course-title .gb-sort-button{flex:none;padding:4px}.gb-student-name{display:flex;align-items:center;gap:6px}.gb-student-name>a{min-width:0}.gb-row-handle{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;min-height:28px;padding:0;border:0;background:transparent;color:#8998a7;font-size:22px;line-height:1;cursor:grab}.gb-row-handle:hover{color:#087d80}.gb-row-handle:active{cursor:grabbing}.gradebook .gb-table tbody tr[draggable]{cursor:grab}.gradebook .gb-table tbody tr.gb-row-dragging{opacity:.45;cursor:grabbing}.gradebook .gb-table tbody tr.gb-drop-before>td{box-shadow:inset 0 3px 0 var(--brand)}.gradebook .gb-table tbody tr.gb-drop-after>td{box-shadow:inset 0 -3px 0 var(--brand)}.gb-announcement{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.gb-course-title{min-height:38.4px}.gb-course-title>.ui-tooltip-anchor{display:block;flex:1;min-width:0}.gradebook .gb-course-header .gb-course-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;max-height:38.4px;overflow:hidden;text-overflow:ellipsis}.invitations-page{max-width:1180px;margin:0 auto}.invitation-list{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.invitation-list-toolbar{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.invitation-count{font-size:13px}.invitation-list-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.invitation-list-controls input,.invitation-list-controls select{min-height:36px;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);font:inherit}.invitation-list .table-wrap{border:0;border-top:1px solid var(--border);border-radius:0}.invitation-list .data-table{min-width:660px}.invitation-list .data-table td{vertical-align:middle}.invitation-link-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:999px;padding:2px 9px;color:var(--success);font-size:12px;font-weight:500}.invitation-link-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.invitation-link-badge.is-expired{color:var(--muted)}.invitation-email{display:block;border:0;padding:0;background:none;color:var(--muted);font:inherit;font-size:13px;text-align:start;text-decoration:underline;text-decoration-color:var(--muted);text-underline-offset:3px;overflow-wrap:anywhere;cursor:pointer}.invitation-email:hover{color:var(--brand)}.invitation-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.invitation-cooldown,.invitation-delivery-note{color:var(--muted);font-size:12px}.invitation-delivery-note{margin:10px 2px 0}.invitation-details-email{margin-top:0;overflow-wrap:anywhere}.invitation-details-list{grid-template-columns:minmax(100px,32%) minmax(0,1fr)}@media (max-width: 640px){.invitation-list-controls{width:100%}.invitation-list-controls input{flex:1 1 100%}}.student-detail-page>.grid-2{gap:20px;align-items:stretch}.student-detail-page>.grid-2>.card{min-width:0;margin-top:0}.student-detail-page>.card,.student-detail-page>.card+.card{margin-top:20px}.student-detail-page .card-title{margin-bottom:16px}.student-detail-page .kv-list{grid-template-columns:128px minmax(0,1fr);gap:10px 16px;margin:0;line-height:1.6}.student-detail-page .kv-list dt{align-self:start}.student-detail-page .stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.student-detail-page .stat{min-width:0}.student-detail-page .stat-value{white-space:nowrap}.student-detail-page .stat-label{margin-top:4px;line-height:1.5}.student-detail-page .empty-inline{padding:16px 0;text-align:left}.student-detail-page .data-table th,.student-detail-page .data-table td{padding:12px 14px;vertical-align:top;line-height:1.6}@media (max-width: 420px){.student-detail-page .kv-list{grid-template-columns:100px minmax(0,1fr);gap:10px 12px}.student-detail-page .stat-row{grid-template-columns:1fr}}.student-resume-entry{display:flex;align-items:center;gap:12px;width:100%;min-height:68px;margin-top:20px;padding:14px 24px;border:1px solid var(--border);border-radius:999px;background:var(--surface);box-shadow:var(--shadow);cursor:pointer;transition:border-color .15s,background .15s}.student-resume-entry:hover{border-color:#a8b4c0;background:#fcfdfe}.student-resume-entry:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.student-resume-entry-icon{display:flex;align-items:center;justify-content:center;flex:0 0 36px;height:36px;border-radius:50%;color:#6f7e8c;background:#f3f5f7}.student-resume-entry-label{font-size:14px;font-weight:600}.student-resume-entry-action{display:inline-flex;align-items:center;gap:12px;margin-left:auto;color:var(--muted);font-size:13px}.student-resume-entry-action>span{font-size:18px;color:var(--text)}@media (max-width: 420px){.student-resume-entry{padding:12px 18px}}.resume-preview-page{width:100%;max-width:1100px;margin:0 auto}.resume-preview-panel{min-height:560px;height:calc(100dvh - 190px);max-height:1000px;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.resume-preview-panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--border)}.resume-preview-panel-title{font-size:14px;font-weight:600}.resume-preview-empty{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 24px;text-align:center}.resume-preview-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;margin-bottom:8px;border:1px solid #e7ebf0;border-radius:20px;color:#8795a5;background:#f8fafc}.resume-preview-empty h2{font-size:18px;font-weight:600;line-height:1.5}.resume-preview-empty p{max-width:360px;margin:0;color:var(--muted);line-height:1.7;font-size:14px}@media (max-width: 600px){.resume-preview-panel{min-height:420px;height:calc(100dvh - 280px)}.resume-preview-panel-header{padding:16px}.resume-preview-empty{padding:32px 20px}}.resume-preview-frame{flex:1;width:100%;min-height:0;border:0}.evaluation-detail-page a{color:#0369a1;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}.evaluation-detail-page a:hover{color:#075985;text-decoration-thickness:2px}.evaluation-detail-page a:focus-visible{outline:2px solid #0369a1;outline-offset:3px;border-radius:2px}.evaluation-comment{display:block;width:100%;min-width:12rem;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;line-height:1.5;resize:vertical}.evaluation-comment:focus{min-height:calc(4.5em + 18px)}.evaluation-comment:disabled{background:var(--canvas);color:var(--muted)}.evaluation-student-picker-footer{align-items:center;padding-inline:0}.evaluation-select-all{margin-inline-end:auto;padding-inline:0}.analysis-chat-page{width:100%;max-width:1100px;margin:0 auto}.analysis-chat-shell{--analysis-border: #b0c1d0;display:flex;flex-direction:column;height:calc(100dvh - 174px);min-height:420px;max-height:1100px;background:var(--surface);border:2px solid #91a8bb;border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.analysis-chat-messages{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px}.analysis-message{display:flex;align-items:flex-start;gap:10px;margin-bottom:22px}.analysis-avatar{display:flex;align-items:center;justify-content:center;flex:0 0 32px;height:32px;border-radius:10px;background:#edf3f8;color:#49647a;font-size:11px;font-weight:700}.analysis-bubble{min-width:0;max-width:calc(100% - 42px);padding:16px 20px;border:1px solid var(--analysis-border);border-radius:0 14px 14px;background:#f8fafc;overflow-wrap:anywhere}.analysis-message-assistant .analysis-bubble{flex:1}.analysis-message-user{flex-direction:row-reverse}.analysis-message-user .analysis-avatar{background:#e2f2fc;color:#126487}.analysis-message-user .analysis-bubble{max-width:78%;background:#eaf5fc;border-color:#a7c3d8;border-radius:14px 0 14px 14px}.analysis-speaker{margin-bottom:8px;font-weight:650;color:var(--text)}.analysis-message-text{margin:0;white-space:pre-wrap;line-height:1.7}.analysis-report-time{margin:0 0 14px;font-size:12px}.analysis-bubble .analysis-report h3{margin:18px 0 8px;font-size:15px}.analysis-bubble .analysis-report h3:first-child{margin-top:0}.analysis-bubble .analysis-report p{line-height:1.75}.analysis-bubble .analysis-report a{color:#087aa9;text-decoration:underline;text-underline-offset:2px}.analysis-snapshot-note{margin:18px 0 0;padding-top:12px;border-top:1px solid var(--analysis-border);font-size:12px}.analysis-generation-error{color:var(--danger)}.analysis-thinking{display:flex;align-items:center;gap:10px;margin:0}.analysis-history-status,.analysis-chat-error{margin-left:42px}.analysis-suggestions{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 20px 42px}.analysis-suggestions button{padding:9px 12px;border:1px solid var(--analysis-border);border-radius:9px;background:#fff;color:#49647a;text-align:left;font:inherit;font-size:12px;cursor:pointer}.analysis-suggestions button:hover{background:#f0f8fd;border-color:#7fa8bf}.analysis-composer{flex:none;padding:16px 20px 12px;border-top:1px solid var(--analysis-border);background:#fff}.analysis-composer-row{display:flex;align-items:flex-end;gap:12px}.analysis-composer-row textarea{flex:1;min-width:0;width:100%;min-height:76px;max-height:160px;resize:vertical;border:1px solid #8299ac;border-radius:12px;padding:12px 14px;font:inherit;line-height:1.5}.analysis-composer-row>button{min-height:44px;padding:10px 20px;border-radius:10px}.analysis-composer-hint,.analysis-composer-reason{margin:8px 0 0;font-size:12px}.analysis-composer-reason{margin:0 0 10px}.analysis-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (max-width: 600px){.analysis-chat-shell{height:calc(100dvh - 210px);min-height:380px;border-radius:12px}.analysis-chat-messages{padding:16px 10px}.analysis-avatar{flex-basis:26px;height:26px;border-radius:8px}.analysis-message{gap:7px}.analysis-bubble{padding:12px;max-width:calc(100% - 33px)}.analysis-composer{padding:12px}.analysis-composer-row{gap:8px}.analysis-composer-row>button{padding:10px 12px}.analysis-suggestions,.analysis-history-status,.analysis-chat-error{margin-left:33px}}@media (prefers-reduced-motion: reduce){.analysis-chat-messages{scroll-behavior:auto}}:root{--brand: #0ea5e9;--text: #18171c;--canvas: #f6f7f9;--surface: #ffffff;--border: #e5e7eb;--success: #17835d;--warning: #b86d11;--danger: #b42318;--muted: #6b7280;--radius: 8px;--shadow: 0 1px 3px rgba(24, 23, 28, .08), 0 4px 14px rgba(24, 23, 28, .06);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{background:var(--canvas);color:var(--text);font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0}.muted{color:var(--muted)}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px;position:sticky;top:0;height:100vh}.sidebar-brand{font-weight:700;font-size:16px;padding:8px 12px 20px;color:var(--brand)}.sidebar-brand span{color:var(--text)}.sidebar-nav{display:flex;flex-direction:column;gap:4px;flex:1}.sidebar-link{padding:9px 12px;border-radius:var(--radius);color:var(--text);font-weight:500}.sidebar-link:hover{background:var(--canvas)}.sidebar-link.active{background:color-mix(in srgb,var(--brand) 10%,white);color:var(--brand)}.sidebar-user{border-top:1px solid var(--border);padding:12px;font-size:12px}.sidebar-user .muted{display:block}.app-main{flex:1;min-width:0;padding:24px 32px 48px;max-width:1200px}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-title{font-size:22px;font-weight:700;margin-top:4px}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.breadcrumb{font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap}.breadcrumb-item+.breadcrumb-item:before{content:"/";margin:0 6px;color:var(--muted)}.breadcrumb-item a:hover{color:var(--brand)}.breadcrumb-current{color:var(--text);font-weight:600}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{position:relative;width:34px;height:19px;border-radius:999px;background:#cbd5e1;transition:background .18s ease;flex:none}.switch-track:before{content:"";position:absolute;top:2.5px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #18171c40;transition:transform .18s ease}.switch input:checked+.switch-track{background:var(--brand)}.switch input:checked+.switch-track:before{transform:translate(15px)}.switch input:disabled+.switch-track{opacity:.55}.switch input:focus-visible+.switch-track{outline:2px solid var(--brand);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card+.card{margin-top:16px}.card-title{font-size:15px;font-weight:600;margin-bottom:12px}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.stat-row{display:flex;gap:24px;flex-wrap:wrap}.stat{min-width:120px}.stat-value{font-size:22px;font-weight:700}.stat-label{font-size:12px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:var(--radius);padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;background:transparent;color:var(--text);transition:opacity .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--text);color:#fff}.btn-primary:not(:disabled):hover{background:#000}.btn-brand{background:var(--brand);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-secondary{border-color:var(--border);background:var(--surface)}.btn-secondary:not(:disabled):hover{border-color:var(--text)}.btn-sm{padding:4px 10px;font-size:12px}.btn-link{color:var(--brand);padding:4px 6px;font-weight:500}.tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.tag-success{background:color-mix(in srgb,var(--success) 12%,white);color:var(--success)}.tag-warning{background:color-mix(in srgb,var(--warning) 14%,white);color:var(--warning)}.tag-danger{background:color-mix(in srgb,var(--danger) 12%,white);color:var(--danger)}.tag-info{background:#eef2ff;color:#4338ca}.tag-neutral{background:var(--canvas);color:var(--muted)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.data-table th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#fafbfc}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#fafbfc}.form-field{margin-bottom:14px}.form-field label{display:block;font-weight:600;margin-bottom:6px;font-size:13px}.required-mark{color:var(--brand)}.form-field input[type=text],.form-field input[type=email],.form-field input[type=password],.form-field input[type=date],.form-field input[type=datetime-local],.form-field select,.form-field textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;background:var(--surface);color:var(--text);font-family:inherit}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid color-mix(in srgb,var(--brand) 40%,transparent);border-color:var(--brand)}.form-field-error input,.form-field-error select,.form-field-error textarea{border-color:var(--danger)}.field-error{color:var(--danger);font-size:12px;margin-top:4px}.field-hint{color:var(--muted);font-size:12px;margin-top:4px}.form-row{display:flex;gap:12px}.form-row>*{flex:1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#18171c73;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;overflow-y:auto}.modal{background:var(--surface);border-radius:12px;width:100%;box-shadow:0 20px 50px #0003}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:16px}.modal-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--muted);line-height:1}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border)}.confirm-body{margin-bottom:12px}.confirm-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:8px}.page-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 16px;color:var(--muted)}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--brand);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page-state-error{color:var(--danger)}.filter-bar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.filter-bar input,.filter-bar select{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:14px}.filter-bar input{min-width:220px}.section-title{margin:20px 0 10px;font-size:15px;font-weight:600}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}.tab-link{cursor:pointer;padding:10px 16px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;border-radius:8px 8px 0 0}.tab-link:hover{color:var(--text);background:color-mix(in srgb,var(--brand) 6%,transparent)}.tab-link.active{color:var(--brand);border-bottom-color:var(--brand);background:color-mix(in srgb,var(--brand) 9%,transparent)}.timeline-list{display:flex;flex-direction:column}.timeline-card{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.timeline-card+.timeline-card{margin-top:10px}.timeline-card:hover{border-color:var(--brand)}.timeline-icon{width:40px;height:40px;border-radius:50%;background:var(--canvas);display:inline-flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.timeline-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.timeline-card-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.timeline-type{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.timeline-name{font-weight:600}.score-input{display:inline-flex;gap:4px}.score-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:var(--surface);font-weight:700;cursor:pointer;font-size:13px}.score-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.score-btn-active{background:var(--brand);border-color:var(--brand);color:#fff}.score-btn:disabled{cursor:not-allowed;opacity:.6}.file-uploader{border:2px dashed var(--border);border-radius:var(--radius);padding:28px;text-align:center;cursor:pointer;background:var(--surface);margin-bottom:12px}.file-uploader:hover,.file-uploader.dragging{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 4%,white)}.file-uploader.disabled{opacity:.6;cursor:not-allowed}.file-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.file-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;background:var(--surface)}.file-item-error{border-color:var(--danger)}.file-name{overflow-wrap:anywhere}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.auth-card{width:380px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:32px;box-shadow:var(--shadow)}.auth-brand{color:var(--brand);font-weight:800;font-size:20px;margin-bottom:20px}.auth-brand span{color:var(--text)}.auth-banner{padding:10px 12px;border-radius:var(--radius);margin-bottom:14px;font-size:13px}.auth-banner-error{background:color-mix(in srgb,var(--danger) 10%,white);color:var(--danger)}.auth-banner-success{background:color-mix(in srgb,var(--success) 10%,white);color:var(--success)}.journey-root{--jx-ink: #000;--jx-cyan: #80eaff;--jx-cyan-border: #31cae8;--jx-cyan-deep: #22a8c3;--jx-lime: #cef655;--jx-lime-deep: #79971b;--jx-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;position:relative;min-height:100vh;color:var(--jx-ink);font-family:var(--jx-mono);-webkit-font-smoothing:antialiased;background:linear-gradient(rgba(0,0,0,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.035) 1px,transparent 1px),#fff;background-size:28px 28px,28px 28px,auto}.journey-root ::selection{background:var(--jx-cyan)}.jstar-field{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.jstar{position:absolute;color:var(--jx-ink);font-weight:700;animation:jstarTw 3s ease-in-out infinite}.jstar--dim{color:#0006}@keyframes jstarTw{0%,to{opacity:1}50%{opacity:.2}}.journey-scroll{position:relative;z-index:1;height:100dvh;overflow-y:auto;overscroll-behavior:contain}@supports not (height: 100dvh){.journey-scroll{height:100vh}}.journey-hero{text-align:center;padding:52px 20px 10px}.journey-hero h1{font-family:var(--jx-mono);font-size:clamp(22px,6vw,28px);font-weight:800;letter-spacing:.04em;text-transform:uppercase;margin:12px 0 8px;color:var(--jx-ink)}.journey-hero .muted{color:#0009;font-size:12px;letter-spacing:.14em;text-transform:uppercase}.journey-avatar{width:54px;height:54px;border-radius:4px;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-family:var(--jx-mono);font-size:20px;font-weight:800;color:var(--jx-ink);background:var(--jx-cyan);border:2px solid var(--jx-ink);box-shadow:5px 5px #00000014}.journey-container{max-width:460px;margin:0 auto;padding:6px 20px 48px}.journey-achievements{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}.journey-badge{font-family:var(--jx-mono);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:5px 12px;border-radius:2px;color:var(--jx-ink);background:var(--jx-lime);border:1.5px solid var(--jx-ink)}.journey-badge.badge-accent{background:var(--jx-cyan)}.jmap{position:relative;width:100%;margin:0 auto;container-type:inline-size}.jmap-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.jpath-base{stroke:#0000004d;stroke-width:2;stroke-linecap:round;stroke-dasharray:.5 8;vector-effect:non-scaling-stroke}.jpath-glow{stroke:#80eaff66;stroke-width:7;stroke-linecap:round}.jpath-lit{stroke:var(--jx-cyan-border);stroke-width:2.5;stroke-linecap:round}.jnode-pos{position:absolute}.jnode-marker,.jnode-caption{position:absolute;left:0;transform:translate(-50%)}.jnode-marker{bottom:20px}.jnode-caption{top:15px;width:max-content;max-width:min(112px,25cqw);text-align:center;pointer-events:none}.jnode{position:relative;width:34px;height:34px;border-radius:4px;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:var(--jx-mono);background:#fff;border:1.5px dashed rgba(0,0,0,.3);transition:border-color .6s ease,box-shadow .6s ease,background .6s ease}.jnode-num{font-size:10px;font-weight:700;letter-spacing:.5px;color:#00000073;transition:color .6s ease}.jnode.on{background:var(--jx-cyan);border:2px solid var(--jx-ink);box-shadow:3px 3px 0 var(--jx-ink)}.jnode.on .jnode-num{color:var(--jx-ink)}.jnode.terminal{width:40px;height:40px}.jnode.terminal.on{background:var(--jx-lime)}.jnode-halo{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:6px;border:2px solid rgba(34,168,195,.55);pointer-events:none}.jnode-ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:8px;border:1.5px solid rgba(0,0,0,.3);pointer-events:none}.jnode-fin{display:block;margin-top:8px;font-family:var(--jx-mono);font-size:9px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--jx-ink)}.jnode-tag{padding:3px 6px;border-radius:2px;pointer-events:none;font-family:var(--jx-mono);font-size:9.5px;font-weight:700;line-height:1.45;text-align:center;color:#00000059;background:#fffc;border:1px solid rgba(0,0,0,.15);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .5s ease,border-color .5s ease,background .5s ease}.jnode-tag.on{color:var(--jx-ink);border-color:var(--jx-ink);background:#fff}.jdot{position:absolute;z-index:2;width:16px;height:16px;translate:-50% -50%;border-radius:3px;background:var(--jx-cyan);border:2px solid var(--jx-ink);box-shadow:2px 2px 0 var(--jx-ink);pointer-events:none}.jmodal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:#0006}.jmodal{position:relative;width:100%;max-width:360px;text-align:center;padding:0 28px 30px;border-radius:12px;border:2px solid var(--jx-ink);background:#fff;box-shadow:6px 6px #000000d9;overflow:hidden}.jmodal-bar,.jsheet-bar{display:flex;align-items:center;justify-content:space-between;margin:0 -28px 18px;padding:8px 14px;background:#141d1f;font-family:var(--jx-mono);font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--jx-cyan)}.jwin-dots{display:inline-flex;gap:4px}.jwin-dots i{width:8px;height:8px;background:var(--jx-cyan);display:inline-block}.jmodal-mark{display:block;width:32px;height:32px;margin:0 auto 16px;border-radius:4px;border:2px solid var(--jx-ink);background:var(--jx-lime);position:relative}.jmodal-mark:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:2px;background:var(--jx-ink)}.jmodal h2{font-family:var(--jx-mono);font-size:24px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;margin:0 0 14px;color:var(--jx-ink)}.jmodal-text{font-family:var(--jx-mono);font-size:13px;line-height:1.9;color:#000000b8}.jmodal-text strong{font-weight:700;color:var(--jx-ink)}.jmodal-name{font-family:var(--jx-mono);font-size:20px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--jx-cyan-deep);margin:10px 0}.jmodal-date{margin-top:12px;font-family:var(--jx-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#0000008c}.jstamp{display:inline-block;margin-top:16px;padding:4px 12px;border-radius:2px;transform:rotate(-7deg);font-family:var(--jx-mono);font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--jx-cyan-deep);border:2.5px solid var(--jx-cyan-deep)}.jstamp--done{color:var(--jx-lime-deep);border-color:var(--jx-lime-deep)}.jmotes{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.jmotes span{position:absolute}.jsheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0006}.jsheet{position:fixed;left:0;right:0;bottom:0;z-index:51;max-width:440px;margin:0 auto;padding:0 22px 30px;text-align:center;border-radius:12px 12px 0 0;border:2px solid var(--jx-ink);border-bottom:none;background:#fff;box-shadow:0 -12px 30px #00000026}.jsheet-bar{margin:0 -22px 16px;border-radius:10px 10px 0 0}.jsheet h2{font-family:var(--jx-mono);font-size:18px;font-weight:700;margin:0 0 10px;color:var(--jx-ink)}.jsheet-date{font-family:var(--jx-mono);font-size:11px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:#0000008c}.jsheet-close{margin-top:18px;background:#fff;color:var(--jx-ink);cursor:pointer;font-family:var(--jx-mono);font-weight:700;letter-spacing:.1em;text-transform:uppercase;border:2px solid var(--jx-ink);border-radius:4px;padding:8px 24px;font-size:12px;box-shadow:3px 3px 0 var(--jx-ink);transition:transform .08s ease,box-shadow .08s ease,background .15s ease}.jsheet-close:hover{background:var(--jx-cyan)}.jsheet-close:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--jx-ink)}.journey-footer{position:relative;z-index:1;text-align:center;margin-top:12px;padding:14px 18px;border-top:3px dotted var(--jx-ink);font-family:var(--jx-mono);font-size:10px;font-weight:700;letter-spacing:.25em;text-transform:uppercase;color:#0000008c}.empty-inline{padding:24px;text-align:center;color:var(--muted)}.progress-note{font-size:13px;color:var(--muted);margin:8px 0}.banner{padding:10px 14px;border-radius:var(--radius);margin-bottom:14px;font-size:13px}.banner-info{background:#eef2ff;color:#4338ca}.banner-warning{background:color-mix(in srgb,var(--warning) 12%,white);color:var(--warning)}.banner-error{background:color-mix(in srgb,var(--danger) 10%,white);color:var(--danger)}.banner-success{background:color-mix(in srgb,var(--success) 10%,white);color:var(--success)}.inline-actions{display:flex;gap:6px;flex-wrap:wrap}.kv-list{display:grid;grid-template-columns:160px 1fr;gap:8px 16px;font-size:14px}.kv-list dt{color:var(--muted)}.kv-list dd{margin:0;overflow-wrap:anywhere}@media (max-width: 768px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;flex-direction:row;align-items:center;padding:8px 12px}.sidebar-brand{padding:4px 8px}.sidebar-nav{flex-direction:row}.sidebar-user{border-top:none;border-left:1px solid var(--border);padding:4px 0 4px 12px;margin-left:auto}.app-main{padding:16px}.form-row{flex-direction:column}}.page-subtitle{font-size:13px;margin-top:2px}.tl-view{display:flex;flex-direction:column}.tl-past-label,.tl-now-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:6px 0}.tl-now-label{padding-top:10px;border-top:1px dashed var(--border)}.tl-month{margin-bottom:4px}.tl-fold{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:#f8fafc;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:13px;cursor:pointer;opacity:.75}.tl-fold:hover{opacity:1;border-color:var(--brand)}.tl-fold-month{font-weight:600}.tl-month-open .tl-fold{opacity:1}.tl-days{display:flex;flex-direction:column}.tl-day{display:flex;gap:0}.tl-day-past .tl-axis-date,.tl-day-past .timeline-card{opacity:.55}.tl-axis{flex:0 0 128px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding-right:14px;position:relative}.tl-axis:before{content:"";position:absolute;right:5px;top:0;bottom:0;width:2px;background:var(--border)}.tl-day:last-child .tl-axis:before{bottom:50%}.tl-axis-date{display:flex;flex-direction:column;align-items:flex-end;padding-top:8px}.tl-axis-date .tl-dow{font-size:11px;color:var(--muted)}.tl-axis-date strong{font-size:14px;font-weight:700;color:var(--text);line-height:1.2}.tl-dot{width:12px;height:12px;border-radius:50%;background:var(--brand);border:2px solid var(--surface);box-shadow:0 0 0 2px var(--brand);align-self:flex-start;margin-top:14px;position:relative;z-index:1}.tl-day-past .tl-dot{background:var(--muted);box-shadow:0 0 0 2px var(--border)}.tl-content{flex:1;min-width:0;display:flex;flex-direction:column;padding:6px 0 14px}.tl-row .timeline-card+.timeline-card{margin-top:8px}.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.cal-title{font-weight:700;font-size:16px}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.cal-weekday{text-align:center;font-size:12px;font-weight:600;padding:4px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell{min-height:92px;border:1px solid var(--border);border-radius:8px;padding:6px;display:flex;flex-direction:column;gap:4px;background:var(--surface)}.cal-cell-out{opacity:.45;background:transparent}.cal-cell-today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}.cal-daynum{font-size:12px;font-weight:600;color:var(--muted)}.cal-daynum-today{color:#fff;background:var(--brand);border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}.cal-chip{display:flex;align-items:center;gap:6px;padding:3px 8px;border-radius:6px;background:color-mix(in srgb,var(--brand) 8%,transparent);font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cal-chip:hover{background:color-mix(in srgb,var(--brand) 16%,transparent)}.cal-chip-name{overflow:hidden;text-overflow:ellipsis}.cal-chip-time{margin-left:auto;font-size:11px}.cal-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px}.create-event-list{display:flex;flex-direction:column;gap:10px}.create-event-item{display:flex;align-items:center;gap:14px;padding:14px 16px;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}.create-event-item:hover{border-color:var(--brand);box-shadow:0 2px 8px color-mix(in srgb,var(--brand) 15%,transparent)}.create-event-icon{font-size:22px}.tag-training-enrolled{background:color-mix(in srgb,var(--success) 12%,white);color:var(--success)}.tag-training-eliminated{background:color-mix(in srgb,var(--danger) 12%,white);color:var(--danger)}.tag-training-graduated{background:#e0f2fe;color:#0369a1}.row-eliminated td{opacity:.55}.seg{display:inline-flex;gap:2px;padding:3px;background:var(--canvas);border:1px solid var(--border);border-radius:10px}.seg-btn{padding:6px 14px;border:none;background:transparent;color:var(--muted);font-weight:600;font-size:13px;border-radius:8px;cursor:pointer;transition:color .15s,background .15s}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.gb-cell{display:inline-flex;align-items:center;justify-content:center;min-width:36px;padding:4px 10px;border-radius:6px;font-weight:700;font-size:13px}.gb-A{background:#16a34a;color:#fff}.gb-B{background:#65a30d;color:#fff}.gb-C{background:#eab308;color:#422006}.gb-D{background:#f97316;color:#fff}.gb-E{background:#dc2626;color:#fff}.gb-legend{display:inline-flex;align-items:center;gap:6px}.resume-file-picker{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.resume-file-picker>.btn{flex:none}.resume-file-name{min-width:0;overflow-wrap:anywhere}.resume-remove-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:#d92d20;font-size:26px;font-weight:600;line-height:1;cursor:pointer}.resume-remove-button:hover{background:#fef3f2;color:#b42318}.resume-remove-button:focus-visible{outline:2px solid #d92d20;outline-offset:2px}
