@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-600-normal-Dd5YO2UX.woff2) format("woff2"),url(/assets/cinzel-latin-600-normal-CH_LB4su.woff) format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-700-normal-Dkw14w9r.woff2) format("woff2"),url(/assets/cinzel-latin-700-normal-C-gK7hA8.woff) format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-ext-600-normal-BEFdM_VE.woff2) format("woff2"),url(/assets/cinzel-latin-ext-600-normal-BY9Mq9iK.woff) format("woff")}@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/cinzel-latin-ext-700-normal-C24KFjuG.woff2) format("woff2"),url(/assets/cinzel-latin-ext-700-normal-CORa-yIv.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-italic-Y14P-dkT.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-italic-DhNIfkTX.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-normal-DYeaGGzO.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-ext-600-normal-DaBc-lu7.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-600-normal-Dk3-quAP.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-italic-CE7zdTnu.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-italic-CalKM9tT.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2) format("woff2"),url(/assets/space-grotesk-latin-600-normal-BflQw4A9.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-ext-600-normal-DxxdqCpr.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-600-normal-VcznFIpX.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff")}:root{color-scheme:light;overflow-y:auto;scrollbar-gutter:stable;--brand-start: #2e7daf;--brand-end: #1e5f8a;--brand-gradient: linear-gradient(135deg, var(--brand-start) 0%, var(--brand-end) 100%);--font-mono: "IBM Plex Mono", monospace;--font-display: "Space Grotesk", sans-serif;--bg-page: #f5f7fa;--bg-card: #ffffff;--bg-subtle: #f5f7fb;--bg-hover: #f0f2f8;--text-primary: #262b38;--text-secondary: #63697b;--text-muted: #8991a3;--text-on-brand: #ffffff;--border-color: #e4e7ee;--border-color-strong: #d3d8e3;--shadow-sm: 0 2px 8px rgba(23, 28, 43, .06);--shadow-md: 0 4px 16px rgba(23, 28, 43, .1);--shadow-lg: 0 8px 28px rgba(23, 28, 43, .14);--color-success-bg: #d4edda;--color-success-text: #155724;--color-error-bg: #fdecea;--color-error-text: #c0392b;--color-warning-bg: #fff3cd;--color-warning-text: #856404;--color-info-bg: #f0f7ff;--color-info-text: #2f6fa8;--code-bg: #2d3748;--code-header-bg: #1a202c;--code-text: #e2e8f0;--code-muted: #8b9bb4;--code-inline-bg: #f5f7fa;--code-inline-text: #b35900;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--brand-start: #6fbee8;--brand-end: #4a9bc9;--bg-page: #12141b;--bg-card: #1b1e28;--bg-subtle: #21242f;--bg-hover: #262a37;--text-primary: #e7e9f0;--text-secondary: #a4aabd;--text-muted: #767c8e;--border-color: #2b2f3d;--border-color-strong: #383d4e;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .35);--shadow-md: 0 4px 16px rgba(0, 0, 0, .45);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .55);--color-success-bg: rgba(72, 187, 120, .15);--color-success-text: #68d391;--color-error-bg: rgba(245, 101, 101, .15);--color-error-text: #fc8181;--color-warning-bg: rgba(236, 201, 75, .15);--color-warning-text: #f6e05e;--color-info-bg: rgba(102, 126, 234, .15);--color-info-text: #90a4f0;--code-inline-bg: #262a37;--code-inline-text: #e8a575}}:root[data-theme=dark]{color-scheme:dark;--brand-start: #6fbee8;--brand-end: #4a9bc9;--bg-page: #12141b;--bg-card: #1b1e28;--bg-subtle: #21242f;--bg-hover: #262a37;--text-primary: #e7e9f0;--text-secondary: #a4aabd;--text-muted: #767c8e;--border-color: #2b2f3d;--border-color-strong: #383d4e;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .35);--shadow-md: 0 4px 16px rgba(0, 0, 0, .45);--shadow-lg: 0 8px 28px rgba(0, 0, 0, .55);--color-success-bg: rgba(72, 187, 120, .15);--color-success-text: #68d391;--color-error-bg: rgba(245, 101, 101, .15);--color-error-text: #fc8181;--color-warning-bg: rgba(236, 201, 75, .15);--color-warning-text: #f6e05e;--color-info-bg: rgba(102, 126, 234, .15);--color-info-text: #90a4f0;--code-inline-bg: #262a37;--code-inline-text: #e8a575}body{background-color:var(--bg-page);color:var(--text-primary);transition:background-color .2s ease,color .2s ease}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--brand-gradient);padding:20px}.auth-card{background:var(--bg-card);border-radius:12px;box-shadow:var(--shadow-lg);padding:40px;width:100%;max-width:500px}.auth-header{text-align:center;margin-bottom:30px}.auth-header h1{color:var(--text-primary);font-family:var(--font-display);margin:0 0 10px;font-size:28px}.auth-header p{color:var(--text-secondary);margin:0;font-size:14px}.auth-form{display:flex;flex-direction:column;gap:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{color:var(--text-primary);font-family:var(--font-mono);font-size:13px;font-weight:500}.form-group label:after{content:":";color:var(--text-muted)}.form-group input{padding:12px 15px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;background:var(--bg-card);color:var(--text-primary);transition:all .3s ease}.form-group input:focus{outline:none;border-color:var(--brand-start);box-shadow:0 0 0 3px #2e7daf26}.form-group input.error{border-color:var(--color-error-text)}.form-group input:disabled{background-color:var(--bg-subtle);cursor:not-allowed}.password-input-wrapper{position:relative;display:flex}.password-input-wrapper input{flex:1;padding-right:84px}.password-toggle-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;padding:6px 8px;font-family:var(--font-mono);font-size:12px;line-height:1;cursor:pointer;color:var(--text-secondary)}.password-toggle-btn:hover{color:var(--text-primary)}.password-toggle-btn:disabled{cursor:not-allowed;opacity:.5}.error-message{color:var(--color-error-text);font-size:12px;margin-top:4px}.alert{padding:12px 15px;border-radius:6px;margin-bottom:20px;font-size:14px}.alert-error{background-color:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-text)}.alert-success{background-color:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-text)}.alert-warning{background-color:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-text)}.form-options{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;margin:-10px 0 10px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--text-secondary)}.checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.checkbox-label span{-webkit-user-select:none;user-select:none}.forgot-link{color:var(--brand-start);text-decoration:none;font-size:14px;font-weight:500}.forgot-link:hover{text-decoration:underline}.password-strength{margin-top:8px}.strength-bar{height:4px;background-color:var(--border-color);border-radius:2px;overflow:hidden;margin-bottom:6px}.strength-fill{height:100%;transition:all .3s ease;border-radius:2px}.strength-label{font-size:12px;font-weight:500;display:block}.btn{padding:12px 24px;border:none;border-radius:6px;font-family:var(--font-mono);font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.btn-primary{background:var(--brand-gradient);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #2e7daf59}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-block{width:100%;margin-top:10px}.auth-footer{text-align:center;margin-top:25px;padding-top:25px;border-top:1px solid var(--border-color)}.auth-footer p{color:var(--text-secondary);font-size:14px;margin:0}.auth-footer a{color:var(--brand-start);text-decoration:none;font-weight:500}.auth-footer a:hover{text-decoration:underline}.loading-container{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.spinner{width:50px;height:50px;border:4px solid var(--bg-subtle);border-top:4px solid var(--brand-start);border-radius:50%;animation:spin 1s linear infinite}@media(max-width:1024px){.auth-card{max-width:90%}}@media(max-width:768px){.auth-card{max-width:95%;padding:35px 25px}.auth-header h1{font-size:24px}.form-row{grid-template-columns:1fr}.form-options{flex-direction:column;align-items:flex-start;gap:10px}.forgot-link{margin-left:24px}}@media(max-width:480px){.auth-container{padding:10px}.auth-card{max-width:100%;padding:25px 15px;border-radius:8px}.auth-header h1{font-size:22px}.auth-header p,.form-group label{font-size:13px}.form-group input{padding:10px 12px;font-size:13px}.form-row{grid-template-columns:1fr;gap:20px}.btn{padding:10px 20px;font-size:13px}.alert{padding:10px 12px;font-size:13px}.strength-label{font-size:11px}.checkbox-label{font-size:13px}.forgot-link{font-size:13px;margin-left:0}.auth-footer{font-size:13px}}@media(max-width:360px){.auth-card{padding:20px 12px}.auth-header h1{font-size:20px}}.main-layout{min-height:100vh;width:100%;display:flex;flex-direction:column;background-color:var(--bg-page)}.main-content{flex:1;display:flex;flex-direction:column}.main-header{background:var(--bg-card);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100}.header-container{max-width:1400px;margin:0 auto;padding:0 40px;height:70px;display:flex;align-items:center;justify-content:space-between;gap:40px}.header-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text-primary);font-weight:700;font-size:20px;transition:opacity .2s ease}.header-brand:hover{opacity:.8}.brand-icon{height:28px;width:auto;display:block}.brand-icon-text{height:28px;min-width:28px;padding:0 6px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:#f7df1e;color:#1a1a1a;font-weight:700;font-size:13px;letter-spacing:.02em}.brand-text{font-family:var(--font-display);font-weight:600;letter-spacing:.01em;background:var(--brand-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-nav{display:flex;align-items:center;gap:8px;flex:1}.nav-link{display:flex;align-items:center;gap:8px;padding:10px 20px;text-decoration:none;color:var(--text-secondary);font-family:var(--font-mono);font-size:14px;font-weight:500;border-radius:8px;border-bottom:2px solid transparent;transition:all .2s ease}.nav-link:hover{background:var(--bg-subtle);color:var(--brand-start)}.nav-link-active{background:transparent;color:var(--brand-start);font-weight:600;border-bottom-color:var(--brand-start)}.nav-link-active:before{content:">";margin-right:2px}.nav-link-active:hover{background:var(--bg-subtle)}.nav-icon{font-size:18px}.header-user{display:flex;align-items:center;gap:16px}.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-subtle);font-size:16px;cursor:pointer;transition:all .2s ease}.theme-toggle:hover{background:var(--bg-hover);transform:rotate(15deg)}.user-info{display:flex;align-items:center;gap:10px;text-decoration:none;padding:4px 8px 4px 4px;border-radius:20px;transition:background .2s ease}.user-info:hover{background:var(--bg-subtle)}.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--brand-gradient);color:var(--text-on-brand);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0}.user-name{color:var(--text-primary);font-size:14px;font-weight:500}.btn-logout{padding:8px 16px;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-logout:hover{background:var(--color-error-text);border-color:var(--color-error-text);color:#fff}.menu-toggle{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:8px}.menu-toggle span{width:24px;height:2px;background:var(--text-primary);transition:.3s}.page-header-simple{padding:40px 40px 30px;text-align:center}.page-header-simple h1{color:var(--text-primary);font-family:var(--font-display);margin:0 0 10px;font-size:32px;font-weight:600}.page-header-simple p{color:var(--text-secondary);margin:0;font-size:16px}.main-footer{background:var(--bg-card);border-top:1px solid var(--border-color)}.footer-container{max-width:1400px;margin:0 auto;padding:24px 40px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.footer-copyright{color:var(--text-muted);font-family:var(--font-mono);font-size:12px}.footer-links{display:flex;gap:24px;flex-wrap:wrap}.footer-links a{color:var(--text-secondary);text-decoration:none;font-family:var(--font-mono);font-size:12px}.footer-links a:hover{color:var(--brand-start);text-decoration:underline}@media(max-width:1024px){.header-container{padding:0 30px}.page-header-simple{padding:30px 30px 20px}}@media(max-width:768px){.header-container{padding:0 20px;height:60px}.brand-text{display:none}.header-nav{position:fixed;inset:60px 0 0;background:var(--bg-card);flex-direction:column;align-items:stretch;padding:20px;gap:10px;transform:translate(-100%);transition:transform .3s ease}.header-nav.nav-open{transform:translate(0)}.nav-link{padding:16px 20px;font-size:16px;justify-content:flex-start}.menu-toggle{display:flex}.user-name{display:none}.btn-logout{padding:8px 12px;font-size:13px}.page-header-simple h1{font-size:26px}.page-header-simple p{font-size:14px}.footer-container{padding:20px;flex-direction:column;text-align:center}.footer-links{justify-content:center}}@media(max-width:480px){.header-container{padding:0 15px}.brand-icon{height:24px}.page-header-simple{padding:20px 15px 15px}.page-header-simple h1{font-size:22px}}.dashboard-page{--dash-accent: #2e7daf;--dash-accent-soft: #eaf3fa;--dash-rule: #c7d6e3;--dash-public: #2f9e6e;--dash-protected: #c98a2c;--dash-private: #8a93a6;--dash-comment: #7aa875;--dash-string: #d68c67;--dash-keyword: #c586c0;max-width:1200px;margin:0 auto;padding:0 40px 60px;display:flex;flex-direction:column;gap:44px}:root[data-theme=dark] .dashboard-page{--dash-accent: #6fbee8;--dash-accent-soft: rgba(111, 190, 232, .12);--dash-rule: #34424f;--dash-public: #58c896;--dash-protected: #e3a857;--dash-private: #7c879c}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .dashboard-page{--dash-accent: #6fbee8;--dash-accent-soft: rgba(111, 190, 232, .12);--dash-rule: #34424f;--dash-public: #58c896;--dash-protected: #e3a857;--dash-private: #7c879c}}.dashboard-hero{border-radius:10px;overflow:hidden;box-shadow:0 2px 10px var(--shadow-sm);margin-top:20px}.hero-file-tab{background:var(--code-header-bg);color:var(--code-muted);font-family:IBM Plex Mono,monospace;font-size:12px;padding:10px 20px;display:flex;align-items:center;gap:8px}.hero-file-tab:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--dash-public);flex-shrink:0}.hero-content{background:var(--code-bg);padding:28px 28px 32px;font-family:IBM Plex Mono,monospace;font-size:15px;line-height:1.8}.hero-comment-line{color:var(--dash-comment);margin:0;white-space:pre-wrap}.hero-greeting{color:var(--code-text);font-size:20px;font-weight:500}.hero-greeting strong{color:var(--dash-string);font-weight:600}.hero-tag{color:var(--dash-keyword);font-weight:500}.dashboard-properties{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:8px 0}.dashboard-properties-eyebrow{font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:10px 24px 4px}.property-row{display:flex;align-items:baseline;gap:10px;padding:10px 24px;font-family:IBM Plex Mono,monospace;font-size:14px}.property-visibility{font-weight:700;width:14px;flex-shrink:0}.property-visibility.is-public{color:var(--dash-public)}.property-visibility.is-protected{color:var(--dash-protected)}.property-visibility.is-private{color:var(--dash-private)}.property-name{color:var(--text-secondary)}.property-value{color:var(--text-primary);font-weight:600;margin-left:auto}.dashboard-section{display:flex;flex-direction:column;gap:24px}.section-header{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.section-header h2{font-family:Space Grotesk,sans-serif;color:var(--text-primary);font-size:22px;font-weight:600;margin:0}.section-header-eyebrow{display:block;font-family:IBM Plex Mono,monospace;font-size:12px;letter-spacing:.06em;color:var(--dash-accent);margin-bottom:4px}.btn-view-all{color:var(--dash-accent);text-decoration:none;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:500;white-space:nowrap;transition:opacity .2s ease}.btn-view-all:hover{opacity:.75}.modules-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.module-preview-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.module-preview-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px var(--shadow-md);border-color:var(--dash-accent)}.module-preview-header{background:var(--dash-accent-soft);border-bottom:1px solid var(--dash-rule);padding:12px 20px;display:flex;align-items:center;gap:8px}.module-preview-keyword{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500;color:var(--dash-keyword)}.module-preview-badge{font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500;color:var(--dash-accent)}.module-preview-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}.module-preview-title{font-family:Space Grotesk,sans-serif;color:var(--text-primary);font-size:17px;font-weight:600;margin:0 0 10px}.module-preview-description{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0 0 20px;flex:1}.module-preview-footer{border-top:1px dashed var(--dash-rule);padding-top:14px;display:flex;justify-content:flex-end}.preview-link-text{font-family:IBM Plex Mono,monospace;color:var(--dash-accent);font-size:13px;font-weight:500}.loading-state{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:60px 20px;text-align:center}.loading-state p{font-family:IBM Plex Mono,monospace;color:var(--text-muted);font-size:13px;margin:0}.empty-state{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:60px 20px;text-align:center}.empty-state p{font-family:IBM Plex Mono,monospace;color:var(--text-muted);font-size:13px;margin:0}.spinner{width:50px;height:50px;border:4px solid var(--bg-subtle);border-top:4px solid var(--dash-accent);border-radius:50%;animation:spin 1s linear infinite}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.5s}}@media(max-width:1024px){.dashboard-page{padding:0 30px 50px;gap:36px}.modules-preview{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.dashboard-page{padding:0 20px 40px;gap:28px}.hero-content{padding:22px 20px 26px;font-size:14px}.hero-greeting{font-size:17px}.modules-preview{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start;gap:8px}}@media(max-width:480px){.dashboard-page{padding:0 15px 30px}.hero-content{padding:18px 16px 22px}.property-row{padding:10px 16px}.section-header h2{font-size:19px}.module-preview-body{padding:16px}}.page-container{width:100%;min-height:100vh;background-color:var(--bg-page)}.page-with-sidebar{display:flex;flex:1;background-color:var(--bg-page)}.page-header{background:var(--brand-gradient);color:var(--text-on-brand);padding:40px;display:flex;justify-content:space-between;align-items:center}.page-header-content h1{font-family:var(--font-display);margin:0 0 10px;font-size:32px;font-weight:600}.page-header-content p{margin:0;font-size:16px;opacity:.9}.user-welcome{text-align:right}.page-content{flex:1;padding:40px;max-width:1600px;margin:0 auto;width:100%}.sidebar{width:280px;background:var(--bg-card);border-right:1px solid var(--border-color);align-self:stretch;transition:transform .3s ease}.sidebar-sticky{display:flex;flex-direction:column;position:sticky;top:70px;max-height:calc(100vh - 70px)}.sidebar-header{padding:20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.sidebar-header h3{margin:0;font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--text-primary)}.sidebar-close{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary)}.sidebar-content{flex:1;padding:20px 0;overflow-y:auto;height:max-content}.sidebar-modules{list-style:none;padding:0;margin:0}.sidebar-module{margin-bottom:5px}.sidebar-module-link{display:flex;align-items:center;gap:12px;padding:12px 20px 12px 17px;border-left:3px solid transparent;text-decoration:none;color:var(--text-primary);transition:background .2s ease,border-color .2s ease}.sidebar-module-link:hover{background:var(--bg-hover)}.sidebar-module-link.active{background:var(--bg-subtle);border-left-color:var(--brand-start);color:var(--brand-start)}.sidebar-module-link .module-order{width:24px;height:24px;background:var(--brand-start);color:var(--text-on-brand);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:12px;font-weight:600;flex-shrink:0}.sidebar-module-link .module-title{font-family:var(--font-mono);font-size:14px;font-weight:500}.sidebar-module-link.active .module-title{font-weight:600}.sidebar-footer{padding:20px;border-top:1px solid var(--border-color)}.btn-back-to-modules{display:block;text-align:center;padding:10px;background:var(--bg-subtle);color:var(--brand-start);text-decoration:none;border-radius:6px;font-family:var(--font-mono);font-size:13px;transition:background .2s ease}.btn-back-to-modules:hover{background:var(--bg-hover)}.sidebar-toggle{display:none;position:fixed;top:20px;left:20px;z-index:1001;background:var(--bg-card);border:none;padding:10px;border-radius:6px;box-shadow:0 2px 10px var(--shadow-md);cursor:pointer;flex-direction:column;gap:4px}.sidebar-toggle span{width:20px;height:2px;background:var(--text-primary);display:block;transition:.3s}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:999}.section{margin-bottom:40px}.section-header{margin-bottom:30px}.section-header h2{color:var(--text-primary);font-family:var(--font-display);margin:0 0 5px;font-size:24px}.section-subtitle{color:var(--text-secondary);margin:0;font-size:14px}.module-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.module-card{background:var(--bg-card);border-radius:12px;padding:24px;box-shadow:0 2px 10px var(--shadow-sm);text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}.module-card:hover{transform:translateY(-4px);box-shadow:0 4px 20px var(--shadow-md)}.module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.module-number{background:var(--brand-gradient);color:var(--text-on-brand);font-family:var(--font-mono);padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600}.module-title{color:var(--text-primary);font-family:var(--font-display);font-size:20px;font-weight:600;margin:0 0 12px}.module-description{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0 0 20px;flex:1}.module-footer{display:flex;justify-content:flex-end}.module-link-text{color:var(--brand-start);font-size:14px;font-weight:500}.chapitres-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.chapitre-card{background:var(--bg-card);border-radius:8px;padding:20px;box-shadow:0 2px 8px var(--shadow-sm);text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}.chapitre-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px var(--shadow-md)}.chapitre-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.chapitre-number{background:var(--brand-start);color:var(--text-on-brand);font-family:var(--font-mono);padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.chapitre-title{color:var(--text-primary);font-family:var(--font-display);font-size:16px;font-weight:600;margin:0 0 10px}.chapitre-description{color:var(--text-secondary);font-size:13px;line-height:1.5;margin:0 0 16px;flex:1}.chapitre-footer{display:flex;justify-content:flex-end}.chapitre-link-text{color:var(--brand-start);font-size:13px;font-weight:500}.chapitre-page-header{margin-bottom:30px}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:20px;color:var(--text-secondary)}.breadcrumb a{color:var(--brand-start);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.chapitre-page-title{color:var(--text-primary);font-family:var(--font-display);margin:0 0 10px;font-size:32px;font-weight:600}.chapitre-page-title .chapitre-number{display:block;font-family:var(--font-mono);font-size:13px;color:var(--brand-start);font-weight:500;margin-bottom:8px}.chapitre-page-description{color:var(--text-secondary);font-size:16px;line-height:1.6;margin:0}.content-tabs{display:flex;gap:10px;border-bottom:2px solid var(--border-color);margin-bottom:30px}.tab{padding:12px 24px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:15px;font-weight:500;color:var(--text-secondary);transition:color .2s ease,border-color .2s ease}.tab:hover{color:var(--brand-start)}.tab-active{color:var(--brand-start);border-bottom-color:var(--brand-start)}.tab-content{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.exercices-list{display:flex;flex-direction:column;gap:24px}.exercice-item{background:var(--bg-card);border-radius:8px;padding:24px;box-shadow:0 2px 8px var(--shadow-sm)}.exercice-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.exercice-header h3{color:var(--text-primary);margin:0;font-size:20px}.exercice-meta{display:flex;gap:10px;align-items:center}.difficulty{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.difficulty-easy{background:var(--color-success-bg);color:var(--color-success-text)}.difficulty-medium{background:var(--color-warning-bg);color:var(--color-warning-text)}.difficulty-hard{background:var(--color-error-bg);color:var(--color-error-text)}.points-badge{background:var(--color-warning-bg);color:var(--color-warning-text);padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.exercice-description{color:var(--text-secondary);font-size:15px;line-height:1.6;margin:0 0 16px}.exercice-instructions{background:var(--bg-subtle);padding:16px;border-radius:6px;margin-bottom:16px}.exercice-instructions h4{color:var(--text-primary);margin:0 0 10px;font-size:14px;font-weight:600}.exercice-instructions p{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.6}.code-block{margin-bottom:20px}.code-block h4{color:var(--text-primary);margin:0 0 10px;font-size:14px;font-weight:600}.code-block pre{background:var(--code-bg);color:var(--code-text);padding:20px;border-radius:8px;overflow-x:auto;margin:0}.code-block code{font-family:Courier New,monospace;font-size:14px;line-height:1.5}.badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase}.badge-draft{background:var(--color-warning-bg);color:var(--color-warning-text)}.module-detail-header{background:var(--bg-card);border-radius:12px;padding:30px;box-shadow:0 2px 10px var(--shadow-sm);margin-bottom:30px}.module-badge{background:var(--brand-gradient);color:var(--text-on-brand);font-family:var(--font-mono);padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;display:inline-block;margin-bottom:16px}.module-detail-header h1{color:var(--text-primary);font-family:var(--font-display);margin:0 0 12px;font-size:32px;font-weight:600}.module-detail-description{color:var(--text-secondary);font-size:16px;line-height:1.6;margin:0}.empty-state{background:var(--bg-card);border-radius:8px;padding:60px 20px;text-align:center}.empty-state h3{color:var(--text-primary);margin:0 0 10px;font-size:20px}.empty-state p{color:var(--text-secondary);margin:0;font-size:15px}@media(max-width:1180px){.sidebar{position:fixed;top:0;height:100vh;z-index:1000;transform:translate(-100%)}.sidebar-sticky{position:static;max-height:none;height:100%}.sidebar-open{transform:translate(0)}.sidebar-close{display:block}.sidebar-toggle{display:flex}.sidebar-overlay{display:block}}@media(max-width:1024px){.page-content{padding:30px 20px}.module-list,.chapitres-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.page-header{flex-direction:column;gap:20px;padding:30px 20px;text-align:center}.page-header-content h1{font-size:26px}.user-welcome{text-align:center}.page-content{padding:20px 15px}.module-list,.chapitres-grid{grid-template-columns:1fr}.chapitre-page-title{font-size:26px}.content-tabs{overflow-x:auto}.tab{white-space:nowrap}}@media(max-width:480px){.page-header-content h1{font-size:22px}.page-header-content p{font-size:14px}.module-card,.chapitre-card{padding:16px}.module-title{font-size:18px}.chapitre-page-title{font-size:22px}.theorie-item,.exercice-item{padding:20px}.theorie-header,.exercice-header{flex-direction:column;align-items:flex-start;gap:10px}.exercice-meta{width:100%}}.content-progress{display:flex;gap:20px;padding:20px;background:var(--bg-card);border-radius:12px;margin-bottom:30px;box-shadow:0 2px 8px var(--shadow-sm)}.progress-item{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--text-secondary)}.progress-icon{font-size:20px}.content-section{margin-bottom:40px}.theory-container{background:var(--bg-card);border-radius:12px;padding:40px;margin-bottom:30px;box-shadow:0 2px 12px var(--shadow-sm)}.section-header-small{margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid var(--border-color)}.section-number{display:inline-block;background:var(--brand-gradient);color:var(--text-on-brand);font-family:var(--font-mono);padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600;margin-bottom:10px}.section-header-small h2{color:var(--text-primary);font-family:var(--font-display);font-size:28px;font-weight:600;margin:10px 0}.time-badge{display:inline-block;background:var(--color-info-bg);color:var(--color-info-text);padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;margin-top:10px}.theory-content{font-size:16px;line-height:1.8;color:var(--text-primary);display:flow-root;max-width:860px;margin-left:auto;margin-right:auto}.theory-content h2,.theory-content h3,.theory-content h4{margin-top:36px;margin-bottom:16px;color:var(--text-primary)}.theory-content h2{font-size:1.375em;padding-bottom:10px;border-bottom:2px solid var(--border-color)}.theory-content h3{font-size:1.15em}.theory-content h2:first-child,.theory-content h3:first-child{margin-top:0}.theory-content p{margin-bottom:16px}.theory-content ul,.theory-content ol{margin:16px 0;padding-left:28px}.theory-content li{margin:8px 0}.theory-content li::marker{color:var(--brand-start)}.theory-content strong{color:var(--text-primary)}.theory-content code{background:var(--bg-subtle);padding:2px 6px;border-radius:4px;font-family:Fira Code,Courier New,Courier,monospace;font-size:.9em;color:var(--code-inline-text);word-break:break-word}.theory-content pre{position:relative;background:var(--code-bg);color:var(--code-text);padding:36px 20px 20px;border-radius:10px;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:24px 0;max-width:100%;box-shadow:0 4px 14px var(--shadow-md)}.theory-content pre:before{content:"JS";position:absolute;top:0;left:0;right:0;height:28px;display:flex;align-items:center;padding:0 16px;background:var(--code-header-bg);color:var(--code-muted);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:11px;font-weight:700;letter-spacing:.08em;border-radius:10px 10px 0 0}.theory-content pre code{background:none;padding:0;color:inherit;font-size:.9em;word-break:normal}.theory-content table{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:24px 0;border-collapse:collapse;font-size:.95em;border-radius:10px;box-shadow:0 2px 10px var(--shadow-sm)}.theory-content table thead,.theory-content table tbody,.theory-content table tr{display:table;width:100%;table-layout:fixed}.theory-content table th,.theory-content table td{padding:12px 18px;text-align:left;border-bottom:1px solid var(--border-color);vertical-align:top}.theory-content table th{background:var(--bg-subtle);color:var(--text-primary);font-weight:600;font-size:.9em}.theory-content table tbody tr:last-child th,.theory-content table tbody tr:last-child td{border-bottom:none}.theory-content table tbody tr:hover{background:var(--bg-hover)}.content-divider{height:0;border-top:2px dashed var(--border-color-strong);margin:40px 0}.exercises-section{background:var(--bg-subtle);padding:40px;border-radius:12px;margin-top:40px}.section-header-large{text-align:center;margin-bottom:40px}.section-header-large h2{color:var(--text-primary);font-size:32px;font-weight:700;margin:0 0 10px}.section-header-large p{color:var(--text-secondary);font-size:16px;margin:0}.exercices-grid{display:grid;gap:30px}.exercice-card{background:var(--bg-card);border-radius:12px;padding:30px;box-shadow:0 2px 12px var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.exercice-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px var(--shadow-md)}.exercice-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.exercice-number{background:var(--brand-gradient);color:var(--text-on-brand);font-family:var(--font-mono);padding:6px 16px;border-radius:20px;font-size:13px;font-weight:600}.exercice-meta{display:flex;gap:12px}.exercice-title{color:var(--text-primary);font-family:var(--font-display);font-size:24px;font-weight:600;margin:0 0 15px}.exercice-description{color:var(--text-secondary);font-size:16px;line-height:1.6;margin:0 0 20px}.exercice-instructions{background:var(--color-info-bg);border-left:4px solid var(--color-info-text);padding:16px 20px;margin:20px 0;border-radius:6px}.exercice-instructions strong{color:var(--text-primary);display:block;margin-bottom:8px}.exercice-instructions p{margin:0;color:var(--text-secondary);line-height:1.6}.code-block{background:var(--code-bg);border-radius:8px;overflow:hidden;margin:20px 0}.code-header{background:var(--code-header-bg);color:var(--code-muted);padding:10px 20px;font-size:13px;font-weight:600}.code-block pre{margin:0;padding:20px;overflow-x:auto}.code-block code{font-family:Courier New,Courier,monospace;font-size:14px;line-height:1.6;color:var(--code-text)}.btn-block{width:100%;margin-top:20px}.chapter-navigation{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:60px;padding-top:30px;border-top:2px solid var(--border-color)}.nav-slot{display:flex;min-width:0}.nav-slot.nav-next{margin-left:auto}.nav-btn{display:inline-flex;align-items:center;gap:10px;max-width:320px;text-align:left}.nav-btn-arrow{font-size:18px;flex-shrink:0}.nav-btn-text{display:flex;flex-direction:column;min-width:0}.nav-btn-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;opacity:.75}.nav-btn-title{font-family:var(--font-display);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-end-badge{font-family:var(--font-mono);color:var(--text-muted);font-size:14px}@media(max-width:600px){.chapter-navigation{flex-direction:column;align-items:stretch}.nav-slot.nav-next{margin-left:0}.nav-btn{max-width:none;width:100%}}@media(max-width:768px){.content-progress{flex-direction:column;gap:12px}.theory-container{padding:24px 18px}.section-header-small h2{font-size:22px}.theory-content{font-size:15px}.theory-content pre{padding:32px 14px 16px;margin-left:-18px;margin-right:-18px;border-radius:0}.theory-content pre:before{border-radius:0}.theory-content table{font-size:.85em;margin-left:-18px;margin-right:-18px;width:calc(100% + 36px);border-radius:0}.theory-content table th,.theory-content table td{padding:10px 14px}.exercises-section{padding:24px}.section-header-large h2{font-size:24px}.exercice-card{padding:20px}.exercice-card-header{flex-direction:column;align-items:flex-start;gap:12px}.exercice-title{font-size:20px}}.theory-content img{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px var(--shadow-md);margin:30px 0;display:block}.theory-content figure{margin:40px 0;padding:0}.theory-content figure img{margin:0 0 15px;width:100%}.theory-content figcaption{text-align:center;font-size:14px;color:var(--text-secondary);font-style:italic;line-height:1.6;padding:0 20px}.theory-image{margin:40px 0;text-align:center}.theory-image img{max-width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px var(--shadow-md);margin:0 auto 15px}.theory-image figcaption{text-align:center;font-size:14px;color:var(--text-secondary);font-style:italic;line-height:1.6;padding:0 20px}.theory-image.size-small img,.theory-content .size-small img{max-width:min(400px,100%)}.theory-image.size-medium img,.theory-content .size-medium img{max-width:min(600px,100%)}.theory-image.size-large img,.theory-content .size-large img{max-width:min(800px,100%)}.theory-image.size-full img,.theory-content .size-full img{max-width:100%}.theory-image.align-left img,.theory-content .align-left img{margin-left:0;margin-right:auto}.theory-image.align-left figcaption,.theory-content .align-left figcaption{text-align:left}.theory-image.align-center img,.theory-content .align-center img{margin-left:auto;margin-right:auto}.theory-image.align-right img,.theory-content .align-right img{margin-left:auto;margin-right:0}.theory-image.align-right figcaption,.theory-content .align-right figcaption{text-align:right}.theory-content .float-left{float:left;margin-top:var(--img-mt, 10px);margin-right:var(--img-mr, 30px);margin-bottom:var(--img-mb, 20px);margin-left:var(--img-ml, 0)}.theory-content .float-right{float:right;margin-top:var(--img-mt, 10px);margin-right:var(--img-mr, 0);margin-bottom:var(--img-mb, 20px);margin-left:var(--img-ml, 30px)}.theory-content .float-left:not([class*=size-]),.theory-content .float-right:not([class*=size-]){max-width:min(400px,100%)}.theory-image.float-left img,.theory-image.float-right img{margin-left:0;margin-right:0}.theory-content .clear{clear:both}.theory-image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin:40px 0}.theory-image-grid figure{margin:0}.theory-image-grid img{width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px var(--shadow-md)}.theory-image-grid figcaption{margin-top:10px;font-size:13px;color:var(--text-secondary);text-align:center;font-style:italic}.theory-images-row{display:flex;gap:20px;margin:40px 0;flex-wrap:wrap}.theory-images-row figure{flex:1;min-width:250px;margin:0}.theory-images-row img{width:100%;height:auto;border-radius:8px;box-shadow:0 4px 12px var(--shadow-md)}.theory-images-row figcaption{margin-top:10px;font-size:13px;color:var(--text-secondary);text-align:center;font-style:italic}.image-highlight{background:var(--bg-subtle);border:2px solid var(--border-color-strong);border-radius:12px;padding:30px;margin:40px 0;text-align:center}.image-highlight img{margin:0 auto;box-shadow:0 6px 20px var(--shadow-lg)}.image-highlight figcaption{margin-top:20px;font-size:15px;color:var(--text-secondary);font-weight:500;font-style:normal}@media(max-width:768px){.theory-content .float-left,.theory-content .float-right{float:none;max-width:100%;margin:20px 0}.theory-image-grid{grid-template-columns:1fr}.theory-images-row{flex-direction:column}.theory-image.size-small img,.theory-image.size-medium img,.theory-content .size-small img,.theory-content .size-medium img{max-width:100%}.image-highlight{padding:20px}}.fullscreen-editor{position:fixed;inset:0;background:#1e1e1e;z-index:9999;display:flex;flex-direction:column;overflow:hidden}.editor-header{background:#2d2d30;color:#fff;padding:12px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #3e3e42;flex-shrink:0}.editor-header-left{display:flex;align-items:center;gap:15px}.editor-header-left h2{margin:0;font-size:16px;font-weight:600;color:#fff}.editor-id{font-size:12px;color:#999;background:#3e3e42;padding:4px 10px;border-radius:4px}.editor-header-right{display:flex;gap:10px}.editor-form{display:flex;flex:1;overflow:hidden;min-height:0}.editor-sidebar{width:280px;background:#252526;border-right:1px solid #3e3e42;display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0}.editor-sidebar-section{padding:20px;border-bottom:1px solid #3e3e42}.editor-sidebar-section h3{margin:0 0 15px;font-size:13px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.5px}.editor-sidebar .form-group{margin-bottom:15px}.editor-sidebar .form-label{display:block;margin-bottom:6px;font-size:13px;color:#ccc;font-weight:500}.editor-sidebar .form-control{width:100%;padding:8px 10px;background:#3c3c3c;border:1px solid #555;border-radius:4px;color:#fff;font-size:13px}.editor-sidebar .form-control:focus{outline:none;border-color:#007acc;background:#2d2d30}.editor-sidebar select.form-control{cursor:pointer}.insert-buttons{display:flex;flex-direction:column;gap:6px}.insert-buttons .btn{justify-content:flex-start;text-align:left;padding:8px 12px;font-size:13px;background:#3c3c3c;border:1px solid #555;color:#ccc;transition:all .2s}.insert-buttons .btn:hover{background:#505050;border-color:#666;color:#fff}.editor-actions{padding:20px;margin-top:auto}.editor-actions .btn-primary{width:100%;padding:12px;font-size:14px;font-weight:600}.editor-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.editor-main-header{padding:15px 20px;background:#2d2d30;border-bottom:1px solid #3e3e42;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.editor-main-header .form-label{margin:0;font-size:13px;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.5px}.editor-hint{font-size:12px;color:#999;font-style:italic}.monaco-wrapper{flex:1;min-height:0;overflow:hidden}.editor-loading{height:100%;display:flex;align-items:center;justify-content:center;background:#1e1e1e;color:#9ca3af;font-size:.9rem}.editor-preview{width:500px;background:#f5f7fa;border-left:1px solid #3e3e42;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.editor-preview-header{padding:15px 20px;background:#fff;border-bottom:1px solid #e0e0e0;flex-shrink:0}.editor-preview-header h3{margin:0;font-size:14px;font-weight:600;color:#333;text-transform:uppercase;letter-spacing:.5px}.editor-preview-content{flex:1;padding:30px;overflow-y:auto;background:#fff}.editor-preview-content.theory-content{font-size:14px;line-height:1.6}.editor-preview-content.theory-content h2{font-size:22px;margin-top:20px}.editor-preview-content.theory-content h3{font-size:18px;margin-top:16px}.editor-preview-content.theory-content pre{font-size:12px;padding:15px}@media(max-width:1200px){.editor-preview{width:400px}}@media(max-width:900px){.editor-sidebar{width:240px}.editor-preview{display:none}}@media(max-width:768px){.editor-sidebar{position:absolute;left:-280px;top:53px;bottom:0;z-index:100;transition:left .3s ease}.editor-sidebar.open{left:0}.editor-header-left h2{font-size:14px}.editor-id{display:none}}.editor-sidebar::-webkit-scrollbar,.editor-preview-content::-webkit-scrollbar{width:10px}.editor-sidebar::-webkit-scrollbar-track{background:#1e1e1e}.editor-sidebar::-webkit-scrollbar-thumb{background:#555;border-radius:5px}.editor-sidebar::-webkit-scrollbar-thumb:hover{background:#666}.editor-preview-content::-webkit-scrollbar-track{background:#f5f7fa}.editor-preview-content::-webkit-scrollbar-thumb{background:#ccc;border-radius:5px}.editor-preview-content::-webkit-scrollbar-thumb:hover{background:#999}.btn-block{display:block;width:100%}.cheat-sheet-overlay{position:fixed;inset:0;background:#00000080;z-index:10000;display:flex;justify-content:flex-end}.cheat-sheet-panel{width:420px;max-width:100%;height:100%;background:#252526;border-left:1px solid #3e3e42;display:flex;flex-direction:column;overflow:hidden;animation:cheat-sheet-slide-in .2s ease}@media(prefers-reduced-motion:reduce){.cheat-sheet-panel{animation:none}}@keyframes cheat-sheet-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.cheat-sheet-header{padding:16px 20px;background:#2d2d30;border-bottom:1px solid #3e3e42;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.cheat-sheet-header h2{margin:0;font-size:15px;font-weight:600;color:#fff}.cheat-sheet-close{background:none;border:none;color:#ccc;font-size:16px;cursor:pointer;padding:4px 8px}.cheat-sheet-close:hover{color:#fff}.cheat-sheet-content{flex:1;overflow-y:auto;padding:8px 20px 20px}.cheat-sheet-section h3{color:#9cdcfe;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin:20px 0 10px}.cheat-sheet-item{margin-bottom:10px}.cheat-sheet-label{display:block;color:#ccc;font-size:12px;margin-bottom:4px}.cheat-sheet-code{background:#1e1e1e;color:#d4d4d4;padding:8px 10px;border-radius:4px;font-family:Fira Code,Courier New,Courier,monospace;font-size:12.5px;line-height:1.5;white-space:pre-wrap;word-break:break-word;margin:0}.js-error-technical{margin-top:10px}.js-error-technical summary{cursor:pointer;color:#999;font-size:12px;-webkit-user-select:none;user-select:none}.js-error-technical summary:hover{color:#ccc}.js-error-technical pre{margin-top:8px}.fullscreen-editor .alert{border-radius:0;margin:0!important;padding:12px 20px;border:none;border-bottom:1px solid rgba(0,0,0,.1)}.fullscreen-editor .alert-success{background:#155724;color:#d4edda}.fullscreen-editor .alert-error{background:#721c24;color:#f8d7da}.admin-page{width:100%;max-width:1400px;margin:0 auto;padding:40px;box-sizing:border-box}.admin-header{margin-bottom:40px}.admin-header h1{color:var(--text-primary);font-family:var(--font-display);font-size:36px;font-weight:700;margin:0 0 10px}.admin-header p{color:var(--text-secondary);font-size:18px;margin:0}.admin-tabs{display:flex;gap:10px;margin-bottom:30px;border-bottom:2px solid var(--border-color)}.admin-tab{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease;margin-bottom:-2px}.admin-tab:hover{color:var(--brand-start);background:var(--bg-subtle)}.admin-tab-active{color:var(--brand-start);border-bottom-color:var(--brand-start)}.admin-content{background:var(--bg-card);border-radius:12px;padding:30px;box-shadow:0 2px 10px var(--shadow-sm)}.manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.manager-header h2{color:var(--text-primary);font-family:var(--font-display);font-size:24px;font-weight:600;margin:0}.btn{padding:10px 20px;border:none;border-radius:6px;font-family:var(--font-mono);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:var(--brand-gradient);color:var(--text-on-brand)}.btn-primary:hover{background:linear-gradient(135deg,#24688f,#164a6d);transform:translateY(-2px);box-shadow:0 4px 12px #2e7daf66}.btn-secondary{background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--border-color-strong)}.btn-danger{background:var(--color-error-text);color:var(--text-on-brand)}.btn-danger:hover{background:var(--color-error-text)}.btn-sm{padding:6px 12px;font-size:13px}.admin-table{width:100%;border-collapse:collapse}.admin-table thead{background:var(--bg-subtle)}.admin-table th{padding:12px 16px;text-align:left;color:var(--text-primary);font-family:var(--font-mono);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.admin-table td{padding:16px;border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-size:14px}.admin-table tbody tr:hover{background:var(--bg-subtle)}.admin-table-actions{display:flex;gap:8px}.badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.badge-success{background:var(--color-success-bg);color:var(--color-success-text)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.badge-danger{background:var(--color-error-bg);color:var(--color-error-text)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-card);border-radius:12px;padding:30px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px var(--shadow-lg)}.modal-header{margin-bottom:24px}.modal-header h3{color:var(--text-primary);font-size:24px;font-weight:600;margin:0}.modal-body{margin-bottom:24px}.modal-footer{display:flex;justify-content:flex-end;gap:12px}.form-group{margin-bottom:20px}.form-label{display:block;color:var(--text-primary);font-size:14px;font-weight:500;margin-bottom:8px}.form-control{width:100%;padding:10px 14px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;color:var(--text-primary);transition:border-color .2s ease}.form-control:focus{outline:none;border-color:var(--brand-start);box-shadow:0 0 0 3px #2e7daf26}textarea.form-control{min-height:100px;resize:vertical;font-family:inherit}.form-check{display:flex;align-items:center;gap:8px}.form-hint{margin:8px 0 0;color:var(--text-secondary);font-size:13px}.content-manager-layout{display:flex;align-items:flex-start;gap:24px}.content-manager-sidebar{flex:0 0 280px;width:280px;border:1px solid var(--border-color);border-radius:10px;overflow:hidden;max-height:70vh;overflow-y:auto}.content-manager-sidebar-item{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-card);border:none;border-bottom:1px solid var(--border-color);cursor:pointer;text-align:left;font-family:inherit}.content-manager-sidebar-item:last-child{border-bottom:none}.content-manager-sidebar-item:hover{background:var(--bg-subtle)}.content-manager-sidebar-item.active{background:var(--bg-subtle);box-shadow:inset 3px 0 0 var(--brand-start)}.content-manager-sidebar-order{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text-on-brand);background:var(--brand-gradient);padding:3px 9px;border-radius:12px;flex-shrink:0}.content-manager-sidebar-title{color:var(--text-primary);font-weight:500;font-size:14px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-manager-sidebar-count{color:var(--text-secondary);font-size:12px;flex-shrink:0}.content-manager-main{flex:1;min-width:0}.content-manager-empty{border:1px dashed var(--border-color);border-radius:10px;padding:60px 20px;text-align:center;color:var(--text-secondary)}.module-panel-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.module-panel-order{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--text-on-brand);background:var(--brand-gradient);padding:3px 10px;border-radius:12px;flex-shrink:0}.module-panel-title{color:var(--text-primary);font-weight:600;font-size:18px;flex:1}.module-panel-count{color:var(--text-secondary);font-size:13px}.module-panel-description{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0 0 20px}.module-panel-actions{margin-top:4px}.module-group .admin-table{border-top:1px solid var(--border-color)}.module-group-add{margin:12px 0 16px}@media(max-width:900px){.content-manager-layout{flex-direction:column}.content-manager-sidebar{width:100%;max-height:240px}}.chapitre-subgroup{border-top:1px solid var(--border-color)}.chapitre-subgroup-header{display:flex;align-items:baseline;gap:10px;padding:10px 18px;background:var(--bg-card)}.chapitre-subgroup-order{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--brand-start);text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}.chapitre-subgroup-title{color:var(--text-primary);font-weight:500;font-size:14px}.chapitre-subgroup-add{margin:10px 18px 16px}.form-check input[type=checkbox]{width:18px;height:18px;cursor:pointer}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state h3{color:var(--text-secondary);font-size:18px;margin:0 0 10px}.empty-state p{color:var(--text-muted);font-size:14px;margin:0}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--brand-start);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alert{padding:12px 16px;border-radius:6px;margin-bottom:20px;font-size:14px}.alert-success{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-text)}.alert-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-text)}@media(max-width:768px){.admin-page{padding:20px}.admin-header h1{font-size:28px}.admin-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-tab{white-space:nowrap}.admin-content{padding:20px}.manager-header{flex-direction:column;align-items:flex-start;gap:16px}.admin-table{display:block;overflow-x:auto}.modal{max-width:100%;margin:20px}}.preview-live-banner{background:var(--color-info-bg);color:var(--color-info-text);border-radius:8px;padding:10px 16px;margin-bottom:20px;font-size:13.5px;font-style:italic}.preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:var(--text-muted);text-align:center}.preview-empty p{margin:8px 0;font-size:18px}.preview-empty .text-muted{font-size:14px;color:var(--text-muted)}.account-page{--account-public: #2f9e6e;--account-protected: #c98a2c;--account-private: #8a93a6;min-height:100vh;background:var(--bg-page);padding:40px 20px 80px}:root[data-theme=dark] .account-page{--account-public: #58c896;--account-protected: #e3a857;--account-private: #7c879c}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .account-page{--account-public: #58c896;--account-protected: #e3a857;--account-private: #7c879c}}.account-container{max-width:720px;margin:0 auto}.account-container h1{color:var(--text-primary);font-family:var(--font-display);font-size:28px;margin-bottom:24px}.account-section{background:var(--bg-card);border-radius:12px;padding:30px;box-shadow:var(--shadow-sm);margin-bottom:24px}.account-section h2{color:var(--text-primary);font-family:var(--font-display);font-size:18px;margin-bottom:16px}.account-section-description{color:var(--text-secondary);font-size:14px;line-height:1.6;margin-bottom:20px}.account-properties-eyebrow{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.account-properties{border:1px solid var(--border-color);border-radius:8px}.account-property-row{display:flex;align-items:baseline;gap:10px;padding:12px 18px;font-family:var(--font-mono);font-size:14px;border-bottom:1px solid var(--border-color)}.account-property-row:last-child{border-bottom:none}.account-property-visibility{font-weight:700;width:14px;flex-shrink:0}.account-property-visibility.is-public{color:var(--account-public)}.account-property-visibility.is-protected{color:var(--account-protected)}.account-property-visibility.is-private{color:var(--account-private)}.account-property-name{color:var(--text-secondary)}.account-property-value{color:var(--text-primary);font-weight:600;margin-left:auto}.account-action{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;border-bottom:1px solid var(--border-color)}.account-action:last-of-type{border-bottom:none}.account-action h3{color:var(--text-primary);font-family:var(--font-display);font-size:15px;margin-bottom:4px}.account-action p{color:var(--text-secondary);font-size:13px;margin:0}.account-action-danger h3{color:var(--color-error-text)}.btn-secondary{background:var(--bg-subtle);color:var(--text-primary);border:1px solid var(--border-color-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-danger{background:var(--color-error-text);color:#fff;border:none}.btn-danger:hover:not(:disabled){opacity:.9}.btn-danger:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.account-delete-confirm{margin-top:16px;padding:20px;background:var(--color-error-bg);border-radius:8px}.account-delete-confirm p{color:var(--text-primary);font-size:14px;margin-bottom:12px}.account-delete-confirm input{width:100%;padding:10px 12px;border:1px solid var(--border-color-strong);border-radius:6px;background:var(--bg-card);color:var(--text-primary);font-size:14px;margin-bottom:12px}.account-delete-confirm-actions{display:flex;gap:10px;justify-content:flex-end}@media(max-width:600px){.account-action{flex-direction:column;align-items:flex-start}.account-action button{width:100%}.account-delete-confirm-actions{flex-direction:column-reverse}.account-delete-confirm-actions button{width:100%}}.trophy-room-page{--tr-bg: #ede3cc;--tr-bg-deep: #e3d5b3;--tr-ink: #2b1d0e;--tr-ink-soft: #5b4a34;--tr-rule: #b08d3f;--tr-wax-blank: #c9bfa4;--tr-wax-blank-shade: #b3a688;--tr-vert: #3b5d40;--tr-tenne: #a85b21;--tr-or: #a8791f;--tr-purpure: #5b3a73;--tr-gules: #8c2f1b;background:var(--tr-bg);border-radius:16px;padding:40px clamp(16px,4vw,56px) 32px;display:flex;flex-direction:column;gap:36px;color:var(--tr-ink)}:root[data-theme=dark] .trophy-room-page{--tr-bg: #1b140d;--tr-bg-deep: #241a10;--tr-ink: #ede3cc;--tr-ink-soft: #b9aa8c;--tr-rule: #d4af5a;--tr-wax-blank: #3a2f22;--tr-wax-blank-shade: #2c2318;--tr-vert: #5c8b63;--tr-tenne: #c97a3b;--tr-or: #d4af5a;--tr-purpure: #8b63a8;--tr-gules: #c1503a}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .trophy-room-page{--tr-bg: #1b140d;--tr-bg-deep: #241a10;--tr-ink: #ede3cc;--tr-ink-soft: #b9aa8c;--tr-rule: #d4af5a;--tr-wax-blank: #3a2f22;--tr-wax-blank-shade: #2c2318;--tr-vert: #5c8b63;--tr-tenne: #c97a3b;--tr-or: #d4af5a;--tr-purpure: #8b63a8;--tr-gules: #c1503a}}.trophy-room-hero{text-align:center;padding-bottom:28px;border-bottom:1px solid var(--tr-rule);position:relative}.trophy-emblem{width:52px;height:52px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--tr-bg);background:radial-gradient(circle at 35% 30%,var(--tr-rule),var(--tr-gules) 75%);box-shadow:0 3px 8px #00000040}.trophy-room-hero h1{font-family:Cinzel,serif;font-weight:700;font-size:clamp(26px,3.4vw,38px);letter-spacing:.05em;margin:0 0 10px;color:var(--tr-ink)}.trophy-room-subtitle{font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--tr-ink-soft);margin:0}.seal-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:28px 20px}.seal{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;opacity:0;transform:translateY(10px) scale(.94);animation:seal-stamp .5s ease forwards;animation-delay:var(--seal-delay, 0s)}@media(prefers-reduced-motion:reduce){.seal{opacity:1;transform:none;animation:none}}@keyframes seal-stamp{to{opacity:1;transform:translateY(0) scale(1)}}.seal-medallion{width:96px;height:96px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:34px;position:relative;transition:transform .25s ease,box-shadow .25s ease;box-shadow:inset 0 -6px 10px #0000002e,inset 0 4px 6px #ffffff1f,0 3px 8px #0003}.seal:hover .seal-medallion{transform:translateY(-3px) scale(1.04)}.seal-locked .seal-medallion{background:radial-gradient(circle at 35% 30%,var(--tr-wax-blank),var(--tr-wax-blank-shade) 80%);color:transparent}.seal-earned.seal-category-progression .seal-medallion{background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--tr-vert),white 12%),var(--tr-vert) 75%)}.seal-earned.seal-category-streak .seal-medallion{background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--tr-tenne),white 12%),var(--tr-tenne) 75%)}.seal-earned.seal-category-achievement .seal-medallion{background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--tr-or),white 12%),var(--tr-or) 75%)}.seal-earned.seal-category-special .seal-medallion{background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--tr-purpure),white 12%),var(--tr-purpure) 75%)}.seal-earned.seal-category-grade .seal-medallion{background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--tr-gules),white 12%),var(--tr-gules) 75%)}.seal-earned .seal-medallion{color:var(--tr-bg)}.seal-locked{opacity:.85}.seal-name{font-family:Cormorant Garamond,serif;font-weight:600;font-size:15px;letter-spacing:.04em;color:var(--tr-ink);margin:0}.seal-locked .seal-name{color:var(--tr-ink-soft);font-style:italic;font-weight:500}.seal-description{font-family:Cormorant Garamond,serif;font-style:italic;font-size:12.5px;line-height:1.4;color:var(--tr-ink-soft);margin:0}.seal-ribbon{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;margin:0;padding:2px 10px;clip-path:polygon(8% 0,92% 0,100% 50%,92% 100%,8% 100%,0 50%);background:var(--tr-rule);color:var(--tr-bg)}.seal-locked .seal-ribbon{background:var(--tr-wax-blank-shade);color:var(--tr-ink-soft)}.trophy-legend{border-top:1px solid var(--tr-rule);padding-top:18px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;font-family:IBM Plex Mono,monospace;font-size:11px;letter-spacing:.02em;color:var(--tr-ink-soft)}.trophy-legend-item{display:inline-flex;align-items:center;gap:6px}.trophy-legend-swatch{width:10px;height:10px;border-radius:50%;display:inline-block;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tr-ink),transparent 75%)}.loading-state{background:var(--tr-bg-deep);border-radius:12px;padding:60px 20px;text-align:center}.loading-state .spinner{width:40px;height:40px;margin:0 auto 20px}.loading-state p{font-family:Cormorant Garamond,serif;font-style:italic;color:var(--tr-ink-soft);font-size:16px;margin:0}.empty-state{background:var(--tr-bg-deep);border-radius:12px;padding:60px 20px;text-align:center}.empty-state p{font-family:Cormorant Garamond,serif;font-style:italic;color:var(--tr-ink-soft);font-size:16px;margin:0}.spinner{width:50px;height:50px;border:4px solid var(--tr-wax-blank);border-top:4px solid var(--tr-gules);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:1024px){.seal-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.seal-grid{grid-template-columns:repeat(2,1fr)}.trophy-room-page{padding:28px 20px 24px}}@media(max-width:480px){.seal-grid{grid-template-columns:1fr}.seal-medallion{width:84px;height:84px;font-size:28px}}.legal-page{min-height:100vh;background:var(--bg-page);padding:40px 20px 80px}.legal-container{max-width:800px;margin:0 auto;background:var(--bg-card);border-radius:12px;padding:40px;box-shadow:var(--shadow-sm);color:var(--text-primary)}.legal-back{display:inline-block;margin-bottom:24px;color:var(--brand-start);text-decoration:none;font-family:var(--font-mono);font-size:13px;font-weight:500}.legal-back:hover{text-decoration:underline}.legal-container h1{font-family:var(--font-display);font-size:28px;margin-bottom:8px;color:var(--text-primary)}.legal-updated{color:var(--text-muted);font-size:13px;margin-bottom:32px}.legal-container h2{font-family:var(--font-display);font-size:19px;margin-top:32px;margin-bottom:12px;color:var(--text-primary);padding-bottom:8px;border-bottom:1px solid var(--border-color)}.legal-container p{color:var(--text-secondary);line-height:1.7;margin-bottom:14px}.legal-container ul{margin:0 0 14px;padding-left:24px;color:var(--text-secondary);line-height:1.7}.legal-container li{margin-bottom:6px}.legal-container a{color:var(--brand-start)}.legal-container code{background:var(--code-inline-bg);color:var(--code-inline-text);padding:2px 6px;border-radius:4px;font-size:.9em}.legal-table{width:100%;border-collapse:collapse;margin:16px 0 24px;font-size:14px}.legal-table th,.legal-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border-color);color:var(--text-secondary)}.legal-table th{background:var(--bg-subtle);color:var(--text-primary);font-weight:600}@media(max-width:600px){.legal-container{padding:24px 18px}.legal-container h1{font-size:22px}.legal-table{display:block;overflow-x:auto}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}.container{max-width:1200px;margin:0 auto;padding:0 20px}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}
