:root{font-family:Trebuchet MS,Avenir Next,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#2f2618;background:linear-gradient(180deg,#f4efe4,#e5ddd1 56%,#ddd7cc);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--ink-strong: #2f2618;--ink-soft: #61513c}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}button,input,select,textarea{font:inherit}img{display:block;max-width:100%}code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.eyebrow{margin:0 0 .3rem;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;color:#82602f;font-weight:700}.app-shell{min-height:100vh;color:var(--ink-strong);position:relative}.app-shell:before{content:"";position:fixed;inset:-10%;z-index:-1;background:radial-gradient(circle at 30% 20%,rgba(233,201,127,.32),transparent 34%),radial-gradient(circle at 70% 80%,rgba(135,178,146,.28),transparent 28%);animation:drift-bg 25s ease-in-out infinite alternate;will-change:transform;pointer-events:none}.app-main{width:min(1180px,calc(100vw - 2rem));margin:0 auto;padding:1.25rem 0 3rem}.shell-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.5rem;margin-bottom:1rem;background:linear-gradient(140deg,#fbf3ddf5,#f0ebdcf0 40%,#e5eddeeb);border:1px solid rgba(70,61,43,.12);border-radius:28px;box-shadow:0 20px 55px #4a39211f,0 2px 10px #4a39210f;position:relative;overflow:hidden}.shell-header:after{content:"";position:absolute;bottom:0;left:2rem;right:2rem;height:3px;border-radius:0 0 3px 3px;background:linear-gradient(90deg,#c7871a,#1b7d57,#c7871a)}.shell-header h1{font-size:clamp(1.5rem,3vw,2rem);background:linear-gradient(135deg,#2f2618 40%,#82602f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.shell-header h1,.panel h2,.list-card h3,.metric-card h3,.word-card h2,.hero-panel h1{margin:0;font-family:Georgia,Times New Roman,serif;letter-spacing:-.03em}.subtitle,.shell-header p,.panel p,.list-card p,.summary-text{margin:.35rem 0 0;color:var(--ink-soft)}.header-actions{display:flex;align-items:center;gap:.75rem}.notice-banner,.error-banner{margin:0 0 1rem;padding:.85rem 1rem;border-radius:16px;font-weight:600;animation:slide-down .3s ease-out both}.notice-banner{background:#d3ecd7e6;color:#255233}.error-banner{background:#f8d8cff2;color:#7a2c1c}.workspace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;animation:fade-up .4s ease-out both}.admin-workspace{align-items:start}.admin-wide-panel{grid-column:1 / -1}.deck-library-list{grid-template-columns:repeat(2,minmax(0,1fr))}.active-jobs-panel{order:0;background:#f6efdef5}.deck-library-panel{order:1}.child-list-panel{order:2}.deck-builder-panel{order:3}.book-import-panel{order:4}.advanced-admin-panel{order:5}.job-status-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.job-status-card{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-radius:18px;background:#ffffffc2;border:1px solid rgba(75,63,40,.08)}.advanced-admin-panel>summary,.prompt-preview>summary{cursor:pointer;list-style:none}.advanced-admin-panel>summary::-webkit-details-marker,.prompt-preview>summary::-webkit-details-marker{display:none}.advanced-admin-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:800;color:var(--ink-strong)}.advanced-admin-panel>summary:after,.prompt-preview>summary:after{content:"+";display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:999px;background:#efe8d9e6;color:var(--ink-strong);font-weight:900}.advanced-admin-panel[open]>summary:after,.prompt-preview[open]>summary:after{content:"-"}.advanced-admin-panel small{color:var(--ink-soft);font-weight:700}.advanced-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.advanced-admin-grid>.panel{box-shadow:none;background:#f8f4ebad}.child-grid{grid-template-columns:1fr}.panel{padding:1.3rem;border-radius:24px;background:#fffdf8eb;border:1px solid rgba(68,58,43,.1);box-shadow:0 14px 40px #3d342514;animation:fade-up .35s ease-out both;transition:box-shadow .25s ease}.panel:hover{box-shadow:0 18px 50px #3d34251f}.workspace-grid>.panel:nth-child(1){animation-delay:0ms}.workspace-grid>.panel:nth-child(2){animation-delay:60ms}.workspace-grid>.panel:nth-child(3){animation-delay:.12s}.workspace-grid>.panel:nth-child(4){animation-delay:.18s}.panel-head,.list-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.panel-chip,.status-pill,.token{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.3rem .75rem;font-size:.82rem;font-weight:700}.status-pill{position:relative;padding-left:1.4rem;text-transform:uppercase;font-size:.72rem;letter-spacing:.06em;box-shadow:inset 0 1px 2px #0000000f}.status-pill:before{content:"";position:absolute;left:.55rem;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%}.panel-chip,.status-live{background:#cce4cdf2;color:#234f33}.status-draft{background:#f1deb1f2;color:#7d5812}.status-published{background:#d6e2f9f2;color:#244b85}.status-queued{background:#f1deb1f2;color:#7d5812}.status-processing{background:#d6e2f9f2;color:#244b85}.status-completed{background:#cce4cdf2;color:#234f33}.status-failed{background:#f8d8cff2;color:#7a2c1c}.status-draft:before{background:#c7871a}.status-published:before{background:#3366b8}.status-queued:before{background:#c7871a}.status-processing:before{background:#3366b8;animation:dot-pulse 1.5s ease-in-out infinite}.status-completed:before{background:#2d8a4a}.status-failed:before{background:#c44a30}.status-live:before{background:#2d8a4a;animation:dot-pulse 1.5s ease-in-out infinite}.panel-chip{position:relative;padding-left:1.3rem}.panel-chip:before{content:"";position:absolute;left:.5rem;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%;background:#2d8a4a}.stack{display:grid;gap:.9rem}.field{display:grid;gap:.35rem}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.field span{font-weight:700;color:var(--ink-soft)}.field input,.field textarea,.field select{width:100%;border-radius:16px;border:1px solid rgba(72,62,44,.16);background:#ffffffd6;padding:.9rem 1rem;font:inherit;color:var(--ink-strong);transition:border-color .2s ease,box-shadow .2s ease;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:#1b7d57;box-shadow:0 0 0 3px #1b7d572e,0 2px 8px #1b7d5714}.field input:hover,.field textarea:hover,.field select:hover{border-color:#483e2c4d}.field textarea{resize:vertical}.toggle{display:flex;align-items:center;gap:.7rem;color:var(--ink-soft)}.primary-button,.ghost-button,.choice-button{border:0;border-radius:16px;padding:.9rem 1rem;font:inherit;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.primary-button{background:linear-gradient(135deg,#1b7d57,#0f5e43);color:#fff;box-shadow:0 16px 28px #0e513b38}.ghost-button{background:#efe8d9d9;color:var(--ink-strong)}.primary-button:hover,.ghost-button:hover,.choice-button:hover{transform:translateY(-1px)}.card-list{display:grid;gap:.85rem}.list-card,.metric-card,.word-card{padding:1rem;border-radius:20px;background:#f8f4ebb8;border:1px solid rgba(75,63,40,.1);transition:transform .2s ease,box-shadow .2s ease}.list-card:hover,.metric-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px #3d342524}.token-row{display:flex;flex-wrap:wrap;gap:.45rem;margin:.75rem 0}.card-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.65rem;margin-top:.75rem}.card-actions .deck-word-inspector{flex:1 1 100%;margin-top:0}.deck-word-inspector{display:grid;gap:.65rem;margin-top:.75rem}.deck-word-toggle{justify-self:start}.deck-word-panel{max-height:28rem;overflow:auto;padding:.75rem;border-radius:18px;background:#ffffffb8;border:1px solid rgba(75,63,40,.08)}.deck-word-list{display:grid;gap:.55rem}.deck-word-row{display:grid;grid-template-columns:minmax(0,1fr);gap:.35rem;padding:.75rem .85rem;border-radius:14px;background:#f8f4ebdb;border:1px solid rgba(75,63,40,.08)}.deck-word-title,.deck-word-definition,.deck-word-choices{margin:0}.deck-word-title{font-weight:800;color:var(--ink-strong)}.deck-word-definition,.deck-word-choices{color:var(--ink-soft);font-size:.92rem;line-height:1.45}.assignment-admin-list{display:grid;gap:.65rem;margin-top:.85rem}.assignment-admin-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem .9rem;border-radius:16px;background:#ffffffb8;border:1px solid rgba(75,63,40,.08)}.assignment-admin-title,.assignment-admin-meta{margin:0}.assignment-admin-title{font-weight:700;color:var(--ink-strong)}.assignment-admin-meta{margin-top:.2rem;color:var(--ink-soft);font-size:.92rem}.assignment-admin-button{flex-shrink:0}.child-admin-workspace{align-items:start}.child-admin-hero .metric-row{margin-top:1rem}.child-admin-list{display:grid;gap:.65rem}.child-admin-row{display:grid;grid-template-columns:minmax(12rem,1.4fr) auto minmax(8rem,.7fr) minmax(16rem,1.2fr);align-items:center;gap:.85rem;width:100%;padding:.85rem .95rem;border:1px solid rgba(75,63,40,.08);border-radius:18px;background:#ffffffb8;color:inherit;cursor:pointer;text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.child-admin-row:hover,.child-admin-row:focus-visible{transform:translateY(-1px);border-color:#5b74533d;box-shadow:0 10px 24px #3d342514;outline:none}.child-admin-name,.child-admin-meta{display:block}.child-admin-name{color:var(--ink-strong);font-weight:800}.child-admin-meta{color:var(--ink-soft);font-size:.92rem;line-height:1.45}.child-admin-pill{justify-self:start;padding:.35rem .65rem;border-radius:999px;background:#e3e9d4fa;color:#345236;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.profile-tuning-summary{padding:.9rem 1rem;border-radius:16px;background:#ffffffb8;border:1px solid rgba(75,63,40,.08)}.profile-tuning-summary p,.form-note{margin:0}.form-note{color:var(--ink-soft)}.prompt-helper{display:grid;gap:.6rem;padding:.9rem 1rem;border-radius:16px;background:#ffffffb8;border:1px solid rgba(75,63,40,.08)}.prompt-helper-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.prompt-helper-title{margin:0;font-weight:700;color:var(--ink-strong)}.prompt-helper-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.prompt-preview{display:grid;gap:.55rem}.prompt-preview>summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .85rem;border-radius:14px;background:#efe8d9ad;font-weight:800;color:var(--ink-strong)}.prompt-helper-text{min-height:12rem;font-size:.92rem;line-height:1.45;white-space:pre-wrap}.token{background:#e3e9d4fa;color:#345236}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.metric-card h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.metric-card p{margin:.4rem 0 0;font-size:2.2rem;font-weight:700;color:var(--ink-strong)}.metric-row .metric-card:nth-child(1){background:#d0ebd3d9;border-left:4px solid #3a8a53}.metric-row .metric-card:nth-child(1) p{color:#1e6b35}.metric-row .metric-card:nth-child(2){background:#f1e4bed9;border-left:4px solid #c7871a}.metric-row .metric-card:nth-child(2) p{color:#8a6010}.metric-row .metric-card:nth-child(3){background:#f7dcd4d9;border-left:4px solid #c44a30}.metric-row .metric-card:nth-child(3) p{color:#8a3621}.metric-row .metric-card:nth-child(1){animation:fade-up .3s ease-out both}.metric-row .metric-card:nth-child(2){animation:fade-up .3s 80ms ease-out both}.metric-row .metric-card:nth-child(3){animation:fade-up .3s .16s ease-out both}.child-session-live{min-height:min(78vh,900px);display:grid;gap:1rem;padding:clamp(1rem,3vw,1.5rem)}.session-toolbar{display:flex;align-items:center;justify-content:flex-start}.session-back-button{padding:.75rem 1rem}.word-card{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);gap:clamp(.9rem,2.5vh,1.25rem);text-align:center;animation:card-enter .35s ease-out both;min-height:0}.word-card h2{font-size:clamp(2.8rem,7vw,4.8rem);text-align:center;color:#2f2618;line-height:.95}.word-card .word-image{margin:0 auto}.word-image{width:min(260px,100%);max-height:26vh;object-fit:contain;border-radius:20px;border:1px solid rgba(80,65,40,.12)}.hint-strip{display:grid;gap:.55rem;justify-items:center}.hint-action{min-width:180px}.hint-copy{margin:0;max-width:42rem;padding:.85rem 1rem;border-radius:18px;background:#ece6d8d9;color:var(--ink-strong);line-height:1.55}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;counter-reset:choice}.choice-grid-session{align-self:stretch;align-content:stretch}.choice-button{counter-increment:choice;position:relative;min-height:clamp(96px,15vh,148px);background:#fffffff5;color:var(--ink-strong);border:2px solid rgba(73,62,41,.1);text-align:left;padding:1rem 1.1rem 1rem 3.15rem;display:flex;align-items:center;font-size:clamp(1.08rem,2.5vw,1.4rem);line-height:1.35;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.choice-button:before{content:counter(choice,upper-alpha);position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:#e3e9d4e6;color:#345236;font-weight:800;font-size:.82rem;display:grid;place-items:center}.choice-button:hover:not(:disabled){transform:translateY(-2px) scale(1.01);box-shadow:0 8px 20px #3d34251f;border-color:#493e2940}.choice-button:active:not(:disabled){transform:translateY(1px) scale(.99)}.choice-correct{border-color:#3a8a53;background:#d0ebd3fa;color:#214c32;animation:pop-correct .3s ease-out}.choice-correct-reveal{border-color:#3a8a53;background:#dff1e1f5;color:#214c32}.choice-wrong{border-color:#c44a30;background:#f7dcd4fa;color:#7a2c1c;animation:shake-wrong .4s ease-out}.choice-correct:before{background:#2a7a42;color:#fff}.choice-correct-reveal:before{background:#2a7a42;color:#fff}.choice-wrong:before{background:#b8432a;color:#fff}.answer-feedback{margin:0;font-weight:700}.answer-correct{color:#275439}.answer-wrong{color:#8a3621}.session-feedback{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1.25rem;animation:fade-up .18s ease-out both}.session-feedback-right{background:#b8ebc4d6;color:#1f5a35;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.session-feedback-title{margin:0;font-weight:800;font-size:clamp(2.2rem,8vw,4.8rem);line-height:1;color:#114c2b;text-shadow:0 10px 28px rgba(17,76,43,.18)}.session-feedback-screen{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:1.25rem;background:#ab8fd657;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade-up .22s ease-out both;cursor:pointer}.session-feedback-panel{width:min(860px,calc(100vw - 2rem));display:grid;gap:1.2rem;padding:clamp(1.5rem,5vw,2.8rem);border-radius:34px;border:1px solid rgba(115,79,163,.22);background:radial-gradient(circle at top right,rgba(255,255,255,.52),transparent 32%),linear-gradient(180deg,#f7effffa,#ede4fbf5);color:#4d2f6b;box-shadow:0 28px 60px #563a7638}.session-feedback-definition,.session-feedback-word{margin:0}.session-feedback-word{font-size:clamp(2.6rem,8vw,4.4rem);line-height:1;color:#40245d}.session-feedback-definition{font-size:clamp(1.7rem,5vw,3rem);line-height:1.18;font-weight:700;color:#31184d}.session-feedback-example-list{display:grid;gap:.8rem}.session-feedback-example{margin:0;padding:1rem 1.1rem;border-radius:22px;background:#ffffff8f;border:1px solid rgba(115,79,163,.12);color:#4b3563;line-height:1.55}.empty-state{margin:0;color:var(--ink-soft);text-align:center;padding:2rem 1rem;font-style:italic;animation:pulse-breathe 2s ease-in-out infinite}.auth-shell{width:min(1120px,calc(100vw - 2rem));margin:0 auto;min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;align-items:center}.auth-shell .hero-panel{animation:fade-up .5s ease-out both}.auth-shell .auth-panel{animation:fade-up .5s .15s ease-out both}.hero-panel,.auth-panel,.config-card{padding:1.5rem;border-radius:28px;background:#fffbf2e6;border:1px solid rgba(77,62,42,.12);box-shadow:0 18px 50px #382c1c1a}.hero-panel p{max-width:36rem}.config-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.loading-panel{text-align:center;padding:2rem;animation:pulse-breathe 1.5s ease-in-out infinite}.loading-panel p{font-size:1.1rem;color:var(--ink-soft)}.session-complete{position:relative;overflow:hidden;animation:summary-enter .5s ease-out both}.session-complete:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(229,191,86,.15) 0%,transparent 60%);animation:celebration-pulse 1.5s ease-out both;pointer-events:none}.session-complete .panel-chip{font-size:1.6rem;padding:.5rem 1.2rem;background:linear-gradient(135deg,#e5bf56,#c7871a);color:#fff;box-shadow:0 8px 20px #c7871a4d}.session-complete .panel-chip:before{display:none}.session-complete .summary-text{font-size:1.15rem;line-height:1.6}@media(max-width:960px){.workspace-grid,.auth-shell,.deck-library-list,.job-status-strip,.child-admin-row,.advanced-admin-grid,.field-grid,.prompt-helper-controls{grid-template-columns:1fr}.shell-header{flex-direction:column}}@media(max-width:600px){.app-main{padding:.75rem 0 2rem}.shell-header{padding:1rem;border-radius:20px}.panel{padding:1rem;border-radius:18px}.choice-grid{grid-template-columns:1fr;gap:.5rem}.child-session-live{min-height:calc(100vh - 7.5rem);gap:.8rem}.session-feedback{padding:1rem}.choice-button{min-height:88px;font-size:1rem;padding:.65rem .8rem .65rem 2.6rem}.choice-button:before{width:24px;height:24px;font-size:.75rem;left:.6rem}.word-card h2{font-size:clamp(2.3rem,11vw,3.1rem)}.word-image{width:min(220px,100%);max-height:22vh}.session-feedback-word{font-size:clamp(2.1rem,11vw,3rem)}.session-feedback-definition{font-size:clamp(1.45rem,6.5vw,2.25rem)}.metric-row{grid-template-columns:1fr}.metric-card p{font-size:1.6rem}.assignment-admin-row{flex-direction:column;align-items:stretch}.assignment-admin-button{width:100%}.session-complete .panel-chip{font-size:1.3rem}.hero-panel h1{font-size:1.5rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes drift-bg{0%{transform:translate(0)}to{transform:translate(5%,5%)}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes stripe-march{to{background-position:32px 0,0 0}}@keyframes shimmer{0%{transform:translate(-100%)}50%,to{transform:translate(100%)}}@keyframes underline-grow{0%{width:0;opacity:0}to{width:60px;opacity:1}}@keyframes card-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pop-correct{0%{transform:scale(1)}40%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes shake-wrong{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes celebration-pulse{0%{transform:scale(0);opacity:1}to{transform:scale(1);opacity:0}}@keyframes summary-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse-breathe{0%,to{opacity:1}50%{opacity:.45}}@keyframes dot-pulse{0%,to{box-shadow:0 0 4px #2d8a4a80}50%{box-shadow:0 0 10px #2d8a4acc}}
