:root{color:#2c2940;background:#faf7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh}button,textarea,input{font:inherit}button{border:0}.portal-shell{min-height:100vh;min-height:100dvh;overflow:hidden;padding:18px clamp(20px,5vw,76px) 24px;background:radial-gradient(circle at 82% 13%,rgba(255,208,98,.28),transparent 25%),radial-gradient(circle at 6% 42%,rgba(125,226,209,.2),transparent 24%),linear-gradient(180deg,#fffaf1,#faf7f4 52%,#f4fbf8)}.portal-header{position:relative;z-index:5;max-width:1240px;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 auto}.portal-title-row{min-width:0;display:flex;align-items:center;gap:12px}.portal-brand{min-width:0;display:flex;align-items:center;gap:10px;padding:0;color:#332d45;background:transparent;cursor:pointer;text-align:left}.portal-brand img{width:52px;height:52px;object-fit:contain}.portal-brand span{min-width:0;display:grid;gap:2px}.portal-brand strong{font-size:16px;letter-spacing:.04em}.portal-brand small{color:#81778e;font-size:11px;font-weight:800}.portal-header-actions,.portal-auth-actions,.portal-user{display:flex;align-items:center;gap:8px}.portal-language-switch{min-width:58px;height:40px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:1px solid #e5dccf;border-radius:999px;color:#5f5585;background:#ffffffd1;box-shadow:0 7px 18px #4f3e2c14;cursor:pointer;font-size:11px;font-weight:950;transition:transform .13s ease,background .13s ease,box-shadow .13s ease}.portal-auth-actions button,.portal-user button{min-height:32px;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;color:#5a506e;background:transparent;cursor:pointer;font-size:12px;font-weight:900}.portal-language-switch:hover{color:#332d45;background:#fff0bf;box-shadow:0 9px 20px #4f3e2c1f;transform:translateY(-1px)}.portal-auth-actions button,.portal-user button{min-height:40px;padding:0 15px}.portal-auth-actions button.signup{color:#fff;background:#3f3860;box-shadow:0 8px 20px #3f38602e}.portal-user>span{color:#433b59;font-size:13px;font-weight:900}.portal-user button{background:#ffffffb3}.portal-hero{position:relative;max-width:1180px;min-height:390px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:center;gap:clamp(30px,7vw,100px);margin:18px auto 2px;padding:28px 34px 22px}.portal-hero-copy{position:relative;z-index:2}.portal-eyebrow{width:fit-content;display:flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;color:#806126;background:#fff0bf;font-size:12px;font-weight:900}.portal-hero h1{margin:17px 0 14px;color:#302a42;font-size:clamp(39px,5.2vw,68px);line-height:1.08;letter-spacing:-.055em}.portal-hero h1 em{color:#e85f98;font-style:normal}.portal-hero-copy>p{max-width:630px;margin:0;color:#665d76;font-size:16px;line-height:1.75;word-break:keep-all}.portal-benefits{display:flex;flex-wrap:wrap;gap:9px 16px;margin-top:20px}.portal-benefits span{display:flex;align-items:center;gap:5px;color:#5f5770;font-size:12px;font-weight:900}.portal-benefits svg{padding:2px;border-radius:999px;color:#2e8067;background:#dff5ec}.portal-hero-mascot{position:relative;min-height:315px;display:grid;place-items:center}.portal-hero-mascot img{position:relative;z-index:2;width:min(100%,310px);max-height:315px;object-fit:contain;filter:drop-shadow(0 22px 18px rgba(92,65,35,.15))}.mascot-glow{position:absolute;width:270px;height:270px;border-radius:48% 52% 45% 55%;background:linear-gradient(145deg,#fff0bd,#ffe4ed);transform:rotate(-7deg)}.mascot-code{position:absolute;z-index:3;padding:9px 13px;border:1px solid rgba(116,103,137,.15);border-radius:10px;color:#554b73;background:#ffffffe0;box-shadow:0 12px 26px #523f2c1f;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:800}.code-one{top:52px;right:-3px;transform:rotate(4deg)}.code-two{bottom:48px;left:-16px;transform:rotate(-4deg)}.portal-services{max-width:1180px;margin:0 auto;padding:22px 34px 12px}.portal-section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:17px}.portal-section-heading span,.service-copy>span,.upcoming-service>span{color:#e35e96;font-size:10px;font-weight:950;letter-spacing:.14em}.portal-section-heading h2{margin:5px 0 0;color:#332d45;font-size:24px}.portal-section-heading>p{max-width:390px;margin:0 0 2px;color:#7a7188;font-size:12px;line-height:1.5;text-align:right}.portal-service-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.72fr);gap:16px}.portal-service-card{min-width:0;border:1px solid #e5dccf;border-radius:18px;background:#ffffffe0;box-shadow:0 17px 42px #533d2814}.active-service{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:15px;padding:20px}.service-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:16px;color:#fff;background:linear-gradient(145deg,#f078aa,#d9508b);box-shadow:0 10px 22px #df4f8c38}.service-copy h3,.upcoming-service h3{margin:4px 0 5px;color:#332d45;font-size:20px}.service-copy p,.upcoming-service p{margin:0;color:#71687f;font-size:12px;line-height:1.55;word-break:keep-all}.service-tags{grid-column:2 / 3;display:flex;flex-wrap:wrap;gap:6px}.service-tags span{padding:5px 8px;border-radius:999px;color:#625877;background:#f3f0fa;font-size:10px;font-weight:900}.service-launch{grid-column:3;grid-row:1 / 3;min-width:190px;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 17px;border-radius:12px;color:#fff;background:#40385f;cursor:pointer;font-size:13px;font-weight:900;transition:transform .14s ease,box-shadow .14s ease}.service-launch:hover{transform:translateY(-2px);box-shadow:0 12px 24px #40385f33}.upcoming-service{position:relative;display:grid;align-content:center;min-height:144px;padding:20px 20px 20px 78px;overflow:hidden;background:#f8f5fab8;border-style:dashed}.upcoming-orbit{position:absolute;left:20px;top:50%;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:#8c80a0;background:#eee9f5;transform:translateY(-50%)}.upcoming-service>span{color:#8c80a0}.upcoming-service h3{font-size:15px}.upcoming-service p{font-size:11px}.portal-footer{max-width:1112px;display:flex;justify-content:space-between;gap:20px;margin:18px auto 0;padding:13px 0 0;border-top:1px solid rgba(121,106,89,.14);color:#958c9f;font-size:10px;font-weight:800;letter-spacing:.04em}.app-shell{height:100vh;height:100dvh;display:flex;flex-direction:column;gap:14px;overflow:hidden;padding:16px;background:linear-gradient(180deg,#ffd86b38,#faf7f400 280px),#faf7f4}.topbar{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;border:1px solid #e8dece;border-radius:8px;background:#ffffffdb;box-shadow:0 14px 34px #684c3014}.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand img{width:50px;height:50px;object-fit:contain;flex:0 0 auto}.brand strong{display:block;font-size:17px;line-height:1.1;letter-spacing:0}.brand span,.progress-strip span,.code-heading span,.editor-heading span,.level-meter span,.step-nav span{color:#7b718d;font-size:12px;font-weight:800}.progress-strip{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:360px;color:#4c4470}.topbar-primary-actions{display:flex;align-items:center;gap:7px;margin-left:3px}.topbar-icon-action{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:9px;color:#5f5585;background:#f1edff;cursor:pointer;transition:transform .13s ease,background .13s ease,box-shadow .13s ease}.topbar-icon-action:hover,.topbar-icon-action.active{color:#342e48;background:#fff0bf;box-shadow:0 7px 16px #503c281a;transform:translateY(-1px)}.topbar-menu-wrap{position:relative}.topbar-menu{position:absolute;z-index:70;top:calc(100% + 9px);left:0;width:220px;display:grid;gap:5px;padding:9px;border:1px solid #e5dccf;border-radius:12px;background:#fffffffa;box-shadow:0 18px 44px #4333252e}.topbar-menu-label,.topbar-menu-user{display:block;padding:6px 8px 4px;color:#8a8196;font-size:10px;font-weight:950;letter-spacing:.12em}.topbar-menu-user{overflow:hidden;color:#514865;font-size:12px;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.topbar-menu button{width:100%;min-height:40px;display:flex;align-items:center;gap:10px;padding:0 10px;border-radius:8px;color:#5f5585;background:transparent;cursor:pointer;font-size:13px;font-weight:900;text-align:left}.topbar-menu button:hover,.topbar-menu button.active{color:#332d45;background:#f1edff}.topbar-menu-divider{height:1px;margin:4px 2px;background:#ece4da}.account-notice{position:fixed;z-index:60;left:50%;top:96px;transform:translate(-50%);display:flex;align-items:center;gap:10px;max-width:min(92vw,460px);padding:10px 12px;border-radius:8px;color:#2f7f47;background:#e7f9e7;border:1px solid rgba(47,127,71,.2);box-shadow:0 14px 34px #684c301f;font-size:13px;font-weight:900}.account-notice button{min-height:28px;padding:0 9px;border-radius:8px;color:#2f7f47;background:#fff;cursor:pointer;font-size:12px;font-weight:900}.progress-track{width:160px;height:10px;overflow:hidden;border-radius:999px;background:#ede5dc}.progress-track div{height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff6fae,#7de2d1,#7fb7ff)}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:minmax(240px,.78fr) minmax(340px,1.02fr) minmax(310px,.92fr);grid-template-rows:minmax(0,1fr) minmax(150px,.44fr);grid-template-areas:"lesson board code" "commands board code";gap:14px;overflow:hidden}.panel,.board-stage{min-width:0;min-height:0;overflow:hidden;border:1px solid #e7ddce;border-radius:8px;background:#ffffffe6;box-shadow:0 16px 42px #4a352114}.panel{display:flex;flex-direction:column;gap:14px;padding:16px}.lesson-panel{grid-area:lesson;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.lesson-panel>*{flex-shrink:0}.command-panel{grid-area:commands;min-height:0;padding:14px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.step-nav{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:10px}.step-nav button,.command-list button,.tool-grid button,.size-controls button,.direction-grid button,.secondary-action,.tertiary-action,.primary-action{cursor:pointer;border-radius:8px;transition:transform .13s ease,box-shadow .13s ease,background .13s ease}.step-nav button{height:40px;display:grid;place-items:center;color:#4c4470;background:#f1edff}.step-nav button:disabled{cursor:default;opacity:.35}.step-nav strong{display:block;margin-top:2px;font-size:16px}.section-progress{display:flex;align-items:center;gap:7px}.section-progress span{width:fit-content;padding:3px 7px;border-radius:999px;color:#4c4470;background:#f1edff;font-size:11px;font-weight:950}.section-progress small,.overall-stage-progress{color:#8a8297;font-size:11px;font-weight:850}.overall-stage-progress{display:block;margin-top:2px}.stage-lock-note{display:flex;align-items:center;gap:7px;padding:9px 10px;border-radius:8px;color:#745427;background:#fff3d6;font-size:13px;font-weight:900}.stage-lock-note.login-required{flex-wrap:wrap;color:#54457a;background:#f1edff}.stage-lock-note.login-required button{margin-left:auto;padding:6px 9px;border-radius:7px;color:#fff;background:#5f5585;cursor:pointer;font-size:11px;font-weight:900}.admin-section-field{display:grid;gap:7px}.admin-section-field>strong{color:#514a63;font-size:13px}.admin-section-field select{min-height:40px;padding:0 10px;border:1px solid #dbe7fa;border-radius:8px;color:#332d45;background:#fff}.admin-section-field select:disabled{color:#8a8297;background:#f5f2ed}.lesson-copy{padding:4px 0}.lesson-copy p{margin:0;color:#514a63;line-height:1.58;word-break:keep-all}.lesson-copy .activity-title{margin-bottom:8px;color:#3d3654;font-weight:900}.curriculum-card{display:grid;gap:8px;margin-top:12px}.curriculum-card div{display:grid;grid-template-columns:18px minmax(68px,.44fr) 1fr;align-items:center;gap:7px;padding:8px 10px;border-radius:8px;background:#f8fbff;border:1px solid #dbe7fa}.curriculum-card span{color:#746c86;font-size:12px;font-weight:900}.curriculum-card strong{color:#332d45;font-size:13px;line-height:1.35;word-break:keep-all}.success-line,.score-card{display:flex;align-items:center;gap:8px;min-height:40px;color:#4d4662}.success-line{margin-top:13px;padding:10px 12px;border-radius:8px;background:#f1edff;font-weight:800}.hint-box{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:8px;width:100%;flex:0 0 auto;min-height:40px;padding:12px;border-radius:8px;background:#fff3c7;color:#4d4662;line-height:1.45;overflow:visible}.hint-box svg{margin-top:3px;flex:0 0 auto}.hint-box span{display:block;min-width:0;overflow-wrap:anywhere;word-break:keep-word}.learning-notes{display:grid;gap:8px}.learning-notes div{display:grid;gap:4px;padding:10px 12px;border-radius:8px;background:#fbfff8;border:1px solid rgba(126,171,135,.24)}.learning-notes strong{color:#3d3654;font-size:13px}.learning-notes span{color:#514a63;font-size:13px;line-height:1.45;word-break:keep-all}.recommended-code{border-radius:8px;background:#f8fbff;border:1px solid #dbe7fa;overflow:hidden}.recommended-code summary{cursor:pointer;padding:10px 12px;color:#3d3654;font-weight:900}.recommended-code pre{margin:0;padding:10px 12px;overflow:auto;color:#263145;background:#edf4ff;font-size:12px;line-height:1.5}.recommended-code p{margin:0;padding:10px 12px;color:#514a63;font-size:13px;line-height:1.45}.command-list{flex:1;min-height:0;display:flex;flex-direction:column;gap:7px;overflow:auto}.command-list h2{margin:2px 0 5px;font-size:15px}.command-list button{display:grid;grid-template-columns:18px minmax(84px,.7fr) minmax(112px,1fr);align-items:center;gap:8px;min-height:44px;padding:8px 10px;color:#312d42;background:#f8fbff;border:1px solid #dbe7fa;text-align:left}.command-list button:hover,.step-nav button:not(:disabled):hover,.tool-grid button:hover,.size-controls button:not(:disabled):hover,.direction-grid button:hover,.secondary-action:hover,.tertiary-action:hover,.primary-action:hover{transform:translateY(-1px);box-shadow:0 8px 18px #503c281a}.command-list small{min-width:0;color:#80778f;font-size:12px;overflow-wrap:anywhere}.editor-panel{grid-area:lesson;overflow:auto}.editor-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.editor-heading strong{color:#332d45;font-size:19px}.editor-section{display:flex;flex-direction:column;gap:9px}.editor-section h2{margin:0;font-size:15px}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tool-grid button{min-height:44px;display:flex;align-items:center;gap:8px;padding:8px 10px;color:#3b354d;background:#f8fbff;border:1px solid #dbe7fa;text-align:left;font-weight:900}.tool-grid button.active,.direction-grid button.active{border-color:#ff6fae;background:#ffe9f3;color:#3d3654}.tool-grid img{width:22px;height:22px;object-fit:contain}.tool-emoji{width:22px;text-align:center;font-size:18px;line-height:1}.tool-grid svg{flex:0 0 auto}.tool-grid button:nth-child(3) svg{color:#47aac5;fill:#b7f0ff}.tool-grid button:nth-child(2) svg{color:#ff6fae;fill:#ffd6e6}.size-controls{display:grid;gap:8px}.size-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.size-picker button{min-height:38px;border-radius:8px;color:#4c4470;background:#fff8db;font-weight:900;cursor:pointer}.size-picker button.active{color:#3d3654;background:#ffe9f3;box-shadow:inset 0 0 0 2px #ff6fae7a}.size-controls div{display:grid;grid-template-columns:42px 36px 1fr 36px;align-items:center;gap:8px;min-height:40px;padding:7px 8px;border-radius:8px;background:#fff8db;color:#4d4662;font-weight:900}.size-controls button,.direction-grid button{min-height:32px;display:grid;place-items:center;border-radius:8px;color:#4c4470;background:#fff}.size-controls button:disabled{cursor:default;opacity:.38}.size-controls strong{text-align:center}.direction-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.direction-grid button{min-height:42px;border:1px solid #dbe7fa;background:#f8fbff}.editor-note{min-height:42px;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;font-weight:900;line-height:1.4}.editor-note.valid{color:#2f7f47;background:#e7f9e7}.editor-note.warning{color:#a03c3c;background:#ffe8e8}.editor-reset{width:100%;flex:0 0 auto}.community-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:4px;border-radius:10px;background:#f1edff}.community-tabs button{min-height:38px;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;color:#655b82;background:transparent;font-weight:900;cursor:pointer}.community-tabs button.active{color:#3d3654;background:#fff;box-shadow:0 4px 12px #4a355a1f}.community-heading button{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;color:#5f5585;background:#f1edff;cursor:pointer}.community-heading button:disabled{cursor:default;opacity:.55}.community-map-list{display:grid;gap:10px;min-height:0;overflow-y:auto}.community-map-card{display:grid;gap:9px;padding:12px;border:1px solid #dbe7fa;border-radius:10px;background:#f8fbff}.community-map-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.community-map-card strong{color:#332d45;overflow-wrap:anywhere}.community-map-meta span,.community-map-card p,.community-map-card small{color:#746c86;font-size:12px}.community-map-card p{margin:0;line-height:1.45;overflow-wrap:anywhere}.community-map-card button{min-height:38px;display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 9px;border-radius:8px;color:#4c4470;background:#e8fbf6;font-weight:900;cursor:pointer}.community-map-card button small{margin-left:auto}.community-map-card button:disabled{cursor:default;opacity:.58}.community-map-actions{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px}.community-map-actions .community-like-action{color:#80506a;background:#fff0f6}.community-map-actions .community-like-action.active{color:#c63f79;background:#ffddeb;box-shadow:inset 0 0 0 1px #c63f7938}.community-map-actions .community-like-action.active svg{fill:currentColor}.community-empty{min-height:150px;display:grid;place-items:center;align-content:center;gap:9px;padding:18px;border:1px dashed #d8cfea;border-radius:10px;color:#746c86;text-align:center;line-height:1.45}.community-upload{display:grid;gap:8px;padding-top:13px;border-top:1px solid #e7ddce}.community-upload-heading{display:flex;align-items:center;gap:7px;color:#3d3654}.community-upload input,.community-upload textarea{width:100%;border:1px solid #dbe7fa;border-radius:8px;padding:10px;color:#332d45;background:#fff;font:inherit}.community-upload textarea{min-height:72px;resize:vertical}.community-upload textarea::placeholder{color:#9a92a7}.community-upload small{color:#746c86;line-height:1.4}.community-message,.loaded-map-note{margin:0;padding:10px 11px;border-radius:8px;font-size:13px;font-weight:800;line-height:1.45}.community-message.success,.loaded-map-note{color:#2f6f55;background:#e8fbf6}.community-message.error{color:#a03c3c;background:#ffe8e8}.loaded-map-note{display:flex;align-items:center;gap:7px}.spin{animation:community-spin .9s linear infinite}@keyframes community-spin{to{transform:rotate(360deg)}}.board-stage{grid-area:board;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:18px;background:linear-gradient(180deg,#7fb7ff24,#7de2d114),#ffffffe6}.admin-area{grid-column:1 / -1;grid-row:1 / -1;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;overflow:hidden}.admin-navigation{display:grid;grid-template-columns:minmax(150px,.5fr) minmax(300px,auto) minmax(220px,.5fr);align-items:center;gap:14px;padding:10px 14px;border:1px solid rgba(126,171,135,.28);border-radius:10px;background:#fffffff0;box-shadow:0 8px 24px #503c2812}.admin-navigation-heading{display:grid;gap:2px}.admin-navigation-heading span,.admin-users-intro span{color:#7b718d;font-size:12px;font-weight:900}.admin-navigation-heading strong{color:#332d45;font-size:17px}.admin-navigation-tabs,.admin-navigation-actions{display:flex;align-items:center;gap:7px}.admin-navigation-tabs{justify-content:center;padding:4px;border-radius:9px;background:#f1edff}.admin-navigation-actions{justify-content:flex-end}.admin-navigation button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;border-radius:7px;color:#5f5585;background:transparent;cursor:pointer;font-weight:900}.admin-navigation-tabs button.active{color:#fff;background:#6d58b0;box-shadow:0 4px 12px #5c479938}.admin-navigation-actions button{background:#f8fbff;border:1px solid #dbe7fa}.admin-page{display:grid;grid-template-columns:minmax(210px,.52fr) minmax(330px,.88fr) minmax(580px,1.6fr);gap:14px;overflow:hidden}.admin-users-page{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:18px;overflow:auto}.admin-users-intro{display:grid;gap:5px}.admin-users-intro strong{color:#332d45;font-size:22px}.admin-users-intro p{margin:0;color:#6a6278;font-size:14px}.admin-users-page .admin-user-management{align-content:start;padding:18px}.admin-users-page .admin-user-list{max-height:none}.admin-sidebar,.admin-form,.admin-map-area{min-height:0}.admin-sidebar,.admin-form{overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.admin-heading,.admin-card-title,.inline-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-heading span{display:block;color:#7b718d;font-size:12px;font-weight:900}.admin-heading strong,.admin-card-title strong{color:#332d45;font-size:18px}.admin-level-list{display:grid;gap:8px}.admin-level-list button{display:grid;grid-template-columns:30px minmax(0,1fr) 52px;align-items:center;gap:8px;min-height:46px;padding:8px 10px;border-radius:8px;color:#3b354d;background:#f8fbff;border:1px solid #dbe7fa;cursor:pointer;text-align:left}.admin-level-list button.active{border-color:#ff6fae;background:#ffe9f3}.admin-level-list button span,.admin-level-list button small{color:#7b718d;font-size:12px;font-weight:900}.admin-level-list button strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-admin,.admin-empty-state{color:#645b78;font-weight:800}.admin-login{grid-column:1 / -1;grid-row:1 / -1;align-self:center;justify-self:center;width:min(100%,420px);min-height:auto;padding:24px}.auth-page{grid-column:1 / -1;grid-row:1 / -1;align-self:center;justify-self:center;width:min(100%,430px);min-height:auto;padding:24px}.leaderboard-page{grid-column:1 / -1;grid-row:1 / -1;overflow:auto;gap:16px}.leaderboard-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.leaderboard-heading div{display:grid;gap:5px}.leaderboard-heading span{color:#7b718d;font-size:12px;font-weight:900}.leaderboard-heading strong{color:#332d45;font-size:22px;line-height:1.2}.leaderboard-heading button,.leaderboard-login-note button{display:flex;align-items:center;justify-content:center;gap:7px}.leaderboard-login-note{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 12px;border-radius:8px;color:#4c4470;background:#fff8db;font-size:13px;font-weight:900}.leaderboard-login-note button{min-height:32px;padding:0 10px;border-radius:8px;color:#fff;background:#4c4470;cursor:pointer;font-weight:900;white-space:nowrap}.my-rank-card{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;padding:12px 14px;border-radius:8px;color:#332d45;background:#e8fbf6;border:1px solid rgba(72,172,149,.24)}.my-rank-card span,.my-rank-card strong{display:block}.my-rank-card span{color:#5f5585;font-size:12px;font-weight:900}.my-rank-card strong{margin-top:2px;font-size:18px}.score-rules{border:1px solid #ded5f3;border-radius:10px;background:#fbf9ff}.score-rules summary{min-height:46px;display:flex;align-items:center;gap:9px;padding:0 14px;color:#4c4470;cursor:pointer;font-size:14px;font-weight:900;list-style:none}.score-rules summary::-webkit-details-marker{display:none}.score-rules summary:after{content:"＋";margin-left:auto;color:#8a7ab5;font-size:18px}.score-rules[open] summary:after{content:"−"}.score-rules-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 14px 14px;border-top:1px solid #ece6f8}.score-rules-content section{display:grid;align-content:start;gap:8px;padding-top:14px}.score-rules-content section>strong{color:#332d45;font-size:14px}.score-rules-content ul{display:grid;gap:6px;margin:0;padding-left:20px;color:#675e7a;font-size:12px;font-weight:800;line-height:1.5}.score-rule-chips{display:flex;flex-wrap:wrap;gap:6px}.score-rule-chips span{padding:6px 9px;border-radius:999px;color:#4c4470;background:#eee9ff;font-size:12px;font-weight:900}.score-rules-content section p,.score-rules-note{margin:0;color:#675e7a;font-size:12px;font-weight:800;line-height:1.55}.score-rules-note{grid-column:1 / -1;padding:10px 11px;border-radius:8px;background:#fff8db}.leaderboard-empty{margin:0;padding:18px;border-radius:8px;color:#645b78;background:#f8fbff;border:1px solid #dbe7fa;font-weight:900;text-align:center}.leaderboard-list{display:grid;gap:8px}.leaderboard-row{display:grid;grid-template-columns:84px minmax(160px,1fr) minmax(130px,.52fr) minmax(220px,.84fr) minmax(110px,.34fr);align-items:center;gap:10px;min-height:64px;padding:10px 12px;border-radius:8px;border:1px solid #dbe7fa;background:#f8fbff}.leaderboard-row.current-user{border-color:#ff6fae6b;background:#ffe9f3}.leaderboard-rank,.leaderboard-player,.leaderboard-total,.leaderboard-breakdown{min-width:0}.leaderboard-rank{display:flex;align-items:center;gap:7px;color:#5f5585}.leaderboard-rank strong,.leaderboard-player strong,.leaderboard-total strong{color:#332d45}.leaderboard-player strong,.leaderboard-player span,.leaderboard-total strong,.leaderboard-total span,.leaderboard-updated{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-player strong{font-size:15px}.leaderboard-player span,.leaderboard-total span,.leaderboard-breakdown span,.leaderboard-updated{color:#746c86;font-size:12px;font-weight:900}.leaderboard-total strong{font-size:17px}.leaderboard-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.leaderboard-breakdown span{min-height:30px;display:flex;align-items:center;justify-content:center;padding:0 7px;border-radius:8px;background:#fff;text-align:center}.auth-copy{display:grid;gap:7px}.auth-copy span{color:#7b718d;font-size:12px;font-weight:900}.auth-copy strong{color:#332d45;font-size:22px;line-height:1.25}.auth-copy p{margin:0;color:#514a63;font-size:14px;line-height:1.5;word-break:keep-all}.auth-page form{display:grid;gap:12px}.auth-page label{display:grid;gap:7px;color:#514a63;font-size:13px;font-weight:900}.auth-page input{width:100%;min-height:42px;padding:8px 10px;border:1px solid #dbe7fa;border-radius:8px;color:#332d45;background:#fff}.auth-error{margin:0;padding:10px 12px;border-radius:8px;color:#a03c3c;background:#ffe8e8;font-size:13px;font-weight:900}.legal-consent{display:grid;gap:9px;padding:12px;border-radius:8px;background:#fbfff8;border:1px solid rgba(126,171,135,.24)}.legal-consent>p{margin:0;color:#514a63;font-size:12px;font-weight:800;line-height:1.45;word-break:keep-all}.legal-consent-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.legal-consent-row label{display:flex;align-items:center;gap:8px;min-width:0;color:#3d3654;font-size:13px;font-weight:900}.legal-consent-row input{width:16px;height:16px;min-height:0;padding:0;accent-color:#ff6fae;flex:0 0 auto}.legal-consent-row button{min-height:30px;padding:0 9px;border-radius:8px;color:#4c4470;background:#fff8db;cursor:pointer;font-size:12px;font-weight:900;white-space:nowrap}.legal-panel{display:grid;gap:8px;max-height:220px;overflow:auto;padding:10px;border-radius:8px;border:1px solid #dbe7fa;background:#f8fbff}.legal-panel strong{color:#332d45;font-size:13px}.legal-panel pre{margin:0;color:#514a63;font-family:inherit;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:keep-all}.auth-link{width:100%;justify-content:center}.password-help{display:grid;gap:6px;padding:12px;border-radius:8px;border:1px solid #dbe7fa;background:#f8fbff}.password-help strong{color:#332d45;font-size:13px}.password-help p{margin:0;color:#514a63;font-size:12px;line-height:1.45;word-break:keep-all}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:18px;background:#2f2a3f57}.account-delete-modal,.account-settings-modal{width:min(100%,440px);display:grid;gap:14px;padding:22px;border-radius:8px;border:1px solid #e7ddce;background:#fffdfb;box-shadow:0 24px 70px #2f2a3f3d}.account-settings-modal{width:min(100%,520px);max-height:calc(100vh - 36px);overflow-y:auto}.account-settings-heading{display:grid;gap:7px}.account-settings-heading strong{color:#332d45;font-size:21px}.account-settings-heading p,.account-password-section p,.account-danger-zone p{margin:0;color:#6a6278;font-size:13px;line-height:1.5;word-break:keep-all}.account-settings-modal>label{display:grid;gap:7px;color:#514a63;font-size:13px;font-weight:900}.account-password-section{display:grid;gap:10px;margin-top:4px;padding-top:16px;border-top:1px solid #e7ddce}.account-password-section>div{display:grid;gap:4px}.account-password-section>div>strong{color:#332d45;font-size:15px}.account-password-section label{display:grid;gap:6px;color:#514a63;font-size:13px;font-weight:900}.password-change-action{min-height:40px;padding:0 14px;border-radius:8px;color:#4c4470;background:#eee8ff;cursor:pointer;font-weight:900}.password-change-action:disabled{cursor:default;opacity:.45}.account-settings-modal input{width:100%;min-height:42px;padding:8px 10px;border:1px solid #dbe7fa;border-radius:8px;color:#332d45;background:#fff}.account-settings-modal input.readonly-account-field{color:#746d7d;background:#f3f1f5;cursor:not-allowed}.nickname-check-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.nickname-check-row button,.primary-account-action{min-height:40px;padding:0 14px;border-radius:8px;color:#fff;background:#6d58b0;cursor:pointer;font-weight:900;white-space:nowrap}.nickname-check-row button:disabled,.primary-account-action:disabled{cursor:default;opacity:.45}.nickname-check-message{margin:-5px 0 0;font-size:13px;font-weight:900}.nickname-check-message.success{color:#2f7f47}.nickname-check-message.error{color:#a13636}.account-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:4px;padding-top:16px;border-top:1px solid #eadada}.account-danger-zone>div{display:grid;gap:4px}.account-danger-zone strong{color:#8f3030;font-size:14px}.account-danger-zone button{min-height:38px;padding:0 12px;border-radius:8px;color:#8f3030;background:#ffe8e8;cursor:pointer;font-weight:900;white-space:nowrap}.account-delete-copy{display:grid;gap:7px}.account-delete-copy>span{color:#8f3030;font-size:12px;font-weight:900}.account-delete-copy strong{color:#332d45;font-size:21px;line-height:1.25}.account-delete-copy p{margin:0;color:#514a63;font-size:14px;line-height:1.5;word-break:keep-all}.account-delete-modal label{display:grid;gap:7px;color:#514a63;font-size:13px;font-weight:900}.account-delete-modal label strong{color:#8f3030}.account-delete-modal input{width:100%;min-height:42px;padding:8px 10px;border:1px solid #dbe7fa;border-radius:8px;color:#332d45;background:#fff}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.danger-confirm-action{min-height:40px;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;color:#fff;background:#b43a3a;cursor:pointer;font-weight:900}.danger-confirm-action:disabled{cursor:default;opacity:.45}.temporary-password{display:block;padding:10px 12px;border-radius:8px;color:#332d45;background:#fff8db;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:20px;text-align:center;letter-spacing:0}.admin-login-copy{display:grid;gap:6px}.admin-login-copy span{color:#7b718d;font-size:12px;font-weight:900}.admin-login-copy strong{color:#332d45;font-size:22px}.admin-login form{display:grid;gap:12px}.admin-login label{display:grid;gap:7px;color:#514a63;font-size:13px;font-weight:900}.admin-login input{width:100%;min-height:42px;padding:8px 10px;border:1px solid #dbe7fa;border-radius:8px;color:#332d45;background:#fff}.admin-login-error{margin:0;padding:10px 12px;border-radius:8px;color:#a03c3c;background:#ffe8e8;font-size:13px;font-weight:900}.admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.admin-form{gap:16px}.localized-field,.checkbox-group{display:grid;gap:9px;padding:12px;border-radius:8px;background:#fbfff8;border:1px solid rgba(126,171,135,.24)}.localized-field>strong,.checkbox-group legend{color:#3d3654;font-size:14px;font-weight:900}.localized-field label{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:start;gap:8px}.localized-field label span{padding-top:9px;color:#7b718d;font-size:12px;font-weight:900}.localized-field input,.localized-field textarea{width:100%;min-width:0;border:1px solid #dbe7fa;border-radius:8px;color:#332d45;background:#fff}.localized-field input{min-height:38px;padding:7px 9px}.localized-field textarea{min-height:78px;padding:9px;resize:vertical;line-height:1.45}.admin-user-management{display:grid;gap:12px;padding:12px;border-radius:8px;border:1px solid rgba(126,171,135,.24);background:#fbfff8}.admin-user-management .admin-card-title span{display:block;color:#7b718d;font-size:12px;font-weight:900}.admin-user-search{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;min-height:38px;padding:0 10px;border:1px solid #dbe7fa;border-radius:8px;color:#7b718d;background:#fff}.admin-user-search input{min-width:0;border:0;outline:0;color:#332d45;background:transparent}.admin-user-message{margin:0;padding:9px 10px;border-radius:8px;color:#4c4470;background:#fff8db;font-size:13px;font-weight:900}.admin-user-login-action{width:100%;justify-content:center}.admin-user-list{display:grid;gap:8px;max-height:360px;overflow:auto}.admin-user-row{display:grid;grid-template-columns:minmax(160px,1.25fr) 72px 72px 72px 92px 96px 106px minmax(280px,auto);align-items:center;gap:8px;min-height:54px;padding:9px 10px;border-radius:8px;border:1px solid #dbe7fa;background:#f8fbff}.admin-user-row div{min-width:0}.admin-user-row strong,.admin-user-row span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-row .leaderboard-status{width:fit-content;padding:4px 7px;border-radius:999px}.admin-user-row .admin-role-status{width:fit-content;padding:4px 7px;border-radius:999px;color:#746c86;background:#eceaf2}.admin-user-row .admin-role-status.active{color:#3864a6;background:#e7f0ff}.admin-user-row .leaderboard-status.active{color:#2f7f47;background:#e8f7eb}.admin-user-row .leaderboard-status.inactive{color:#8f5d30;background:#fff0dc}.admin-user-actions{display:flex;justify-content:flex-end;gap:6px}.admin-user-actions button{white-space:nowrap}.admin-user-row strong{color:#332d45;font-size:13px}.admin-user-row span{color:#746c86;font-size:12px;font-weight:900}.checkbox-group{border:1px solid rgba(126,171,135,.24)}.checkbox-group div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.checkbox-group label,.admin-card-title label{display:flex;align-items:center;gap:7px;color:#514a63;font-size:13px;font-weight:800;overflow-wrap:anywhere}.checkbox-group input,.admin-card-title input{accent-color:#ff6fae}.admin-map-area{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(300px,1fr);gap:14px;overflow:hidden}.admin-map-area .tool-grid button>span:last-child{white-space:nowrap}.admin-map-area .editor-panel,.admin-map-area .board-stage{grid-area:auto}.admin-map-area .board-stage{min-height:0}.compact{min-height:36px;padding:0 10px}.danger{color:#8f3030;background:#ffe8e8}.secondary-action:disabled,.primary-action:disabled{cursor:default;opacity:.45}.admin-empty-state{grid-column:2 / -1;align-items:center;justify-content:center}.level-meter{align-self:stretch;display:flex;justify-content:space-between;gap:12px;padding:0 4px}.level-meter strong{text-align:right;font-size:14px;word-break:keep-all}.grid-board{max-width:100%;flex:0 1 auto;display:grid;gap:8px;padding:12px;border-radius:8px;background:#dff5ec;border:1px solid #bde4da}.tile{position:relative;aspect-ratio:1;display:grid;place-items:center;min-width:0;border-radius:8px;background:#fbfff8;border:1px solid rgba(126,171,135,.32);color:inherit;padding:0;overflow:hidden}.tile.editor-tile{cursor:pointer}.tile.editor-tile:hover,.tile.editor-tile:focus-visible{outline:none;box-shadow:inset 0 0 0 3px #ff6fae38,0 8px 18px #503c281a}.tile.start{background:#fff8db}.tile.flag{background:#ffe9f3}.tile.switch{background:var(--switch-color, #ffe4e6);box-shadow:inset 0 0 0 2px #62718229}.tile.switch-on{box-shadow:inset 0 0 0 2px #22c55e4d}.tile.switch-off{box-shadow:inset 0 0 0 2px #94a3b847}.tile.warp{background:color-mix(in srgb,var(--warp-color, #7c3aed) 16%,white);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--warp-color, #7c3aed) 38%,transparent)}.tile.dog{box-shadow:inset 0 0 0 3px #ff6fae47}.tile img{width:78%;height:78%;object-fit:contain;z-index:3;filter:drop-shadow(0 5px 5px rgba(52,40,24,.16))}.gem{width:clamp(30px,66%,58px);height:clamp(30px,66%,58px);color:#47aac5;fill:#b7f0ff;stroke-width:2.6;z-index:2;filter:drop-shadow(0 6px 5px rgba(18,105,135,.22))}.flag-icon{width:clamp(34px,72%,64px);height:clamp(34px,72%,64px);color:#ff6fae;fill:#ffd6e6;stroke-width:2.5;z-index:2;filter:drop-shadow(0 6px 5px rgba(176,47,105,.2))}.switch-indicator{position:absolute;left:50%;bottom:10%;transform:translate(-50%);display:grid;align-items:center;width:clamp(42px,60%,68px);height:clamp(24px,30%,34px);border-radius:999px;background:#e5e7eb;border:1px solid rgba(100,116,139,.28);z-index:4;box-shadow:inset 0 1px 1px #ffffffc2,0 5px 10px #2b374229;transition:background-color .2s ease-in-out,border-color .2s ease-in-out,box-shadow .2s ease-in-out}.switch-knob{width:calc(50% - 4px);aspect-ratio:1;margin-left:3px;border-radius:999px;background:#ef4444;box-shadow:inset 0 1px 1px #ffffffa8,0 3px 7px #7f1d1d47;transition:transform .2s ease-in-out,background-color .2s ease-in-out,box-shadow .2s ease-in-out}.tile.switch-on .switch-indicator{background:#dcfce7;border-color:#22c55e6b;box-shadow:inset 0 1px 1px #ffffffb8,0 6px 12px #1665342e}.tile.switch-on .switch-knob{transform:translate(calc(100% + 2px));background:#22c55e;box-shadow:inset 0 1px 1px #ffffffa8,0 3px 7px #15803d47}.warp-icon{display:grid;place-items:center;width:clamp(28px,62%,54px);height:clamp(28px,62%,54px);border-radius:999px;background:#ffffffb8;border:2px solid var(--warp-color, #7c3aed);color:var(--warp-color, #7c3aed);font-size:clamp(20px,5vw,36px);line-height:1;z-index:2;filter:drop-shadow(0 6px 5px color-mix(in srgb,var(--warp-color, #7c3aed) 24%,transparent))}.hedge{width:76%;height:38%;border-radius:999px 999px 8px 8px;background:#77d89a;box-shadow:-12px 5px #65c98c,12px 5px #65c98c,0 13px #4fa978}.status{width:min(100%,620px);flex:0 0 auto;min-height:44px;margin:0;padding:12px 14px;border-radius:8px;background:#f8fbff;color:#4c4470;font-weight:800;text-align:center}.status.success{background:#e7f9e7;color:#2f7f47}.status.failure{background:#ffe8e8;color:#a03c3c}.code-panel{grid-area:code;min-height:0;gap:11px}.editor-panel{overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.code-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:22px}.code-heading span{color:#332d45;font-size:16px;font-weight:900}.input-mode-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:5px;border-radius:8px;background:#f1f7f4;border:1px solid #dce9e2}.input-mode-toggle button{min-width:0;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:6px;color:#5b5572;font-weight:900;background:transparent}.input-mode-toggle button.active{color:#332d45;background:#fff;box-shadow:0 5px 14px #534c701f}.block-editor{flex:1;min-height:220px;display:flex;flex-direction:column;gap:9px;overflow-y:auto;padding:12px;border:1px solid #ded5c8;border-radius:8px;background:#fffdf7}.empty-blocks{flex:1;min-height:150px;display:grid;place-items:center;align-content:center;gap:10px;color:#736b87;text-align:center;font-weight:800}.block-list{display:grid;gap:9px}.code-block{display:grid;gap:10px;padding:10px;border:1px solid #dce9e2;border-left:5px solid #48c1a5;border-radius:8px;background:#fff;box-shadow:0 5px 14px #436c5e14}.repeat-block{border-left-color:#8b5cf6;background:#fbf9ff}.condition-block{border-left-color:#f59e0b;background:#fffbeb}.function-block{border-left-color:#0ea5e9;background:#f0f9ff}.block-main-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px}.block-main-row>svg{color:#8a839e}.code-block-text{min-width:0;display:grid;gap:3px}.code-block-text strong,.code-block-text small{overflow-wrap:anywhere}.code-block-text strong{color:#332d45;font-size:14px}.code-block-text small{color:#6d6680;font-family:SFMono-Regular,Cascadia Code,Consolas,monospace;font-size:12px}.block-actions{display:flex;align-items:center;gap:4px}.block-actions button{width:30px;height:30px;display:grid;place-items:center;border-radius:6px;color:#5f5585;background:#f1edff}.block-actions button:disabled{cursor:default;opacity:.42}.repeat-count{min-width:72px;display:grid;gap:4px;color:#5b5572;font-size:11px;font-weight:900}.repeat-count input{width:72px;height:32px;padding:0 8px;border:1px solid #d6cdea;border-radius:6px;color:#332d45;background:#fff;font:inherit;font-size:14px;text-align:center}.repeat-body{display:grid;gap:9px;margin-left:20px;padding:10px 0 0 13px;border-left:2px dashed #c7b8f8}.condition-body{display:grid;gap:11px;margin-left:20px;padding:10px 0 0 13px;border-left:2px dashed #facc15}.function-body{display:grid;gap:9px;margin-left:20px;padding:10px 0 0 13px;border-left:2px dashed #7dd3fc}.nested-block-section{display:grid;gap:9px}.add-else-button{min-height:34px;justify-self:start;padding:0 12px;border-radius:6px;color:#6d4b00;background:#fef3c7;font-size:13px;font-weight:900}.empty-repeat{margin:0;padding:10px;border-radius:8px;color:#736b87;background:#fff;font-size:13px;font-weight:800;text-align:center}.nested-command-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.nested-command-list span{flex:1 0 100%;color:#6c647e;font-size:12px;font-weight:900}.nested-command-list button{min-height:30px;padding:0 9px;border-radius:6px;color:#4c4470;background:#f1edff;font-size:12px;font-weight:900}.block-editor-note{flex:0 0 auto;margin:auto 0 0;padding-top:6px;color:#6c647e;font-size:13px;font-weight:800;text-align:center}textarea{flex:1;min-height:220px;width:100%;resize:none;padding:16px;border:1px solid #ded5c8;border-radius:8px;outline:none;background:#2f2a3f;color:#fff7e8;line-height:1.55;font-family:SFMono-Regular,Cascadia Code,Consolas,monospace;font-size:15px;-moz-tab-size:2;tab-size:2}textarea:focus{border-color:#ff6fae;box-shadow:0 0 0 3px #ff6fae2e}textarea::placeholder{color:#fff7e89e}.run-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.primary-action,.secondary-action,.tertiary-action{min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:900}.primary-action{color:#fff;background:#ff6fae}.primary-action:disabled{cursor:default;opacity:.66}.secondary-action{color:#4c4470;background:#e8fbf6}.tertiary-action{color:#5f5585;background:#f1edff}.score-card{justify-content:center;flex-wrap:wrap;padding:10px;border-radius:8px;background:#fff8db;font-weight:800}@media(max-width:1120px){.app-shell{height:auto;min-height:100vh;min-height:100dvh;overflow:visible}.workspace{grid-template-columns:minmax(0,1fr) minmax(320px,.86fr);grid-template-rows:auto minmax(360px,auto) auto;grid-template-areas:"lesson lesson" "board code" "commands commands";overflow:visible}.panel,.board-stage{min-height:auto;overflow:visible}.lesson-panel,.editor-panel,.command-panel,.leaderboard-page{overflow:visible;scrollbar-gutter:auto}.leaderboard-row{grid-template-columns:76px minmax(160px,1fr) minmax(130px,.52fr)}.leaderboard-breakdown,.leaderboard-updated{grid-column:2 / -1}textarea{min-height:220px}.admin-area{overflow:visible}.admin-navigation{grid-template-columns:minmax(150px,1fr) auto}.admin-navigation-tabs{grid-column:1 / -1;grid-row:2}.admin-page{min-height:820px;grid-template-columns:minmax(220px,.7fr) minmax(340px,1fr);overflow:visible}.admin-map-area{grid-column:1 / -1}.admin-users-page{overflow:visible}}@media(max-width:760px){.portal-shell{padding:14px 18px 22px}.portal-header{align-items:flex-start;flex-direction:column;gap:12px}.portal-header-actions{width:100%}.portal-title-row{width:100%;justify-content:space-between}.portal-hero{min-height:auto;grid-template-columns:1fr;gap:4px;padding:46px 4px 18px;text-align:center}.portal-eyebrow,.portal-benefits{justify-content:center;margin-inline:auto}.portal-hero-copy>p{margin-inline:auto}.portal-hero-mascot{min-height:260px}.portal-hero-mascot img{max-height:260px}.mascot-glow{width:220px;height:220px}.code-one{right:12%}.code-two{left:10%}.portal-services{padding:28px 0 12px}.portal-section-heading{align-items:flex-start;flex-direction:column;gap:8px}.portal-section-heading>p{text-align:left}.portal-service-grid{grid-template-columns:1fr}.active-service{grid-template-columns:58px minmax(0,1fr)}.service-launch{grid-column:1 / -1;grid-row:auto;min-width:0}.workspace{display:flex;flex-direction:column;gap:12px}.lesson-panel,.editor-panel{order:1}.board-stage{order:2}.code-panel{order:3}.command-panel{order:4}.leaderboard-page{order:1}textarea,.block-editor{flex:0 0 auto;min-height:180px}.board-stage{justify-content:flex-start;gap:12px;padding:14px}.run-row{grid-template-columns:repeat(3,minmax(0,1fr))}.primary-action,.secondary-action,.tertiary-action{min-height:52px;padding:8px 6px;font-size:13px;line-height:1.2;text-align:center}.admin-navigation{display:flex;align-items:stretch;flex-direction:column}.admin-navigation-tabs,.admin-navigation-actions{width:100%}.admin-navigation-tabs button,.admin-navigation-actions button{flex:1}.admin-page{min-height:auto;display:flex;flex-direction:column;overflow:visible}.admin-sidebar,.admin-form,.admin-map-area{overflow:visible}.admin-user-row{grid-template-columns:minmax(0,1fr) auto}.admin-user-row>span{grid-column:1 / -1}.admin-user-actions{grid-column:1 / -1;justify-content:stretch}.admin-user-actions button{flex:1}}@media(max-width:620px){.portal-brand img{width:46px;height:46px}.portal-brand small{display:none}.portal-header-actions{align-items:stretch;flex-direction:column}.portal-auth-actions,.portal-user{width:100%}.portal-auth-actions button,.portal-user button{flex:1}.portal-user>span{flex:1}.portal-hero{padding-top:34px}.portal-hero h1{font-size:clamp(34px,11vw,48px)}.portal-hero-copy>p{font-size:14px}.portal-benefits{align-items:center;flex-direction:column}.portal-section-heading h2{font-size:21px}.portal-footer{align-items:center;flex-direction:column;gap:5px}.app-shell{padding-top:max(10px,env(safe-area-inset-top));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:max(10px,env(safe-area-inset-bottom));padding-left:max(10px,env(safe-area-inset-left))}.topbar{align-items:flex-start;flex-direction:column;gap:8px;min-height:auto;padding:8px 10px}.brand img{width:40px;height:40px}.brand{display:grid;grid-template-columns:40px minmax(0,1fr) auto;width:100%}.topbar-primary-actions{grid-column:3;margin-left:0}.brand>div:nth-child(2){min-width:0}.brand span{display:none}.topbar-menu{right:0;left:auto}.progress-strip{min-width:100%;width:100%;gap:8px}.progress-track{flex:1;width:auto}.command-list button{grid-template-columns:18px 1fr}.leaderboard-heading{align-items:stretch;flex-direction:column}.leaderboard-login-note{grid-template-columns:20px minmax(0,1fr)}.leaderboard-login-note button{grid-column:1 / -1}.leaderboard-row{grid-template-columns:minmax(0,1fr);gap:8px}.leaderboard-breakdown,.leaderboard-updated{grid-column:auto}.leaderboard-breakdown{grid-template-columns:minmax(0,1fr)}.command-list small{grid-column:2}.code-block,.block-main-row{grid-template-columns:minmax(0,1fr)}.block-main-row>svg{display:none}.block-actions{justify-content:flex-end}.repeat-body,.condition-body,.function-body{margin-left:0}.grid-board{gap:5px;padding:8px}.level-meter{flex-direction:column}.level-meter strong{text-align:left}.lesson-panel{gap:10px;padding:14px}.lesson-copy p{line-height:1.45}.success-line,.hint-box{margin-top:8px;padding:9px 10px;min-height:auto;font-size:13px}.code-panel{gap:10px;padding:14px}.score-rules-content{grid-template-columns:minmax(0,1fr)}.score-rules-note{grid-column:1}}@media(max-width:420px){.portal-brand strong{font-size:14px}.portal-language-switch{width:40px;min-width:40px;padding:0}.portal-language-switch span{display:none}}
