:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#edf2f7;background:#0d1621;--bg:#0d1621;--panel:#172432;--ink:#edf2f7;--muted:#a8b7c3;--accent:#f1a23a;--line:#ffffff1b}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 76% -15%,#244052 0,transparent 38rem),var(--bg);line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:default}a{color:inherit;text-decoration:none}
.topbar{min-height:72px;display:flex;align-items:center;gap:24px;padding:11px max(24px,calc((100vw - 1320px)/2));border-bottom:1px solid var(--line);background:#101b28ef;position:sticky;top:0;z-index:5;backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:11px;white-space:nowrap;font-size:18px;font-weight:750;letter-spacing:-.02em}.brand b{color:var(--accent)}.brand small{display:block;color:#95a8b7;font-size:10px;font-weight:650;letter-spacing:.06em}.brand-mark{width:37px;height:37px;border-radius:10px}.topbar nav{display:flex;gap:18px;align-items:center;margin-left:26px}.topbar nav button{border:0;background:transparent;color:#a9b9c5;padding:10px 1px;font-weight:650;font-size:13px;position:relative}.topbar nav button.active{color:#fff}.topbar nav button.active:after{content:"";position:absolute;bottom:3px;left:0;right:0;height:2px;border-radius:2px;background:var(--accent)}.top-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.cloud-status{font-size:12px;color:#99acba}.sync-button,.primary{border:0;border-radius:10px;background:var(--accent);color:#18212b;font-weight:750;padding:10px 16px;white-space:nowrap}.sync-button{border:1px solid #f1a23a66;background:#f1a23a1e;color:#ffd18e;font-size:12px}.sync-button.synced{background:#3f775c33;border-color:#75cb9c;color:#9ae2ba}.primary:hover,.sync-button:hover{filter:brightness(1.1)}
#app{width:min(1280px,calc(100% - 48px));margin:0 auto;padding:34px 0 80px}.hero{display:flex;align-items:end;justify-content:space-between;gap:28px;margin:8px 0 28px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.17em;color:#ffc37a}.hero h1{font-size:clamp(34px,4vw,50px);line-height:1.04;letter-spacing:-.055em;margin:8px 0 10px}.hero p{color:var(--muted);margin:0;max-width:620px}.hero-actions{display:flex;gap:9px;flex:none}.secondary,.ghost{border:1px solid #ffffff2a;background:#223443;color:#e5eef4;padding:10px 15px;border-radius:10px;font-weight:650}.ghost{background:transparent}.secondary:hover,.ghost:hover{border-color:#ffc37a99}.muted{color:var(--muted)}
.learn-layout{display:grid;grid-template-columns:265px minmax(0,1fr);gap:28px}.lesson-nav{align-self:start;position:sticky;top:100px;display:grid;gap:3px}.nav-intro{display:flex;justify-content:space-between;padding:7px 11px 15px;color:#829aab;font-size:10px;font-weight:800;letter-spacing:.12em}.nav-intro b{color:#d1dde5;letter-spacing:0}.lesson-nav button{display:flex;align-items:center;gap:12px;text-align:left;border:0;border-radius:10px;color:#b4c4d0;background:transparent;padding:11px 12px;min-height:44px}.lesson-nav button span{font-size:10px;color:#718a9d;font-weight:800}.lesson-nav button b{font-size:13px;font-weight:640}.lesson-nav button:hover{background:#1b2e3c}.lesson-nav button.active{background:#263846;color:#fff}.lesson-nav button.active span{color:var(--accent)}.lesson-article{min-width:0;padding:30px 34px 35px;background:#172432;border:1px solid #ffffff17;border-radius:18px}.lesson-head{border-bottom:1px solid var(--line);padding-bottom:23px}.lesson-head h2{font-size:clamp(29px,3vw,38px);letter-spacing:-.045em;line-height:1.1;margin:9px 0 13px}.lesson-head p{font-size:16px;color:#c3d1d9;line-height:1.65;max-width:760px;margin:0}.lesson-section{margin-top:27px}.lesson-section h3{display:flex;align-items:center;gap:9px;margin:0 0 14px;font-size:15px;letter-spacing:-.015em}.section-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%}.step-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.step{display:flex;gap:13px;padding:15px;border-radius:11px;background:#203140}.step span{color:var(--accent);font-size:11px;font-weight:800;padding-top:2px}.step p{margin:0;color:#d6e1e8;font-size:13px;line-height:1.55}.definition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.definition{padding:15px 16px;background:#203140;border-radius:11px;min-height:94px}.definition b{display:block;color:#ffd08f;font-size:13px;margin-bottom:5px}.definition span{font-size:13px;color:#c5d5df;line-height:1.5}.example{background:#f2f3ef;color:#213144;padding:22px 24px;border-radius:13px;margin:0}.example-label{font-size:10px;font-weight:800;letter-spacing:.16em;color:#52728b}.example-sentence{font-size:19px;font-weight:740;line-height:1.45;margin:12px 0 8px}.example-analysis{font-size:13px;color:#496078;border-top:1px solid #dce3e3;padding-top:11px;margin:0;line-height:1.55}.lesson-footer{display:flex;align-items:center;gap:16px;margin-top:25px}.lesson-footer span{font-size:12px;color:#94a9b7}
.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:18px}.workspace,.tool-panel{min-width:0;background:#172432;border:1px solid #ffffff17;border-radius:17px;padding:23px}.tool-panel{align-self:start;position:sticky;top:96px}.tool-panel h2{font-size:23px;letter-spacing:-.035em;margin:6px 0}.tool-intro{font-size:13px;color:var(--muted);margin:0 0 21px}.sentence-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.sentence-top label,.canvas-heading span:first-child{font-size:10px;letter-spacing:.15em;font-weight:800;color:#a9c0cd}.sentence-field{display:block;width:100%;min-height:54px;resize:vertical;background:#20313f;border:1px solid #ffffff2b;border-radius:10px;color:#f0f5f8;font-size:18px;font-weight:650;padding:12px 15px;outline:none}.sentence-field:focus,.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f1a23a22}.sentence-field::placeholder{color:#8194a2}.badge{border-radius:99px;background:#294252;color:#b7d8e8;padding:5px 10px;font-size:11px}.editor-actions{display:flex;gap:13px;flex-wrap:wrap;margin:13px 0 24px}.editor-actions button{background:none;border:0;color:#b3c9d7;font-size:12px;padding:0}.editor-actions button:hover{color:#ffd08f}.canvas-heading{display:flex;align-items:start;justify-content:space-between;gap:10px;margin-bottom:12px}.canvas-heading p{margin:4px 0 0;color:#839eae;font-size:12px}.canvas-heading .levels-label{font-size:11px;color:#87a1b1;white-space:nowrap}.canvas-wrap{max-width:100%;overflow:auto;border-radius:11px}.canvas{width:max-content;min-width:100%;padding:25px 40px 20px;background:#f6f7f3;color:#20344c;border-radius:11px;box-shadow:inset 0 0 0 1px #dce2df}.sentence-grid,.analysis-row{display:grid;grid-template-columns:var(--columns);width:max-content;position:relative}.sentence-grid{height:42px;border-bottom:1px solid #d3dfdd}.token{border:0;background:transparent;color:#1d354b;font-size:17px;font-weight:750;padding:4px 3px;white-space:nowrap;touch-action:none;border-radius:4px}.token:hover{background:#e8ece4}.token.selected{background:#dceccf;color:#153443}.analysis-row{height:38px}.row-num{position:absolute;left:-21px;top:4px;color:#b1c4cb;font-size:10px;pointer-events:none}.block{grid-row:1;position:relative;z-index:1;min-width:0;height:14px;margin:3px 1px 0;background:transparent;border:0;border-bottom:2px solid var(--block-color);border-left:1px solid var(--block-color);border-right:1px solid var(--block-color);border-radius:0 0 3px 3px;cursor:grab;touch-action:none}.block.active{background:#e0ebf099}.block .title{position:absolute;top:17px;left:50%;transform:translateX(-50%);color:#2c6094;font-size:11px;font-weight:780;white-space:nowrap;background:#f6f7f3;padding:0 3px;line-height:15px;pointer-events:none}.handle{position:absolute;top:0;bottom:-1px;width:10px;opacity:0;cursor:ew-resize}.handle.left{left:-4px}.handle.right{right:-4px}.block:hover .handle,.block.active .handle{opacity:1}.handle:after{content:"";display:block;width:4px;height:10px;margin:3px auto;background:#4f80a8;border-radius:2px}.details{margin-top:16px;background:#223443;padding:15px;border-radius:10px}.details h3{margin:0 0 6px;font-size:15px}.details p{font-size:12px;margin:0 0 10px}.details-actions{display:flex;gap:8px}.details-actions button{font-size:11px;padding:7px 9px}.status-line{display:flex;gap:6px;margin-top:13px;font-size:11px;color:#829bab}.status-separator{opacity:.5}
.field{display:grid;gap:6px;margin-bottom:14px}.field label{font-size:11px;font-weight:750;color:#adbfca}.field input,.field select{width:100%;border:1px solid #ffffff30;background:#233544;color:#edf3f6;border-radius:9px;padding:10px 11px;outline:none;font-size:12px}.field input::placeholder{color:#8598a5}.add-button{width:100%;text-align:center;margin-top:3px}.selection-hint{font-size:11px;color:#a8bbca;margin:10px 0 17px}.tool-help{border-top:1px solid var(--line);padding-top:16px}.tool-help b{font-size:12px}.tool-help p{font-size:11px;color:#90a7b8;line-height:1.6;margin:6px 0 0}
.account-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:19px}.metric{min-width:130px;background:#1e3040;padding:13px 17px;border-radius:10px;color:#9db1c0;font-size:12px}.metric b{display:block;font-size:25px;color:#fff;letter-spacing:-.04em}.toolbar{display:flex;gap:8px;margin-bottom:16px}.toolbar button{border:0;border-radius:8px;padding:7px 12px;background:#243949;color:#d1dee7;font-size:12px}.exercise-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}.exercise-card{background:#172432;border:1px solid #ffffff1a;border-radius:13px;padding:17px}.exercise-card h3{font-size:16px;line-height:1.45;min-height:45px}.exercise-card p{font-size:12px}.exercise-card .actions{display:flex;gap:7px;flex-wrap:wrap}.exercise-card button{font-size:11px;padding:7px 10px}.empty{padding:30px;color:#7490a1;font-size:13px}.canvas .empty{color:#526e80}#toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,130px);background:#f2f4f1;color:#17293a;padding:10px 15px;border-radius:10px;font-size:12px;font-weight:700;z-index:20;box-shadow:0 10px 30px #0008;transition:transform .2s}#toast.show{transform:translate(-50%,0)}
@media(max-width:1020px){.editor-layout{grid-template-columns:1fr}.tool-panel{position:static}.learn-layout{grid-template-columns:215px 1fr}.topbar{gap:15px}.topbar nav{margin-left:0}}
.lesson-diagram{overflow:auto;margin-top:17px;padding:15px 4px 0;border-top:1px solid #dce3e3}.lesson-diagram .sentence-grid{border-bottom-color:#cad8df}.demo-token{display:grid;place-items:center;height:42px;padding:0 3px;color:#1f4059;font-size:15px;font-weight:730;white-space:nowrap}.lesson-diagram .analysis-row{height:37px}.demo-block{pointer-events:none}.demo-block .title{background:#f2f3ef}.lesson-diagram .block{margin-top:2px}
@media(max-width:720px){#app{width:min(100% - 28px,1280px);padding-top:22px}.topbar{flex-wrap:wrap;padding:10px 16px;gap:8px}.topbar nav{order:3;width:100%;justify-content:space-around;margin:0}.top-actions{margin-left:auto}.cloud-status{display:none}.hero{display:block}.hero-actions{margin-top:17px}.learn-layout{grid-template-columns:1fr}.lesson-nav{position:static;display:flex;overflow-x:auto;gap:5px}.lesson-nav button{flex:none;max-width:190px}.nav-intro{display:none}.lesson-article{padding:22px}.step-list,.definition-grid{grid-template-columns:1fr}.lesson-footer{display:block}.lesson-footer span{display:block;margin-top:9px}.canvas-heading .levels-label{display:none}.workspace,.tool-panel{padding:17px}}
/* Dark analysis surface and drag-first syntax palette */
.example{background:#203342;color:#e9f2f7}.example-label{color:#e5b77a}.example-sentence{color:#f3f6f7}.example-analysis{color:#b8cddd;border-top-color:#ffffff24}.lesson-diagram{border-top-color:#ffffff24}.lesson-diagram .sentence-grid{border-bottom-color:#ffffff24}.demo-token{color:#e7f1f6}.demo-block .title{background:#203342}
.editor-layout{display:block}.workspace{padding:24px}.canvas-wrap{border:1px solid #ffffff16;border-radius:12px;background:#102131}.canvas{background:#102131;color:#eaf1f6;box-shadow:none;padding:18px 44px 14px}.canvas .empty{color:#9bb4c3}.sentence-grid{border-bottom:1px solid #ffffff23}.token{color:#eef4f7}.token:hover{background:#263d4e}.token.selected{background:#365b67;color:#f6fbff}.row-num{color:#5f8193}.analysis-row{height:36px;border-bottom:1px solid #ffffff08}.analysis-row:hover,.analysis-row.drop-hover{background:#ffffff0c}.block{height:34px;margin:0 1px;border:0;background:transparent;z-index:1}.block:before{content:"";position:absolute;top:2px;left:0;right:0;height:12px;border-left:1px solid var(--block-color);border-right:1px solid var(--block-color);border-bottom:2px solid var(--block-color);border-radius:0 0 3px 3px}.block.active,.block.drop-hover{background:color-mix(in srgb,var(--block-color) 16%,transparent);border-radius:5px}.block.drop-hover{outline:1px solid var(--block-color)}.block .title{top:16px;color:var(--block-color);background:#102131;max-width:calc(100% + 45px);overflow:hidden;text-overflow:ellipsis}.handle{top:2px;bottom:auto;height:17px;width:13px}.handle:after{background:var(--block-color)}.details{background:#203443}.details-heading{display:flex;align-items:center;gap:9px}.details-heading h3{margin:0}.detail-dot{display:block;width:9px;height:9px;border-radius:50%}.details-heading .badge{margin-left:auto}
.palette-shell{position:sticky;bottom:10px;z-index:4;margin-top:20px;padding:15px 16px 11px;background:#1b2c3a;border:1px solid #ffffff30;border-radius:14px;box-shadow:0 16px 42px #0008}.palette-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.palette-top h2{font-size:16px;letter-spacing:-.03em;margin:2px 0 5px}.palette-controls{display:flex;align-items:center;gap:6px}.palette-controls button{border:1px solid #ffffff28;background:#2a4050;color:#eaf3f7;border-radius:8px;min-width:29px;height:29px;font-size:17px}.palette-controls button[data-action="custom-label"]{font-size:11px;padding:0 9px}.palette-controls input{width:135px;height:29px;background:#102131;border:1px solid #ffffff29;color:#ecf2f6;border-radius:8px;padding:5px 9px;font-size:11px;outline:none}.palette-controls input:focus{border-color:var(--accent)}.palette-scroll{display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#527083 transparent;padding:4px 0 8px;min-height:76px}.palette-group{flex:none}.palette-group-title{display:block;color:#90a9b8;font-size:9px;font-weight:800;letter-spacing:.11em;margin:0 0 5px}.palette-items{display:flex;gap:6px}.palette-chip{display:flex;align-items:center;gap:6px;max-width:175px;min-height:35px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--chip-color) 55%,transparent);border-radius:8px;background:color-mix(in srgb,var(--chip-color) 16%,#102131);color:var(--chip-color);cursor:grab;touch-action:none;white-space:nowrap}.palette-chip b{font-size:12px}.palette-chip small{overflow:hidden;text-overflow:ellipsis;color:#cad9e2;font-size:10px}.palette-chip:hover{background:color-mix(in srgb,var(--chip-color) 27%,#102131)}.palette-chip:active{cursor:grabbing}.palette-hint{font-size:10px;color:#92abba;margin:2px 0 0}.palette-empty{color:#9bb3c2;font-size:12px}.palette-drag-ghost{display:none;position:fixed;z-index:9999;pointer-events:none;max-width:230px;padding:8px 13px;border:1px solid var(--chip-color);border-radius:9px;background:#1d3443;color:var(--chip-color);box-shadow:0 12px 30px #0009;font-size:12px;font-weight:800;white-space:nowrap}.palette-drag-ghost.visible{display:block}
.palette-shell{position:static}.palette-shell.is-sticky{position:sticky;bottom:10px}.editor-hero{margin-bottom:16px}.editor-hero h1{font-size:clamp(30px,3vw,40px)}.sentence-field{height:58px;min-height:58px}.workspace{padding-bottom:30px}
#toast{background:#203442;color:#eff5f8;border:1px solid #ffffff35}.lesson-diagram .block{height:34px}.lesson-diagram .block .title{background:#203342}.lesson-diagram .analysis-row{border-bottom:0}
@media(max-width:720px){.workspace{padding:16px}.palette-shell{bottom:0;margin:17px -8px 0;padding:12px}.palette-top{align-items:start;flex-direction:column;gap:6px}.palette-controls{width:100%}.palette-controls input{flex:1;width:0}.palette-scroll{min-height:72px}.palette-hint{display:none}.canvas{padding:17px 35px}.editor-hero h1{font-size:32px}}

.lesson-diagram .demo-block .title{color:#a6cff4}
.lesson-diagram .demo-block{--block-color:#7dbaff!important}
@media(max-width:720px){.palette-shell.is-sticky{position:static}}
