@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=DM+Mono:ital,wght@0,300;0,400;0,500;1,400&display=swap";:root{--accent:#1d9e75;--accent-dark:#0f6e56;--accent-dim:#e1f5ee;--accent-muted:#9fe1cb;--accent-text:#085041;--bg:#fff;--bg-2:#f7f8f7;--bg-3:#efefef;--surface:#fff;--surface-2:#f7f8f7;--text:#111312;--text-2:#3d4340;--text-3:#7a8580;--text-4:#a8b2ae;--border:#e3e8e5;--border-2:#cbd4d0;--red:#dc3545;--red-dim:#fdecea;--amber:#c47a0a;--amber-dim:#faeeda;--amber-text:#854f0b;--green:#1d9e75;--green-dim:#e1f5ee;--font-display:"DM Sans", system-ui, sans-serif;--font-mono:"DM Mono", "Fira Code", monospace;--page-width:1100px;--page-padding:24px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-full:100px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-focus:0 0 0 3px #1d9e7526}@media (prefers-color-scheme:dark){:root:not(.light){--accent:#2dc48e;--accent-dark:#1d9e75;--accent-dim:#0d2e23;--accent-muted:#1a5c44;--accent-text:#7eecc4;--bg:#0f1311;--bg-2:#161c19;--bg-3:#1e2622;--surface:#161c19;--surface-2:#1e2622;--text:#f0f5f2;--text-2:#c4cec9;--text-3:#7a908a;--text-4:#4a5954;--border:#243029;--border-2:#2e3d36;--red:#ff6b6b;--red-dim:#2d1515;--amber:#f0a429;--amber-dim:#2d1f08;--amber-text:#f5c470;--green:#2dc48e;--green-dim:#0d2e23;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-focus:0 0 0 3px #2dc48e33}}html.dark{--accent:#2dc48e;--accent-dark:#1d9e75;--accent-dim:#0d2e23;--accent-muted:#1a5c44;--accent-text:#7eecc4;--bg:#0f1311;--bg-2:#161c19;--bg-3:#1e2622;--surface:#161c19;--surface-2:#1e2622;--text:#f0f5f2;--text-2:#c4cec9;--text-3:#7a908a;--text-4:#4a5954;--border:#243029;--border-2:#2e3d36;--red:#ff6b6b;--red-dim:#2d1515;--amber:#f0a429;--amber-dim:#2d1f08;--amber-text:#f5c470;--green:#2dc48e;--green-dim:#0d2e23;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-focus:0 0 0 3px #2dc48e33}html.light{--accent:#1d9e75;--accent-dark:#0f6e56;--accent-dim:#e1f5ee;--accent-muted:#9fe1cb;--accent-text:#085041;--bg:#fff;--bg-2:#f7f8f7;--bg-3:#efefef;--surface:#fff;--surface-2:#f7f8f7;--text:#111312;--text-2:#3d4340;--text-3:#7a8580;--text-4:#a8b2ae;--border:#e3e8e5;--border-2:#cbd4d0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-display);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;transition:background .2s,color .2s}a{color:inherit;text-decoration:none}button{font-family:var(--font-display);cursor:pointer}input,select,textarea{font-family:var(--font-display)}img{max-width:100%;display:block}.app-page{max-width:var(--page-width);padding:36px var(--page-padding) 80px;margin:0 auto}.app-page-narrow{max-width:640px;padding:36px var(--page-padding) 80px;margin:0 auto}.app-page-wide{max-width:800px;padding:36px var(--page-padding) 80px;margin:0 auto}.navbar{z-index:100;padding:0 var(--page-padding);background:var(--bg);border-bottom:.5px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-items:center;gap:24px;height:52px;display:flex;position:sticky;top:0}.navbar-brand{color:var(--text);letter-spacing:-.01em;align-items:center;gap:8px;margin-right:4px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.navbar-brand-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px}.navbar a{color:var(--text-3);font-size:13px;text-decoration:none;transition:color .15s}.navbar a:hover{color:var(--text)}.navbar a.active{color:var(--accent)}.navbar-streak{font-family:var(--font-mono);color:var(--accent);font-size:11px}.navbar-spacer{flex:1}.navbar-new{background:var(--accent);border-radius:var(--radius-md);align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex;color:#fff!important}.navbar-new:hover{background:var(--accent-dark)!important}.theme-toggle{border-radius:var(--radius-md);border:.5px solid var(--border);width:30px;height:30px;color:var(--text-3);background:0 0;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.btn{border-radius:var(--radius-md);font-size:13px;font-weight:500;font-family:var(--font-display);cursor:pointer;white-space:nowrap;border:.5px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 18px;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}.btn-secondary{background:var(--bg-2);color:var(--text-2);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--border-2);color:var(--text)}.btn-ghost{color:var(--text-2);border-color:var(--border);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--border-2);color:var(--text)}.btn-danger{color:var(--red);border-color:var(--red);background:0 0}.btn-danger:hover:not(:disabled){background:var(--red-dim)}.btn-sm{padding:5px 12px;font-size:12px}.btn-lg{padding:11px 24px;font-size:14px}.form-group{margin-bottom:16px}.form-label{font-size:11px;font-family:var(--font-mono);color:var(--text-3);letter-spacing:.05em;margin-bottom:5px;display:block}.form-input,.form-select,.form-textarea{border:.5px solid var(--border-2);border-radius:var(--radius-md);background:var(--bg);width:100%;color:var(--text);font-size:13px;font-family:var(--font-display);appearance:none;outline:none;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-4)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.form-textarea{resize:vertical;min-height:100px;line-height:1.6}.form-hint{font-size:11px;font-family:var(--font-mono);color:var(--text-4);margin-top:4px}.form-error{font-size:11px;font-family:var(--font-mono);color:var(--red);margin-top:4px}.form-2col{grid-template-columns:1fr 1fr;gap:12px;display:grid}.badge{border-radius:var(--radius-full);font-size:11px;font-family:var(--font-mono);white-space:nowrap;align-items:center;gap:4px;padding:3px 9px;font-weight:400;display:inline-flex}.badge-beginner{background:var(--accent-dim);color:var(--accent-text)}.badge-intermediate{background:var(--amber-dim);color:var(--amber-text)}.badge-advanced{background:var(--bg-3);color:var(--text-3);border:.5px solid var(--border)}.badge-field{color:var(--accent);background:0 0;padding:0;font-size:11px}.stats-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:28px;display:grid}.stat-card{background:var(--bg-2);border-radius:var(--radius-lg);border:.5px solid var(--border);padding:14px 16px}.stat-label{font-size:10px;font-family:var(--font-mono);color:var(--text-3);letter-spacing:.05em;margin-bottom:4px}.stat-value{color:var(--text);font-size:22px;font-weight:500;line-height:1}.stat-value.accent{color:var(--accent)}.materials-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.material-card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;padding:14px 16px;transition:border-color .15s,box-shadow .15s}.material-card:hover{border-color:var(--accent-muted);box-shadow:var(--shadow-sm)}.material-card-field{font-size:11px;font-family:var(--font-mono);color:var(--accent);margin-bottom:6px}.material-card-title{color:var(--text);margin-bottom:8px;font-size:14px;font-weight:500;line-height:1.4}.material-card-meta{font-size:11px;font-family:var(--font-mono);color:var(--text-4);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.section-header{border-bottom:.5px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;display:flex}.section-title{font-size:11px;font-family:var(--font-mono);color:var(--text-3);letter-spacing:.1em;text-transform:uppercase}.section-link{font-size:11px;font-family:var(--font-mono);color:var(--accent);text-decoration:none}.page-eyebrow{font-size:10px;font-family:var(--font-mono);color:var(--text-3);letter-spacing:.2em;text-transform:uppercase;margin-bottom:6px}.page-title{color:var(--text);letter-spacing:-.02em;margin-bottom:20px;font-size:28px;font-weight:500;line-height:1.2}.page-title-sm{color:var(--text);letter-spacing:-.01em;margin-bottom:4px;font-size:22px;font-weight:500;line-height:1.3}.divider{background:var(--border);height:.5px;margin:28px 0}.empty-state{font-family:var(--font-mono);color:var(--text-4);text-align:center;padding:48px 24px;font-size:12px}.alert{border-radius:var(--radius-md);border:.5px solid;padding:10px 14px;font-size:13px}.alert-error{background:var(--red-dim);color:var(--red);border-color:var(--red)}.filter-section{margin-bottom:16px}.filter-section-label{font-size:10px;font-family:var(--font-mono);color:var(--text-3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}.filter-row{flex-wrap:wrap;gap:6px;display:flex}.filter-pill{border-radius:var(--radius-full);border:.5px solid var(--border-2);color:var(--text-3);font-size:11px;font-family:var(--font-mono);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:5px;padding:5px 12px;transition:all .15s;display:inline-flex}.filter-pill:hover{border-color:var(--accent-muted);color:var(--text-2)}.filter-pill.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-text)}.active-filters{flex-wrap:wrap;align-items:center;gap:6px;padding:12px 0;display:flex}.active-filter-tag{background:var(--accent-dim);border-radius:var(--radius-full);font-size:10px;font-family:var(--font-mono);color:var(--accent-text);border:.5px solid var(--accent-muted);align-items:center;gap:5px;padding:3px 8px;display:inline-flex}.active-filter-remove{cursor:pointer;color:var(--accent);font-size:12px;line-height:1}.filter-clear-all{font-size:10px;font-family:var(--font-mono);color:var(--text-4);cursor:pointer;background:0 0;border:none;padding:0;transition:color .15s}.filter-clear-all:hover{color:var(--red)}.results-count{font-size:11px;font-family:var(--font-mono);color:var(--text-3);margin-bottom:20px}.results-count span{color:var(--accent);font-weight:500}.reactions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.reaction-btn{border-radius:var(--radius-full);border:.5px solid var(--border-2);color:var(--text-3);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:5px 12px;font-size:12px;transition:all .15s;display:inline-flex}.reaction-btn:hover{border-color:var(--accent-muted);color:var(--text-2)}.reaction-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent-text)}.reaction-count{font-size:10px;font-family:var(--font-mono);border-radius:var(--radius-full);background:var(--accent);color:#fff;padding:1px 6px}.reaction-count.inactive{background:var(--bg-3);color:var(--text-3)}.read-btn{border-radius:var(--radius-md);border:.5px solid var(--border-2);font-size:12px;font-family:var(--font-mono);color:var(--text-3);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:7px 16px;transition:all .15s;display:inline-flex}.read-btn:hover,.read-btn.read{border-color:var(--accent);color:var(--accent)}.read-btn.completed{border-color:var(--green);color:var(--green);background:var(--green-dim)}.step-indicator{align-items:flex-start;margin-bottom:36px;display:flex}.step-item{flex-direction:column;align-items:center;gap:5px;display:flex}.step-circle{width:30px;height:30px;font-family:var(--font-mono);border:.5px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:500;transition:all .2s;display:flex}.step-circle.done{background:var(--accent);border-color:var(--accent);color:#fff}.step-circle.current{border-color:var(--accent);color:var(--accent);background:0 0}.step-circle.upcoming{border-color:var(--border-2);color:var(--text-4);background:0 0}.step-label{font-size:10px;font-family:var(--font-mono);color:var(--text-4);white-space:nowrap;transition:color .2s}.step-label.current{color:var(--accent)}.step-label.done{color:var(--text-3)}.step-connector{flex-shrink:0;width:72px;height:.5px;margin-top:15px;transition:background .2s}.step-connector.done{background:var(--accent)}.step-connector.upcoming{background:var(--border)}.avatar{background:var(--accent-dim);width:52px;height:52px;color:var(--accent-text);font-size:18px;font-weight:500;font-family:var(--font-mono);border:.5px solid var(--accent-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.streak-badge{background:var(--accent-dim);border:.5px solid var(--accent-muted);border-radius:var(--radius-full);font-size:11px;font-family:var(--font-mono);color:var(--accent-text);align-items:center;gap:5px;padding:4px 12px;display:inline-flex}.auth-split{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.auth-left{background:#085041;flex-direction:column;justify-content:space-between;padding:48px 44px;display:flex}.auth-left-brand{align-items:center;gap:10px;margin-bottom:48px;display:flex}.auth-left-dot{background:#5dcaa5;border-radius:50%;width:9px;height:9px}.auth-left-name{color:#fff;font-size:15px;font-weight:500}.auth-left-headline{flex-direction:column;flex:1;justify-content:center;display:flex}.auth-left-title{color:#fff;letter-spacing:-.01em;margin-bottom:14px;font-size:28px;font-weight:500;line-height:1.3}.auth-left-sub{color:#9fe1cb;margin-bottom:36px;font-size:14px;line-height:1.6}.auth-left-fields{flex-direction:column;gap:10px;display:flex}.auth-left-field{color:#9fe1cb;font-size:13px;font-family:var(--font-mono);align-items:center;gap:10px;display:flex}.auth-left-field-dot{background:#5dcaa5;border-radius:50%;flex-shrink:0;width:4px;height:4px}.auth-left-footer{color:#5dcaa5;font-size:10px;font-family:var(--font-mono);margin-top:40px}.auth-right{background:var(--bg);flex-direction:column;justify-content:center;padding:48px 44px;display:flex}.auth-form-eyebrow{font-size:10px;font-family:var(--font-mono);color:var(--text-3);letter-spacing:.2em;text-transform:uppercase;margin-bottom:8px}.auth-form-title{color:var(--text);margin-bottom:4px;font-size:22px;font-weight:500}.auth-form-sub{color:var(--text-3);margin-bottom:32px;font-size:13px}.auth-form-sub a{color:var(--accent);text-decoration:none}.auth-divider{align-items:center;gap:12px;margin:16px 0;display:flex}.auth-divider-line{background:var(--border);flex:1;height:.5px}.auth-divider-text{font-size:11px;font-family:var(--font-mono);color:var(--text-4)}.btn-google{width:100%;color:var(--text-2);border:.5px solid var(--border-2);border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-family:var(--font-display);background:0 0;justify-content:center;align-items:center;gap:8px;padding:9px 16px;transition:all .15s;display:flex}.btn-google:hover{border-color:var(--border-2);background:var(--bg-2)}.material-content{color:var(--text-2);font-size:15px;line-height:1.75}.material-content h1,.material-content h2,.material-content h3{color:var(--text);letter-spacing:-.01em;margin-top:2em;margin-bottom:.75em;font-weight:500;line-height:1.3}.material-content h1{font-size:22px}.material-content h2{font-size:18px}.material-content h3{font-size:15px}.material-content p{margin-bottom:1.25em}.material-content ul,.material-content ol{margin-bottom:1.25em;padding-left:1.5em}.material-content li{margin-bottom:.4em}.material-content blockquote{border-left:3px solid var(--accent);color:var(--text-3);margin:1.5em 0;padding-left:1em;font-style:italic}.material-content pre{background:var(--bg-2);border:.5px solid var(--border);border-radius:var(--radius-md);margin-bottom:1.25em;padding:14px 16px;overflow-x:auto}.material-content code{font-family:var(--font-mono);background:var(--bg-2);border-radius:var(--radius-sm);color:var(--accent-dark);padding:2px 6px;font-size:13px}.material-content pre code{color:var(--text-2);background:0 0;padding:0}.material-content strong{color:var(--text);font-weight:600}.material-content hr{border:none;border-top:.5px solid var(--border);margin:2em 0}.material-content .tableWrapper,.editor-content .tableWrapper{margin-bottom:1.25em;overflow-x:auto}.material-content table,.editor-content table{border-collapse:collapse;width:100%;font-size:14px}.material-content th,.material-content td,.editor-content th,.editor-content td{border:.5px solid var(--border-2);text-align:left;vertical-align:top;padding:8px 12px;position:relative}.material-content th,.editor-content th{background:var(--bg-2);color:var(--text);font-size:12px;font-weight:500;font-family:var(--font-mono);letter-spacing:.02em}.material-content tr:nth-child(2n) td,.editor-content tr:nth-child(2n) td{background:var(--bg-2)}.editor-content .selectedCell{outline:1px solid var(--accent-muted);outline-offset:-1px;background:var(--accent-dim)!important}.editor-content .column-resize-handle{background:var(--accent);pointer-events:none;width:2px;position:absolute;top:0;bottom:-2px;right:-2px}.editor-toolbar{background:var(--bg-2);border-bottom:.5px solid var(--border);flex-wrap:wrap;align-items:center;gap:2px;padding:8px 10px;display:flex}.editor-toolbar-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-3);font-size:12px;font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:all .1s;display:flex}.editor-toolbar-btn:hover{background:var(--bg-3);color:var(--text)}.editor-toolbar-btn.active{background:var(--accent-dim);color:var(--accent)}.editor-toolbar-divider{background:var(--border);width:.5px;height:18px;margin:0 4px}.editor-wrap{border:.5px solid var(--border-2);border-radius:var(--radius-md);transition:border-color .15s,box-shadow .15s;overflow:hidden}.editor-wrap:focus-within{border-color:var(--accent);box-shadow:var(--shadow-focus)}.editor-content{background:var(--bg);min-height:320px;color:var(--text-2);outline:none;padding:14px 16px;font-size:14px;line-height:1.7}.note-display{background:var(--bg-2);border:.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-2);white-space:pre-wrap;padding:14px 16px;font-size:13px;line-height:1.6}.note-meta{font-size:10px;font-family:var(--font-mono);color:var(--text-4);margin-top:6px}.list-item{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-md);color:inherit;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;transition:border-color .15s;display:flex}.list-item:hover{border-color:var(--accent-muted)}.list-item-rank{font-family:var(--font-mono);color:var(--text-4);flex-shrink:0;min-width:18px;font-size:11px}.list-item-rank.first{color:var(--accent);font-weight:500}.list-item-body{flex:1;min-width:0}.list-item-field{font-size:10px;font-family:var(--font-mono);color:var(--text-4);margin-bottom:2px}.list-item-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.list-item-meta{font-size:10px;font-family:var(--font-mono);color:var(--text-4)}.list-item-pill{border-radius:var(--radius-full);background:var(--accent-dim);color:var(--accent-text);font-size:10px;font-family:var(--font-mono);white-space:nowrap;flex-shrink:0;padding:2px 8px}.read-history-item{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-md);color:inherit;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;transition:border-color .15s;display:flex}.read-history-item:hover{border-color:var(--accent-muted)}.read-history-status{flex-shrink:0;font-size:13px}.read-history-body{flex:1;min-width:0}.read-history-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-bottom:2px;font-size:13px;font-weight:500;overflow:hidden}.read-history-field{font-size:10px;font-family:var(--font-mono);color:var(--text-4)}.read-history-label{font-size:10px;font-family:var(--font-mono);flex-shrink:0}.read-history-label.completed{color:var(--green)}.read-history-label.reading{color:var(--text-4)}.back-btn{color:var(--text-3);font-family:var(--font-mono);cursor:pointer;letter-spacing:.05em;background:0 0;border:none;align-items:center;gap:6px;margin-bottom:28px;padding:0;font-size:11px;transition:color .15s;display:inline-flex}.back-btn:hover{color:var(--text)}@media (width<=768px){.auth-split{grid-template-columns:1fr}.auth-left{display:none}.auth-right{min-height:100vh;padding:36px 24px}.materials-grid{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(2,1fr)}.form-2col{grid-template-columns:1fr}.navbar{gap:16px;padding:0 16px}.app-page,.app-page-narrow,.app-page-wide{padding:24px 16px 60px}.page-title{font-size:22px}}@media (width<=480px){.stats-row{grid-template-columns:repeat(2,1fr)}.filter-row{gap:4px}.filter-pill{padding:4px 10px;font-size:10px}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}}
