:root{color-scheme:light;font-family:system-ui,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,Segoe UI,sans-serif;background:#eef2f7;color:#111827}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}body{overflow:hidden;overscroll-behavior:none;font-family:system-ui,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,Segoe UI,sans-serif}body.drawing-on-canvas{overflow:hidden;user-select:none;-webkit-user-select:none}button,select{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.loading-screen,.login-screen,.error-screen{min-height:100vh;min-height:100svh;min-height:100dvh;width:100%;display:grid;place-items:center;background:#111827;overflow:auto}.error-screen section{width:min(92vw,520px);padding:24px;border-radius:5px;background:#fff;box-shadow:0 20px 70px #0000003d}.error-screen strong{display:block;font-size:1.1rem;margin-bottom:8px}.error-screen p{margin:0 0 16px;color:#b91c1c;line-height:1.55;word-break:break-word}.error-screen button{min-height:40px;padding:0 14px;border-radius:5px;background:#111827;color:#fff;font-weight:900}.login-art{width:min(100%,1080px);min-height:100vh;min-height:100svh;min-height:100dvh;position:relative;display:grid;place-items:center;padding:28px;background:linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:42px 42px}.login-panel{width:min(92vw,520px);position:relative;z-index:1;display:grid;justify-items:center;gap:14px;color:#fff;text-align:center;padding:30px;border:1px solid rgba(255,255,255,.2);background:#111827d1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:5px;box-shadow:0 24px 80px #00000052}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:5px;background:#12b981;color:#06251d}.brand-mark.large{width:58px;height:58px;margin:0}.login-panel h1{margin:0;width:100%;font-size:clamp(1.85rem,4vw,2.7rem);line-height:1;letter-spacing:0;white-space:nowrap;overflow:hidden}.login-panel p{margin:0;color:#d1d5db;line-height:1.4;font-size:.95rem}.login-role-confirm{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:18px}.login-role-label{margin:0;color:#d1d5db;font-size:.92rem}.back-button{background:transparent;color:#9ca3af;font-size:.82rem;padding:4px 8px;border-radius:5px}.back-button:hover{color:#e5e7eb}.google-button{width:auto;min-width:170px;margin:0 auto;height:42px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:5px;background:#fff;color:#111827;font-weight:950;padding:0 20px;font-size:1rem}.manager-login-panel{width:min(92vw,460px)}.manager-login-panel h1{font-size:clamp(1.8rem,3.2vw,2.35rem);line-height:1.08}.manager-google-button{min-width:168px;height:38px;min-height:38px;padding:0 18px;font-size:.9rem}.login-panel .manager-warning{width:100%;margin:0;color:#facc15;padding:0;font-size:.95rem;font-weight:900;line-height:1.45;word-break:keep-all}.google-button svg{width:14px;height:14px}.onboarding-panel{width:min(92vw,680px);color:#fff;padding:28px;border:1px solid rgba(255,255,255,.2);border-radius:5px;background:#111827c7;box-shadow:0 24px 80px #00000052}.onboarding-panel h1,.onboarding-panel p{margin:0;text-align:center}.onboarding-panel h1{font-size:2rem}.onboarding-panel p{margin-top:8px;color:#d1d5db}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;margin:2px 0 0}.role-grid button{min-height:108px;display:grid;gap:7px;align-content:center;text-align:left;padding:16px;border:1px solid rgba(255,255,255,.18);border-radius:5px;background:#ffffff12;color:#fff}.role-grid button:hover{border-color:#5eead4cc;background:#14b8a629}.role-grid button.selected{border-color:#5eead4;background:#14b8a633;box-shadow:0 0 0 3px #14b8a629}.role-grid strong{font-size:1rem;line-height:1.1}.role-grid span,.grade-picker small{color:#cbd5e1;line-height:1.4;font-size:.8rem}.grade-picker{display:grid;gap:7px;margin-bottom:14px}.grade-picker span{font-weight:900}.grade-picker select{height:38px;border:1px solid #cbd5e1;border-radius:5px;padding:0 10px;font-weight:900}.onboarding-submit{width:100%;min-height:42px;border-radius:5px;background:#14b8a6;color:#042f2e;font-weight:950}.app-shell{width:100%;height:100vh;display:grid;grid-template-rows:auto minmax(190px,30vh) minmax(0,1fr);gap:10px;padding:10px;overflow:hidden;background:linear-gradient(180deg,#ffffffdb,#eef2f7f5),repeating-linear-gradient(90deg,transparent 0 42px,rgba(17,24,39,.03) 42px 43px)}.admin-shell,.parent-shell{grid-template-rows:auto minmax(0,1fr)}.admin-layout,.parent-layout{min-height:0;display:grid;gap:12px;overflow:hidden}.admin-layout{grid-template-columns:180px minmax(0,1fr)}.parent-layout{grid-template-columns:minmax(0,1fr) 300px}.admin-panel{min-height:0;overflow:auto;padding:10px;border:1px solid #d8dee8;border-radius:5px;background:#ffffffeb;box-shadow:0 16px 42px #0f172a14}.admin-sidebar{min-height:0;display:grid;align-content:start;gap:8px;padding:10px;border:1px solid #d8dee8;border-radius:5px;background:#fffffff0;box-shadow:0 16px 42px #0f172a14}.admin-sidebar button{min-height:40px;display:flex;align-items:center;gap:8px;border-radius:5px;background:#f1f5f9;color:#334155;padding:0 12px;font-size:.86rem;font-weight:950;white-space:nowrap}.admin-sidebar button.active{background:#111827;color:#fff}.admin-dashboard{min-height:0;overflow:auto;padding:12px;border:1px solid #d8dee8;border-radius:5px;background:#fffffff0;box-shadow:0 16px 42px #0f172a14}.admin-dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:nowrap}.admin-dashboard-head .section-title{width:auto;flex:0 0 auto;margin-bottom:0;padding-bottom:0;border-bottom:none}.admin-dashboard-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.admin-dashboard-actions select,.admin-dashboard-actions button,.admin-dashboard-actions a,.admin-search-box input{height:34px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#111827;padding:0 10px;font-size:.78rem;font-weight:900}.admin-dashboard-actions select{min-width:150px}.admin-dashboard-actions button,.admin-dashboard-actions a{display:inline-flex;align-items:center;justify-content:center;gap:5px;text-decoration:none}.problem-admin-actions{flex:1}.problem-admin-actions .admin-search-box{min-width:320px}.admin-dashboard-actions a.disabled{pointer-events:none;opacity:.45}.admin-search-box{min-width:240px;position:relative}.admin-search-box svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#64748b}.admin-search-box input{width:100%;padding-left:30px}.admin-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.admin-stat-card{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafc}.admin-stat-card span{color:#64748b;font-size:.78rem;font-weight:900}.admin-stat-card strong{color:#111827;font-size:1.28rem;font-weight:950}.admin-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-chart-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}.learning-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-report-actions button,.learning-report-actions a{min-width:108px;white-space:nowrap;word-break:keep-all}.admin-chart-card,.admin-records-panel{border:1px solid #e2e8f0;border-radius:5px;background:#fff;padding:12px}.admin-chart-card{height:240px;overflow:hidden}.admin-chart-card h3,.admin-records-panel h3{margin:0 0 10px;color:#111827;font-size:.9rem;font-weight:850;letter-spacing:0}.admin-chart-card p,.admin-records-panel p{margin:0;color:#94a3b8;font-size:.8rem}.admin-bar-list{display:grid;gap:8px;max-height:186px;overflow:auto}.admin-bar-row{display:grid;grid-template-columns:minmax(110px,.9fr) minmax(120px,1.5fr) 42px;align-items:center;gap:8px}.admin-bar-row span{min-width:0;overflow:hidden;color:#475569;font-size:.76rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.admin-bar-row b{color:#111827;font-size:.78rem;text-align:right}.admin-bar-track{height:12px;overflow:hidden;border-radius:999px;background:#e2e8f0}.admin-bar-track i{display:block;height:100%;border-radius:inherit;background:#14b8a6}.admin-chart-card.blue .admin-bar-track i{background:#38bdf8}.admin-chart-card.amber .admin-bar-track i{background:#f59e0b}.admin-chart-card.slate .admin-bar-track i{background:#64748b}.admin-donut-layout{height:188px;display:grid;grid-template-rows:120px minmax(0,1fr);justify-items:center;align-items:center;gap:8px}.admin-donut{width:118px;height:118px;display:grid;place-items:center;border-radius:50%;box-shadow:inset 0 0 0 1px #0f172a14}.admin-donut>div{width:72px;height:72px;display:grid;place-items:center;align-content:center;border-radius:50%;background:#fff;box-shadow:0 8px 24px #0f172a1f}.admin-donut strong{color:#111827;font-size:1.35rem;line-height:1;font-weight:950}.admin-donut span{color:#64748b;font-size:.72rem;font-weight:900}.admin-donut-legend{width:100%;display:flex;justify-content:center;align-content:flex-start;flex-wrap:wrap;gap:6px 10px;max-height:52px;overflow:auto}.admin-donut-legend div{display:inline-grid;grid-template-columns:8px auto auto;align-items:center;gap:5px;color:#334155;font-size:.7rem;font-weight:900}.admin-donut-legend i{width:8px;height:8px;border-radius:50%}.admin-donut-legend span{max-width:84px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-donut-legend b{color:#111827}.admin-radar-layout{height:188px;display:grid;grid-template-columns:164px minmax(0,1fr);align-items:center;gap:14px}.admin-radar-layout svg{width:164px;height:164px}.radar-grid{fill:none;stroke:#e2e8f0;stroke-width:1}.radar-axis{stroke:#e2e8f0;stroke-width:1}.radar-area{fill-opacity:.22;stroke-width:2.5}.radar-point{stroke:#fff;stroke-width:1.5}.admin-radar-legend{max-height:158px;display:grid;gap:6px;overflow:auto}.admin-radar-legend div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;font-size:.76rem;font-weight:900}.admin-radar-legend span{min-width:0;overflow:hidden;color:#475569;text-overflow:ellipsis;white-space:nowrap}.admin-radar-legend b{color:#111827}.admin-wide-chart{margin-top:10px}.admin-column-chart{height:170px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:10px}.admin-column{min-width:0;display:grid;grid-template-rows:1fr auto auto;align-items:end;gap:4px;text-align:center}.admin-column-track{height:98px;display:flex;align-items:flex-end;border-radius:5px;background:#f1f5f9;overflow:hidden}.admin-column-track i{width:100%;display:block;border-radius:5px 5px 0 0;background:linear-gradient(180deg,#14b8a6,#0f766e)}.admin-column b{color:#111827;font-size:.78rem}.admin-column span{color:#64748b;font-size:.68rem;font-weight:800}.admin-records-panel{margin-top:10px}.admin-activity-table .col-child{width:auto}.admin-activity-table{table-layout:auto;width:max-content;min-width:0}.admin-activity-table th,.admin-activity-table td,.admin-activity-table .col-child,.admin-activity-table .col-date,.admin-activity-table .col-category,.admin-activity-table .col-answer,.admin-activity-table .col-status,.admin-activity-table .col-help{width:auto}.admin-activity-table .col-problem{min-width:360px}.problem-admin-table-wrap{margin-top:10px;max-height:calc(100vh - 270px)}.problem-admin-note{margin:8px 0 0;color:#64748b;font-size:.74rem;font-weight:800}.problem-admin-table{table-layout:auto;min-width:1500px}.problem-admin-table th,.problem-admin-table td{height:auto;vertical-align:top;white-space:normal;font-size:7.33px}.problem-admin-table .col-category{min-width:78px;width:78px;max-width:78px}.problem-admin-table .col-status{min-width:70px}.problem-admin-table .col-problem-no{min-width:42px;width:42px;max-width:42px;text-align:center}.problem-admin-table .col-difficulty{min-width:54px;width:54px;max-width:54px;text-align:center}.problem-admin-table .col-answer{min-width:120px}.problem-admin-table .col-problem{min-width:260px}.problem-cell-input{width:100%;min-height:54px;resize:vertical;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#111827;padding:2px 4px;font-size:7.33px;font-weight:750;line-height:1.35}.problem-cell-input.answer,.problem-cell-input.small{min-height:0;height:32px;resize:none;text-align:center}.problem-save-button{height:32px;min-width:56px;border-radius:5px;background:#111827;color:#fff;font-size:10px;font-weight:900}.problem-save-button:disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed}.admin-layout>.activity-panel,.parent-layout>.parent-insight,.parent-layout>.activity-panel{min-height:0;overflow:auto;margin-top:0;padding:10px;border:1px solid #d8dee8;border-radius:5px;background:#ffffffeb;box-shadow:0 16px 42px #0f172a14}.admin-panel>.activity-panel,.admin-panel>.member-manager{margin-top:0;padding-top:0;border-top:0}.warning-bar{width:100%;margin-bottom:10px;padding:10px 12px;border:1px solid #fde68a;border-radius:5px;background:#fffbeb;color:#92400e;font-weight:800;line-height:1.45}.deploy-refresh-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:grid;place-items:center;padding:18px;background:#0f172ab8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:all}.deploy-refresh-card{width:min(360px,100%);display:grid;justify-items:center;gap:8px;padding:22px 18px;border:1px solid rgba(255,255,255,.12);border-radius:5px;background:#0f172a;color:#e5edf8;box-shadow:0 24px 80px #0f172a66;text-align:center}.deploy-refresh-card strong{font-size:1rem;font-weight:950}.deploy-refresh-card span{color:#cbd5e1;font-size:.82rem;line-height:1.45}.topbar,.dashboard-strip,.workspace,.source-band{width:100%}.topbar{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:#111827;color:#fff;border-radius:5px}.brand-block,.topbar-actions,.user-pill,.stat-pill,.section-title,.tool-row,.save-row,.tablet-note{display:flex;align-items:center}.brand-block{gap:12px;min-width:0}.brand-block strong{display:block;font-size:1rem}.brand-block span{display:block;color:#9ca3af;font-size:.83rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-actions{gap:6px;flex-shrink:1;min-width:0}.topbar-actions .icon-button{width:auto;height:38px;display:inline-flex;align-items:center;gap:5px;padding:0 10px}.user-pill,.stat-pill{gap:8px;height:38px;padding:0 10px;border:1px solid rgba(255,255,255,.14);border-radius:5px;background:#ffffff14;font-weight:800;font-size:.875rem}button.stat-pill{cursor:pointer;color:#fff}button.stat-pill:hover{background:#ffffff24}.user-pill img{width:24px;height:24px;border-radius:50%}.icon-button{width:38px;height:38px;display:grid;place-items:center;border-radius:5px;background:#ffffff1a;color:#fff}.topbar-menu-label{display:inline;font-size:.85rem;font-weight:700;white-space:nowrap}.ranking-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:center;padding:18px;background:#0f172a9e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ranking-modal{width:80vw;height:80vh;max-width:820px;max-height:820px;min-width:min(320px,94vw);min-height:min(420px,80vh);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border-radius:6px;border:1px solid rgba(15,23,42,.12);background:#fff;box-shadow:0 28px 80px #0f172a57}.ranking-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e2e8f0}.ranking-modal-body{min-height:0;overflow:auto;padding:14px}.ranking-modal-body .leader-panel{height:100%;padding:0;border:0;box-shadow:none;overflow:visible}.ranking-modal-body .leader-panel>.section-title{display:none}.modal-wrong-note{height:100%;padding:0;border:0;box-shadow:none;background:transparent;align-content:start}.modal-wrong-note .wrong-note-head{padding:10px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.modal-wrong-note .wrong-note-list{gap:8px}.modal-wrong-note .wrong-note-list button{grid-template-columns:minmax(90px,.28fr) minmax(0,1fr) auto;padding:10px 12px;background:#fff}.modal-wrong-note>p{padding:18px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.wrong-pill span{min-width:1.15em;text-align:center}.modal-close-button{width:34px;height:34px;display:grid;place-items:center;border:1px solid #cbd5e1;border-radius:5px;background:#f8fafc;color:#0f172a}.login-guide-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:18px;background:#0f172a9e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-guide-modal{width:min(94vw,860px);max-height:min(92vh,760px);overflow:auto;display:grid;gap:14px;padding:18px;border-radius:6px;background:#fff;color:#111827;border:1px solid rgba(15,23,42,.12);box-shadow:0 28px 80px #0f172a57}.login-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.login-guide-head span{display:block;margin-bottom:3px;color:#0f766e;font-size:.78rem;font-weight:950}.login-guide-head h2{margin:0;color:#111827;font-size:clamp(1.35rem,2.4vw,2.1rem);line-height:1.05}.login-guide-head button{width:34px;height:34px;flex-shrink:0;border-radius:5px;background:#f1f5f9;color:#334155;font-weight:950}.login-guide-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.login-guide-step{min-width:0;display:grid;gap:9px;padding:10px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.login-guide-picture{width:100%;aspect-ratio:16 / 10;display:block;border-radius:6px;border:1px solid rgba(15,23,42,.08)}.login-guide-step h3{margin:0 0 4px;color:#111827;font-size:1rem;line-height:1.18}.login-guide-step p{margin:0;color:#475569;font-size:.86rem;font-weight:750;line-height:1.45;word-break:keep-all}.login-guide-check{display:inline-flex;align-items:center;gap:8px;width:fit-content;color:#334155;font-size:.88rem;font-weight:850}.login-guide-check input{width:16px;height:16px;accent-color:#0f766e}.login-guide-start{min-height:42px;border-radius:5px;background:#0f766e;color:#fff;font-size:1rem;font-weight:950}.dashboard-strip{position:relative;z-index:0;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-height:0;overflow:hidden}.skill-panel,.leader-panel,.notebook-panel,.guide-panel,.source-band{border:1px solid rgba(15,23,42,.1);border-radius:5px;background:#fff;box-shadow:0 1px 2px #0f172a0a,0 4px 12px #0f172a0f,0 24px 48px #0f172a14}.skill-panel,.leader-panel,.source-band{padding:12px}.skill-panel{min-height:0;display:flex;flex-direction:column;overflow:hidden;contain:paint}.section-title{gap:8px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #f1f5f9;width:100%}.section-action-button{margin-left:auto;flex-shrink:0;min-height:28px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 9px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#0f172a;font-size:.76rem;font-weight:900;white-space:nowrap}.section-action-button:disabled{cursor:not-allowed;opacity:.45}.skill-panel .section-title{justify-content:space-between}.guide-collapse-toggle{display:none}.section-title-label{display:flex;align-items:center;gap:8px;min-width:0}.section-title h2{margin:0;font-size:1.05rem;font-weight:800;color:#1e293b;letter-spacing:-.01em}.mobile-skill-toggle{display:none}.pc-skill-toggle{display:flex;align-items:center;gap:4px;padding:3px 8px;font-size:.75rem;font-weight:700;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:5px;margin-left:auto;cursor:pointer;transition:background .12s,color .12s}.pc-skill-toggle:hover{background:#e2e8f0;color:#334155}.skill-panel.pc-collapsed .skill-board{display:none}.skill-panel.pc-collapsed{min-height:0}.mobile-solve-toggle{display:none}.solve-workspace{min-height:0;flex:1;display:flex;flex-direction:column}@keyframes shake{0%{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-3px)}90%{transform:translate(3px)}to{transform:translate(0)}}.answer-section.shaking{animation:shake .5s ease}@keyframes skill-pulse{0%,to{box-shadow:0 0 0 2px #38bdf880,0 0 24px #38bdf88c,0 0 48px #0ea5e940,inset 0 0 10px #38bdf81f,0 4px 16px #0009}50%{box-shadow:0 0 0 3px #38bdf859,0 0 36px #38bdf8bf,0 0 64px #0ea5e966,inset 0 0 16px #38bdf82e,0 4px 16px #0009}}@keyframes skill-complete-shine{0%{background-position:-200% center}to{background-position:200% center}}.skill-board{--skill-node-height: 44px;--skill-link-height: 8px;--skill-node-font-size: .9rem;--skill-icon-font-size: 1.06rem;width:100%;flex:1;min-height:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;align-items:stretch;padding:8px;border-radius:5px;overflow:hidden;background:radial-gradient(ellipse at 15% 30%,rgba(99,102,241,.07) 0%,transparent 55%),radial-gradient(ellipse at 85% 70%,rgba(245,158,11,.07) 0%,transparent 55%),repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0 1px,transparent 1px 100%),#0a0f1e}.skill-stage{display:flex;flex-direction:column;gap:4px;height:100%;min-width:0;overflow:hidden}.skill-stage-header{height:22px;display:grid;place-items:center;border-radius:5px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:#64748b;font-weight:900;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.skill-stage-list{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden}.skill-node-wrap{display:flex;flex-direction:column;align-items:center;width:100%;min-width:0}.skill-link{width:2px;height:var(--skill-link-height);background:linear-gradient(to bottom,#506482b3,#28375066);position:relative;flex-shrink:0}.skill-link:after{content:"";position:absolute;bottom:-3px;left:50%;transform:translate(-50%);border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid rgba(80,100,130,.65)}.skill-node{position:relative;width:100%;min-height:var(--skill-node-height);height:var(--skill-node-height);display:flex;flex-direction:row;align-items:center;gap:4px;padding:3px;border:1.5px solid #3a4e6a;border-radius:5px;background:linear-gradient(135deg,#1e2d42,#111d30);color:#6b8aaa;box-shadow:inset 0 1px #ffffff0d,0 2px 6px #00000073;cursor:not-allowed;transition:transform .12s,box-shadow .12s,border-color .12s}.skill-node.locked{border-color:#3a4a60;background:linear-gradient(135deg,#1e2d42,#141e2e);color:#6b8aaa;opacity:1}.skill-node.pending{border-color:#c07c20;color:#f5a623;cursor:pointer;background:linear-gradient(135deg,#1e1608,#0d1320);box-shadow:inset 0 1px #f5a62314,0 0 10px #c07c2040,0 2px 8px #00000080}.skill-node.pending:hover{transform:translate(2px);box-shadow:0 0 16px #f5a62373,0 2px 10px #00000080}.skill-node.completed{border-color:#22c55e;color:#ecfdf5;cursor:pointer;background:linear-gradient(135deg,#22c55ef2,#0d9488eb);box-shadow:inset 0 1px #ffffff3d,0 0 0 1px #bbf7d040,0 0 16px #22c55e59,0 2px 8px #00000073}.skill-node.completed:hover{transform:translate(2px);box-shadow:0 0 14px #2dd4a059,0 2px 10px #00000080}.skill-node.selected{border:1.5px solid rgba(56,189,248,.3)!important;color:#fff!important;background:linear-gradient(135deg,#f59e0b,#d97706)!important;animation:skill-pulse 2s ease-in-out infinite;cursor:pointer;z-index:2}.skill-node.selected strong{color:#fff!important;font-weight:900}.skill-node.selected .skill-icon{filter:drop-shadow(0 0 5px #38bdf8) brightness(1.5)}.skill-node.selected small{color:#93c5fd!important}.skill-node.selected em{color:#38bdf8!important;text-shadow:0 0 6px #38bdf8}.skill-icon{font-size:var(--skill-icon-font-size);line-height:1;font-family:Courier New,monospace;font-weight:900;color:inherit;filter:drop-shadow(0 0 4px currentColor);flex-shrink:0;width:2rem;max-width:2rem;overflow:hidden;text-overflow:clip;text-align:center;white-space:nowrap}.skill-node strong{flex:1;font-size:var(--skill-node-font-size);line-height:1.08;color:inherit;font-weight:700;text-align:left;min-width:0;word-break:keep-all;white-space:normal}.skill-node em{flex-shrink:0;font-style:normal;font-size:.5rem;color:#38bdf8;line-height:1}.skill-node em.done{min-width:28px;padding:2px 5px;border-radius:999px;background:#ffffffeb;color:#047857;font-size:.48rem;font-weight:950;text-align:center}.skill-node small{flex-shrink:0;color:inherit;font-size:.5rem;font-weight:700;opacity:.55;line-height:1}@media(min-width:901px){.skill-stage{gap:5px}.skill-node{padding:4px 5px}.skill-node em,.skill-node small{font-size:.65rem}}.skill-board-compact .skill-node{gap:2px;padding:1px 3px}.skill-board-compact .skill-icon{width:1.25rem;max-width:1.25rem}@media(max-width:900px){.skill-board{--skill-node-font-size: .75rem;--skill-icon-font-size: .85rem;grid-template-columns:repeat(6,minmax(82px,1fr));overflow-x:auto}.skill-node{gap:2px;padding:2px 3px}.skill-node strong{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.08;letter-spacing:0}.skill-node em,.skill-node small{font-size:.42rem;letter-spacing:0}.skill-node em.done{min-width:20px;padding:1px 3px;font-size:.4rem}.skill-icon{width:1rem;max-width:1rem}}.s-m1 .skill-stage-header{color:#22d3ee;border-color:#22d3ee40;background:#22d3ee12}.s-m1 .skill-node{border-color:#1a6070;color:#7dd8ea;background:linear-gradient(135deg,#0d2a35,#081520)}.s-m1 .skill-node.locked{border-color:#164e5e;color:#5aaabb}.s-m1 .skill-link{background:linear-gradient(to bottom,#22d3ee80,#22d3ee1a)}.s-m1 .skill-link:after{border-top-color:#22d3ee80}.s-m2 .skill-stage-header{color:#a78bfa;border-color:#a78bfa40;background:#a78bfa12}.s-m2 .skill-node{border-color:#4c2a80;color:#b899e8;background:linear-gradient(135deg,#1c1035,#0e0820)}.s-m2 .skill-node.locked{border-color:#3a1f60;color:#8868be}.s-m2 .skill-link{background:linear-gradient(to bottom,#a78bfa80,#a78bfa1a)}.s-m2 .skill-link:after{border-top-color:#a78bfa80}.s-m3 .skill-stage-header{color:#fb923c;border-color:#fb923c40;background:#fb923c12}.s-m3 .skill-node{border-color:#923518;color:#e07840;background:linear-gradient(135deg,#2a1008,#180a04)}.s-m3 .skill-node.locked{border-color:#6e2810;color:#b05530}.s-m3 .skill-link{background:linear-gradient(to bottom,#fb923c80,#fb923c1a)}.s-m3 .skill-link:after{border-top-color:#fb923c80}.s-h1 .skill-stage-header{color:#fb7185;border-color:#fb718540;background:#fb718512}.s-h1 .skill-node{border-color:#9d1040;color:#e06080;background:linear-gradient(135deg,#2a0818,#180410)}.s-h1 .skill-node.locked{border-color:#720c30;color:#b04060}.s-h1 .skill-link{background:linear-gradient(to bottom,#fb718580,#fb71851a)}.s-h1 .skill-link:after{border-top-color:#fb718580}.s-h2 .skill-stage-header{color:#34d399;border-color:#34d39940;background:#34d39912}.s-h2 .skill-node{border-color:#0a7050;color:#45c890;background:linear-gradient(135deg,#041e14,#021008)}.s-h2 .skill-node.locked{border-color:#075040;color:#2a9870}.s-h2 .skill-link{background:linear-gradient(to bottom,#34d39980,#34d3991a)}.s-h2 .skill-link:after{border-top-color:#34d39980}.s-h3 .skill-stage-header{color:#fbbf24;border-color:#fbbf2440;background:#fbbf2412}.s-h3 .skill-node{border-color:#a85010;color:#d89030;background:linear-gradient(135deg,#2a1a04,#180e02)}.s-h3 .skill-node.locked{border-color:#7a3a0c;color:#a86820}.s-h3 .skill-link{background:linear-gradient(to bottom,#fbbf2480,#fbbf241a)}.s-h3 .skill-link:after{border-top-color:#fbbf2480}.skill-node.pending{border-color:#c07c20!important;color:#f5a623!important;background:linear-gradient(135deg,#1e1608,#0d1320)!important}.skill-node.completed{border-color:#22c55e!important;color:#ecfdf5!important;background:linear-gradient(135deg,#16a34a,#0f766e)!important}.my-stats-card{margin-bottom:8px;padding:7px 14px;border-radius:5px;background:linear-gradient(135deg,#0f172a,#1e293b);border:1px solid rgba(255,255,255,.06);box-shadow:0 4px 16px #0000001f;position:relative;overflow:hidden}.my-stats-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#38bdf8,#818cf8)}.my-rank-card{position:relative;z-index:1;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.12)}.my-rank-card strong{display:block;overflow:hidden;color:#fff;font-size:.9rem;font-weight:950;text-overflow:ellipsis;white-space:nowrap}.my-rank-card small{color:#94a3b8;font-size:.66rem;font-weight:850}.my-rank-card b{color:#5eead4;font-size:1.08rem;font-weight:950}.my-rank-card.compact-rank{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:6px;padding-bottom:6px}.my-rank-card.compact-rank span{color:#cbd5e1;font-size:.82rem;font-weight:900}.my-rank-card.compact-rank b{font-size:1.28rem}.leader-divider{display:flex;align-items:center;gap:8px;margin:10px 0 8px;color:#64748b;font-size:.72rem;font-weight:950}.leader-divider:before,.leader-divider:after{content:"";height:1px;flex:1;background:#e2e8f0}.my-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:6px}.my-stat{text-align:center}.my-stat span{display:block;font-size:1.1rem;font-weight:900;color:#f1f5f9;letter-spacing:-.02em}.my-stat label{display:block;font-size:.65rem;color:#fff;margin-top:1px;font-weight:600}.xp-bar-wrap{display:flex;align-items:center;gap:8px}.xp-bar-track{flex:1;height:5px;border-radius:5px;background:#ffffff14;overflow:hidden}.xp-bar-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#38bdf8,#818cf8);transition:width .6s ease}.xp-bar-wrap small{color:#64748b;font-size:.65rem;white-space:nowrap;font-weight:600}.skill-progress-bar{margin:6px 0 4px;padding:8px 10px;border-radius:5px;background:#f8fafc;border:1px solid #f1f5f9}.skill-progress-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.skill-progress-meta span{display:flex;align-items:center;gap:4px;font-size:.72rem;color:#94a3b8;font-weight:600}.skill-progress-meta strong{font-size:.72rem;color:#475569;font-weight:700}.skill-progress-track{height:5px;border-radius:5px;background:#e2e8f0;overflow:hidden}.skill-progress-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#0d9488,#38bdf8);transition:width .5s ease}.problem-card-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}.problem-card-meta span:first-child{color:#fbbf24;font-size:.82rem;letter-spacing:.05em;text-transform:none}.problem-xp{font-size:.72rem!important;font-weight:700!important;color:#34d399!important;background:#34d3991f;padding:2px 8px;border-radius:5px;letter-spacing:0!important}.leader-list{list-style:none;display:grid;gap:6px;margin:0;padding:0}.leader-list li{display:flex;gap:8px;align-items:center;min-width:0;padding:5px 10px;border-radius:5px;background:#f8fafc;border:1px solid #f1f5f9;transition:background .12s,box-shadow .12s}.leader-list li:nth-child(1){background:linear-gradient(135deg,#fef9ee,#fffbeb);border-color:#fde68a}.leader-list li:nth-child(2){background:linear-gradient(135deg,#f8fafb,#f1f5f9);border-color:#e2e8f0}.leader-list li:nth-child(3){background:linear-gradient(135deg,#fff8f5,#fff4ee);border-color:#fed7aa}.leader-list .empty-row{display:block;color:#94a3b8;font-weight:700;font-size:.82rem}.leader-list li.me{background:linear-gradient(135deg,#f8fafc,#f0fdfa)!important;border-color:#ccfbf1!important;box-shadow:none}.leader-avatar{width:28px;height:28px;border-radius:50%;overflow:hidden;background:#e2e8f0;display:grid;place-items:center;color:#94a3b8;flex-shrink:0}.leader-avatar img{width:100%;height:100%;object-fit:cover}.rank-num{width:22px;flex-shrink:0;display:grid;place-items:center;color:#94a3b8;font-size:.78rem;font-weight:900}li:nth-child(1) .rank-num{color:#d97706}li:nth-child(2) .rank-num{color:#64748b}li:nth-child(3) .rank-num{color:#b45309}.leader-list li>div:not(.leader-avatar){flex:1;min-width:0}.leader-list li>b{margin-left:auto;flex-shrink:0}.leader-list strong,.leader-list small{display:block}.leader-list strong{font-size:.82rem;line-height:1.2;word-break:keep-all;overflow-wrap:anywhere}.leader-list small{color:#64748b;font-size:.72rem;line-height:1.2}.leader-list b{color:#0f766e;font-size:.88rem}.leader-panel{min-height:0;overflow:auto}.parent-report-bar{display:flex;justify-content:flex-end;align-items:center;min-height:0;padding:0 2px}.parent-report-bar button,.parent-report-modal-actions button{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;color:#0f172a;padding:0 12px;font-size:.78rem;font-weight:900;cursor:pointer}.parent-report-bar button:disabled{cursor:not-allowed;opacity:.45}.parent-report-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:18px;background:#0f172a6b}.parent-report-modal{width:min(460px,100%);max-height:min(82vh,720px);display:flex;flex-direction:column;border:1px solid #dbe3ef;border-radius:6px;background:#fff;box-shadow:0 24px 70px #0f172a38;padding:14px}.parent-report-modal-head{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #e2e8f0}.parent-report-modal-head h2{margin:0;color:#0f172a;font-size:1rem;line-height:1.15}.parent-report-modal-head p{margin:4px 0 0;color:#64748b;font-size:.78rem;font-weight:800}.icon-button.light{width:30px;height:30px;border-color:#cbd5e1;background:#f8fafc;color:#0f172a;font-size:1.1rem}.parent-report-modal-head-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.prm-btn-save{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 12px;border:none;border-radius:5px;background:#0f766e;color:#fff;font-size:.8rem;font-weight:800;cursor:pointer;white-space:nowrap}.prm-btn-close{display:inline-flex;align-items:center;height:32px;padding:0 12px;border:1px solid #cbd5e1;border-radius:5px;background:#f8fafc;color:#374151;font-size:.8rem;font-weight:700;cursor:pointer;white-space:nowrap}.parent-report-modal-list{display:grid;gap:6px;margin:12px 0;overflow:auto;flex:1;min-height:0;padding-right:2px}.parent-report-preview-card{display:grid;gap:8px;padding:9px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafc}.parent-report-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.parent-report-preview-head>div{min-width:0;display:grid;gap:2px}.parent-report-preview-head b{flex:0 0 auto;color:#0f766e;font-size:.86rem;line-height:1.15}.parent-report-preview-card strong{color:#0f172a;font-size:.86rem;line-height:1.15}.parent-report-preview-card span{color:#64748b;font-size:.74rem;font-weight:800}.parent-report-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.parent-report-preview-grid div{min-width:0;display:grid;gap:2px;padding:6px;border:1px solid #e2e8f0;border-radius:4px;background:#fff}.parent-report-preview-grid strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parent-report-preview-note{display:flex;flex-wrap:wrap;gap:5px}.parent-report-preview-note span{padding:3px 6px;border-radius:999px;background:#eaf4f3;color:#0f766e;font-size:.7rem;font-weight:900}.parent-report-modal-actions{display:flex;justify-content:flex-end;gap:8px}.parent-report-modal-actions .primary{border-color:#0f766e;background:#0f766e;color:#fff}.member-manager,.parent-insight,.activity-panel{margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0}.member-manager h3,.parent-insight h3,.activity-panel h3{margin:0 0 8px;font-size:.92rem}.member-row,.activity-row{display:grid;gap:6px;padding:8px;border-radius:5px;background:#f8fafc;margin-bottom:7px}.member-table-wrap{width:100%;overflow:auto;border:1px solid #e2e8f0;border-radius:5px;background:#fff}.member-table{width:100%;min-width:920px;border-collapse:collapse;table-layout:fixed;font-size:12px}.member-table th,.member-table td{padding:8px;border-bottom:1px solid #e2e8f0;text-align:center;vertical-align:middle;font-size:12px}.member-table th{position:sticky;top:0;z-index:1;background:#f8fafc;color:#475569;font-size:12px;font-weight:950}.member-table th:nth-child(1),.member-table td:nth-child(1){width:240px}.member-table th:nth-child(2),.member-table td:nth-child(2){width:130px}.member-table th:nth-child(3),.member-table td:nth-child(3){width:92px}.member-table th:nth-child(4),.member-table td:nth-child(4),.member-table th:nth-child(5),.member-table td:nth-child(5){width:86px}.member-table th:nth-child(6),.member-table td:nth-child(6){width:130px}.member-table th:nth-child(7),.member-table td:nth-child(7){width:140px}.member-table th:nth-child(8),.member-table td:nth-child(8){width:260px}.member-table strong,.member-table small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-table small{color:#64748b;font-size:12px}.muted{color:#64748b;font-size:.74rem}.member-table .muted{font-size:12px}.member-table input,.member-table select{width:100%;height:32px;min-width:0;border:1px solid #cbd5e1;border-radius:5px;background:#fff;padding:0 8px;font-size:12px;font-weight:800;text-align:center;text-align-last:center}.member-reset-button{border:none;border-radius:4px;background:#c0392b;color:#fff;cursor:pointer;padding:2px 6px;font-size:12px;font-weight:900}.member-child-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;text-align:left}.member-child-list span{min-width:0;display:block;padding:3px 3.2px;border:1px solid #dbe3ef;border-radius:4px;background:#f8fafc;color:#0f172a;font-size:11px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.print-report-root{display:none}@media(max-width:1180px){.member-table-wrap{overflow-x:hidden}.member-table{min-width:0;table-layout:fixed;font-size:10px;letter-spacing:0}.member-table th,.member-table td{padding:5px 4px;font-size:10px;letter-spacing:0}.member-table th{font-size:10px}.member-table th:nth-child(1),.member-table td:nth-child(1){width:27%}.member-table th:nth-child(2),.member-table td:nth-child(2){width:13%}.member-table th:nth-child(3),.member-table td:nth-child(3){width:9%}.member-table th:nth-child(4),.member-table td:nth-child(4),.member-table th:nth-child(5),.member-table td:nth-child(5){width:8%}.member-table th:nth-child(6),.member-table td:nth-child(6){width:8%}.member-table th:nth-child(7),.member-table td:nth-child(7){width:13%}.member-table th:nth-child(8),.member-table td:nth-child(8){width:27%}.member-table strong,.member-table small,.member-table .muted{font-size:10px;letter-spacing:0}.member-table input,.member-table select{height:26px;padding:0 4px;font-size:10px;letter-spacing:0}.member-reset-button{padding:2px 4px;font-size:10px;letter-spacing:0}.member-child-list{grid-template-columns:1fr;gap:3px}.member-child-list span{padding:2px 3px;font-size:9px;letter-spacing:0}}@media(max-width:720px){.member-manager{margin-top:8px;padding-top:8px}.member-table-wrap{overflow:visible;border:0;background:transparent}.member-table{min-width:0;border-collapse:separate;border-spacing:0 8px;table-layout:auto;font-size:12px}.member-table thead{display:none}.member-table tbody,.member-table tr,.member-table td{display:block;width:100%!important}.member-table tr{padding:8px;border:1px solid #dbe3ef;border-radius:6px;background:#fff}.member-table td{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:6px;padding:4px 0;border:0;text-align:left;font-size:12px}.member-table td:before{content:attr(data-label);color:#64748b;font-size:11px;font-weight:950;line-height:1.1}.member-table td:first-child{grid-template-columns:minmax(0,1fr);padding-bottom:7px;margin-bottom:3px;border-bottom:1px solid #e2e8f0}.member-table td:first-child:before{display:none}.member-table strong,.member-table small,.member-table .muted{font-size:12px;line-height:1.25}.member-table input,.member-table select{height:30px;padding:0 7px;font-size:12px;text-align:left;text-align-last:auto}.member-reset-button{width:100%;min-height:30px;padding:4px 8px;font-size:12px}.member-child-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.member-child-list span{padding:4px 6px;font-size:11px}.problem-admin-actions{grid-template-columns:1fr}.problem-admin-actions select,.problem-admin-actions .admin-search-box{width:100%}.problem-admin-table-wrap{max-height:none;overflow:visible;border:0;background:transparent}.problem-admin-table{min-width:0;width:100%;border-collapse:separate;border-spacing:0 8px;table-layout:auto}.problem-admin-table thead{display:none}.problem-admin-table tbody,.problem-admin-table tr,.problem-admin-table td{display:block;width:100%!important;min-width:0!important;max-width:none!important}.problem-admin-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px;border:1px solid #dbe3ef;border-radius:6px;background:#fff}.problem-admin-table td{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:5px;height:auto;padding:0;border:0;text-align:left;white-space:normal;overflow:visible;text-overflow:clip;font-size:12px}.problem-admin-table td:before{content:attr(data-label);color:#64748b;font-size:11px;font-weight:950}.problem-admin-table .col-category,.problem-admin-table .col-problem{grid-column:1 / -1}.problem-admin-table .col-category{padding-bottom:5px;border-bottom:1px solid #e2e8f0;font-weight:900}.problem-admin-table .col-category:before{display:none}.problem-admin-table .col-problem{grid-template-columns:1fr;gap:3px}.problem-admin-table .col-problem:before{font-size:11px}.problem-cell-input{min-height:68px;padding:6px 7px;font-size:12px;line-height:1.35}.problem-cell-input.answer,.problem-cell-input.small{height:30px;min-height:30px;padding:0 7px;font-size:12px}.problem-save-button{width:100%;height:30px;min-width:0;font-size:12px}}.member-row strong,.member-row small,.child-card strong,.child-card span,.child-card small,.activity-row strong,.activity-row span,.activity-row small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-row small,.activity-row span,.activity-row small,.parent-insight p,.activity-panel p{color:#64748b;font-size:.75rem}.child-list{display:grid;gap:10px}.child-card{border:1px solid #e2e8f0;border-radius:5px;background:#fff;padding:14px;box-shadow:0 2px 8px #0f172a0f}.child-card-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.child-avatar{width:36px;height:36px;border-radius:50%;background:#e0f2fe;color:#0284c7;display:grid;place-items:center;flex-shrink:0}.child-name-block{display:grid;gap:2px;min-width:0;flex:1}.child-name-block strong{font-size:.95rem;font-weight:800}.child-rank{font-size:.75rem;color:#64748b;white-space:nowrap}.child-position{display:grid;justify-items:end;gap:1px;margin-left:auto;white-space:nowrap}.child-position strong{color:#0f766e;font-size:.94rem;font-weight:900}.child-position small{color:#94a3b8;font-size:.64rem;font-weight:800}.child-rank-context{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px 46px}.child-rank-context span{display:inline-flex;align-items:center;min-height:22px;padding:2px 7px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;color:#475569;font-size:.68rem;font-weight:800}.child-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px}.child-stat{display:flex;align-items:center;justify-content:space-between;gap:6px;background:#f8fafc;border-radius:5px;padding:7px 9px;border:1px solid #e2e8f0;min-width:0}.child-stat span{font-size:1rem;font-weight:900;color:#111827;line-height:1.2;white-space:nowrap}.child-stat label{font-size:.67rem;color:#94a3b8;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.child-stat.positive span{color:#0f766e}.child-stat.negative span{color:#b45309}.parent-dashboard{display:grid;gap:8px;margin:8px 0 6px}.parent-dashboard-section{border:1px solid #e2e8f0;border-radius:5px;background:#fff;padding:8px}.parent-dashboard-section h3{margin:0 0 6px;font-size:.78rem;color:#334155}.parent-metric-grid,.parent-signal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.parent-signal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.parent-metric,.parent-signal{display:grid;gap:2px;min-width:0;padding:7px;border-radius:5px;background:#f8fafc;border:1px solid #edf2f7}.parent-metric span,.parent-signal span{color:#64748b;font-size:.68rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parent-metric strong,.parent-signal strong{color:#111827;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parent-signal small{color:#94a3b8;font-size:.66rem}.parent-signal.alert{background:#fff7ed;border-color:#fed7aa}.child-gap{display:flex;align-items:center;gap:5px;font-size:.76rem;color:#64748b;padding:4px 0 0}.child-gap.top{color:#ca8a04;font-weight:800}.child-empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 16px;color:#94a3b8;text-align:center}.child-empty-state p{margin:0;font-size:.84rem;line-height:1.6;color:#94a3b8}.child-register{margin-bottom:14px}.child-search-wrap{position:relative;margin-bottom:8px}.child-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.child-register input{width:100%;min-height:38px;border:1px solid #e2e8f0;border-radius:5px;padding:0 10px 0 32px;font-size:.88rem;background:#f8fafc;color:#111827;transition:border-color .15s}.child-register input:focus{outline:none;border-color:#38bdf8;background:#fff}.child-candidates{display:flex;flex-wrap:wrap;gap:6px}.child-candidates button{display:flex;align-items:center;gap:6px;padding:5px 10px 5px 7px;border-radius:5px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-size:.82rem;font-weight:700;transition:background .15s}.child-candidates button:hover{background:#dbeafe}.candidate-avatar{width:20px;height:20px;border-radius:50%;background:#bfdbfe;display:grid;place-items:center;color:#1d4ed8}.child-candidates em{font-style:normal;font-size:.74rem;color:#3b82f6;background:#dbeafe;border-radius:5px;padding:0 4px}.child-empty{font-size:.8rem;color:#94a3b8;margin:4px 0 0}.child-activity-log{display:grid;gap:4px}.activity-table-wrap{width:100%;overflow:auto;border:1px solid #e2e8f0;border-radius:5px;background:#fff;margin-bottom:10px}.activity-table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:860px}.activity-table th,.activity-table td{height:34px;padding:7px 8px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:middle;font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-table th{background:#f8fafc;color:#475569;font-weight:950}.activity-table .col-child{width:120px;text-align:center}.activity-table .col-date{width:110px;text-align:center}.activity-table .col-category{width:170px;text-align:center}.activity-table .col-problem{text-align:center}.activity-table .col-answer{width:110px;text-align:center}.activity-table .col-status{width:92px;text-align:center}.activity-table .col-help{width:120px;text-align:center}.activity-table tr:last-child td{border-bottom:0}.activity-table strong{font-weight:950}.activity-table .positive{color:#0f766e}.activity-table .wrong-status{color:#b45309}.activity-subtitle{margin:8px 0 4px;font-size:.75rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.activity-row small.positive{color:#0f766e}.wrong-list{display:grid;gap:6px;margin-bottom:12px}.wrong-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) auto;gap:8px;align-items:center;padding:8px;border-radius:5px;background:#fff7ed;border:1px solid #fed7aa}.wrong-row strong,.wrong-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wrong-row span{color:#9a3412;font-size:.74rem}.wrong-row b{color:#c2410c;font-size:.82rem}.workspace{position:relative;z-index:1;display:grid;gap:14px;min-height:0;align-items:stretch;background:#f8fbff}.student-study-summary{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px}.daily-goal-card,.wrong-note-card,.weekly-summary-card,.problem-quality-panel{padding:10px 12px;border:1px solid rgba(15,23,42,.1);border-radius:5px;background:#fff;box-shadow:0 1px 2px #0f172a0a,0 8px 24px #0f172a0d}.daily-goal-card{display:grid;align-content:center;gap:8px}.daily-goal-card span,.wrong-note-card span,.weekly-summary-grid span{display:block;color:#64748b;font-size:.72rem;font-weight:850}.daily-goal-card strong,.wrong-note-card strong,.weekly-summary-grid strong{display:block;margin-top:2px;color:#0f172a;font-size:1rem;font-weight:950}.daily-goal-track{height:7px;overflow:hidden;border-radius:5px;background:#e2e8f0}.daily-goal-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0d9488,#38bdf8)}.wrong-note-card{display:grid;gap:8px}.wrong-note-card p,.weekly-summary-card p,.problem-quality-panel p{margin:0;color:#64748b;font-size:.78rem;font-weight:700}.wrong-note-list,.problem-quality-list{display:grid;gap:6px}.wrong-note-list button,.problem-quality-list button{min-width:0;display:grid;grid-template-columns:minmax(80px,.5fr) minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 9px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafc;text-align:left}.wrong-note-list strong,.problem-quality-list em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0f172a;font-size:.78rem}.wrong-note-list em,.problem-quality-list span{font-style:normal;color:#c2410c;font-size:.72rem;font-weight:900}.weekly-summary-card{display:grid;gap:8px}.weekly-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.weekly-summary-grid>div{padding:8px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafc}.problem-quality-panel{margin-bottom:10px}.problem-quality-panel>strong{display:block;margin-bottom:6px;color:#0f172a;font-size:.92rem;font-weight:950}.problem-quality-panel.has-issues{border-color:#fed7aa;background:#fff7ed}.problem-quality-list button{background:#fff}.problem-quality-list b{color:#475569;font-size:.74rem}.resize-handle{align-self:stretch;width:8px;min-width:8px;padding:0;border-radius:8px;background:transparent;cursor:col-resize;touch-action:none;position:relative}.resize-handle span{display:block;width:3px;height:calc(100% - 16px);margin:0 auto;border-radius:999px;background:linear-gradient(180deg,#94a3b82e,#94a3b885,#94a3b82e);box-shadow:0 0 0 1px #ffffff8c}.resize-handle:after{content:"";position:absolute;left:50%;top:50%;width:6px;height:36px;transform:translate(-50%,-50%);border-radius:999px;background:radial-gradient(circle,rgba(96,165,250,.48) 0 1px,transparent 2px) center 8px / 7px 8px repeat-y;opacity:.5;transition:opacity .16s ease}.resize-handle:hover,.resizing-workspace .resize-handle{background:#2563eb0f}.resize-handle:hover span,.resizing-workspace .resize-handle span{background:linear-gradient(180deg,#2563eb2e,#2563eb9e,#2563eb2e)}.resize-handle:hover:after,.resizing-workspace .resize-handle:after{opacity:1}.resizing-workspace{cursor:col-resize;-webkit-user-select:none;user-select:none}.guide-panel{min-height:0;padding:14px}.notebook-panel{min-height:0;padding:5px 7px 7px}.notebook-panel{display:flex;flex-direction:column}.problem-header{display:flex;justify-content:space-between;gap:8px;align-items:center;padding-bottom:10px;border-bottom:1px solid #f1f5f9;margin-bottom:8px}.problem-header span{display:block;color:#64748b;font-size:.7rem;font-weight:800}.problem-header h2{margin:2px 0 0;font-size:1.05rem;font-weight:800}.problem-header select{max-width:min(42vw,260px);height:32px;padding:0 10px;border:1.5px solid #e2e8f0;border-radius:5px;background:#fff;font-weight:700;font-size:.85rem;color:#374151;transition:border-color .15s}.problem-header select:focus{outline:none;border-color:#38bdf8}.problem-header select option.solved-problem-option{color:#9ca3af}.problem-card{margin:8px 0;padding:14px 16px;border-radius:5px;background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;border:1px solid rgba(255,255,255,.06);box-shadow:0 4px 20px #00000026,inset 0 1px #ffffff0d;position:relative;overflow:hidden}.problem-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#38bdf8,#818cf8,#fb923c)}.problem-card span{color:#7dd3fc;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.problem-card p{margin:8px 0 0;font-size:clamp(.95rem,2vw,1.3rem);line-height:1.5;font-weight:500}.problem-assets{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}.problem-assets figure{margin:0;overflow:hidden;border-radius:5px;background:#fff;color:#111827}.problem-assets img{display:block;width:100%;max-height:220px;object-fit:contain}.problem-assets figcaption{padding:7px 9px;color:#475569;font-size:.8rem;font-weight:800}.tool-row{gap:8px;margin-bottom:8px;flex-wrap:wrap}.tool-row button,.guide-actions button,.save-row button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:26px;padding:0 9px;border-radius:5px;background:#f1f5f9;border:1px solid #e2e8f0;color:#334155;font-weight:700;font-size:.84rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .06s,border-color .06s,box-shadow .06s,color .06s}.tool-row button:active{transform:scale(.95)}.tool-row button:hover:not(:disabled),.guide-actions button:hover:not(:disabled),.save-row button:hover:not(:disabled){background:#e8edf5;border-color:#cbd5e1;box-shadow:0 2px 8px #0f172a14}.tool-row button.active{background:linear-gradient(135deg,#0d9488,#0f766e);border-color:transparent;color:#fff;box-shadow:0 2px 10px #0d948859}.canvas-wrap{position:relative;width:100%;flex:1;min-height:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:5px;background:#fafbfc;background-size:28px 28px;box-shadow:inset 0 2px 8px #0f172a0a;touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none}.canvas-wrap.show-grid{background:linear-gradient(rgba(148,163,184,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.18) 1px,transparent 1px),#fafbfc;background-size:28px 28px}.canvas-wrap canvas{position:relative;z-index:1;display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none}.eraser-cursor{position:absolute;z-index:2;left:0;top:0;width:28px;height:28px;border:2px solid #ef4444;border-radius:50%;background:#ef444414;pointer-events:none;opacity:0;transition:opacity 80ms ease}.guide-panel{display:flex;flex-direction:column;gap:4px;overflow:hidden}.guide-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.guide-actions button{min-width:0;white-space:nowrap;flex-direction:row;justify-content:flex-start;gap:2px;padding:3px 3.2px;min-height:0;border-radius:5px;font-size:.68rem;font-weight:700}.guide-actions button>svg{flex-shrink:0}.guide-actions button>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.guide-actions small{margin:0 0 0 auto;color:#dc2626;font-size:.56rem;font-weight:500;text-align:right}.guide-actions small.free{color:#047857;font-weight:700}.guide-output{min-height:0;flex:1;overflow:auto;padding:clamp(8px,.8vw,11px);border-radius:5px;background:#f8fafc;border:1px solid #e8ecf3;line-height:1.36;font-size:clamp(.7rem,.32rem + .38vw,.86rem);color:#374151;box-shadow:inset 0 2px 6px #0f172a08}.guide-output p,.guide-output ul,.guide-output ol,.guide-output pre,.guide-output blockquote{margin:0 0 8px}.guide-output h1,.guide-output h2,.guide-output h3,.guide-output h4{margin:14px 0 6px;line-height:1.15;color:#111827;font-size:clamp(.76rem,.36rem + .38vw,.92rem)}.guide-output h3:first-child,.guide-output h4:first-child{margin-top:0}.guide-output ul,.guide-output ol{padding-left:16px}.guide-output li{margin:0 0 5px}.guide-output h3{padding-bottom:4px;border-bottom:1px solid #e2e8f0}.guide-output h4{color:#334155;font-weight:900;padding-top:8px;border-top:1px solid #e2e8f0}.guide-output h4:first-child{padding-top:0;border-top:0}.guide-output code{padding:1px 4px;border-radius:5px;background:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em}.guide-output pre{overflow:auto;padding:8px;border-radius:5px;background:#111827;color:#fff}.guide-output pre code{padding:0;background:transparent;color:inherit}.guide-output strong{font-weight:900}.answer-box{padding:12px;border-radius:5px;background:#fffbeb;border:1px solid #fde68a}.answer-box span,.answer-box small{display:block;color:#92400e}.answer-box strong{display:block;margin:4px 0;font-size:1.2rem}.answer-section{display:flex;flex-direction:column;gap:4px;padding:4px 8px;border-radius:5px;background:#f8fafc;border:1.5px solid #e2e8f0;transition:background .2s,border-color .2s,box-shadow .2s}.answer-section.correct{border-color:#34d399;background:linear-gradient(135deg,#f0fdf9,#ecfdf5);box-shadow:0 0 0 3px #34d3991a}.answer-section.wrong{border-color:#f87171;background:linear-gradient(135deg,#fff5f5,#fff1f2);box-shadow:0 0 0 3px #f871711a}.answer-input-row{display:flex;gap:8px}.answer-input-row input{flex:1;height:29px;border:1.5px solid #e2e8f0;border-radius:5px;padding:0 10px;font-weight:700;font-size:.95rem;background:#fff;min-width:0;color:#111827;transition:border-color .15s,box-shadow .15s}.answer-input-row input:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf81f}.answer-confirm-btn{height:29px;padding:0 12px;border-radius:5px;background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;font-weight:800;font-size:.9rem;white-space:nowrap;border:1px solid rgba(255,255,255,.06);box-shadow:0 2px 8px #0003;transition:transform .1s,box-shadow .1s}.answer-confirm-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #00000040}.answer-confirm-btn:active:not(:disabled){transform:translateY(0)}.answer-msg{display:block;font-size:.82rem;font-weight:700;padding:2px 0}.canvas-with-choices{display:flex;flex-direction:row;gap:8px;flex:1;min-height:0;overflow:hidden}.canvas-with-choices .canvas-wrap{flex:1;min-width:0}.mc-choices{display:flex;flex-direction:column;gap:6px;padding:4px 6px;width:160px;min-width:140px;overflow-y:auto;align-self:flex-start}.mc-choice{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:5px;font-size:.88rem;color:#334155;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.mc-choice:hover:not(:disabled){border-color:#6366f1;background:#eef2ff}.mc-choice.selected{border-color:#6366f1;background:#eef2ff}.mc-choice.correct{border-color:#22c55e;background:#f0fdf4;color:#166534}.mc-choice.wrong{border-color:#ef4444;background:#fef2f2;color:#991b1b}.mc-choice:disabled{cursor:default}.mc-num{font-size:1rem;font-weight:700;min-width:1.2em;color:#6366f1}.answer-msg.correct{color:#059669}.answer-msg.wrong{color:#dc2626}.save-row{display:flex;gap:8px;margin-top:2px}.save-row button{flex:1}.save-row .primary{background:linear-gradient(135deg,#1e293b,#0f172a);border-color:transparent;color:#fff;box-shadow:0 2px 10px #0003}.save-row .primary:hover:not(:disabled){box-shadow:0 4px 18px #0000004d;transform:translateY(-1px)}.save-row .primary:disabled{background:#94a3b8;border-color:transparent;box-shadow:none}.tablet-note{gap:8px;color:#64748b;font-size:.88rem}.source-band{display:none;margin-top:14px}.source-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.source-card{min-height:138px;padding:12px;border-radius:5px;background:#f8fafc;border:1px solid #e2e8f0}.source-card strong,.source-card span{display:block}.source-card span{width:fit-content;margin:8px 0;padding:3px 8px;border-radius:5px;background:#dbeafe;color:#1d4ed8;font-size:.74rem;font-weight:900}.source-card p{margin:0;color:#475569;line-height:1.5;font-size:.88rem}.spin{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1180px){.app-shell{grid-template-rows:auto minmax(160px,26vh) minmax(0,1fr);gap:8px;padding:8px}.dashboard-strip{grid-template-columns:minmax(0,1fr);gap:8px}.workspace{gap:8px;grid-template-columns:minmax(0,78%) 8px minmax(0,1fr)}.admin-layout{grid-template-columns:240px minmax(0,1fr);overflow:auto}.parent-layout{grid-template-columns:minmax(0,1fr);overflow:auto}.parent-report-bar{padding:0}.parent-report-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-sidebar{padding:8px}.admin-chart-grid{grid-template-columns:1fr}.learning-chart-grid,.admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-donut-layout{grid-template-rows:112px minmax(0,1fr)}.admin-donut{width:110px;height:110px}.admin-donut>div{width:68px;height:68px}.admin-radar-layout{grid-template-columns:140px minmax(0,1fr)}.admin-radar-layout svg{width:140px;height:140px}.admin-layout>.activity-panel,.parent-layout>.activity-panel{grid-column:1 / -1}.topbar{min-height:42px;padding:5px 10px}.brand-block strong{font-size:.82rem}.brand-block span{font-size:.87rem}.user-pill,.stat-pill{height:30px;padding:0 8px;font-size:.75rem}.tool-row button,.save-row button{min-height:0;padding:1px 8px;font-size:.72rem;gap:4px}.leader-panel,.skill-panel,.notebook-panel,.guide-panel{padding:3px 3.2px}.leader-panel .section-title svg{width:14px;height:14px}.my-stats-card{margin-bottom:5px;padding:5px 8px}.my-rank-card{grid-template-columns:26px minmax(0,1fr) auto;gap:6px;margin-bottom:5px;padding-bottom:5px}.xp-bar-wrap{gap:5px}.xp-bar-wrap small{white-space:nowrap}.leader-divider{margin:6px 0 5px}.leader-list{gap:4px}.leader-list li{gap:5px;padding:4px 6px}.leader-avatar{width:22px;height:22px}.rank-num{width:16px}.rank-num svg{width:11px;height:11px}.section-title{margin-bottom:5px;padding-bottom:5px}.guide-actions{gap:6px}.guide-actions button,.save-row button{min-height:0;padding:3px 3.2px;font-size:.68rem}.tool-row button{min-height:0;padding:0 8px;font-size:.62rem;gap:3px}.source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){html{font-size:75%}.login-panel{backdrop-filter:none;-webkit-backdrop-filter:none}.login-panel p,.role-grid span,.grade-picker small{font-size:12px;line-height:1.45}.role-grid strong,.grade-picker span,.google-button,.onboarding-submit{font-size:12px}.app-shell{grid-template-rows:auto auto minmax(0,1fr);gap:6px;padding:6px}.dashboard-strip{grid-template-columns:minmax(0,1fr)!important;align-items:start;gap:6px}.leader-panel{padding:4px 6px!important}.leader-panel .section-title{margin-bottom:4px;padding-bottom:4px}.my-stats-card{padding:4px 6px;margin-bottom:4px}.my-rank-card{grid-template-columns:28px minmax(0,1fr) auto;gap:5px;margin-bottom:4px;padding-bottom:4px}.my-stats-row{gap:2px;margin-bottom:4px}.xp-bar-track{height:4px}.leader-divider{gap:5px;margin:4px 0}.leader-list{gap:3px}.leader-list li{gap:4px;padding:3px 5px;min-height:0}.leader-avatar{width:24px;height:24px}.leader-avatar svg{width:10px;height:10px}.rank-num{width:18px}.rank-num svg{width:9px;height:9px}.admin-sidebar{display:flex}.admin-sidebar button{flex:1;min-width:0;container-type:inline-size;justify-content:center;gap:3px;padding:0 4px;font-size:clamp(10px,18cqw,16px);white-space:nowrap}.admin-sidebar button svg{flex:0 0 auto;width:1em;height:1em}.admin-dashboard-head,.admin-dashboard-actions{align-items:stretch;flex-direction:column}.admin-dashboard-actions,.admin-search-box,.admin-dashboard-actions select,.admin-dashboard-actions button,.admin-dashboard-actions a{width:100%}.admin-dashboard-head:has(.learning-report-actions),.admin-dashboard-head:has(.problem-admin-actions){align-items:center;flex-direction:row;gap:6px}.admin-dashboard-head:has(.learning-report-actions) .section-title,.admin-dashboard-head:has(.problem-admin-actions) .section-title{flex:0 0 auto;min-width:0}.learning-report-actions{width:auto;flex:1 1 auto;min-width:0;flex-direction:row;align-items:center;justify-content:flex-end;gap:5px}.learning-report-actions select,.learning-report-actions button{width:auto;min-width:0}.learning-report-actions select{flex:0 1 50%;max-width:50%}.learning-report-actions button{flex:0 0 auto;padding:0 8px;white-space:nowrap}.learning-report-actions a{display:none}.problem-admin-actions{width:auto;flex:1 1 auto;min-width:0;flex-direction:row;align-items:center;justify-content:flex-end;gap:5px}.problem-admin-actions select,.problem-admin-actions .admin-search-box{width:auto;min-width:0}.problem-admin-actions select{flex:0 1 38%;max-width:38%}.problem-admin-actions .admin-search-box{flex:1 1 0}.admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skill-panel{overflow:hidden;overscroll-behavior:contain}.skill-board{overflow:hidden;height:100%;min-height:0}.notebook-panel,.guide-panel{padding:3px 4px!important}.problem-header{gap:6px;margin-bottom:4px}.problem-header h2{font-size:.95rem;margin:0}.problem-header span{font-size:.62rem}.problem-header select{height:30px;padding:0 8px;font-size:.75rem}.problem-card{margin:4px 0;padding:8px 10px}.problem-card p{font-size:.85rem;margin:4px 0 0;line-height:1.4}.problem-card-meta{margin-bottom:2px}.skill-progress-bar{margin:2px 0;padding:4px 8px}.skill-progress-meta{margin-bottom:3px}.skill-progress-track{height:4px}.tool-row{gap:4px;margin-bottom:4px}.save-row{gap:4px;margin-top:4px}.workspace{gap:6px;grid-template-columns:minmax(0,58%) 8px minmax(240px,1fr)!important}.admin-layout,.parent-layout{grid-template-columns:1fr!important;overflow:auto}.resize-handle{width:8px;min-width:8px}.canvas-wrap{height:48vh}.skill-board{overflow-x:auto;overflow-y:hidden}}@media(min-width:721px)and (max-width:1180px){html:has(.login-screen),body:has(.login-screen),#root:has(.login-screen),html:has(.parent-shell),body:has(.parent-shell),#root:has(.parent-shell){height:auto!important;min-height:100%!important;overflow-x:hidden;overflow-y:auto!important}.login-screen{height:auto;min-height:100vh;min-height:100svh;min-height:100dvh;overflow:visible}.app-shell:not(.parent-shell){height:100vh;height:100dvh;min-height:0;overflow:hidden;grid-template-rows:auto auto minmax(0,1fr)}.app-shell:not(.parent-shell) .workspace{min-height:0;overflow:hidden}.app-shell:not(.parent-shell) .notebook-panel,.app-shell:not(.parent-shell) .guide-panel{min-height:0;overflow-y:auto;overscroll-behavior:contain}.parent-shell{height:auto;min-height:100vh;overflow:visible}.parent-layout{display:flex;flex-direction:column;align-content:start;overflow:visible}.parent-layout>.leader-panel{order:1;flex:0 0 auto;width:100%;min-height:auto;overflow:visible}.parent-layout>.parent-insight{order:2;flex:0 0 auto;width:100%;min-height:auto;overflow:visible}}@media(min-width:721px)and (max-width:1024px){.topbar{flex-wrap:wrap;row-gap:6px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;row-gap:6px}.topbar-menu-label{display:none}}@media(max-width:720px){.topbar-menu-label{display:none}html,body,#root{width:100%;max-width:100%;height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}.login-screen{min-height:100svh;min-height:100dvh;width:100%;place-items:center;overflow:hidden}.login-art{width:100%;min-height:100svh;min-height:100dvh;padding:16px;place-items:center}.login-panel{width:min(100%,520px);max-width:calc(100vw - 32px);margin:0 auto;gap:12px;padding:22px 16px}.login-panel h1{font-size:clamp(1.65rem,8vw,2.15rem);line-height:1.06}.role-grid{gap:8px}.role-grid button{min-height:96px;padding:12px}.app-shell{width:100%;max-width:100vw;min-height:100vh;height:auto;display:flex;flex-direction:column;grid-template-rows:auto auto auto;gap:2px;overflow:visible;overflow-x:hidden;padding:8px;padding-bottom:max(32px,calc(env(safe-area-inset-bottom,0px) + 24px))}.topbar,.dashboard-strip,.workspace,.skill-panel,.notebook-panel,.guide-panel,.source-band{width:100%;max-width:100%;min-width:0}.login-guide-backdrop{padding:10px;align-items:center;justify-items:center;overflow:auto}.login-guide-modal{width:100%;max-height:none;gap:10px;padding:12px}.login-guide-steps{grid-template-columns:1fr;gap:8px}.login-guide-step{grid-template-columns:112px minmax(0,1fr);align-items:center;padding:8px}.login-guide-step h3{font-size:.92rem}.login-guide-step p{font-size:.78rem;line-height:1.35}.dashboard-strip{display:flex;flex-direction:column;width:100%!important;gap:2px}.student-study-summary{grid-template-columns:1fr;gap:6px}.daily-goal-card,.wrong-note-card,.weekly-summary-card,.problem-quality-panel{padding:8px}.wrong-note-list button,.problem-quality-list button{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px}.wrong-note-list button>span,.problem-quality-list button>span{grid-column:1 / -1}.weekly-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.dashboard-rank{display:none}.leader-panel{width:100%;max-height:none}.skill-panel{width:100%;padding-top:5px!important;padding-bottom:5px!important}.skill-panel.mobile-collapsed{padding-bottom:5px!important}.skill-panel.mobile-collapsed .section-title{margin-bottom:0;padding-bottom:0;border-bottom:0}.skill-panel.mobile-collapsed .skill-board{display:none!important}.pc-skill-toggle{display:none}.mobile-skill-toggle{width:48px;min-width:48px;min-height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;border:1px solid #cbd5e1;border-radius:5px;background:#f8fafc;color:#0f172a;font-size:.82rem;font-weight:900}.skill-panel:not(.mobile-collapsed) .skill-board{height:260px}.skill-board{gap:3px;padding:4px;overflow:hidden!important;overflow-x:hidden!important;overflow-y:hidden!important;grid-template-columns:repeat(6,minmax(0,1fr))}.skill-stage{gap:2px}.skill-stage-header{height:18px;font-size:.55rem;letter-spacing:0}.skill-node{gap:1px;padding:1px 2px;border-width:1px}.skill-node strong{font-size:.52rem!important;line-height:1.05;letter-spacing:0}.skill-icon{width:.8rem;max-width:.8rem;font-size:.58rem!important}.skill-node em,.skill-node small{font-size:.36rem!important;letter-spacing:0}.skill-node em.done{min-width:18px;padding:1px 2px;font-size:.34rem!important}.workspace{display:flex;flex-direction:column;gap:3px;grid-template-columns:none!important;overflow:visible}.notebook-panel,.guide-panel{overflow:visible}.notebook-panel{order:1}.guide-panel{order:2}.resize-handle{display:none}.topbar{flex-direction:column}.topbar{min-height:0;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px}.brand-block{flex:0 1 auto;gap:8px;max-width:142px;min-width:0}.brand-mark{width:34px;height:34px}.brand-block strong{font-size:.74rem;line-height:1.1;white-space:normal}.brand-block strong .brand-line2{display:block}.brand-block span{display:none}.topbar-actions{width:auto;flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:4px}.topbar-actions .stat-pill,.topbar-actions .user-pill,.topbar-actions .icon-button{height:28px;min-height:28px}.topbar-actions .icon-button{width:auto;display:inline-flex;align-items:center;gap:4px;padding:0 7px}.topbar-actions .stat-pill,.topbar-actions .user-pill{min-width:0;flex:0 0 auto;gap:3px;padding:0 5px;font-size:.62rem;white-space:nowrap}.topbar-actions .icon-button{width:auto;padding:0 8px}.topbar-actions .stat-pill svg,.topbar-actions .user-pill svg,.topbar-actions .icon-button svg{width:13px;height:13px}.topbar-actions .user-pill{max-width:92px}.topbar-actions .user-pill span{min-width:0;overflow:hidden;text-overflow:ellipsis}.topbar-actions .user-pill img{width:18px;height:18px}.problem-header select{width:100%}.problem-header{flex-direction:row;align-items:center;gap:5px;padding-bottom:2px;margin-bottom:2px}.problem-header>div:first-child{min-width:0;text-align:left}.problem-header span{font-size:.54rem;line-height:1.05;white-space:nowrap}.problem-header h2{font-size:.76rem;line-height:1.05;white-space:nowrap}.problem-header-actions{width:auto;flex:1;min-width:0;display:flex;gap:5px;align-items:center;justify-content:flex-end}.problem-header-actions select{flex:0 1 150px;max-width:150px;min-width:0}.mobile-solve-toggle{width:48px;min-width:48px;min-height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;border:1px solid #cbd5e1;border-radius:5px;background:#f8fafc;color:#0f172a;font-size:.82rem;font-weight:900;white-space:nowrap}.notebook-panel.mobile-solve-collapsed .solve-workspace{display:none}.parent-insight .activity-table-wrap{overflow-x:hidden}.parent-insight .activity-table{display:block;min-width:100%;border-collapse:separate;border-spacing:0}.parent-insight .activity-table thead{display:none}.parent-insight .activity-table tbody{display:grid;gap:6px;padding:6px}.parent-insight .activity-table tr{display:grid;gap:4px;padding:7px;border:1px solid #e2e8f0;border-radius:5px;background:#fff}.parent-insight .activity-table th,.parent-insight .activity-table td{width:100%!important;height:auto;min-width:0!important;display:grid;grid-template-columns:58px minmax(0,1fr);align-items:start;gap:6px;padding:0;border:0;font-size:.7rem;line-height:1.25;text-align:left!important;white-space:normal;overflow:visible;text-overflow:clip}.parent-insight .activity-table td:before{content:attr(data-label);color:#64748b;font-size:.62rem;font-weight:900}.parent-insight .activity-table .col-problem{word-break:keep-all}.user-pill,.stat-pill{flex:0 0 auto;justify-content:center}.brand-block span{white-space:normal}.problem-header select,.source-grid{width:100%;max-width:none;grid-template-columns:1fr}.guide-actions{width:100%;max-width:none;grid-template-columns:repeat(3,minmax(0,1fr))}.problem-header,.problem-card,.tool-row,.save-row{width:100%;max-width:100%;min-width:0}.canvas-wrap{width:100%;max-width:100%;min-width:0;min-height:135px;height:22vh;max-height:180px}.answer-section{margin-top:6px}.mc-choices{grid-template-columns:1fr;display:grid;gap:2px;padding:2px 0;width:84px;min-width:84px}.mc-choice{min-width:0;min-height:24px;justify-content:flex-start;gap:6px;padding:3px 5px;font-size:.92rem;line-height:1.05;text-align:left;word-break:keep-all}.mc-num{min-width:0;font-size:.92rem}.guide-panel{min-height:0;overflow:visible}.guide-collapse-toggle{width:48px;min-width:48px;min-height:26px;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;border:1px solid #cbd5e1;border-radius:5px;background:#f8fafc;color:#0f172a;font-size:.82rem;font-weight:900;white-space:nowrap}.guide-panel.guide-collapsed .guide-actions,.guide-panel.guide-collapsed .guide-output,.guide-panel.guide-collapsed .answer-box,.guide-panel.guide-collapsed .tablet-note{display:none}.guide-panel.guide-collapsed .section-title{margin-bottom:0;padding-bottom:0;border-bottom:none}.guide-actions{gap:6px}.guide-output{max-height:none;min-height:0;flex:0 0 auto;overflow:visible}.source-band{display:none}}@media print{@page{size:A4 portrait;margin:10mm}body>*:not(.print-report-root){display:none!important}html,body{margin:0!important;padding:0!important;background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-report-root{display:block!important;width:100%;color:#0f172a;background:#fff;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:10px}.print-student-report{page-break-after:always;break-after:page;display:flex;flex-direction:column;gap:7px;padding:0;height:277mm;box-sizing:border-box;overflow:hidden}.print-student-report:last-child{page-break-after:auto;break-after:auto}.print-report-head{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#0f172a;border-radius:6px;color:#fff}.print-head-brand{font-size:9px;font-weight:900;color:#38bdf8;letter-spacing:.04em;white-space:nowrap}.print-head-center{flex:1}.print-head-center h1{margin:0;font-size:16px;font-weight:900;color:#fff;line-height:1.2;letter-spacing:0}.print-head-center p{margin:2px 0 0;font-size:9px;color:#94a3b8;font-weight:600}.print-head-date{font-size:9px;color:#94a3b8;font-weight:700;white-space:nowrap}.print-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.print-metric{padding:7px 9px;border-radius:5px;border-left:3px solid #cbd5e1;background:#f8fafc}.print-metric.pm-blue{border-left-color:#3b82f6;background:#eff6ff}.print-metric.pm-green{border-left-color:#22c55e;background:#f0fdf4}.print-metric.pm-orange{border-left-color:#f59e0b;background:#fffbeb}.print-metric.pm-purple{border-left-color:#a855f7;background:#faf5ff}.print-metric span{display:block;font-size:8px;font-weight:800;color:#64748b}.print-metric strong{display:block;margin-top:2px;font-size:15px;font-weight:900;color:#0f172a;line-height:1.1}.print-metric.pm-blue strong{color:#1d4ed8}.print-metric.pm-green strong{color:#15803d}.print-metric.pm-orange strong{color:#b45309}.print-metric.pm-purple strong{color:#7e22ce}.print-metric small{display:block;margin-top:1px;font-size:7.5px;font-weight:700;color:#94a3b8}.print-charts-row{display:flex;gap:6px}.print-chart-box{flex:1;padding:7px 9px;border:1px solid #e2e8f0;border-radius:5px;background:#f8fafc}.print-chart-title{font-size:8px;font-weight:800;color:#475569;margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}.print-two-col{display:grid;grid-template-columns:1fr 1fr;gap:6px}.print-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.print-report-section{padding:7px 9px;border:1px solid #e2e8f0;border-radius:5px;break-inside:avoid}.print-risks-section{border-color:#fca5a5;background:#fff7f7}.print-report-section h2{margin:0 0 5px;font-size:10px;font-weight:800;color:#334155;line-height:1.1;border-bottom:1px solid #e2e8f0;padding-bottom:4px}.print-risks-section h2{color:#b91c1c;border-bottom-color:#fca5a5}.print-info-grid .print-metric{border-left-width:2px;padding:5px 7px}.print-activity-section table{width:100%;border-collapse:collapse;table-layout:fixed}.print-activity-section th,.print-activity-section td{padding:3px 5px;border:1px solid #e2e8f0;font-size:8px;line-height:1.3;text-align:left;vertical-align:top}.print-activity-section th{background:#1e293b;color:#e2e8f0;font-weight:800;font-size:8px}.print-activity-section tbody tr:nth-child(2n) td{background:#f8fafc}.print-activity-section th:nth-child(1),.print-activity-section td:nth-child(1){width:50px}.print-activity-section th:nth-child(2),.print-activity-section td:nth-child(2){width:80px}.print-activity-section th:nth-child(4),.print-activity-section td:nth-child(4){width:52px}}.exam-center{width:100%;margin-top:14px;padding:14px 16px;border:1px solid rgba(15,23,42,.1);border-radius:8px;background:#fff;box-shadow:0 1px 2px #0f172a0a,0 8px 24px #0f172a0f}.exam-center-hint{margin-left:auto;font-size:.72rem;font-weight:600;color:#64748b}.exam-grade-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.exam-grade-card{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.exam-grade-card.done{border-color:#86efac;background:#f0fdf4}.exam-grade-card h3{margin:0;font-size:.92rem;font-weight:800;color:#0f172a}.exam-grade-chips{display:flex;flex-direction:column;gap:6px}.exam-chip{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:6px;border:1px solid transparent;font-size:.78rem;font-weight:700;text-align:left}.exam-chip span{flex:0 0 auto}.exam-chip em{margin-left:auto;font-style:normal;font-size:.68rem;font-weight:800}.exam-chip.locked{background:#f1f5f9;border-color:#e2e8f0;color:#94a3b8;cursor:not-allowed}.exam-chip.available{background:#eef2ff;border-color:#c7d2fe;color:#4338ca;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.exam-chip.available:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4f46e52e}.exam-chip.passed{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.exam-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px;background:#0f172a9e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.exam-modal{width:min(640px,100%);max-height:92vh;display:flex;flex-direction:column;gap:14px;padding:18px 20px;border-radius:14px;background:#fff;box-shadow:0 24px 64px #0f172a4d}.exam-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.exam-modal-eyebrow{margin:0 0 2px;font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#6366f1;text-transform:uppercase}.exam-modal-head h2{margin:0;font-size:1.1rem;color:#0f172a}.exam-close{border:0;background:#f1f5f9;border-radius:8px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:#475569;cursor:pointer}.exam-progress{display:flex;flex-direction:column;gap:5px}.exam-progress-bar{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.exam-progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#22c55e);transition:width .2s ease}.exam-progress-text{font-size:.72rem;font-weight:700;color:#64748b}.exam-question{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.exam-q-num{margin:0;font-size:.74rem;font-weight:800;color:#6366f1}.exam-q-prompt{margin:0;font-size:1.02rem;line-height:1.55;color:#0f172a;white-space:pre-wrap}.exam-choices{display:flex;flex-direction:column;gap:8px}.exam-choice{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:10px;border:1.5px solid #e2e8f0;background:#f8fafc;font-size:.95rem;color:#0f172a;text-align:left;cursor:pointer;transition:border-color .1s ease,background .1s ease}.exam-choice:hover{border-color:#c7d2fe}.exam-choice.selected{border-color:#6366f1;background:#eef2ff;font-weight:700}.exam-choice-num{font-weight:800;color:#6366f1}.exam-input{width:100%;height:46px;padding:0 14px;border-radius:10px;border:1.5px solid #cbd5e1;font-size:1rem;color:#0f172a}.exam-input:focus{outline:none;border-color:#6366f1}.exam-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.exam-nav,.exam-submit{height:44px;padding:0 22px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;font-size:.92rem;font-weight:800;color:#334155;cursor:pointer}.exam-nav:disabled{opacity:.4;cursor:not-allowed}.exam-nav.primary{margin-left:auto;background:#4f46e5;border-color:#4f46e5;color:#fff}.exam-submit{margin-left:auto;background:#16a34a;border-color:#16a34a;color:#fff}.skill-acquired-backdrop,.exam-result-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:16px;background:#0f172aa8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:fadeIn .18s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.skill-acquired-modal{position:relative;width:min(380px,100%);padding:30px 26px 24px;border-radius:18px;text-align:center;background:linear-gradient(165deg,#1e293b,#0f172a);color:#fff;box-shadow:0 30px 70px #0206178c;overflow:hidden;animation:popIn .32s cubic-bezier(.18,.9,.32,1.4)}@keyframes popIn{0%{transform:scale(.82);opacity:0}to{transform:scale(1);opacity:1}}.skill-acquired-badge{width:84px;height:84px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#422006;background:radial-gradient(circle at 35% 30%,#fde68a,#f59e0b);box-shadow:0 0 0 8px #f59e0b2e,0 10px 30px #f59e0b66;animation:badgePulse 1.6s ease-in-out infinite}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.skill-acquired-eyebrow{margin:0 0 4px;font-size:.72rem;font-weight:800;letter-spacing:.22em;color:#fbbf24}.skill-acquired-modal h2{margin:0 0 10px;font-size:1.6rem;font-weight:900}.skill-acquired-name{margin:0;font-size:1.15rem;font-weight:800;color:#e2e8f0}.skill-acquired-meta{margin:4px 0 0;font-size:.82rem;color:#94a3b8}.skill-acquired-xp{margin:14px auto 0;display:inline-block;padding:6px 16px;border-radius:999px;font-size:.92rem;font-weight:800;color:#052e16;background:linear-gradient(90deg,#86efac,#22c55e)}.skill-acquired-actions{margin-top:20px;display:grid;gap:8px}.skill-acquired-btn{width:100%;height:46px;border:0;border-radius:12px;font-size:1rem;font-weight:800;color:#0f172a;background:#fff;cursor:pointer}.skill-acquired-btn.primary{background:linear-gradient(90deg,#86efac,#22c55e);color:#052e16}.skill-acquired-btn.exam{background:#eef2ff;color:#3730a3}.confetti-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.confetti{position:absolute;top:-12px;width:8px;height:12px;border-radius:1px;opacity:.9;animation:confettiFall 2.6s linear infinite}.confetti.c0{background:#f59e0b}.confetti.c1{background:#22c55e}.confetti.c2{background:#6366f1}.confetti.c3{background:#ec4899}.confetti.c4{background:#38bdf8}.confetti.c5{background:#fbbf24}@keyframes confettiFall{0%{transform:translateY(-12px) rotate(0);opacity:1}to{transform:translateY(440px) rotate(540deg);opacity:0}}.exam-result-modal{width:min(380px,100%);padding:28px 24px 22px;border-radius:16px;text-align:center;background:#fff;box-shadow:0 28px 64px #0f172a57;animation:popIn .28s cubic-bezier(.18,.9,.32,1.4)}.exam-result-icon{width:76px;height:76px;margin:0 auto 12px;border-radius:50%;display:flex;align-items:center;justify-content:center}.exam-result-modal.passed .exam-result-icon{color:#052e16;background:radial-gradient(circle at 35% 30%,#fde68a,#f59e0b)}.exam-result-modal.failed .exam-result-icon{color:#475569;background:#f1f5f9}.exam-result-eyebrow{margin:0 0 2px;font-size:.78rem;font-weight:700;color:#64748b}.exam-result-modal h2{margin:0 0 8px;font-size:1.5rem;font-weight:900;color:#0f172a}.exam-result-modal.passed h2{color:#047857}.exam-result-modal.failed h2{color:#b91c1c}.exam-result-score{margin:0;font-size:1.6rem;font-weight:900;color:#0f172a}.exam-result-score span{font-size:.92rem;font-weight:700;color:#64748b}.exam-result-bonus{margin:12px auto 0;display:inline-block;padding:6px 16px;border-radius:999px;font-size:.9rem;font-weight:800;color:#052e16;background:linear-gradient(90deg,#86efac,#22c55e)}.exam-result-note{margin:12px 0 0;font-size:.82rem;color:#64748b}.exam-result-actions{display:flex;gap:8px;margin-top:20px}.exam-result-retry,.exam-result-close{flex:1;height:46px;border-radius:12px;font-size:.96rem;font-weight:800;cursor:pointer}.exam-result-retry{border:1px solid #4f46e5;background:#4f46e5;color:#fff}.exam-result-close{border:1px solid #cbd5e1;background:#fff;color:#334155}@media(max-width:768px){.exam-grade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-center-hint{display:none}.exam-center{padding:10px 12px}}@media(max-width:720px){.learning-report-actions button,.learning-report-actions a{min-width:0;white-space:nowrap}.problem-admin-table-wrap{max-height:none!important;overflow:visible!important}.problem-admin-table{display:block;min-width:0!important;width:100%;border-collapse:separate;border-spacing:0}.problem-admin-table thead{display:none}.problem-admin-table tbody{display:grid;gap:8px}.problem-admin-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px;border:1px solid #dbe3ef;border-radius:6px;background:#fff}.problem-admin-table td{width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;display:grid;grid-template-columns:minmax(0,1fr);gap:3px;padding:0!important;border:0!important;text-align:left!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.problem-admin-table td:before{content:attr(data-label);min-width:0;color:#64748b;font-size:11px;font-weight:950;line-height:1.15;text-align:left}.problem-admin-table .col-category,.problem-admin-table .col-problem{grid-column:1 / -1}.problem-admin-table .col-category{padding-bottom:5px!important;border-bottom:1px solid #e2e8f0!important;color:#0f172a;font-size:12px;font-weight:950}.problem-admin-table .col-category:before{display:none}.problem-cell-input{width:100%;min-width:0;min-height:70px;padding:6px 7px;font-size:9.33px;line-height:1.35;text-align:left}.problem-cell-input.answer,.problem-cell-input.small{height:31px;min-height:31px;text-align:center}.problem-save-button{width:100%;height:31px}}:root{--surface: rgba(255, 255, 255, .94);--surface-strong: #ffffff;--surface-soft: #f8fafc;--surface-muted: #eef3f8;--line: #d8e1ec;--line-soft: #e8eef5;--ink: #101827;--ink-muted: #607089;--brand: #10b981;--brand-strong: #0f766e;--accent: #2563eb;--danger: #dc2626;--shadow-soft: 0 1px 2px rgba(15, 23, 42, .04), 0 10px 26px rgba(15, 23, 42, .08);--shadow-panel: 0 18px 46px rgba(15, 23, 42, .1)}body{background:linear-gradient(180deg,#f7f9fc,#edf2f8);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{letter-spacing:0}button,a,select,input,textarea{transition:border-color .16s ease,background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .12s ease}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:none;border-color:#2563eb9e!important;box-shadow:0 0 0 3px #2563eb24!important}.app-shell{gap:12px;padding:12px;background:radial-gradient(circle at 12% 0%,rgba(16,185,129,.08),transparent 30%),radial-gradient(circle at 92% 10%,rgba(37,99,235,.08),transparent 28%),linear-gradient(180deg,#f7f9fc,#edf2f8)}.topbar{min-height:64px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:linear-gradient(135deg,#121b2cfa,#0c1422fa);box-shadow:var(--shadow-panel)}.brand-mark{border-radius:8px;background:linear-gradient(135deg,#20d09b,#10b981);color:#052e24;box-shadow:inset 0 1px #ffffff47,0 10px 22px #10b98138}.brand-block strong{color:#fff;font-weight:950;letter-spacing:0}.brand-block span{color:#b9c4d3;font-weight:650}.user-pill,.stat-pill,.icon-button{border-color:#ffffff21;border-radius:8px;background:#ffffff14;box-shadow:inset 0 1px #ffffff14}button.stat-pill:hover,.icon-button:hover{background:#ffffff24;transform:translateY(-1px)}.skill-panel,.leader-panel,.notebook-panel,.guide-panel,.source-band,.admin-panel,.admin-sidebar,.admin-dashboard,.parent-layout>.parent-insight,.parent-layout>.activity-panel,.admin-layout>.activity-panel,.admin-chart-card,.admin-records-panel,.member-table-wrap,.activity-table-wrap,.problem-quality-panel,.exam-center,.student-summary-card,.parent-report-modal,.ranking-modal,.login-guide-modal{border-color:var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.skill-panel,.leader-panel,.notebook-panel,.guide-panel,.source-band,.admin-panel,.admin-dashboard,.parent-layout>.parent-insight,.parent-layout>.activity-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.section-title{margin-bottom:10px;padding-bottom:9px;border-bottom-color:var(--line-soft)}.section-title h2{color:var(--ink);font-size:1rem;font-weight:950}.section-title svg,.admin-sidebar button svg,.admin-dashboard-head svg{color:#334155}.section-action-button,.admin-dashboard-actions select,.admin-dashboard-actions button,.admin-dashboard-actions a,.admin-search-box input,.problem-header-actions select,.mobile-skill-toggle,.mobile-solve-toggle,.guide-collapse-toggle,.tool-row button,.save-row button,.guide-actions button,.member-table input,.member-table select,.problem-cell-input,.modal-close-button{border-color:#cfd9e6;border-radius:7px;background:#fff;color:var(--ink)}.section-action-button:hover,.admin-dashboard-actions button:hover,.admin-dashboard-actions a:not(.disabled):hover,.tool-row button:hover,.save-row button:hover,.guide-actions button:hover,.modal-close-button:hover{border-color:#b8c6d8;background:#f8fafc}.admin-sidebar{padding:8px}.admin-sidebar button{min-height:42px;border-radius:7px;background:transparent;color:#475569;font-weight:900}.admin-sidebar button:hover{background:#f1f5f9;color:var(--ink)}.admin-sidebar button.active{background:#111827;color:#fff;box-shadow:0 8px 20px #0f172a29}.admin-sidebar button.active svg{color:#fff}.admin-stat-card,.child-stat,.metric,.parent-report-preview-grid div,.problem-quality-panel,.exam-grade-card,.today-goal-card,.wrong-row,.member-table tr,.problem-admin-table tr{border-color:var(--line-soft);border-radius:8px;background:linear-gradient(180deg,#fff,#f8fafc)}.admin-stat-card strong,.child-position strong,.child-stat span,.metric strong{color:var(--ink)}.admin-stat-card span,.child-stat label,.metric span,.metric small{color:var(--ink-muted)}.activity-table th,.member-table th,.problem-admin-table th{background:#f7f9fc;color:#52627a}.activity-table td,.member-table td,.problem-admin-table td{border-bottom-color:var(--line-soft)}.skill-board{border:1px solid rgba(148,163,184,.16);border-radius:8px;background:linear-gradient(180deg,#0f172af5,#080d1afa);box-shadow:inset 0 1px #ffffff0a}.skill-stage-header,.skill-node,.problem-card,.answer-section,.canvas-shell,.guide-output,.answer-box,.source-card,.login-guide-step,.parent-report-preview-card,.leader-list li,.my-stats-card{border-radius:8px}.skill-node{box-shadow:inset 0 1px #ffffff12,0 3px 8px #00000038}.problem-header{padding:12px 14px;border-bottom-color:var(--line-soft)}.problem-header h2{color:var(--ink);font-weight:950}.problem-header span,.skill-progress-meta span{color:var(--ink-muted);font-weight:850}.skill-progress-track{background:#e6edf5}.skill-progress-fill{background:linear-gradient(90deg,var(--brand),#14b8a6)}.workspace{isolation:isolate;z-index:2;background:transparent}.student-study-summary,.exam-center,.dashboard-strip{position:relative;z-index:0}.daily-goal-card,.wrong-note-card,.exam-center{box-shadow:0 1px 2px #0f172a0a}.notebook-panel,.guide-panel{box-shadow:0 1px 2px #0f172a0a,0 8px 22px #0f172a12}.problem-card{border-color:var(--line);background:linear-gradient(180deg,#101a2d,#0b1324);box-shadow:0 10px 24px #0f172a1a}.problem-card p{color:#f8fafc}.tool-row button.active,.save-row button.primary,.guide-actions button:not(:disabled):hover,.login-guide-start,.onboarding-submit{border-color:var(--brand-strong);background:linear-gradient(135deg,#10b981,#0f766e);color:#fff}.save-row button.primary:hover,.login-guide-start:hover,.onboarding-submit:hover{transform:translateY(-1px);box-shadow:0 10px 22px #0f766e38}.guide-actions button{min-height:38px;background:#f8fafc}.guide-output{border-color:var(--line-soft);background:#fff}.leader-list li{border-color:var(--line-soft)}.login-screen,.loading-screen,.error-screen{background:radial-gradient(circle at 18% 10%,rgba(16,185,129,.16),transparent 28%),radial-gradient(circle at 82% 8%,rgba(37,99,235,.14),transparent 28%),#0c1424}.login-art{background:linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px}.login-panel,.onboarding-panel{border-radius:8px;border-color:#ffffff24;background:#0d1524d6;box-shadow:0 28px 80px #00000057}.google-button,.role-grid button,.grade-picker select,.back-button{border-radius:8px}@media(max-width:720px){.app-shell{padding:8px;gap:8px}.topbar{border-radius:8px;min-height:0;padding:4px 8px}.skill-panel,.leader-panel,.notebook-panel,.guide-panel,.source-band,.admin-panel,.admin-dashboard,.parent-layout>.parent-insight,.parent-layout>.activity-panel{border-radius:8px}.notebook-panel,.guide-panel{padding:3px 4px}.problem-header{padding:4px 0;margin-bottom:2px}}@media(max-width:720px){html,body,#root{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}body{overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch}}@media(min-width:721px){.app-shell:not(.admin-shell):not(.parent-shell){display:flex;flex-direction:column;min-height:100vh;overflow-x:hidden;overflow-y:auto}.app-shell:not(.admin-shell):not(.parent-shell) .topbar,.app-shell:not(.admin-shell):not(.parent-shell) .student-study-summary,.app-shell:not(.admin-shell):not(.parent-shell) .exam-center{flex:0 0 auto}.app-shell:not(.admin-shell):not(.parent-shell) .dashboard-strip{flex:0 0 auto;min-height:0}.app-shell:not(.admin-shell):not(.parent-shell) .workspace{flex:1 0 min(46vh,520px);min-height:0}.app-shell:not(.admin-shell):not(.parent-shell) .source-band{display:none!important}}.resize-handle,.resize-handle:hover,.resizing-workspace .resize-handle{background:#ffffffb8!important;box-shadow:inset 1px 0 #e2e8f0e6,inset -1px 0 #e2e8f0e6!important}.resize-handle span,.resize-handle:hover span,.resizing-workspace .resize-handle span{width:3px!important;background:#cbd5e1!important;box-shadow:none!important}.resize-handle:after,.resize-handle:hover:after,.resizing-workspace .resize-handle:after{background:#94a3b8!important;opacity:.18!important}.skill-node.completed{box-shadow:none!important;filter:none!important;text-shadow:none!important;animation:none!important;border-width:1px;border-color:#0f766e!important;background:#0f766e!important;color:#fff!important}.skill-node.completed .skill-icon{filter:none!important}.skill-node.completed:hover{box-shadow:none!important}.skill-node.completed.selected{border-color:#0f766e!important;background:#0f766e!important;animation:none!important}.skill-node.completed.selected .skill-icon,.skill-node.completed.selected small,.skill-node.completed.selected em{text-shadow:none!important;filter:none!important}.skill-node{border-radius:8px;padding:3px 7px 3px 4px;border-width:1px;box-shadow:inset 0 1px #ffffff12,0 2px 5px #02061738}.skill-node:before{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:7px;border:1px solid rgba(255,255,255,.045);pointer-events:none}.skill-node:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:currentColor;opacity:.65}.skill-icon{width:1.45rem;height:1.45rem;max-width:1.45rem;display:grid;place-items:center;border-radius:6px;background:#ffffff14;border:1px solid rgba(255,255,255,.08);font-size:.74rem;filter:none}.skill-node strong{font-weight:850}.skill-node.pending{background:linear-gradient(180deg,#1b2435,#101827)!important;border-color:#f59e0bb8!important;color:#fbbf24!important;box-shadow:inset 0 1px #ffffff14,0 3px 8px #02061747}.skill-node.pending .skill-icon{background:#f59e0b21;border-color:#f59e0b3d}.skill-node.completed{background:linear-gradient(180deg,#0f766e,#0b5f59)!important;border-color:#15a38f!important;box-shadow:inset 0 1px #ffffff29!important}.skill-node.completed .skill-icon{background:#ffffff24;border-color:#ffffff2e}.skill-node.completed em.done{background:#ffffff2e;color:#fff;border:1px solid rgba(255,255,255,.18)}.skill-node.selected:not(.completed){background:linear-gradient(180deg,#26344b,#182235)!important;border-color:#38bdf8!important;box-shadow:inset 0 1px #ffffff1f,0 3px 8px #02061747!important}.skill-node:hover{transform:translateY(-1px)}@media(min-width:721px){.app-shell:not(.admin-shell):not(.parent-shell) .skill-panel{overflow:visible;contain:layout}.app-shell:not(.admin-shell):not(.parent-shell) .skill-board{--skill-node-height: 20px;--skill-link-height: 3px;--skill-node-font-size: .65rem;--skill-icon-font-size: .68rem;flex:0 0 auto;height:auto;min-height:0;gap:5px;padding:6px;overflow:visible}.app-shell:not(.admin-shell):not(.parent-shell) .skill-stage,.app-shell:not(.admin-shell):not(.parent-shell) .skill-stage-list{height:auto;min-height:0;overflow:visible}.app-shell:not(.admin-shell):not(.parent-shell) .skill-stage{gap:3px}.app-shell:not(.admin-shell):not(.parent-shell) .skill-stage-header{height:18px;font-size:.58rem}.app-shell:not(.admin-shell):not(.parent-shell) .skill-node{height:var(--skill-node-height);min-height:var(--skill-node-height);gap:3px;padding:1px 5px 1px 3px}.app-shell:not(.admin-shell):not(.parent-shell) .skill-icon{width:1rem;height:1rem;max-width:1rem;border-radius:4px;font-size:var(--skill-icon-font-size)}.app-shell:not(.admin-shell):not(.parent-shell) .skill-node strong{font-size:var(--skill-node-font-size)!important;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-shell:not(.admin-shell):not(.parent-shell) .skill-node small,.app-shell:not(.admin-shell):not(.parent-shell) .skill-node em{font-size:.43rem!important}.app-shell:not(.admin-shell):not(.parent-shell) .skill-link{height:var(--skill-link-height)}}@media(min-width:901px){.app-shell:not(.admin-shell):not(.parent-shell) .skill-board{--skill-node-height: 44px;--skill-node-font-size: 1.05rem;--skill-icon-font-size: 1.1rem;--skill-link-height: 8px}.app-shell:not(.admin-shell):not(.parent-shell) .skill-node{height:var(--skill-node-height)!important;min-height:var(--skill-node-height)!important;padding:4px 8px!important;gap:4px!important}.app-shell:not(.admin-shell):not(.parent-shell) .skill-node strong{font-size:12px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-shell:not(.admin-shell):not(.parent-shell) .skill-node.completed em.done{min-width:42px;padding:5px 9px;font-size:12px!important;line-height:1;border-radius:999px;font-weight:950}.app-shell:not(.admin-shell):not(.parent-shell) .skill-icon{width:1.4rem!important;height:1.4rem!important;max-width:1.4rem!important;font-size:1.1rem!important}.app-shell:not(.admin-shell):not(.parent-shell) .skill-stage-header{height:28px!important;font-size:12px!important}.app-shell:not(.admin-shell):not(.parent-shell) .skill-link{height:8px!important}}@media(min-width:721px)and (max-width:1180px){html,body,#root{height:auto!important;min-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch}body.drawing-on-canvas{overflow:hidden!important}.app-shell{height:auto!important;min-height:100vh!important;min-height:100svh!important;min-height:100dvh!important;overflow-x:hidden!important;overflow-y:visible!important}.admin-layout,.parent-layout,.workspace{min-height:0!important;overflow:visible!important}.admin-panel,.admin-dashboard{overflow:visible!important}.notebook-panel,.guide-panel{overflow-y:visible!important}}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9990;pointer-events:none}.onboarding-spotlight{position:fixed;border-radius:8px;box-shadow:0 0 0 9999px #000000ad;border:2px solid rgba(56,189,248,.85);z-index:9991;pointer-events:none;animation:spotlight-pulse 2s ease-in-out infinite}@keyframes spotlight-pulse{0%,to{border-color:#38bdf8d9;box-shadow:0 0 0 9999px #000000ad,0 0 0 3px #38bdf84d}50%{border-color:#38bdf8;box-shadow:0 0 0 9999px #000000ad,0 0 0 5px #38bdf880}}.onboarding-callout{position:fixed;background:#1e293b;border:1.5px solid rgba(56,189,248,.5);border-radius:10px;padding:14px 16px 12px;z-index:9992;pointer-events:all;min-width:200px;box-shadow:0 8px 32px #00000080}.onboarding-callout:before{content:"";position:absolute;border:6px solid transparent}.onboarding-callout.side-bottom:before{bottom:100%;left:24px;border-bottom-color:#38bdf880}.onboarding-callout.side-top:before{top:100%;left:24px;border-top-color:#38bdf880}.onboarding-callout.side-left:before{left:100%;top:16px;border-left-color:#38bdf880}.onboarding-callout.side-right:before{right:100%;top:16px;border-right-color:#38bdf880}.onboarding-title{font-size:.9rem;font-weight:700;color:#38bdf8;margin:0 0 6px}.onboarding-desc{font-size:.8rem;color:#cbd5e1;margin:0 0 12px;line-height:1.5}.onboarding-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.onboarding-dots{display:flex;gap:5px}.onboarding-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#475569;transition:background .2s}.onboarding-dot.active{background:#38bdf8}.onboarding-btns{display:flex;gap:6px}.onboarding-prev{font-size:.75rem;padding:4px 10px;border-radius:5px;border:1px solid #475569;background:transparent;color:#94a3b8;cursor:pointer}.onboarding-next{font-size:.75rem;padding:4px 12px;border-radius:5px;border:none;background:#38bdf8;color:#0f172a;font-weight:600;cursor:pointer}.onboarding-next:hover{background:#7dd3fc}.notebook-panel,.skill-panel,.guide-panel{padding:10px}.problem-header{padding:0;margin-bottom:0}.skill-panel>.section-title,.guide-panel>.section-title{padding:0;margin-bottom:0}.skill-panel>.section-title{margin-bottom:8px}.skill-panel.mobile-collapsed>.section-title,.skill-panel.pc-collapsed>.section-title{margin-bottom:0}@media(max-width:720px){.notebook-panel,.skill-panel,.guide-panel{padding:10px}.problem-header{padding:0;margin-bottom:0}.skill-panel>.section-title,.guide-panel>.section-title{padding:0;margin-bottom:0}.skill-panel>.section-title{margin-bottom:8px}.skill-panel.mobile-collapsed>.section-title,.skill-panel.pc-collapsed>.section-title{margin-bottom:0}}@media(max-width:1180px){.admin-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.admin-stat-card{min-height:54px;gap:4px;padding:8px 15px}.admin-stat-card span,.admin-stat-card strong{font-size:14px;white-space:nowrap}}@media(max-width:720px){.admin-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.admin-stat-card{min-height:48px;padding:7px 15px}.admin-stat-card span,.admin-stat-card strong{font-size:14px}.member-table-wrap{overflow-x:auto;border:1px solid var(--line-soft);background:#fff;-webkit-overflow-scrolling:touch}.member-table{min-width:760px;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:10px}.member-table thead{display:table-header-group}.member-table tbody{display:table-row-group}.member-table tr{display:table-row;padding:0;border:0;border-radius:0;background:#fff}.member-table th,.member-table td{display:table-cell;width:auto!important;padding:5px 6px;border-bottom:1px solid var(--line-soft);vertical-align:middle;text-align:center}.member-table td:before,.member-table td:first-child:before{display:none}.member-table td:first-child{padding-bottom:5px;margin-bottom:0;border-bottom:1px solid var(--line-soft)}.member-table input,.member-table select{height:28px;padding:0 6px;font-size:10px;text-align:center;text-align-last:center}.member-table strong,.member-table small,.member-table .muted{display:block;text-align:center}.member-reset-button{min-height:28px;padding:3px 6px;font-size:10px}.member-child-list{grid-template-columns:1fr}.audit-log-panel{padding:6px}.audit-log-panel .activity-table-wrap{overflow-x:hidden}.audit-log-panel .admin-activity-table{width:100%;min-width:0;table-layout:fixed}.audit-log-panel .admin-activity-table th,.audit-log-panel .admin-activity-table td{height:24px;padding:2px;font-size:.48rem;line-height:1.05;white-space:nowrap}.audit-log-panel .admin-activity-table .col-date{width:16%}.audit-log-panel .admin-activity-table .col-child,.audit-log-panel .admin-activity-table .col-category{width:14%}.audit-log-panel .admin-activity-table .col-problem{width:24%;min-width:0}.audit-log-panel .admin-activity-table .col-answer{width:9%}.audit-log-panel .admin-activity-table .col-status{width:11%}.audit-log-panel .admin-activity-table .col-help{width:12%}}.onboarding-prev:hover{background:#4755694d}
