@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;600;700&family=Source+Serif+4:wght@400;600&display=swap");:root{--bg:#f5f7fa;--ink:#1f2937;--muted:#6b7280;--accent:#0f766e;--accent-2:#0ea5e9;--panel:#fff;--border:#e5e7eb;--shadow:0 12px 30px rgba(15,23,42,.08);--radius-lg:12px;--radius-md:10px;--gutter:16px;--topbar-h:64px;--page-pad:24px;--sidebar-w:280px}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}.app-shell,body{background:var(--bg);min-height:100vh}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;height:var(--topbar-h);padding:0 var(--page-pad);gap:20px;background:var(--panel);border-bottom:1px solid var(--border);box-shadow:0 6px 18px rgba(15,23,42,.06)}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px}.brand-logo{width:36px;height:36px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(14,165,233,.25)}.brand-logo,.brand-name{font-weight:700}.brand-desc{font-size:12px;color:var(--muted)}.top-nav{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex:1 1}.nav-link{color:var(--muted);text-decoration:none;padding:8px 12px;border-radius:var(--radius-md);font-weight:600;transition:all .3s ease}.nav-link:hover{color:var(--ink);background:rgba(15,118,110,.08)}.nav-link.active{color:var(--accent);background:rgba(15,118,110,.16);box-shadow:0 0 0 1px rgba(15,118,110,.24)}.topbar-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.icon-button{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid var(--border);background:#f8fafc;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .3s ease}.icon-button:hover{border-color:rgba(15,118,110,.5);background:rgba(15,118,110,.08)}.icon-button:active{transform:translateY(1px)}.hamburger{position:relative}.hamburger,.hamburger:after,.hamburger:before{width:14px;height:2px;background:var(--ink);border-radius:999px}.hamburger:after,.hamburger:before{content:"";position:absolute;left:0}.hamburger:before{top:-4px}.hamburger:after{top:4px}.avatar-chip{width:36px;height:36px;border-radius:50%;background:rgba(14,165,233,.16);color:var(--accent);font-weight:700;display:inline-flex;align-items:center;justify-content:center}.page-grid{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-gap:var(--gutter);gap:var(--gutter);padding:var(--gutter) var(--page-pad) calc(var(--page-pad) + 12px);min-height:calc(100vh - var(--topbar-h))}.page-grid.sidebar-collapsed{grid-template-columns:1fr}.sidebar{position:-webkit-sticky;position:sticky;top:calc(var(--topbar-h) + 12px);height:calc(100vh - var(--topbar-h) - var(--page-pad) * 1.5);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:14px;display:flex;flex-direction:column;gap:10px;overflow:hidden}.sidebar.collapsed{display:none}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.sidebar-title{font-weight:700}.sidebar-subtitle{font-size:12px;color:var(--muted);margin-top:4px}.content-column{display:flex;flex-direction:column;gap:var(--gutter);min-height:calc(100vh - var(--topbar-h) - var(--page-pad))}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:4px 4px 8px}.eyebrow{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.page-title{margin:0;font-size:28px;font-weight:700}.page-desc{margin:6px 0 0;color:var(--muted);max-width:720px;line-height:1.6}.pill{padding:8px 12px;border-radius:999px;border:1px solid rgba(15,118,110,.3);background:rgba(15,118,110,.08);color:var(--accent);font-size:12px}.banner{padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:#fff;color:var(--ink)}.banner-error{background:#fff1f0;border-color:#fecdd3;color:#991b1b}.control-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:var(--gutter);gap:var(--gutter);align-items:stretch}.control-card{gap:6px}.span-8{grid-column:span 8}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-7{grid-column:span 7}.control-left-stack{display:grid;grid-template-rows:auto 1fr;grid-gap:12px;gap:12px;height:100%}.model-config-card .control-row{padding:7px 0}.model-config-card .control-row select{min-width:220px}.upload-load-card{padding:14px}.upload-load-card .form-grid{gap:10px}.upload-load-split{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start}.split-block{border:1px solid var(--border);border-radius:var(--radius-md);background:#f8fafc;padding:10px;display:grid;grid-gap:8px;gap:8px}.split-block-title{font-size:13px;font-weight:700;color:var(--ink)}.panel-title.spaced{margin-bottom:4px}.label-strong{font-weight:700}.muted{color:var(--muted);font-size:13px}.control-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--border);flex-wrap:wrap}.control-row:last-child{border-bottom:none}.field-label{font-size:13px;color:var(--muted);min-width:72px}.segmented{display:inline-flex;background:#f8fafc;border:1px solid var(--border);border-radius:999px;padding:3px;gap:6px}.segmented button{border:none;background:transparent;padding:8px 12px;border-radius:999px;cursor:pointer;transition:all .3s ease;font-weight:600}.segmented button:hover{background:rgba(15,118,110,.08)}.segmented button.active{background:var(--accent);color:#fff;box-shadow:0 8px 22px rgba(15,118,110,.25)}.checkbox{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.control-row input[type=text],.control-row select{min-width:150px;border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 10px;font-size:14px;background:#fff;transition:border-color .3s ease,box-shadow .3s ease}.control-row input[type=text]:focus,.control-row select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,118,110,.12)}.control-row select:disabled{background:#f3f4f6;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.field input[type=file],.field input[type=text],.field select{border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;font-size:14px;background:#fff;transition:border-color .3s ease,box-shadow .3s ease}.field input[type=file]{padding:8px}.field input[type=text]:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,118,110,.12)}.input-row{display:flex;align-items:center;gap:8px}.parse-actions{display:grid;grid-template-columns:minmax(140px,190px) minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px}.parse-hint{text-align:left;margin:0}.parse-start-btn{width:auto;min-width:160px;padding:10px 18px;font-size:18px;font-weight:700;letter-spacing:.6px;background:linear-gradient(135deg,#0f766e,#0ea5e9)}.parse-start-btn:hover{background:linear-gradient(135deg,#0d665f,#0284c7)}.ghost-actions{justify-content:flex-end}.status-card{gap:8px}.compact-status{padding:12px 14px;gap:12px;justify-content:space-between;height:100%}.compact-status-head{display:flex;align-items:flex-start;gap:12px}.progress-ring{width:84px;aspect-ratio:1/1;border-radius:50%;display:grid;place-items:center;transition:background .25s ease}.progress-ring-inner{width:63px;height:63px;border-radius:50%;background:#fff;border:1px solid rgba(148,163,184,.25);display:grid;place-items:center;font-size:18px;font-weight:700;color:var(--ink)}.compact-status-info{min-width:0;display:grid;grid-gap:4px;gap:4px}.compact-status-id{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-status-label{font-size:14px;font-weight:600;color:var(--ink);line-height:1.4;min-height:38px}.compact-status-meta{font-size:12px;color:var(--muted)}.compact-status-actions{display:flex;justify-content:flex-end;margin-top:auto}.compact-publish{padding:7px 12px;box-shadow:none}.workspace{display:grid;grid-template-columns:2fr 1fr;grid-gap:var(--gutter);gap:var(--gutter);min-height:460px;height:clamp(520px,70vh,820px)}.workspace .panel{min-height:0;height:100%}.page{padding:var(--page-pad);min-height:calc(100vh - var(--topbar-h));flex-direction:column;gap:var(--gutter)}.hero,.page{display:flex}.hero{justify-content:space-between;align-items:center;gap:24px;padding:24px 28px;background:linear-gradient(135deg,rgba(15,118,110,.14),rgba(14,165,233,.12));border-radius:var(--radius-lg);box-shadow:var(--shadow)}.title{font-size:clamp(28px,3vw,40px);font-weight:700;letter-spacing:.5px}.subtitle{max-width:520px;color:var(--muted);margin-top:8px;font-family:"Source Serif 4",serif;font-size:16px}.llm-row{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.llm-label{font-size:12px;color:var(--muted)}.llm-toggle{display:inline-flex;gap:6px}.llm-toggle button{border:1px solid var(--border);background:transparent;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.llm-toggle button.active{background:var(--accent);color:#fff;border-color:transparent}.llm-meta{font-size:12px;color:var(--muted)}.upload-card{background:var(--panel);padding:16px;border-radius:var(--radius-lg);border:1px solid var(--border);min-width:240px;display:flex;flex-direction:column;gap:8px}.upload-title{font-weight:600;margin-bottom:10px}.upload-card input[type=text]{border:1px solid var(--border);border-radius:10px;padding:6px 10px;font-size:13px}.load-btn{border:1px solid var(--border);background:var(--accent);color:#fff;border-radius:999px;padding:6px 12px;font-size:12px;cursor:pointer;transition:all .3s ease}.load-btn:hover{background:#0c8b82}.hint{font-size:12px;color:var(--muted);margin-top:8px}.error-banner{margin:0 0 12px;padding:12px 14px;border-radius:var(--radius-md);background:#fff1f0;color:#991b1b;border:1px solid #fecdd3}.progress-card{background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--border);padding:14px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.progress-label{font-size:14px}.progress-track{width:100%;height:12px;border-radius:999px;background:#e5e7eb;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 8px 18px rgba(14,165,233,.2);transition:width .3s ease}.progress-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.progress-meta,.progress-meta.secondary{font-size:12px;color:var(--muted)}.progress-actions{display:flex;justify-content:flex-end}.status-title{display:inline-flex;align-items:center;gap:8px}.progress-spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(15,118,110,.2);border-top:2px solid var(--accent);display:inline-block}.progress-spinner.spinning{animation:spin .9s linear infinite}.progress-spinner.paused{border-top-color:rgba(15,118,110,.2)}.progress-label{color:var(--ink);font-weight:600}@keyframes spin{to{transform:rotate(1turn)}}.layout{display:grid;grid-template-columns:1fr 2fr 2fr;grid-gap:20px;gap:20px;flex:1 1}.layout,.panel{min-height:0;overflow:hidden}.panel{background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow);padding:16px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .3s ease,transform .2s ease}.panel:hover{box-shadow:0 14px 36px rgba(15,23,42,.08);transform:translateY(-1px)}.empty{padding:12px;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius-md);background:#f8fafc;text-align:center}.panel-title{font-weight:700;font-size:15px;display:flex;justify-content:space-between;align-items:center;margin:0 0 8px}.chapter-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto;min-height:0}.sidebar .panel{height:100%}.sidebar .chapter-list{flex:1 1}.chapter-item{display:flex;justify-content:space-between;align-items:flex-start;flex-direction:column;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid transparent;background:#f8fafc;cursor:pointer;transition:all .3s ease;text-align:left}.chapter-item:hover{border-color:var(--border);box-shadow:0 10px 22px rgba(15,23,42,.06)}.chapter-item.active{border-color:var(--accent);background:rgba(15,118,110,.14)}.chapter-title{flex:1 1}.chapter-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.chapter-note{font-size:12px;color:#7a2e20}.status{font-size:12px;padding:3px 8px;border-radius:999px;text-transform:capitalize}.status-pending{background:#f3f4f6;color:#6b7280}.status-processing{background:rgba(15,118,110,.16);color:#0f766e}.status-done{background:rgba(34,197,94,.16);color:#166534}.status-failed{background:rgba(239,68,68,.16);color:#b91c1c}.graph-panel{min-height:0;height:100%;position:relative}.graph-canvas{flex:1 1;min-height:0;border-radius:var(--radius-lg);background:#f8fafc;border:1px dashed rgba(17,24,39,.12)}.g6-contextmenu{font-family:Space Grotesk,system-ui,sans-serif;border-radius:10px;box-shadow:0 12px 22px rgba(15,23,42,.12)}.g6-contextmenu-li{color:#1f2937}.g6-contextmenu-li:hover{background-color:rgba(15,118,110,.08)}.graph-fullscreen-btn{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:8px;border:1px solid rgba(15,23,42,.12);background:rgba(15,23,42,.08);color:var(--ink);cursor:pointer;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:all .3s ease}.graph-fullscreen-btn:hover{background:rgba(15,23,42,.14)}.graph-panel.fullscreen{position:fixed;inset:0;z-index:60;border-radius:0;padding:20px}.graph-panel.fullscreen .graph-canvas{border-radius:var(--radius-md)}.mode-toggle button{border:1px solid var(--border);background:transparent;border-radius:999px;padding:4px 10px;font-size:12px;margin-left:6px;cursor:pointer}.mode-toggle button.active{background:var(--accent);color:#fff;border-color:transparent}.evidence-box{font-size:13px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:rgba(14,165,233,.08);margin-bottom:10px}.evidence-box.muted{color:var(--muted)}.reader-body{flex:1 1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.pdf-frame{width:100%;flex:1 1;min-height:0;border:none;border-radius:var(--radius-lg)}.markdown-body{flex:1 1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:6px;font-family:"Source Serif 4",serif;line-height:1.6}.markdown-body mark{background:rgba(14,165,233,.35)}.empty-state{padding:20px;color:var(--muted)}@media (max-width:1200px){.page-grid{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.span-4,.span-5,.span-7,.span-8{grid-column:span 12}.control-left-stack{gap:12px}.parse-actions,.upload-load-split{grid-template-columns:1fr}.parse-actions{align-items:stretch}.parse-start-btn{width:100%}.workspace{grid-template-columns:1fr}}@media (max-width:900px){.top-nav{display:none}.page-grid{padding:12px var(--page-pad) var(--page-pad)}.sidebar{position:fixed;inset:var(--topbar-h) var(--page-pad) auto var(--page-pad);height:auto;z-index:25;box-shadow:0 18px 36px rgba(15,23,42,.12)}.sidebar.collapsed{display:none}}.account-link{margin-top:8px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 16px}.auth-card{width:min(420px,100%);background:var(--panel);border-radius:24px;border:1px solid var(--border);box-shadow:var(--shadow);padding:28px;display:flex;flex-direction:column;gap:14px}.auth-title{font-size:24px;font-weight:700}.auth-subtitle{color:var(--muted);font-size:14px}.auth-tabs{display:flex;gap:6px}.auth-tabs button{flex:1 1;border-radius:999px;border:1px solid var(--border);background:transparent;padding:6px 8px;font-size:12px;cursor:pointer}.auth-tabs button.active{background:var(--accent);color:#fff;border-color:transparent}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field input{border:1px solid var(--border)}.auth-field input,.auth-message{border-radius:10px;padding:8px 10px}.auth-message{background:rgba(47,111,109,.1);font-size:12px}.auth-primary{border:none;border-radius:999px;padding:10px 14px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.account-page{min-height:100vh;display:flex;background:var(--bg)}.account-nav{width:var(--sidebar-w);padding:24px 16px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:16px;background:hsla(0,0%,100%,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav-brand{font-size:18px;font-weight:700}.nav-item{background:transparent;border:1px solid transparent;padding:8px 12px;text-align:left;border-radius:10px;cursor:pointer;font-size:13px}.nav-item.active{background:rgba(47,111,109,.14);border-color:var(--border)}.nav-spacer{flex:1 1}.account-main{flex:1 1;padding:28px;display:flex;flex-direction:column;gap:20px}.account-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.account-title{font-size:24px;font-weight:700}.account-subtitle{color:var(--muted);font-size:14px;margin-top:6px}.primary{border:none;border-radius:999px;background:var(--accent);color:#fff;box-shadow:0 10px 22px rgba(15,118,110,.22)}.ghost,.primary{padding:8px 16px;cursor:pointer;transition:all .3s ease}.ghost{border:1px solid var(--border);border-radius:999px;background:transparent}.primary:hover{background:#0c8b82}.primary:active{transform:translateY(1px)}.primary:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.ghost:hover{border-color:rgba(15,118,110,.6);color:var(--accent);background:rgba(15,118,110,.06)}.notice{padding:8px 12px;border-radius:10px;background:rgba(47,111,109,.12);font-size:12px}.profile-card{background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--border);padding:16px 20px;justify-content:space-between;flex-wrap:wrap;gap:16px}.profile-card,.profile-main{display:flex;align-items:center}.profile-main{gap:12px}.avatar{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center}.avatar,.profile-name{font-weight:600}.profile-email{font-size:12px;color:var(--muted)}.profile-meta{display:flex;gap:24px}.meta-label{font-size:12px;color:var(--muted)}.meta-value{font-size:16px;font-weight:600}.asset-panel{display:grid;grid-template-columns:240px 1fr;grid-gap:16px;gap:16px;background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--border);padding:16px}.asset-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto}.asset-item{text-align:left;border:1px solid transparent;border-radius:12px;padding:10px;background:#f8fafc;cursor:pointer}.asset-item.active{border-color:var(--accent);background:rgba(15,118,110,.14)}.asset-name{font-weight:600}.asset-provider{font-size:12px;color:var(--muted)}.asset-detail{gap:12px}.asset-detail,.detail-row{display:flex;flex-direction:column}.detail-row{gap:6px}.detail-row input,.detail-row select,.detail-row textarea{border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.detail-actions{display:flex;justify-content:flex-end;gap:10px}.model-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.model-toolbar input{flex:1 1;min-width:220px}.model-list{max-height:min(420px,55vh);overflow-y:auto;border:1px solid var(--border);border-radius:14px;background:rgba(31,29,26,.03)}.model-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid rgba(31,29,26,.08)}.model-item:last-child{border-bottom:none}.model-name{font-size:13px;word-break:break-all}.books-panel{background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--border);padding:16px}.book-grid{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:12px;gap:12px}.book-card{background:#f8fafc;border-radius:16px;padding:12px;display:flex;gap:10px;align-items:center;justify-content:space-between}.book-card.clickable{cursor:pointer;transition:box-shadow .3s ease,transform .2s ease}.book-card.clickable:hover{box-shadow:0 12px 24px rgba(15,23,42,.08);transform:translateY(-1px)}.book-cover{width:48px;height:48px;border-radius:12px;background:rgba(47,111,109,.2);display:flex;align-items:center;justify-content:center;font-weight:600}.book-info{display:flex;flex-direction:column;gap:4px}.book-status{font-size:12px;padding:2px 8px;border-radius:999px;width:-moz-fit-content;width:fit-content;background:#e5e7eb;color:#6b7280}.book-status.published{background:rgba(15,118,110,.16);color:#0f766e}.book-status.draft{background:rgba(234,179,8,.16);color:#a16207}.book-actions{margin-left:auto;display:flex;align-items:center}.ghost.danger{border-color:rgba(220,38,38,.3);color:#b91c1c}.ghost.danger:hover{background:rgba(220,38,38,.08);border-color:rgba(220,38,38,.6)}.book-title{font-weight:600;font-size:14px}.book-date,.book-id{font-size:12px;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;z-index:20}.modal{width:min(520px,92vw);background:var(--panel);border-radius:var(--radius-lg);padding:20px;border:1px solid var(--border);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.modal-title{font-weight:600;font-size:16px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.tutorial-entry-btn{text-decoration:none;border:1px solid rgba(15,118,110,.34);border-radius:999px;padding:6px 12px;color:var(--accent);background:rgba(15,118,110,.08);font-size:12px;font-weight:600;transition:all .25s ease}.tutorial-entry-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 8px 18px rgba(15,118,110,.22)}.tutorial-entry-btn:active{transform:translateY(1px)}.tutorial-page{min-height:calc(100vh - var(--topbar-h));display:grid;grid-template-columns:300px minmax(0,1fr)}.tutorial-sidebar{position:-webkit-sticky;position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));padding:22px 16px;border-right:1px solid var(--border);background:hsla(0,0%,100%,.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow-y:auto}.tutorial-sidebar-title{font-size:20px;font-weight:700}.tutorial-sidebar-subtitle{margin-top:6px;color:var(--muted);font-size:13px}.tutorial-nav-list{margin-top:14px;display:flex;flex-direction:column;gap:8px}.tutorial-nav-item{border:1px solid transparent;border-radius:10px;background:#f8fafc;color:var(--ink);text-align:left;cursor:pointer;padding:10px 12px;font-size:14px;line-height:1.4;transition:all .25s ease}.tutorial-nav-item:hover{border-color:rgba(15,118,110,.34);background:rgba(15,118,110,.06)}.tutorial-nav-item.active{border-color:var(--accent);background:rgba(15,118,110,.16);color:#0b4a45;font-weight:600}.tutorial-main{min-width:0;padding:30px 32px;display:flex;flex-direction:column;gap:16px}.tutorial-header{padding-bottom:12px;border-bottom:1px solid var(--border)}.tutorial-title{margin:0;font-size:clamp(28px,3vw,36px);line-height:1.15}.tutorial-meta{margin-top:8px;color:var(--muted);font-size:12px}.tutorial-content{margin-right:auto;width:min(100%,980px);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:24px 28px}.tutorial-content h1,.tutorial-content h2,.tutorial-content h3{font-family:Space Grotesk,system-ui,sans-serif;line-height:1.28}.tutorial-content h1{font-size:30px}.tutorial-content h2{margin-top:1.4em;font-size:24px}.tutorial-content li,.tutorial-content p{font-size:16px;line-height:1.72}.tutorial-content pre{background:#111827;color:#f9fafb;border-radius:10px;padding:12px 14px;overflow-x:auto}.tutorial-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.tutorial-content img{max-width:100%;height:auto;display:block;margin:14px auto;border-radius:8px}@media (max-width:1024px){.tutorial-page{grid-template-columns:1fr}.tutorial-sidebar{position:relative;top:0;height:auto;border-right:none;border-bottom:1px solid var(--border)}}@media (max-width:768px){.tutorial-main{padding:16px}.tutorial-content{padding:18px}}