:root{--ink: #0d1524;--ink-2: #111b2e;--surface: #14203a;--surface-2: #1b2a48;--line: #243453;--text: #e4eaf4;--muted: #8797b2;--signal: #5bb4ff;--signal-ink: #06111f;--amber: #f0b44c;--green: #5fd3a2;--danger: #ff8a7a;--fac: #5bb4ff;--apprentissage: #5fd3a2;--projets: #f0b44c;--journal: #c49bff;--sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--radius-s: 6px;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ink);color:var(--text);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;line-height:1.2;font-weight:600;letter-spacing:-.01em}input,select,textarea,button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-radius:4px}::selection{background:color-mix(in srgb,var(--signal) 35%,transparent)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.prose{font-size:1.02rem;line-height:1.75;overflow-wrap:anywhere}.prose>:first-child{margin-top:0}.prose h1,.prose h2,.prose h3{margin:1.8em 0 .6em}.prose h1{font-size:1.6rem}.prose h2{font-size:1.3rem}.prose h3{font-size:1.1rem}.prose p,.prose ul,.prose ol{margin:0 0 1em}.prose a{color:var(--signal);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.prose strong{color:#fff}.prose code{font-family:var(--mono);font-size:.86em;background:var(--surface-2);padding:.12em .4em;border-radius:4px}.prose pre{background:var(--ink-2);border:1px solid var(--line);padding:1rem 1.1rem;border-radius:var(--radius);overflow-x:auto}.prose pre code{background:none;padding:0;font-size:.88rem;line-height:1.65}.prose blockquote{margin:1.2em 0;padding:.1em 1.1em;border-left:2px solid var(--signal);color:var(--muted)}.prose table{border-collapse:collapse;width:max-content;min-width:100%;max-width:100%;display:block;overflow-x:auto;margin:0 0 1.2em;font-size:.95rem}.prose th,.prose td{border-bottom:1px solid var(--line);padding:.5rem .9rem .5rem 0;text-align:left;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}.prose th{min-width:5.5rem;vertical-align:bottom}.prose td.is-num,.prose th.is-num{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.prose td:first-child,.prose th:first-child{min-width:9rem}.prose th{color:var(--muted);font-weight:500}.prose img{max-width:100%;border-radius:var(--radius)}.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}.prose ul.contains-task-list{list-style:none;padding-left:.2rem}.prose input[type=checkbox]{width:auto;margin-right:.5rem;accent-color:var(--signal)}body:has(.pub){background:#04050b}.pub{--bg: #04050b;--fg: #eaf0ff;--fg-2: #aab4d2;--fg-3: #707b9c;--rule: rgba(130, 150, 255, .14);--link: #6ee7f9;--accent-a: #22d3ee;--accent-b: #8b5cf6;--accent-c: #f472b6;--card: rgba(16, 20, 44, .55);--serif-ish: "Schibsted Grotesk", "Inter", system-ui, sans-serif;position:relative;isolation:isolate;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--fg);font:400 17px/1.6 var(--serif-ish);font-variant-numeric:normal;color-scheme:dark}.pub ::selection{background:#6ee7f947;color:#fff}.pub :focus-visible{outline:2px solid var(--link);outline-offset:3px}.pub-wrap{width:min(1080px,100% - 48px);margin:0 auto}.pub-main{flex:1}.pub h1,.pub h2,.pub h3{color:var(--fg);letter-spacing:-.01em}.pub-nav{border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);position:sticky;top:0;z-index:10}.pub-nav-row{display:flex;justify-content:space-between;align-items:center;height:60px}.pub-name{font-weight:600;font-size:1rem;color:var(--fg)}.pub-nav nav{display:flex;gap:1.8rem;font-size:.95rem}.pub-nav nav a{color:var(--fg-2)}.pub-nav nav a:hover,.pub-nav nav a.active{color:var(--fg)}.text-link{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--link) 35%,transparent);transition:text-decoration-color .15s}.text-link:hover{text-decoration-color:var(--link)}.btn-ink{display:inline-flex;align-items:center;padding:.65rem 1.1rem;border-radius:6px;background:var(--fg);color:#fff;font-weight:500;font-size:.95rem;transition:background .15s}.btn-ink:hover{background:#2c3039}.quiet{color:var(--fg-3);margin:0}.intro{padding:clamp(4rem,11vw,8.5rem) 0 clamp(3rem,7vw,5rem);border-bottom:1px solid var(--rule)}.intro h1{font-size:clamp(3rem,9vw,6.4rem);font-weight:600;line-height:.95;letter-spacing:-.045em;margin:0}.intro-lead{font-size:clamp(1.15rem,2.2vw,1.45rem);line-height:1.45;color:var(--fg-2);max-width:30em;margin:1.8rem 0 0}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem 2.5rem;margin:2.6rem 0 0;padding:0;max-width:900px}.facts div{border-top:1px solid var(--rule);padding-top:.7rem}.facts dt{font-size:.82rem;color:var(--fg-3)}.facts dd{margin:.15rem 0 0;font-size:1rem}.intro-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.6rem;margin-top:2.4rem;font-size:.98rem}.row{display:grid;grid-template-columns:220px minmax(0,1fr);gap:2.5rem;padding:3.2rem 0;border-bottom:1px solid var(--rule)}.row-label{font-size:.95rem;font-weight:500;color:var(--fg-3);margin:.2rem 0 0;position:sticky;top:84px;align-self:start}.row-body{min-width:0}.row-body>p{margin:1.4rem 0 0}.projects,.resume,.articles{list-style:none;margin:0;padding:0}.projects>li{padding:0 0 1.8rem;margin-bottom:1.8rem;border-bottom:1px solid var(--rule)}.projects>li:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.project-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.projects h3{font-size:1.3rem;font-weight:600;margin:0}.project-meta{font-size:.85rem;color:var(--fg-3);white-space:nowrap}.projects p{margin:.45rem 0 0;color:var(--fg-2);max-width:40em}.project-stack{font-size:.9rem;color:var(--fg-3)!important}.project-links{display:flex;gap:1.2rem;font-size:.92rem;margin-top:.7rem!important}.resume>li{display:grid;grid-template-columns:215px minmax(0,1fr);gap:1.5rem;padding:0 0 1.6rem}.resume>li:last-child{padding-bottom:0}.resume-period{font-size:.9rem;color:var(--fg-3);padding-top:.15rem}.resume h3{font-size:1.08rem;font-weight:600;margin:0}.resume-org{margin:.15rem 0 0;color:var(--fg-2)}.resume-desc .prose{font-size:.97rem;color:var(--fg-2);margin-top:.4rem}.resume-desc .prose p,.resume-desc .prose ul{margin:.3rem 0}.skills{margin:0;display:grid;gap:.9rem}.skills div{display:grid;grid-template-columns:170px minmax(0,1fr);gap:1.5rem}.skills dt{color:var(--fg-3);font-size:.95rem}.skills dd{margin:0}.articles>li{display:grid;grid-template-columns:170px minmax(0,1fr);gap:1.5rem;padding-bottom:1.4rem}.articles time{font-size:.9rem;color:var(--fg-3);padding-top:.15rem}.articles h3{font-size:1.08rem;font-weight:600;margin:0}.articles h3 a:hover{color:var(--link)}.articles p{margin:.3rem 0 0;color:var(--fg-2);font-size:.97rem}.about .prose{color:var(--fg-2);max-width:40em}.contact-line{font-size:clamp(1.15rem,2.2vw,1.4rem);line-height:1.5;max-width:30em;margin:0!important}.reading{max-width:720px;padding:clamp(2.5rem,7vw,5rem) 0 6rem}.reading-wide{max-width:860px;padding:clamp(2.5rem,7vw,5rem) 0 6rem}.reading-head{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:.9rem;align-items:flex-start}.reading-head h1{font-size:clamp(2.2rem,5vw,3.2rem);font-weight:600;letter-spacing:-.035em;line-height:1.05;margin:0}.reading-lead{color:var(--fg-2);font-size:1.2rem;margin:0;max-width:34em}.reading-meta{display:flex;flex-wrap:wrap;gap:1.2rem;margin:0;font-size:.92rem;color:var(--fg-3)}.reading-meta a{color:var(--link)}.reading-head .hero-actions{display:flex;gap:1.2rem;align-items:center;margin-top:.3rem}.pub-back{display:inline-block;margin-bottom:2.2rem;color:var(--fg-3);font-size:.92rem}.pub-back:hover{color:var(--fg)}.project-status{margin:0;font-size:.88rem;color:var(--fg-3)}.pub .stack{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;font-size:.92rem;color:var(--fg-3)}.pub .stack li+li:before{content:", "}.related{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--rule)}.related h2{font-size:1rem;font-weight:500;color:var(--fg-3);margin:0 0 1.2rem}.pub .article-list{list-style:none;margin:0;padding:0}.pub .article-list li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1.5rem;padding:0 0 1.4rem}.pub .article-list time{font-size:.9rem;color:var(--fg-3)}.pub .article-list h3{font-size:1.08rem;font-weight:600;margin:0}.pub .article-list h3 a:hover{color:var(--link)}.pub .article-list p{margin:.3rem 0 0;color:var(--fg-2);font-size:.97rem}.pub .article-time{display:none}.article-tags{font-size:.88rem;color:var(--fg-3);margin-top:.5rem!important}.pub-state{padding:6rem 0;min-height:50vh;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}.pub-state h1{font-size:2rem;font-weight:600;margin:0}.pub-state p{color:var(--fg-2);margin:0}.pub-muted{color:var(--fg-3);margin:0}.pub .prose{color:var(--fg);font-size:1.04rem;line-height:1.7}.pub .prose h2{font-size:1.35rem;font-weight:600}.pub .prose h3{font-size:1.1rem;font-weight:600}.pub .prose a{color:var(--link);text-decoration-color:color-mix(in srgb,var(--link) 35%,transparent)}.pub .prose strong{color:var(--fg)}.pub .prose code{background:#efefec;color:var(--fg);font-family:IBM Plex Mono,ui-monospace,monospace}.pub .prose pre{background:#f2f2ef;border:1px solid var(--rule)}.pub .prose blockquote{border-left:2px solid var(--fg);color:var(--fg-2);background:none}.pub .prose th{color:var(--fg-3)}.pub .prose th,.pub .prose td{border-bottom-color:var(--rule)}.pub .prose hr{border-top-color:var(--rule)}.pub-footer{border-top:1px solid var(--rule);padding:1.6rem 0 2rem;font-size:.85rem;color:var(--fg-3)}.pub-footer-row{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.pub-private{color:var(--fg-3)}.pub-private:hover{color:var(--fg)}.pub .cv-wrap{padding:2.5rem 0 5rem}.pub .cv-bar{max-width:210mm;margin:0 auto 1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.pub .cv-bar p{margin:0;color:var(--fg-3);font-size:.92rem}.pub .cv-sheet{box-shadow:0 1px 2px #14161c0f,0 0 0 1px var(--rule);border-radius:2px}@media(max-width:860px){.row{grid-template-columns:1fr;gap:1.2rem;padding:2.4rem 0}.row-label{position:static}}.pub:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(60rem 36rem at 12% -8%,rgba(139,92,246,.3),transparent 60%),radial-gradient(52rem 32rem at 100% 8%,rgba(34,211,238,.2),transparent 60%),radial-gradient(46rem 30rem at 50% 108%,rgba(244,114,182,.14),transparent 60%)}.pub:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(150,170,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(150,170,255,.07) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 20%,transparent 75%)}.pub-nav{background:#04050b9e;backdrop-filter:blur(14px) saturate(1.5);-webkit-backdrop-filter:blur(14px) saturate(1.5);border-bottom-color:var(--rule)}.pub-name{display:inline-flex;align-items:center;gap:.6rem;font-weight:600;letter-spacing:-.01em}.pub-name:before{content:"";width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,var(--accent-a),var(--accent-b));box-shadow:0 0 12px var(--accent-a)}.pub-nav nav a{position:relative;transition:color .15s}.pub-nav nav a:hover,.pub-nav nav a.active{color:#fff}.pub-nav nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent-a),var(--accent-b))}.text-link{text-decoration-color:color-mix(in srgb,var(--link) 40%,transparent)}.btn-ink{color:#05060e;font-weight:600;border-radius:10px;padding:.7rem 1.25rem;background:linear-gradient(120deg,var(--accent-a),var(--accent-b));box-shadow:0 0 0 1px #ffffff2e inset,0 8px 28px -8px #22d3ee99;transition:transform .15s,box-shadow .2s,filter .2s}.btn-ink:hover{background:linear-gradient(120deg,var(--accent-a),var(--accent-b));filter:brightness(1.12);transform:translateY(-1px);box-shadow:0 0 0 1px #ffffff4d inset,0 12px 34px -8px #8b5cf6bf}.intro{position:relative;border-bottom-color:var(--rule)}.intro h1{background:linear-gradient(100deg,#fff 8%,#bfe9ff 38%,#b9a5ff 70%,#ff9fd1);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 32px rgba(139,92,246,.35))}.intro-lead{color:var(--fg-2)}.intro-photo{border:0;padding:3px;background:linear-gradient(135deg,var(--accent-a),var(--accent-b),var(--accent-c));box-shadow:0 0 40px -6px #8b5cf6b3}.facts div{border:1px solid var(--rule);border-radius:14px;padding:.9rem 1.1rem;background:var(--card);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.facts dt{font:500 .72rem IBM Plex Mono,ui-monospace,monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-a)}.facts dd{color:var(--fg)}.row{border-bottom-color:var(--rule)}.row-label{font:500 .78rem IBM Plex Mono,ui-monospace,monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--accent-a)}.row-label:before{content:"// ";color:var(--fg-3)}.projects>li{position:relative;padding:1.4rem 1.5rem;margin-bottom:1.1rem;border:1px solid var(--rule);border-radius:18px;background:var(--card);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .2s,border-color .2s,box-shadow .25s}.projects>li:last-child{border-bottom:1px solid var(--rule);margin-bottom:0;padding-bottom:1.4rem}.projects>li:hover{transform:translateY(-3px);border-color:#6ee7f973;box-shadow:0 18px 50px -22px #22d3ee8c,0 0 0 1px #8b5cf640 inset}.projects h3 a:hover{color:var(--link)}.project-meta{font:500 .7rem IBM Plex Mono,ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-b);border:1px solid rgba(139,92,246,.4);border-radius:999px;padding:.15rem .6rem}.project-highlights{color:var(--fg-2)}.pub .chips{list-style:none;margin:.7rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.pub .chips li{font:500 .76rem IBM Plex Mono,ui-monospace,monospace;color:#cfe9ff;padding:.22rem .62rem;border-radius:999px;border:1px solid rgba(110,231,249,.28);background:#22d3ee12}.skills dd,.pub .skills dd .chips{margin:0}.skills dt{font:500 .78rem IBM Plex Mono,ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-3);padding-top:.3rem}.resume{position:relative}.resume>li{position:relative;padding-left:0}.resume-period{font:500 .78rem IBM Plex Mono,ui-monospace,monospace;color:var(--accent-a);letter-spacing:.02em;white-space:nowrap}.resume-org{color:var(--fg-2)}.articles time,.pub .article-list time{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.78rem;color:var(--accent-a)}.reading-head{border-bottom-color:var(--rule)}.reading-head h1{background:linear-gradient(100deg,#fff,#c6d8ff 60%,#b9a5ff);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}.related{border-top-color:var(--rule)}.pub .prose code{background:#8b5cf629;color:#e4dcff}.pub .prose pre{background:#080a18d9;border-color:var(--rule)}.pub .prose blockquote{border-left-color:var(--accent-b)}.pub-footer{border-top-color:var(--rule)}.pub .cv-sheet{box-shadow:0 0 0 1px #96aaff40,0 30px 90px -20px #22d3ee40,0 20px 60px -10px #8b5cf659;border-radius:10px}.pub .cv-sheet a{color:#1f5fae}.pub .cv-sheet .prose code{background:#eef1f7;color:#0f1729}@media(prefers-reduced-motion:reduce){.projects>li,.btn-ink{transition:none}.projects>li:hover,.btn-ink:hover{transform:none}}@media print{.pub:before,.pub:after{display:none}}@media(max-width:600px){.pub{font-size:16px}.pub-wrap{width:min(1080px,100% - 36px)}.pub-nav nav{gap:1.1rem;font-size:.9rem}.pub-name{font-size:.95rem}.resume>li,.skills div,.articles>li,.pub .article-list li{grid-template-columns:1fr;gap:.2rem}}@media(max-width:420px){.pub-nav nav a[href="/#parcours"]{display:none}}.admin{font-size:15px}.muted{color:var(--muted);margin:.25rem 0 0}.small{font-size:.85rem}.lead{color:var(--muted);font-size:1.05rem;margin:0}.mono{font-family:var(--mono);font-size:.9rem}.center{text-align:center}.error{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);padding:.6rem .85rem;border-radius:8px;margin:0}.success{color:var(--green);background:color-mix(in srgb,var(--green) 10%,transparent);border:1px solid color-mix(in srgb,var(--green) 30%,transparent);padding:.6rem .85rem;border-radius:8px;margin:0}.splash{display:grid;place-items:center;height:100vh;font:500 1.4rem var(--mono);color:var(--muted)}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.topbar{display:none}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:1rem;padding:1.3rem .9rem;border-right:1px solid var(--line);background:var(--ink-2)}.brand{font:600 1.2rem var(--mono);color:var(--text)}.brand-side{padding:0 .55rem}.nav{display:flex;flex-direction:column;gap:1px}.nav a{padding:.42rem .65rem;border-radius:7px;color:var(--muted);display:flex;align-items:center;gap:.6rem}.nav a:hover{background:var(--surface);color:var(--text)}.nav a.active{background:var(--surface);color:var(--text);font-weight:500;box-shadow:inset 2px 0 0 var(--signal)}.nav-label{margin:1rem 0 .25rem;padding:0 .65rem;font-size:.78rem;color:color-mix(in srgb,var(--muted) 75%,transparent)}.nav a[class*=dot-]:before,.title-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c);flex:none}.title-dot{display:flex;align-items:center;gap:.7rem}.title-dot:before{width:10px;height:10px}.dot-fac{--c: var(--fac)}.dot-apprentissage{--c: var(--apprentissage)}.dot-projets{--c: var(--projets)}.dot-journal{--c: var(--journal)}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:.8rem;font-size:.86rem;padding:0 .55rem}.user-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:.8rem}.main{padding:2.2rem clamp(1rem,4vw,3rem);min-width:0}.backdrop{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--signal);color:var(--signal-ink);border:1px solid var(--signal);border-radius:7px;padding:.5rem .95rem;font-weight:600;cursor:pointer;white-space:nowrap;font-size:.92rem}.btn:hover{background:#7cc4ff}.btn:disabled{opacity:.55;cursor:default}.btn-block{width:100%}.btn-small{padding:.32rem .7rem;font-size:.85rem}.btn-ghost{background:transparent;color:var(--text);border-color:var(--line);font-weight:500}.btn-ghost:hover{background:var(--surface)}.danger{color:var(--danger)}.link-btn{background:none;border:0;padding:0;color:var(--muted);cursor:pointer}.link-btn:hover,.muted-link:hover{color:var(--text)}.muted-link{color:var(--muted);font-size:.88rem}.icon-btn{background:none;border:0;padding:.5rem;cursor:pointer}.burger,.burger:before,.burger:after{display:block;width:18px;height:2px;background:var(--text);border-radius:2px;position:relative}.burger:before,.burger:after{content:"";position:absolute}.burger:before{top:-6px}.burger:after{top:6px}.admin input:not([type=checkbox]),.admin select,.admin textarea{width:100%;background:var(--ink-2);border:1px solid var(--line);border-radius:7px;padding:.52rem .72rem;outline:none}.pw-field{position:relative;display:block}.pw-field input{width:100%;padding-right:2.7rem!important}.pw-eye{position:absolute;right:.3rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;padding:.4rem;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer}.pw-eye:hover{color:var(--text)}.pw-eye:focus-visible{outline:2px solid var(--signal);outline-offset:1px}.admin input:focus,.admin select:focus,.admin textarea:focus{border-color:var(--signal);box-shadow:0 0 0 3px color-mix(in srgb,var(--signal) 20%,transparent)}.admin label{display:flex;flex-direction:column;gap:.32rem;font-size:.84rem;color:var(--muted)}.admin label.check{flex-direction:row;align-items:center;gap:.55rem;color:var(--text);font-size:.92rem;cursor:pointer}.admin label.check input{width:16px;height:16px;accent-color:var(--signal)}.checks{display:flex;gap:1.5rem;flex-wrap:wrap}.search-big{margin-bottom:.5rem}.search-big input{font-size:1.05rem;padding:.8rem 1rem!important}.page{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:1.3rem}.page h1{font-size:1.75rem}.page h2{font-size:1.1rem}.page h3{font-size:1rem}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.crumbs{display:flex;gap:.5rem;font-size:.88rem;color:var(--muted)}.crumbs a:hover{color:var(--text)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;display:flex;flex-direction:column;position:relative;overflow:hidden}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c)}.stat:hover{border-color:color-mix(in srgb,var(--c) 50%,var(--line))}.stat-fac{--c: var(--fac)}.stat-apprentissage{--c: var(--apprentissage)}.stat-projets{--c: var(--projets)}.stat-journal{--c: var(--journal)}.stat-num{font:500 1.8rem var(--mono)}.stat-label{color:var(--muted);font-size:.88rem}.two-col{display:grid;grid-template-columns:1.6fr 1fr;gap:2rem}.card-list{display:flex;flex-direction:column;gap:.6rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}.card{display:flex;flex-direction:column;gap:.4rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.95rem 1.05rem}a.card:hover{border-color:color-mix(in srgb,var(--signal) 50%,var(--line))}.card-meta{display:flex;gap:.6rem;align-items:center;font-size:.78rem;color:var(--muted);flex-wrap:wrap}.push{margin-left:auto}.excerpt{margin:0;color:var(--muted);font-size:.88rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:.4rem;flex-wrap:wrap}.tag{font:.76rem var(--mono);color:var(--signal)}.chip-static{font:.78rem var(--mono);padding:.15rem .5rem;border:1px solid var(--line);border-radius:4px;color:#c2cde0}.empty{border:1px dashed var(--line);border-radius:var(--radius);padding:1.8rem;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:.8rem}.empty p{margin:0}.pill,.status{font-size:.74rem;padding:.1rem .55rem;border-radius:999px;font-weight:500;background:color-mix(in srgb,var(--c, var(--muted)) 14%,transparent);color:var(--c, var(--muted))}.pill-fac{--c: var(--fac)}.pill-apprentissage{--c: var(--apprentissage)}.pill-projets{--c: var(--projets)}.pill-journal{--c: var(--journal)}.pill-project{--c: var(--signal)}.pill-public{--c: var(--green)}.status-idee{--c: var(--muted)}.status-en_cours{--c: var(--green)}.status-en_pause{--c: var(--amber)}.status-termine{--c: var(--signal)}.chips{display:flex;gap:.45rem;flex-wrap:wrap}.chip{background:transparent;border:1px solid var(--line);border-radius:999px;padding:.28rem .8rem;font-size:.86rem;cursor:pointer;color:var(--muted)}.chip:hover{color:var(--text);border-color:color-mix(in srgb,var(--signal) 40%,var(--line))}.chip.active{background:var(--signal);color:var(--signal-ink);border-color:var(--signal)}.chip-count{opacity:.65;margin-left:.2rem;font-size:.8em}.note-page{max-width:780px}.note-head{display:flex;flex-direction:column;gap:.8rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line)}.note-head h1{font-size:2.1rem;letter-spacing:-.02em}.note-meta{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;font-size:.86rem;color:var(--muted);margin-top:.4rem}.editor-page{max-width:1250px}.title-input{font-size:1.6rem!important;font-weight:600;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;padding:.4rem 0!important;box-shadow:none!important}.title-input:focus{border-bottom-color:var(--signal)!important}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem}.field-row .grow{grid-column:span 2}.tabs{display:flex;gap:.3rem;align-items:center;border-bottom:1px solid var(--line)}.tabs button{background:none;border:0;padding:.5rem .9rem;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.active{color:var(--text);border-color:var(--signal)}.tabs .hint{margin-left:auto;font-size:.8rem;color:var(--muted)}.editor-split{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.editor{font:.92rem/1.7 var(--mono)!important;resize:vertical;min-height:60vh;padding:1rem!important}.preview{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:1rem 1.3rem;overflow:auto;max-height:75vh}.form-card{gap:.9rem}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:2rem;display:flex;flex-direction:column;gap:1rem}.login-card h1{font:600 1.8rem var(--mono)}@media(max-width:900px){.two-col{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.editor-split{grid-template-columns:1fr}.editor-split.tab-write .preview,.editor-split.tab-preview .editor{display:none}}@media(min-width:901px){.tabs button{display:none}}@media(max-width:760px){.shell{grid-template-columns:1fr}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;position:sticky;top:0;z-index:20;padding:.55rem 1rem;background:var(--ink-2);border-bottom:1px solid var(--line)}.sidebar{position:fixed;z-index:40;left:0;top:0;width:280px;max-width:85vw;transform:translate(-100%);transition:transform .2s ease}.menu-open .sidebar{transform:none}.menu-open .backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#04081099}.main{padding:1.3rem 1rem 3rem}.page h1{font-size:1.5rem}.note-head h1{font-size:1.7rem}.field-row .grow{grid-column:auto}.tabs .hint{display:none}}.card-icon{margin-right:.45rem}.notion-page{max-width:900px;margin:-2.2rem auto 0}.page-cover{--cover: var(--signal);position:relative;height:150px;margin:0 calc(-1*clamp(1rem,4vw,3rem));overflow:hidden;border-bottom:1px solid var(--line);background:radial-gradient(120% 140% at 15% 0%,color-mix(in srgb,var(--cover) 45%,transparent),transparent 55%),radial-gradient(90% 120% at 90% 100%,color-mix(in srgb,var(--cover) 25%,transparent),transparent 60%),var(--ink-2)}.page-cover-glow{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:conic-gradient(from 0deg,transparent,color-mix(in srgb,var(--cover) 22%,transparent),transparent 40%);animation:aurora 18s linear infinite;mix-blend-mode:screen}@keyframes aurora{to{transform:rotate(360deg)}}.page-cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(color-mix(in srgb,var(--text) 18%,transparent) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent);mask-image:linear-gradient(to bottom,#000,transparent)}.page-body{padding:0 clamp(0rem,3vw,2.5rem) 4rem}.page-topline{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-top:-38px;position:relative;z-index:2;flex-wrap:wrap}.page-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding-bottom:.3rem}.page-icon{display:grid;place-items:center;width:76px;height:76px;font-size:2.6rem;line-height:1;border-radius:18px;background:var(--surface);border:1px solid var(--line);cursor:pointer;box-shadow:0 10px 30px #00000059;transition:transform .15s}.page-icon:hover{transform:translateY(-2px) rotate(-3deg)}.page-icon.is-static{cursor:default}.page-icon.is-static:hover{transform:none}.icon-picker{position:relative}.icon-grid{position:absolute;top:calc(100% + 8px);left:0;z-index:30;display:grid;grid-template-columns:repeat(8,38px);gap:4px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px #00000073}.icon-grid button{font-size:1.35rem;height:38px;border:0;border-radius:8px;background:transparent;cursor:pointer}.icon-grid button:hover,.icon-grid button.is-active{background:var(--surface-2)}.page-title{width:100%;margin:1.1rem 0 .4rem;font:700 clamp(2rem,4.5vw,2.7rem)/1.15 var(--sans)!important;letter-spacing:-.03em;resize:none;overflow:hidden;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important}.page-title::placeholder{color:color-mix(in srgb,var(--muted) 55%,transparent)}h1.page-title{margin-top:.6rem}.notion-page .crumbs{margin-top:1.1rem}.save-status{font-size:.82rem;color:var(--muted);transition:color .2s}.save-status.is-saved{color:var(--green)}.save-status.is-saved:before{content:"✓ "}.save-status.is-error{color:var(--danger)}.props{display:grid;gap:2px;margin:.6rem 0 1.4rem;padding:.4rem 0 1rem;border-bottom:1px solid var(--line)}.admin label.prop{display:grid;grid-template-columns:9rem minmax(0,1fr);align-items:center;gap:.6rem;flex-direction:row;color:var(--text);font-size:.92rem}.prop-key{color:var(--muted);font-size:.86rem}.admin .prop input:not([type=checkbox]),.admin .prop select{background:transparent;border-color:transparent;padding:.35rem .5rem;border-radius:6px}.admin .prop input:not([type=checkbox]):hover,.admin .prop select:hover{background:var(--surface)}.admin .prop input:focus,.admin .prop select:focus{background:var(--ink-2);border-color:var(--signal)}.prop-input-dot{position:relative;display:block}.prop-input-dot:before{content:"";position:absolute;left:.55rem;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--dot);pointer-events:none}.admin .prop-input-dot input{padding-left:1.4rem!important}.switch{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;padding:.3rem .5rem}.switch input{position:absolute;opacity:0;pointer-events:none}.switch-track{width:34px;height:20px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);position:relative;transition:background .2s;flex:none}.switch-track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--muted);transition:transform .22s cubic-bezier(.3,1.5,.6,1),background .2s}.switch input:checked+.switch-track{background:color-mix(in srgb,var(--green) 35%,var(--surface-2));border-color:var(--green)}.switch input:checked+.switch-track:after{transform:translate(14px);background:var(--green)}.switch input:focus-visible+.switch-track{outline:2px solid var(--signal);outline-offset:2px}.rich-editor{position:relative}.toolbar{position:sticky;top:.6rem;z-index:15;display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:.35rem;margin-bottom:1.2rem;border-radius:10px;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:0 8px 24px #00000040}.tool,.tool-text{min-width:32px;height:32px;padding:0 .5rem;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;font-size:.92rem;transition:background .12s,color .12s}.tool:hover:not(:disabled),.tool-text:hover{background:var(--surface-2);color:var(--text)}.tool.is-active{background:color-mix(in srgb,var(--signal) 18%,transparent);color:var(--signal)}.tool:disabled{opacity:.35;cursor:default}.tool-text{font-size:.8rem}.admin .tool-select{width:auto;height:32px;padding:0 .5rem;background:transparent;border-color:transparent;font-size:.88rem}.tool-sep{width:1px;height:20px;background:var(--line);margin:0 4px}.tool-group{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.bubble{z-index:30;display:flex;gap:2px;padding:4px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);box-shadow:0 10px 30px #0006}.rich-content{outline:none;min-height:45vh;padding-bottom:6rem;caret-color:var(--signal)}.rich-content>*+*{margin-top:.15em}.rich-content h1{font-size:1.75rem;margin-top:1.6em}.rich-content h2{font-size:1.35rem;margin-top:1.5em;padding-bottom:.3em;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.rich-content h3{font-size:1.1rem;margin-top:1.3em}.rich-content p.is-empty:before,.rich-content h1.is-empty:before,.rich-content h2.is-empty:before,.rich-content h3.is-empty:before{content:attr(data-placeholder);color:color-mix(in srgb,var(--muted) 55%,transparent);float:left;height:0;pointer-events:none}.rich-content ul[data-type=taskList]{list-style:none;padding-left:.2rem}.rich-content ul[data-type=taskList] li{display:flex;gap:.55rem;align-items:flex-start}.rich-content ul[data-type=taskList] li>label{margin-top:.3em}.rich-content ul[data-type=taskList] li>div{flex:1}.rich-content ul[data-type=taskList] li[data-checked=true]>div{color:var(--muted);text-decoration:line-through}.rich-content input[type=checkbox]{width:16px;height:16px;accent-color:var(--green);cursor:pointer}.rich-content table{display:table;table-layout:fixed;width:100%}.rich-content th,.rich-content td{border:1px solid var(--line);padding:.45rem .65rem;vertical-align:top;position:relative}.rich-content th{background:var(--surface);color:var(--text)}.rich-content .selectedCell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--signal) 15%,transparent);pointer-events:none}.rich-content hr{border:0;border-top:1px solid var(--line);margin:1.6em 0}.rich-content hr.ProseMirror-selectednode{border-top-color:var(--signal)}.rich-content blockquote{background:color-mix(in srgb,var(--signal) 6%,transparent);border-radius:0 8px 8px 0;padding:.6em 1em;color:var(--text)}.rich-content blockquote p{margin:0}.page-content .prose blockquote{background:color-mix(in srgb,var(--signal) 6%,transparent);border-radius:0 8px 8px 0;padding:.6em 1em;color:var(--text)}.page-content .prose blockquote p{margin:0}.page-content{margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid var(--line)}.slash-anchor{position:fixed;z-index:80}.slash-anchor.is-above{transform:translateY(-100%)}.slash-anchor.is-above .slash-menu{transform-origin:bottom left}.slash-menu{width:280px;max-height:260px;overflow-y:auto;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 50px #00000080;transform-origin:top left}.slash-item{display:flex;align-items:center;gap:.7rem;width:100%;padding:.45rem .55rem;border:0;border-radius:8px;background:transparent;text-align:left;cursor:pointer}.slash-item[data-active=true]{background:var(--surface-2)}.slash-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--ink-2);font:500 .85rem var(--mono);color:var(--signal);flex:none}.slash-title{display:block;font-size:.9rem}.slash-hint{display:block;font-size:.78rem;color:var(--muted)}.slash-empty{margin:0;padding:.6rem;color:var(--muted);font-size:.88rem}.template-page{max-width:1000px}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9rem}.template-card{display:flex;flex-direction:column;gap:.35rem;text-align:left;cursor:pointer;padding:1.1rem;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}.template-card:hover{border-color:color-mix(in srgb,var(--signal) 55%,var(--line));box-shadow:0 14px 30px #0000004d}.template-card.is-suggested{background:linear-gradient(160deg,color-mix(in srgb,var(--signal) 9%,var(--surface)),var(--surface) 60%)}.template-icon{font-size:1.9rem}.template-name{font-weight:600;font-size:1.02rem;margin-top:.3rem}.template-desc{color:var(--muted);font-size:.86rem}.template-preview{display:flex;flex-direction:column;gap:4px;margin-top:.7rem;padding-top:.7rem;border-top:1px dashed var(--line)}.template-preview span{font:.74rem var(--mono);color:color-mix(in srgb,var(--muted) 85%,transparent)}.template-preview span:before{content:"# ";color:var(--signal)}.courses-page{max-width:1150px}.admin input.filter-input{width:200px}.semester{border-top:1px solid var(--line)}.semester-head{display:flex;align-items:center;gap:.7rem;width:100%;padding:1rem .2rem;border:0;background:none;cursor:pointer;text-align:left}.chevron{display:inline-block;font-size:1.3rem;color:var(--muted);width:1rem}.semester-name{font-size:1.15rem;font-weight:600}.semester-meta{margin-left:auto;color:var(--muted);font-size:.85rem}.semester-body{overflow:hidden}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem;padding:.2rem 0 1.6rem}.subject-panel{--subject: var(--signal);display:flex;flex-direction:column;border-radius:14px;border:1px solid var(--line);overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--subject) 9%,var(--surface)),var(--surface) 90px);transition:border-color .2s,transform .2s}.subject-panel:hover{border-color:color-mix(in srgb,var(--subject) 55%,var(--line))}.subject-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.9rem 1rem .5rem}.subject-head h3{display:flex;align-items:center;gap:.55rem;font-size:1rem}.subject-dot{width:9px;height:9px;border-radius:50%;background:var(--subject);box-shadow:0 0 10px var(--subject)}.subject-count{font:.78rem var(--mono);color:var(--muted)}.subject-notes{list-style:none;margin:0;padding:.2rem .4rem;flex:1}.subject-note{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;border-radius:8px;font-size:.92rem}.subject-note:hover{background:color-mix(in srgb,var(--subject) 10%,transparent)}.subject-note-icon{width:1.4rem;text-align:center}.subject-note-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subject-note-date{font:.75rem var(--mono);color:var(--muted)}.subject-foot{display:flex;justify-content:space-between;gap:.6rem;padding:.6rem 1rem .8rem;border-top:1px solid var(--line);font-size:.82rem}.subject-foot a{color:var(--muted)}.subject-foot a:hover{color:var(--subject)}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem}.skeleton{height:180px;border-radius:14px;background:linear-gradient(90deg,var(--surface) 0%,var(--surface-2) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.3s infinite}@keyframes shimmer{to{background-position:-200% 0}}@media(max-width:760px){.notion-page{margin-top:-1.3rem}.page-cover{height:110px;margin:0 -1rem}.page-icon{width:62px;height:62px;font-size:2.1rem}.admin label.prop{grid-template-columns:6.5rem minmax(0,1fr)}.admin input.filter-input{width:100%}.icon-grid{grid-template-columns:repeat(6,38px)}}.print-doc{--accent: #2f6db5;min-height:100vh;background:#f4f5f8;color:#1d2433;padding:2rem 1rem 4rem;font:11pt/1.65 var(--sans);color-scheme:light}.print-bar{max-width:210mm;margin:0 auto 1.5rem;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.print-bar p{margin:0 auto 0 0;font-size:.9rem;color:#4a5468}.print-doc .btn-ghost{color:#1d2433;border-color:#cfd5e1}.print-loading{text-align:center;color:#4a5468}.print-note,.print-cover{max-width:210mm;margin:0 auto 1.5rem;background:#fff;padding:18mm 18mm 20mm;box-shadow:0 2px 16px #141e321f;border-radius:4px}.print-note-head{border-bottom:2px solid var(--accent);padding-bottom:.8rem;margin-bottom:1.4rem}.print-icon{font-size:28pt;line-height:1}.print-note-head h1{font-size:22pt;margin:.3rem 0 .4rem;color:#0f1729;letter-spacing:-.02em}.print-meta{margin:0;font-size:9pt;color:#5b667c;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.print-doc .prose{font-size:11pt;line-height:1.65;color:#1d2433}.print-doc .prose h1,.print-doc .prose h2,.print-doc .prose h3{color:#0f1729;break-after:avoid}.print-doc .prose h2{font-size:14pt;border-bottom:1px solid #e3e7ef;padding-bottom:.2em}.print-doc .prose h2:before{content:"";display:inline-block;width:4px;height:.9em;background:var(--accent);margin-right:.5em;vertical-align:-.1em;border-radius:2px}.print-doc .prose strong{color:#0f1729}.print-doc .prose a{color:var(--accent)}.print-doc .prose code{background:#eef1f6;color:#1d2433}.print-doc .prose pre{background:#f5f7fb;border:1px solid #e3e7ef;break-inside:avoid}.print-doc .prose blockquote{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 7%,#fff);color:#1d2433;padding:.5em 1em;border-radius:0 6px 6px 0}.print-doc .prose blockquote p{margin:0}.print-doc .prose th,.print-doc .prose td{border:1px solid #dfe4ec;padding:.4rem .6rem}.print-doc .prose th{background:#f2f4f8;color:#1d2433}.print-doc .prose table{display:table;break-inside:avoid}.print-doc .prose input[type=checkbox]{accent-color:var(--accent)}.print-cover{display:flex;flex-direction:column;justify-content:center;min-height:260mm;border-top:10mm solid var(--accent)}.print-cover-kicker{margin:0;color:#5b667c;font-size:11pt}.print-cover h1{font-size:34pt;margin:.5rem 0;color:#0f1729;letter-spacing:-.03em}.print-cover-sub{margin:0 0 2.5rem;color:#5b667c}.print-toc{padding-left:1.4rem;font-size:12pt}.print-toc li{padding:.35rem 0;border-bottom:1px dotted #cfd5e1}@media print{@page{size:A4;margin:16mm 15mm 18mm}body{background:#fff!important}.print-doc{background:#fff;padding:0}.print-bar{display:none}.print-note,.print-cover{box-shadow:none;padding:0;margin:0;max-width:none;border-radius:0}.print-note+.print-note,.print-cover+.print-note{break-before:page}.print-cover{min-height:250mm;border-top-width:6mm;padding-top:12mm}.print-doc .prose pre,.print-doc .prose blockquote,.print-doc .prose li{break-inside:avoid}}@media(max-width:760px){.toolbar{top:62px}}.nav-badge{margin-left:auto;min-width:20px;padding:0 6px;border-radius:999px;background:var(--danger);color:#1a0b08;font:600 .72rem/20px var(--mono);text-align:center}h2 .nav-badge{margin-left:.5rem;vertical-align:2px;display:inline-block}.push-left{margin-right:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:1rem;background:#040810a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:min(520px,100%);max-height:calc(100vh - 2rem);overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.3rem 1.4rem 1.4rem;box-shadow:0 30px 80px #0000008c}.modal.is-wide{width:min(720px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-head h2{font-size:1.2rem}.icon-close{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:1.4rem;line-height:1;cursor:pointer}.icon-close:hover{background:var(--surface-2);color:var(--text)}.form-stack{display:flex;flex-direction:column;gap:.9rem}.modal-actions{justify-content:flex-end;margin-top:.3rem}.course-form-head{display:flex;gap:.9rem;align-items:flex-end}.course-form-head .page-icon{width:58px;height:58px;font-size:1.9rem;border-radius:14px;box-shadow:none}.color-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.color-row .prop-key{margin-right:.4rem}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;background:var(--c);cursor:pointer;transition:transform .15s;box-shadow:inset 0 0 0 2px var(--surface)}.swatch:hover{transform:scale(1.12)}.swatch.is-active{border-color:var(--text)}.year-tabs{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;padding:4px;border-radius:12px;background:var(--ink-2);border:1px solid var(--line);width:fit-content;max-width:100%}.year-tabs>button{position:relative;display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem;border:0;border-radius:9px;background:none;color:var(--muted);cursor:pointer;font-weight:500}.year-tabs>button>span{position:relative;z-index:1}.year-tabs>button.is-active{color:var(--text)}.year-pill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:9px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}.year-now{font:.7rem var(--mono);color:var(--green)}.year-add{color:var(--signal)!important}.year-stats{display:flex;gap:1.6rem;flex-wrap:wrap;color:var(--muted);font-size:.9rem}.year-stats strong{color:var(--text);font:500 1.15rem var(--mono);margin-right:.3rem}.onboard{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem;padding:2.2rem;border-radius:18px;border:1px solid var(--line);background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--signal) 14%,transparent),transparent 55%),var(--surface);max-width:640px}.onboard-icon{font-size:2.6rem}.onboard h2{font-size:1.4rem}.semester-section{display:flex;flex-direction:column;gap:.8rem}.semester-title{font-size:1rem;color:var(--muted);font-weight:500}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem}.course-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.3rem;height:100%;padding:1.1rem 1.15rem 1rem;border-radius:16px;border:1px solid var(--line);background:linear-gradient(165deg,color-mix(in srgb,var(--c) 14%,var(--surface)),var(--surface) 65%);transition:border-color .2s,box-shadow .2s}.course-card:hover{border-color:color-mix(in srgb,var(--c) 60%,var(--line));box-shadow:0 18px 40px #00000059,0 0 0 1px color-mix(in srgb,var(--c) 25%,transparent)}.course-card-glow{position:absolute;width:140px;height:140px;right:-40px;top:-50px;border-radius:50%;background:var(--c);opacity:.18;filter:blur(30px);transition:opacity .3s}.course-card:hover .course-card-glow{opacity:.32}.course-card-top{display:flex;justify-content:space-between;align-items:center}.course-card-icon{font-size:1.8rem}.course-ects{font:.75rem var(--mono);color:var(--c);border:1px solid color-mix(in srgb,var(--c) 45%,transparent);padding:.1rem .5rem;border-radius:999px}.course-card-name{font-size:1.12rem;font-weight:600;margin-top:.5rem}.course-card-sub{color:var(--muted);font-size:.86rem;min-height:1.3em}.course-card-stats{display:flex;gap:1rem;margin-top:.6rem;font:.8rem var(--mono);color:var(--muted)}.course-card-stats .has-tasks{color:var(--amber)}.course-next{font-size:.8rem;margin-top:.2rem}.course-facts{display:flex;flex-wrap:wrap;gap:.5rem;margin:.4rem 0 1.4rem}.course-facts span{display:inline-flex;gap:.45rem;padding:.3rem .7rem;border-radius:8px;background:var(--surface);border:1px solid var(--line);font-size:.86rem}.course-facts em{font-style:normal;color:var(--muted)}.tabs-line{display:flex;gap:.3rem;border-bottom:1px solid var(--line);margin-bottom:1.3rem;overflow-x:auto}.tabs-line button{position:relative;display:inline-flex;align-items:center;gap:.45rem;padding:.65rem .9rem;border:0;background:none;color:var(--muted);cursor:pointer;font-weight:500;white-space:nowrap}.tabs-line button.is-active{color:var(--text)}.tab-count{font:.72rem var(--mono);padding:0 .4rem;border-radius:999px;background:var(--surface-2)}.tab-underline{position:absolute;left:.6rem;right:.6rem;bottom:-1px;height:2px;border-radius:2px}.course-pages{--subject: var(--signal);list-style:none;margin:0;padding:.3rem;border-radius:14px;border:1px solid var(--line);background:var(--surface)}.course-infos{display:flex;flex-direction:column;gap:1.5rem;align-items:flex-start}.tasks-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.6rem;align-items:start}.tasks-side{display:flex;flex-direction:column;gap:.9rem;position:sticky;top:1rem}.side-card{padding:1rem 1.1rem;border-radius:14px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}.side-card h3{font-size:.98rem}.side-card p{margin:0}.calendar-box{overflow:hidden;width:100%;display:flex;flex-direction:column;gap:.5rem}.calendar-box ul{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.3rem}.copy-row{display:flex;gap:.4rem;width:100%;padding-top:.3rem}.admin .copy-row input{font:.75rem var(--mono);padding:.35rem .5rem}.task-board{display:flex;flex-direction:column;gap:1rem}.task-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.seg{display:inline-flex;padding:3px;border-radius:10px;background:var(--ink-2);border:1px solid var(--line)}.seg button{position:relative;padding:.35rem .85rem;border:0;background:none;color:var(--muted);cursor:pointer;border-radius:8px;font-size:.88rem}.seg button span{position:relative;z-index:1}.seg button.is-active{color:var(--text)}.seg-pill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;background:var(--surface-2)}.quick-add{display:flex;align-items:center;gap:.5rem;padding:.3rem .4rem .3rem .8rem;border-radius:12px;border:1px dashed var(--line);background:var(--ink-2);transition:border-color .15s}.quick-add:focus-within{border-color:var(--signal);border-style:solid}.quick-plus{color:var(--signal);font-size:1.2rem}.admin .quick-add input{background:transparent;border:0;box-shadow:none;padding:.45rem .3rem}.admin .quick-add input.quick-date{width:150px;color:var(--muted)}.task-group h3{display:flex;align-items:center;gap:.5rem;font-size:.86rem;color:var(--muted);font-weight:500;margin-bottom:.4rem}.task-group h3 span{font:.75rem var(--mono)}.group-overdue h3{color:var(--danger)}.group-today h3{color:var(--amber)}.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.task{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.55rem .8rem .55rem .6rem;border-radius:11px;border:1px solid var(--line);background:var(--surface);transition:border-color .15s,background .15s}.task:hover{border-color:color-mix(in srgb,var(--signal) 35%,var(--line))}.task.prio-haute{box-shadow:inset 3px 0 0 var(--danger)}.task-check{width:22px;height:22px;padding:0;border-radius:7px;border:1.6px solid color-mix(in srgb,var(--muted) 70%,transparent);background:transparent;cursor:pointer;display:grid;place-items:center;transition:background .2s,border-color .2s}.task-check:hover{border-color:var(--green)}.task-check svg{width:16px;height:16px;stroke:#06140e}.task.is-done .task-check{background:var(--green);border-color:var(--green)}.task-main{display:flex;flex-direction:column;gap:.2rem;min-width:0;text-align:left;border:0;background:none;padding:0;cursor:pointer;color:inherit}.task-title{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .2s}.task.is-done .task-title{color:var(--muted);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--muted) 60%,transparent)}.task-meta{display:flex;flex-wrap:wrap;gap:.4rem .7rem;font-size:.76rem;color:var(--muted)}.task-meta:empty{display:none}.kind{font:500 .7rem var(--mono);padding:.05rem .45rem;border-radius:5px;background:var(--surface-2);color:var(--text)}.kind-examen{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}.kind-devoir{background:color-mix(in srgb,var(--amber) 18%,transparent);color:var(--amber)}.kind-revision{background:color-mix(in srgb,var(--journal) 20%,transparent);color:var(--journal)}.kind-haute{background:transparent;color:var(--danger);padding:0}.task-course{display:inline-flex;align-items:center;gap:.3rem;color:var(--c)}.task-remind.is-past{opacity:.6}.task-due{font:.78rem var(--mono);white-space:nowrap;color:var(--muted)}.tone-overdue{color:var(--danger)}.tone-today{color:var(--amber)}.tone-soon{color:var(--signal)}.task-empty{margin:0;padding:1.6rem;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.task-board.is-compact .task-toolbar{margin-top:-.2rem}.dash-tasks .task-list{max-width:100%}.toasts{position:fixed;right:1.2rem;bottom:1.2rem;z-index:70;display:flex;flex-direction:column;gap:.7rem;width:min(360px,calc(100vw - 2rem))}.toast{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:start;padding:.9rem .9rem .9rem 1rem;border-radius:14px;border:1px solid color-mix(in srgb,var(--amber) 45%,var(--line));background:linear-gradient(160deg,color-mix(in srgb,var(--amber) 12%,var(--surface)),var(--surface) 70%);box-shadow:0 20px 50px #00000080}.toast-bell{font-size:1.4rem;transform-origin:50% 10%;display:inline-block}.toast-body{display:flex;flex-direction:column;gap:.2rem;min-width:0}.toast-body strong{font-size:.95rem}.toast-body>span{color:var(--muted);font-size:.82rem}.toast-actions{display:flex;gap:.4rem;margin-top:.5rem;flex-wrap:wrap}.toast-actions button{padding:.3rem .65rem;border-radius:7px;border:1px solid var(--line);background:var(--ink-2);color:var(--text);font-size:.8rem;cursor:pointer}.toast-actions button:first-child{background:var(--green);border-color:var(--green);color:#06140e;font-weight:600}@media(max-width:980px){.tasks-layout{grid-template-columns:1fr}.tasks-side{position:static}}@media(max-width:640px){.task{grid-template-columns:auto minmax(0,1fr)}.task-due{grid-column:2}.year-stats{gap:1rem}.admin .quick-add input.quick-date{width:120px}}.cv-wrap{padding:2rem 0 5rem}.cv-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem;max-width:210mm}.cv-bar p{margin:0;color:var(--muted);font-size:.92rem}.cv-sheet{--cv-accent: #1f5fae;width:min(210mm,100% - 32px);margin:0 auto;background:#fff;color:#1d2433;border-radius:6px;padding:16mm 15mm;box-shadow:0 30px 80px #00000080;font-size:10.5pt;line-height:1.5;color-scheme:light}.cv-head{display:flex;align-items:center;justify-content:space-between;gap:8mm;border-bottom:2px solid var(--cv-accent);padding-bottom:6mm;margin-bottom:7mm}.cv-head-text{min-width:0}.cv-photo{flex:none;width:30mm;height:30mm;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 0 0 2px var(--cv-accent)}.cv-head h1{font-size:27pt;color:#0f1729;letter-spacing:-.02em;line-height:1.1}.cv-title{margin:1.5mm 0 0;font:500 12pt var(--sans);color:var(--cv-accent)}.cv-contact{margin:3mm 0 0;display:flex;flex-wrap:wrap;gap:1mm 5mm;font-size:9.5pt;color:#4a5468}.cv-contact a{color:#4a5468}.cv-grid{display:grid;grid-template-columns:58mm 1fr;gap:8mm}.cv-sheet h2{font-size:9pt;font-weight:700;text-transform:uppercase;color:var(--cv-accent);letter-spacing:.09em;margin:0 0 3mm;padding-bottom:1.2mm;border-bottom:1px solid #dfe5ef}.cv-sheet section{margin-bottom:7mm}.pub .cv-sheet,.pub .prose{font-variant-numeric:normal}.pub .cv-about .prose{font-size:10.5pt;line-height:1.55}.cv-sheet section p{margin:0}.cv-side{font-size:9.5pt}.cv-skill{margin-bottom:3mm}.cv-skill h3{font-size:9.5pt;color:#0f1729;margin-bottom:.5mm}.cv-skill p{color:#4a5468}.cv-about .prose{font-size:10.5pt;line-height:1.5;color:#1d2433}.cv-about .prose h2{font-size:10pt;color:var(--cv-accent);margin:0 0 2.5mm;padding-bottom:1mm;border-bottom:1px solid #e3e7ef}.cv-about .prose h2+ul{margin-bottom:6mm}.cv-about .prose ul{padding-left:4mm}.cv-about .prose li{margin-bottom:1.5mm}.cv-about .prose strong{color:#0f1729}.cv-project{margin-bottom:3.5mm}.cv-project h3{font-size:10.5pt;color:#0f1729}.cv-project p{color:#4a5468;font-size:9.8pt}.cv-stack{font:8.5pt var(--mono)!important;color:var(--cv-accent)!important;margin-top:.5mm!important}@media(max-width:720px){.cv-sheet{padding:8mm 6mm}.cv-grid{grid-template-columns:1fr}.cv-head{flex-direction:column-reverse;align-items:flex-start}.cv-photo{width:26mm;height:26mm}}@media print{.pub-nav,.pub-footer,.cv-bar{display:none!important}.pub,.pub-main,.cv-wrap{background:#fff!important;padding:0!important}.cv-sheet{width:auto;box-shadow:none;border-radius:0;padding:0;transform:none!important;opacity:1!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn-danger{background:var(--danger);border-color:var(--danger);color:#1a0b08}.btn-danger:hover{background:#ffa595}.pill-fail{--c: var(--danger)}.res-list{display:flex;flex-direction:column;gap:1rem}.res-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.res-filters{display:flex;flex-direction:column;gap:.7rem}.res-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.res-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.9rem;align-items:start;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--line);background:var(--surface);transition:border-color .15s}.res-card:hover{border-color:color-mix(in srgb,var(--signal) 40%,var(--line))}.res-card.status-termine{opacity:.72}.res-kind{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--ink-2);border:1px solid var(--line);font:500 1rem var(--mono);color:var(--signal)}.res-kind.kind-video{color:var(--danger)}.res-kind.kind-cours{color:var(--green)}.res-kind.kind-doc{color:var(--amber)}.res-body{min-width:0;display:flex;flex-direction:column;gap:.25rem}.res-title{font-weight:500;color:var(--text);overflow-wrap:anywhere}.res-title:hover{color:var(--signal)}.res-ext{margin-left:.35rem;font-size:.8em;color:var(--muted);transition:transform .15s;display:inline-block}.res-title:hover .res-ext{transform:translate(2px,-2px);color:var(--signal)}.res-meta{display:flex;flex-wrap:wrap;gap:.3rem .8rem;font-size:.78rem;color:var(--muted)}.res-subject{color:var(--signal)}.res-notes{margin:.25rem 0 0;font-size:.86rem;color:color-mix(in srgb,var(--text) 80%,var(--muted));white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.res-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem}.res-fav{border:0;background:none;font-size:1.1rem;color:var(--line);cursor:pointer;transition:color .15s,transform .15s;padding:0}.res-fav:hover{transform:scale(1.2)}.res-fav.is-on{color:var(--amber)}.res-status{border:1px solid var(--line);background:var(--ink-2);color:var(--muted);border-radius:999px;padding:.15rem .65rem;font-size:.75rem;cursor:pointer;white-space:nowrap}.res-status.st-en_cours{color:var(--signal);border-color:color-mix(in srgb,var(--signal) 45%,var(--line))}.res-status.st-termine{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}.security-page{max-width:860px}.sec-card{display:flex;flex-direction:column;gap:.9rem;padding:1.3rem 1.4rem;border-radius:16px;border:1px solid var(--line);background:var(--surface)}.sec-card h2{font-size:1.1rem}.code-input{font:500 1.15rem var(--mono)!important;letter-spacing:.18em;max-width:220px}.twofa-setup{display:flex;gap:1.4rem;align-items:flex-start;flex-wrap:wrap}.twofa-setup img{border-radius:12px;background:#fff;padding:6px}.secret{font:.82rem var(--mono);background:var(--ink-2);padding:.15rem .45rem;border-radius:5px;word-break:break-all}.inline-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.status-line{display:flex;align-items:center;gap:.55rem;margin:0}.dot-ok{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}.sub-form{overflow:hidden;padding:.2rem 0}.recovery{display:flex;flex-direction:column;gap:.8rem;padding:1rem;border-radius:12px;border:1px solid color-mix(in srgb,var(--amber) 45%,var(--line));background:color-mix(in srgb,var(--amber) 7%,var(--surface))}.recovery p{margin:0}.recovery-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.4rem}.recovery-grid li{font:500 .95rem var(--mono);padding:.4rem .6rem;background:var(--ink-2);border-radius:7px;text-align:center;letter-spacing:.06em}.strength{margin:0}.s-trop-courte{color:var(--danger)}.s-correcte{color:var(--amber)}.s-forte{color:var(--green)}.table-wrap{overflow-x:auto}.events{width:100%;border-collapse:collapse;font-size:.86rem}.events th{text-align:left;color:var(--muted);font-weight:500;padding:.5rem .7rem .5rem 0;border-bottom:1px solid var(--line)}.events td{padding:.55rem .7rem .55rem 0;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent);white-space:nowrap}.events tr.is-fail td:first-child{color:var(--danger)}@media(max-width:640px){.res-card{grid-template-columns:auto minmax(0,1fr)}.res-actions{grid-column:2;flex-direction:row;align-items:center}}.field{display:flex;flex-direction:column;gap:.35rem}.field-label{font-size:.84rem;color:var(--muted)}.rich-editor.is-compact{border:1px solid var(--line);border-radius:10px;background:var(--ink-2);transition:border-color .15s,box-shadow .15s}.rich-editor.is-compact:focus-within{border-color:var(--signal);box-shadow:0 0 0 3px color-mix(in srgb,var(--signal) 20%,transparent)}.toolbar.is-compact{position:static;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:10px 10px 0 0;box-shadow:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;padding:.25rem}.rich-editor.is-compact .rich-content{min-height:110px;padding:.6rem .85rem .8rem;font-size:.95rem}.rich-editor.is-compact .rich-content h2{font-size:1.1rem}.res-notes .prose{font-size:.86rem;line-height:1.55}.res-notes .prose p{margin:0 0 .3em}.tippy-box{z-index:90}kbd{font:.7rem var(--mono);padding:.05rem .35rem;border-radius:4px;border:1px solid var(--line);background:var(--ink-2);color:var(--muted)}.search-trigger{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.55rem .7rem;border-radius:8px;border:1px solid var(--line);background:var(--ink);color:var(--muted);cursor:pointer;font-size:.9rem}.search-trigger:hover{border-color:color-mix(in srgb,var(--signal) 45%,var(--line));color:var(--text)}.palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:85;display:flex;justify-content:center;align-items:flex-start;padding:12vh 1rem 1rem;background:#04081099;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.palette{width:min(620px,100%);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 80px #0009;overflow:hidden}.palette-input{display:flex;align-items:center;gap:.7rem;padding:.9rem 1rem;border-bottom:1px solid var(--line);color:var(--muted);font-size:1.1rem}.admin .palette-input input{border:0;background:transparent;box-shadow:none;padding:0;font-size:1.02rem}.palette-list{list-style:none;margin:0;padding:.4rem;max-height:55vh;overflow-y:auto}.palette-group{margin:.6rem .6rem .25rem;font-size:.74rem;color:var(--muted)}.palette-item{display:flex;align-items:center;gap:.7rem;width:100%;padding:.55rem .7rem;border:0;border-radius:9px;background:transparent;text-align:left;cursor:pointer}.palette-item[data-active=true]{background:var(--surface-2)}.palette-icon{width:1.6rem;text-align:center}.palette-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-hint{font-size:.78rem;color:var(--muted)}.palette-empty{padding:1rem;color:var(--muted);text-align:center}.palette-foot{margin:0;padding:.55rem 1rem;border-top:1px solid var(--line);font-size:.76rem;color:var(--muted);display:flex;gap:.35rem;align-items:center}.focus{position:relative}.focus-start{width:100%;padding:.5rem .7rem;border-radius:8px;border:1px dashed var(--line);background:transparent;color:var(--muted);cursor:pointer;text-align:left;font-size:.86rem}.focus-start:hover{color:var(--text);border-color:var(--signal)}.focus-running{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;padding:.55rem .65rem;border-radius:10px;background:color-mix(in srgb,var(--signal) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--signal) 40%,var(--line))}.focus-ring{width:30px;height:30px;transform:rotate(-90deg)}.ring-bg,.ring-fg{fill:none;stroke-width:3.5}.ring-bg{stroke:var(--line)}.ring-fg{stroke:var(--signal);stroke-dasharray:94.25;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.focus-time{font:500 1.05rem var(--mono);flex:1}.focus-pop{position:absolute;bottom:calc(100% + 8px);left:0;right:0;z-index:20;display:flex;flex-direction:column;gap:.6rem;padding:.8rem;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:0 16px 40px #00000073}.focus-durations{display:flex;gap:.35rem}.focus-saved{margin:.4rem 0 0;font-size:.8rem;color:var(--green)}.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.7rem}.kpi{padding:.9rem 1rem;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:.85rem;display:flex;flex-direction:column;gap:.15rem}.kpi span{font:500 1.45rem var(--mono);color:var(--text)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.bar-chart{margin:0}.bar-chart svg{width:100%;height:170px;display:block}.grid-line{stroke:var(--line);stroke-width:.3;vector-effect:non-scaling-stroke;stroke-dasharray:2 3}.bar-axis{display:flex;justify-content:space-between;font:.72rem var(--mono);color:var(--muted);margin-top:.3rem}.hbars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.hbars li{display:grid;grid-template-columns:minmax(90px,200px) 1fr auto;gap:.8rem;align-items:center;font-size:.88rem}.hbar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar-track{height:10px;border-radius:999px;background:var(--ink-2);overflow:hidden}.hbar-fill{display:block;height:100%;border-radius:999px;background:var(--signal)}.hbar-value{font:.8rem var(--mono);color:var(--muted);min-width:3.5rem;text-align:right}.revision-banner{display:flex;align-items:center;gap:.8rem;padding:.85rem 1.1rem;border-radius:14px;border:1px solid color-mix(in srgb,var(--journal) 45%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--journal) 14%,var(--surface)),var(--surface))}.revision-banner>span:first-child{font-size:1.4rem}.revision-go{margin-left:auto;color:var(--journal);font-weight:600}.card-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.card-row{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;width:100%;padding:.65rem .9rem;border-radius:10px;border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer}.card-row:hover{border-color:color-mix(in srgb,var(--journal) 50%,var(--line))}.card-q{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:1rem;align-items:stretch}.session-progress{height:6px;border-radius:999px;background:var(--ink-2);overflow:hidden}.session-progress span{display:block;height:100%;background:var(--journal);border-radius:999px}.flip-wrap{perspective:1200px;cursor:pointer}.flip-card{min-height:260px;padding:2rem;border-radius:20px;border:1px solid var(--line);background:radial-gradient(120% 120% at 0% 0%,color-mix(in srgb,var(--journal) 12%,transparent),transparent 60%),var(--surface);display:flex;flex-direction:column;justify-content:center;gap:.6rem;box-shadow:0 24px 60px #00000059}.flip-card.is-back{background:radial-gradient(120% 120% at 100% 100%,color-mix(in srgb,var(--green) 12%,transparent),transparent 60%),var(--surface)}.flip-card .prose{font-size:1.25rem;text-align:center}.flip-label{font:.75rem var(--mono);color:var(--muted);text-align:center}.flip-hint{font-size:.8rem;color:var(--muted);text-align:center}.grades{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.grade{display:flex;flex-direction:column;gap:.15rem;padding:.7rem;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer}.grade span{font:.72rem var(--mono);color:var(--muted)}.grade.g-0 strong{color:var(--danger)}.grade.g-1 strong{color:var(--amber)}.grade.g-2 strong{color:var(--signal)}.grade.g-3 strong{color:var(--green)}.grade:hover{transform:translateY(-2px);border-color:currentColor}.session-done{text-align:center;display:flex;flex-direction:column;gap:.7rem;align-items:center;padding:3rem 1rem}.session-trophy{font-size:3rem}.week{--cols: 5;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}.week-head,.week-body{display:grid;grid-template-columns:48px repeat(var(--cols),minmax(0,1fr))}.week-head{border-bottom:1px solid var(--line)}.week-day{padding:.6rem .5rem;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:.2rem;min-width:0}.week-day strong{font-size:.85rem}.week-day>span{font:.8rem var(--mono);color:var(--muted)}.week-day.is-today{background:color-mix(in srgb,var(--signal) 8%,transparent)}.week-day.is-today>span{color:var(--signal)}.week-tasks{display:flex;flex-direction:column;gap:3px}.week-task{font-size:.72rem;padding:.15rem .4rem;border-radius:5px;background:var(--ink-2);border-left:2px solid var(--amber);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-task.kind-examen{border-color:var(--danger);color:var(--danger)}.week-task.is-done{opacity:.5;text-decoration:line-through}.week-body,.week-hours{position:relative}.week-hours span{position:absolute;right:6px;transform:translateY(-50%);font:.7rem var(--mono);color:var(--muted)}.week-hours span:first-child{transform:none}.week-col{position:relative;border-left:1px solid var(--line)}.week-col.is-today{background:color-mix(in srgb,var(--signal) 4%,transparent)}.week-line{position:absolute;left:0;right:0;border-top:1px dashed color-mix(in srgb,var(--line) 70%,transparent)}.slot{position:absolute;left:4px;right:4px;padding:.35rem .5rem;border-radius:8px;overflow:hidden;background:color-mix(in srgb,var(--c) 18%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 55%,transparent);border-left:3px solid var(--c);display:flex;flex-direction:column;gap:.1rem}.slot-name{font-size:.8rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-meta{font:.68rem var(--mono);color:var(--muted)}.slot-del{position:absolute;top:2px;right:4px;border:0;background:none;color:var(--muted);cursor:pointer;opacity:0}.slot:hover .slot-del{opacity:1}.now-line{position:absolute;left:48px;right:0;height:2px;background:var(--danger);box-shadow:0 0 8px var(--danger)}.dropzone{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:1.6rem;border:1.5px dashed var(--line);border-radius:14px;background:var(--ink-2);cursor:pointer;text-align:center;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.is-drag{border-color:var(--signal);background:color-mix(in srgb,var(--signal) 7%,var(--ink-2))}.dropzone-icon{font-size:1.6rem;color:var(--signal)}.files{display:flex;flex-direction:column;gap:.8rem}.file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.file-list li{display:grid;grid-template-columns:auto 1fr auto auto;gap:.8rem;align-items:center;padding:.55rem .8rem;border-radius:10px;border:1px solid var(--line);background:var(--surface)}.file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-name:hover{color:var(--signal)}.link-form{display:grid;grid-template-columns:1fr 220px auto;gap:.5rem}.links-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.links-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:1rem;align-items:center;padding:.75rem .9rem;border-radius:12px;border:1px solid var(--line);background:var(--ink-2)}.links-list li.is-seen{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}.link-main{display:flex;flex-direction:column;gap:.2rem;min-width:0}.link-url{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-stats{display:flex;flex-direction:column;gap:.25rem;align-items:flex-end}.ai-bar{display:flex;align-items:center;gap:.5rem;margin-top:1rem;flex-wrap:wrap}.ai-badge{font:600 .7rem var(--mono);padding:.15rem .45rem;border-radius:5px;color:#0d1524;background:linear-gradient(90deg,var(--signal),var(--journal))}.ai-loading{display:flex;align-items:center;gap:.8rem;color:var(--muted);padding:1rem 0}.ai-dots{display:inline-flex;gap:4px}.ai-dots i{width:7px;height:7px;border-radius:50%;background:var(--signal);animation:ai-bounce 1s infinite ease-in-out}.ai-dots i:nth-child(2){animation-delay:.15s;background:var(--journal)}.ai-dots i:nth-child(3){animation-delay:.3s;background:var(--green)}@keyframes ai-bounce{0%,80%,to{transform:translateY(0);opacity:.5}40%{transform:translateY(-6px);opacity:1}}.cv-pdf{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.8rem 1rem;border-radius:12px;background:var(--ink-2);border:1px solid var(--line)}.cv-pdf p{margin:.2rem 0 0}.cv-group h3{font-size:.9rem;color:var(--muted);font-weight:500;margin:.4rem 0}.cv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.cv-item{display:grid;grid-template-columns:1fr auto;gap:.15rem 1rem;width:100%;text-align:left;padding:.7rem .9rem;border-radius:10px;border:1px solid var(--line);background:var(--surface);cursor:pointer}.cv-item:hover{border-color:color-mix(in srgb,var(--signal) 45%,var(--line))}.cv-item-title{font-weight:500}.cv-item .mono{grid-row:1;grid-column:2;color:var(--muted)}.cv-item-desc{grid-column:1 / -1}.cv-item-desc .prose{font-size:.86rem;color:var(--muted)}.cv-item-desc .prose p,.cv-item-desc .prose ul{margin:.2rem 0}.backup-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.backup-list li{display:flex;gap:1rem;align-items:center}.backup-list li .link-btn{margin-left:auto}.timeline-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2.5rem;margin-top:1rem}.timeline-title{font:500 .85rem var(--mono);color:var(--signal);margin-bottom:1rem}.timeline{position:relative;list-style:none;margin:0;padding:0 0 0 1.6rem;display:flex;flex-direction:column;gap:1.2rem}.timeline-line{position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--signal),color-mix(in srgb,var(--signal) 10%,transparent));transform-origin:top;border-radius:2px}.timeline-item{position:relative}.timeline-dot{position:absolute;left:calc(-1.6rem + 0px);top:.45rem;width:12px;height:12px;border-radius:50%;background:var(--ink);border:2px solid var(--signal)}.timeline-item.is-current .timeline-dot{background:var(--green);border-color:var(--green);box-shadow:0 0 0 0 var(--green);animation:pulse 2.4s ease-out infinite}.timeline-card{padding:.9rem 1.1rem;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 70%,transparent);transition:border-color .2s,transform .2s}.timeline-card:hover{border-color:color-mix(in srgb,var(--signal) 45%,var(--line));transform:translate(3px)}.timeline-period{margin:0;font:.78rem var(--mono);color:var(--muted)}.timeline-card h4{margin:.25rem 0 0;font-size:1.02rem}.timeline-org{margin:.15rem 0 0;color:var(--muted);font-size:.9rem}.timeline-desc .prose{font-size:.9rem;color:color-mix(in srgb,var(--text) 85%,var(--muted));margin-top:.4rem}.timeline-desc .prose p,.timeline-desc .prose ul{margin:.2rem 0}.cv-entry{margin-bottom:4mm}.cv-entry-head{display:flex;justify-content:space-between;gap:4mm;align-items:baseline}.cv-entry-head h3{font-size:10.5pt;color:#0f1729;margin:0}.cv-entry-period{font:8.5pt var(--mono);color:#5b667c;white-space:nowrap}.cv-entry-org{margin:.5mm 0 0!important;color:#4a5468;font-size:9.6pt}@media(max-width:760px){.link-form,.links-list li{grid-template-columns:1fr}.link-stats{align-items:flex-start}.grades{grid-template-columns:repeat(2,1fr)}.file-list li{grid-template-columns:auto 1fr}.week{overflow-x:auto}.week-head,.week-body{min-width:640px}}.project-page{padding:clamp(2.5rem,7vw,5rem) 0 6rem}.project-hero{max-width:760px;padding-bottom:2.2rem;border-bottom:1px solid var(--rule);margin-bottom:2.5rem}.project-hero h1{font-size:clamp(2.4rem,6vw,3.8rem);font-weight:600;letter-spacing:-.04em;line-height:1;margin:0 0 1rem}.project-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:3.5rem;align-items:start}.project-facts{position:sticky;top:90px;display:flex;flex-direction:column;gap:1.8rem;font-size:.94rem}.project-facts dl{margin:0;display:flex;flex-direction:column;gap:1rem}.project-facts dt,.facts-title{color:var(--fg-3);font-size:.82rem;margin:0}.project-facts dd{margin:.15rem 0 0}.project-linklist ul{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.55rem}.project-linklist li{display:flex;flex-direction:column}.project-linklist li span{font-size:.8rem;color:var(--fg-3)}.project-main{min-width:0;max-width:720px}.project-main .prose img{border:1px solid var(--rule);border-radius:6px;margin:.5rem 0}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.4rem;margin:0 0 2.4rem;padding:0 0 2rem;border-bottom:1px solid var(--rule)}.metrics dt{font-size:2rem;font-weight:600;letter-spacing:-.03em;line-height:1.1}.metrics dd{margin:.25rem 0 0;color:var(--fg-2);font-size:.92rem}.highlights{margin-bottom:2.4rem}.highlights h2{font-size:1rem;font-weight:500;color:var(--fg-3);margin:0 0 .8rem}.highlights ul{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.45rem}.project-context{font-size:.88rem;color:var(--fg-3)!important;margin:.2rem 0 0!important}.project-highlights{margin:.6rem 0 0;padding-left:1.1rem;color:var(--fg-2);font-size:.97rem;display:flex;flex-direction:column;gap:.2rem}.skills-learning dd{color:var(--link)}@media(max-width:860px){.project-layout{grid-template-columns:1fr;gap:2rem}.project-facts{position:static;padding-bottom:1.6rem;border-bottom:1px solid var(--rule)}}.repeat{border:1px solid var(--line);border-radius:10px;padding:.7rem .9rem .8rem;margin:0;display:flex;flex-direction:column;gap:.45rem;align-items:flex-start}.repeat legend{font-size:.84rem;color:var(--muted);padding:0 .3rem}.repeat-row{display:grid;grid-template-columns:160px 1fr auto;gap:.45rem;width:100%;align-items:center}.field-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.rich-content img{max-width:100%;border-radius:8px;border:1px solid var(--line)}.rich-content img.ProseMirror-selectednode{outline:2px solid var(--signal)}.sec-alert{border:1px solid var(--line);border-left:3px solid var(--signal);padding:.8rem 1rem;border-radius:8px;margin:0 0 1rem}.push-devices{list-style:none;padding:0;margin:.6rem 0 0;display:flex;flex-direction:column;gap:.4rem}.push-devices li{display:flex;gap:.8rem;align-items:baseline;flex-wrap:wrap;font-size:.92rem}:root{--ink: #111214;--ink-2: #16171a;--surface: #1b1c20;--surface-2: #232429;--line: #2c2e34;--text: #e9e9eb;--muted: #8e9099;--signal: #8fb4ff;--signal-ink: #0e1220;--amber: #d9b26a;--green: #7fc6a4;--danger: #ef8f86;--fac: #8fb4ff;--apprentissage: #7fc6a4;--projets: #d9b26a;--journal: #b9a3e8;--sans: "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif}.admin :is(table,.kpi,.kpis,time,.mono,.tab-count,.chip-count,.hbar-value,.focus-time,.progress-label,.rec-clock,.clock,.stat-value){font-feature-settings:"tnum" 1}.brand,.splash{font-family:var(--sans);letter-spacing:-.02em}.admin{--mono: var(--sans)}.admin code,.admin pre,.admin kbd,.admin .rich-content code{font-family:IBM Plex Mono,ui-monospace,monospace}.page-cover{height:96px;background:var(--ink-2)}.page-cover:before{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--cover);opacity:.85}.page-cover:after,.page-cover-glow,.course-card-glow{display:none}.template-card.is-suggested,.course-card,.onboard,.flip-card,.flip-card.is-back,.revision-banner,.subject-head,[class*=-hero]{background:var(--surface)!important}.admin .card,.admin .course-card,.admin .sec-card,.admin .modal,.admin .btn{box-shadow:none!important}.course-card{border-top:3px solid var(--c)}.ai-badge{background:var(--surface-2)!important;color:var(--text)!important;border:1px solid var(--line)}.timeline-line{background:var(--line)!important}.btn:not(.btn-ghost):not(.btn-danger):not(.btn-link){background:var(--text);color:var(--ink);border-color:var(--text)}.btn:not(.btn-ghost):not(.btn-danger):not(.btn-link):hover{background:#fff}.nav a.active{box-shadow:none;background:var(--surface-2)}:root{--ink: #0b0c1a;--ink-2: #10122a;--surface: #161936;--surface-2: #1e2247;--line: #2a2f5c;--text: #eceefc;--muted: #9aa0c8;--signal: #8b8cf8;--signal-ink: #0b0c1a;--fac: #8b8cf8;--radius-s: 10px;--radius: 16px;--grad: linear-gradient(135deg, #6366f1, #a855f7)}body{background:radial-gradient(120% 60% at 50% -10%,#1a1b44 0%,var(--ink) 60%) fixed}.brand{display:inline-flex;align-items:center;gap:.6rem;font:700 1.2rem var(--sans)}.logo{flex:none;border-radius:8px;filter:drop-shadow(0 4px 12px rgba(99,102,241,.45))}.login-logo{display:grid;place-items:center;margin-bottom:.4rem}.splash{font:700 1.6rem var(--sans);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.admin .btn:not(.btn-ghost):not(.btn-danger):not(.btn-link){background:var(--grad);color:#fff;border-color:transparent;border-radius:12px}.admin .btn:not(.btn-ghost):not(.btn-danger):not(.btn-link):hover{background:var(--grad);filter:brightness(1.12)}.admin .btn{border-radius:12px;min-height:40px}.admin .btn-ghost{background:color-mix(in srgb,var(--surface-2) 70%,transparent);border-color:var(--line)}.nav a.active{background:color-mix(in srgb,var(--signal) 16%,transparent);color:#fff}.sidebar{background:color-mix(in srgb,var(--ink-2) 85%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.topbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:color-mix(in srgb,var(--ink) 80%,transparent);padding-top:env(safe-area-inset-top)}.page-cover{height:140px;background:var(--ink-2);border:0}.page-cover:before{display:none}.page-cover:after{display:block;background-image:none;background:radial-gradient(70% 140% at 10% 0%,color-mix(in srgb,var(--cover) 55%,transparent),transparent 60%),radial-gradient(60% 120% at 95% 100%,color-mix(in srgb,#a855f7 35%,transparent),transparent 60%);-webkit-mask-image:none;mask-image:none;opacity:.9}.page-icon{border-radius:22px;width:80px;height:80px;background:var(--surface);box-shadow:0 12px 34px #00000073!important;border-color:color-mix(in srgb,var(--cover, var(--signal)) 45%,var(--line))}.page-title{letter-spacing:-.03em}.course-facts span{border-radius:999px;padding:.35rem .85rem;background:color-mix(in srgb,var(--surface) 80%,transparent)}.tabs-line{border:0;gap:.35rem;padding:.3rem;margin-bottom:1.4rem;background:var(--ink-2);border:1px solid var(--line);border-radius:16px;scrollbar-width:none}.tabs-line::-webkit-scrollbar{display:none}.tabs-line button{border-radius:12px;padding:.6rem 1rem}.tabs-line button.is-active{background:var(--surface-2);color:var(--text)}.tab-underline{display:none}.course-pages{border-radius:18px;background:color-mix(in srgb,var(--surface) 85%,transparent)}.subject-note{padding:.7rem .8rem;border-radius:12px}.course-card{border:1px solid var(--line);border-top:1px solid var(--line);border-radius:20px;overflow:hidden}.course-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--c)}.course-card-glow{display:block}.dropzone{border-radius:20px;padding:2rem 1.2rem;border-color:color-mix(in srgb,var(--signal) 40%,var(--line));background:color-mix(in srgb,var(--signal) 5%,var(--ink-2))}.dropzone-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--grad);color:#fff;font-size:1.5rem}.file-list li{border-radius:14px;padding:.75rem .9rem}.file-icon{font-size:1.4rem}.capture{display:flex;flex-direction:column;gap:1rem}.capture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.capture-card{display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;padding:1.2rem;border-radius:20px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,transparent)}.capture-head{display:flex;gap:.85rem;align-items:flex-start}.capture-head h3{margin:0;font-size:1.05rem}.capture-head p{margin:.2rem 0 0}.capture-emoji{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:14px;background:var(--surface-2);font-size:1.4rem}.capture-rec{background:linear-gradient(150deg,color-mix(in srgb,#6366f1 22%,var(--surface)),var(--surface) 70%)}.capture-rec.is-live{border-color:#f87171;box-shadow:0 0 0 4px #f871711f!important}.capture-title{width:100%}.rec-btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;width:100%;min-height:56px;border:0;border-radius:16px;background:var(--grad);color:#fff;font:600 1.05rem var(--sans);cursor:pointer;transition:transform .15s,filter .15s}.rec-btn:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px)}.rec-btn:disabled{opacity:.5;cursor:not-allowed}.rec-dot{width:12px;height:12px;border-radius:50%;background:#f87171;display:inline-block}.rec-dot.is-pulsing{animation:recpulse 1.2s ease-in-out infinite}@keyframes recpulse{0%,to{box-shadow:0 0 #f8717199}50%{box-shadow:0 0 0 9px #f8717100}}.rec-live{width:100%;display:flex;flex-direction:column;align-items:center;gap:.9rem;text-align:center}.rec-clock{display:inline-flex;align-items:center;gap:.7rem;font:600 2.6rem/1 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.rec-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;align-items:center}.working{display:flex;align-items:center;gap:.7rem;margin:0;color:var(--muted)}.spinner{display:inline-block;width:1em;height:1em;margin-right:.5em;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;animation:spin .8s linear infinite;vertical-align:-.15em}@keyframes spin{to{transform:rotate(360deg)}}.capture-done{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.7rem;padding:.9rem 1.1rem;border-radius:16px;background:color-mix(in srgb,var(--green) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--green) 45%,var(--line))}.notice{margin:0;padding:.8rem 1rem;border-radius:14px;background:color-mix(in srgb,var(--amber) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--amber) 40%,var(--line))}.pdf-list{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:.4rem}.pdf-list li{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.55rem .8rem;border-radius:12px;background:var(--ink-2);border:1px solid var(--line)}.pdf-list .file-name{min-width:0}.diagram{margin:1.2rem 0;padding:1rem;border-radius:16px;background:var(--ink-2);border:1px solid var(--line);overflow-x:auto;text-align:center}.diagram svg{max-width:100%;height:auto}.diagram-loading{color:var(--muted)}@media(max-width:760px){.main{padding-bottom:calc(3rem + env(safe-area-inset-bottom))}.notion-page{margin-top:-1.3rem}.page-cover{height:100px}.page-icon{width:64px;height:64px;font-size:2.1rem;border-radius:18px}.page-topline{margin-top:-32px}.page-actions{width:100%}.page-actions .btn{flex:1 1 auto;justify-content:center}.page-title{font-size:1.7rem}.capture-grid{grid-template-columns:1fr}.capture-card{padding:1rem;border-radius:18px}.capture-card>.btn{width:100%;justify-content:center;min-height:46px}.rec-clock{font-size:2.2rem}.rec-actions .btn{flex:1 1 40%;justify-content:center;min-height:46px}.tabs-line{margin-left:-.2rem;margin-right:-.2rem}.dropzone{padding:1.4rem 1rem}.file-list li{grid-template-columns:auto 1fr;row-gap:.2rem}.file-list li>:nth-child(n+3){grid-column:2}.pdf-list li{flex-direction:column;align-items:stretch}.pdf-list .btn{width:100%;justify-content:center}.prose table{display:block;overflow-x:auto}.admin input,.admin select,.admin textarea{font-size:16px}}@media(hover:none){.slot-del{opacity:1}}.settings-page{max-width:720px}.key-form{display:flex;gap:.6rem;width:100%}.key-form input{flex:1;min-width:0}.status-line{margin:0;color:var(--muted)}.status-line.is-on{color:var(--green)}.ok-line{margin:0;color:var(--green)}@media(max-width:560px){.key-form{flex-direction:column}.key-form .btn{width:100%;justify-content:center}}.settings-page{display:flex;flex-direction:column;gap:1.2rem}.email-form{display:flex;flex-direction:column;gap:.9rem;width:100%}.email-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem}.email-grid{display:grid;grid-template-columns:2fr 1fr;gap:.8rem}.email-grid label:nth-child(n+3){grid-column:span 1}.preset-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}@media(max-width:560px){.email-grid{grid-template-columns:1fr}.row-actions .btn{flex:1 1 100%;justify-content:center;min-height:46px}}.page-cover-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.page-cover.has-image:after{background:linear-gradient(to top,var(--ink) 0%,transparent 55%)}.page-cover.has-image{height:190px}@media(max-width:760px){.page-cover.has-image{height:130px}}.course-logo{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.page-icon{overflow:hidden}.course-card-icon:has(.course-logo){display:block;width:44px;height:44px;border-radius:12px;overflow:hidden}.image-fields{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.image-field{display:flex;gap:.8rem;align-items:center;padding:.8rem;border-radius:16px;border:1px solid var(--line);background:var(--ink-2);min-width:0}.image-preview{flex:none;display:grid;place-items:center;overflow:hidden;border-radius:12px;background:var(--surface);border:1px dashed var(--line)}.image-logo .image-preview{width:64px;height:64px}.image-cover .image-preview{width:104px;height:64px}.image-preview img{width:100%;height:100%;object-fit:cover}.image-meta{display:flex;flex-direction:column;gap:.3rem;min-width:0}@media(max-width:640px){.image-fields{grid-template-columns:1fr}}:root{--glow: #1a1b44;color-scheme:dark}body{background:radial-gradient(120% 60% at 50% -10%,var(--glow) 0%,var(--ink) 60%) fixed}:root[data-theme=clair]{--ink: #f4f5fb;--ink-2: #eaecf7;--surface: #ffffff;--surface-2: #eef0fb;--line: #d9dcee;--text: #15172e;--muted: #5a6086;--signal: #4f52e0;--signal-ink: #fff;--green: #12875a;--amber: #a86608;--danger: #cf3b30;--glow: #e0e2ff;--grad: linear-gradient(135deg, #5b5ef0, #9a4cf0);color-scheme:light}:root[data-theme=minuit]{--ink: #000000;--ink-2: #08080d;--surface: #101017;--surface-2: #19191f;--line: #25252e;--text: #f1f1f7;--muted: #9a9ab0;--signal: #a78bfa;--glow: #0e0a1f;--grad: linear-gradient(135deg, #7c3aed, #c026d3)}:root[data-theme=ocean]{--ink: #06121a;--ink-2: #0a1c28;--surface: #0e2636;--surface-2: #143349;--line: #1f4560;--text: #e6f4fb;--muted: #89aabf;--signal: #38bdf8;--signal-ink: #04202e;--glow: #0b3550;--grad: linear-gradient(135deg, #0ea5e9, #2563eb)}:root[data-theme=foret]{--ink: #07120d;--ink-2: #0c1c14;--surface: #11271c;--surface-2: #183526;--line: #234633;--text: #e8f6ee;--muted: #8fb2a0;--signal: #34d399;--signal-ink: #04210f;--glow: #0e3a26;--grad: linear-gradient(135deg, #10b981, #0d9488)}:root[data-theme=rose]{--ink: #160a13;--ink-2: #1f0f1b;--surface: #2a1424;--surface-2: #381b30;--line: #4b2540;--text: #fbeaf4;--muted: #c09bb2;--signal: #f472b6;--signal-ink: #2a0a1c;--glow: #4a1238;--grad: linear-gradient(135deg, #ec4899, #f97316)}:root[data-theme=clair] .sidebar,:root[data-theme=clair] .topbar{background:color-mix(in srgb,#fff 88%,transparent)}:root[data-theme=clair] .page-icon{box-shadow:0 10px 26px #282c6e2e!important}:root[data-theme=clair] .nav a.active{color:var(--signal)}:root[data-theme=clair] .admin .btn:not(.btn-ghost):not(.btn-danger):not(.btn-link){color:#fff}:root[data-theme=clair] .logo{filter:none}.theme-picker{display:flex;flex-wrap:wrap;gap:.6rem}.theme-opt{display:inline-flex;align-items:center;gap:.7rem;padding:.35rem;border:2px solid transparent;border-radius:14px;background:none;color:var(--text);cursor:pointer;text-align:left;font:inherit}.theme-picker:not(.is-compact) .theme-opt{padding:.55rem .8rem .55rem .55rem;border-color:var(--line);background:var(--ink-2);min-width:190px}.theme-opt.is-active{border-color:var(--signal)}.theme-opt:hover{border-color:color-mix(in srgb,var(--signal) 60%,var(--line))}.theme-swatch{position:relative;flex:none;width:38px;height:38px;border-radius:11px;overflow:hidden;background:linear-gradient(135deg,var(--a) 50%,var(--b) 50%);border:1px solid color-mix(in srgb,var(--text) 18%,transparent)}.theme-swatch i{position:absolute;right:5px;bottom:5px;width:13px;height:13px;border-radius:50%;background:var(--c)}.theme-picker.is-compact{gap:.2rem}.theme-picker.is-compact .theme-swatch{width:26px;height:26px;border-radius:8px}.theme-picker.is-compact .theme-swatch i{width:9px;height:9px;right:3px;bottom:3px}.theme-name{display:flex;flex-direction:column;font-weight:600;font-size:.92rem}.theme-name small{font-weight:400;color:var(--muted);font-size:.76rem}@media(max-width:560px){.theme-picker:not(.is-compact) .theme-opt{flex:1 1 calc(50% - .6rem);min-width:0}}.prose .task-box{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:0 .6rem 0 0;vertical-align:-5px;border:2px solid var(--muted);border-radius:7px;background:transparent;cursor:pointer;display:inline-grid;place-content:center;transition:background .15s,border-color .15s,transform .1s}.prose .task-box:hover{border-color:var(--signal)}.prose .task-box:active{transform:scale(.9)}.prose .task-box:checked{background:var(--grad);border-color:transparent}.prose .task-box:checked:after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px)}.prose li.task-list-item{list-style:none;margin-left:-1.4rem;padding:.22rem 0}.prose li.task-list-item:has(.task-box:checked){color:var(--muted);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--muted) 60%,transparent)}@media(max-width:760px){.prose .task-box{width:26px;height:26px}.prose li.task-list-item{padding:.35rem 0}}.progress{display:flex;align-items:center;gap:.6rem;min-width:0}.progress-track{flex:1;min-width:40px;height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress-fill{height:100%;border-radius:inherit;background:var(--grad);transition:width .4s cubic-bezier(.2,.8,.2,1)}.progress.is-complete .progress-fill{background:var(--green)}.progress-label{font:600 .78rem var(--sans);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.progress-sm{width:84px;flex:none}.progress-sm .progress-track{height:6px;min-width:30px}.progress-lg .progress-track{height:12px}.progress-lg .progress-label{font-size:.95rem;color:var(--text)}.note-progress{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:.2rem 0 1rem;padding:.8rem 1rem;border-radius:16px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 85%,transparent)}.note-progress .progress{flex:1 1 220px}.overall-progress{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin:0 0 1.4rem;padding:1rem 1.2rem;border-radius:18px;border:1px solid var(--line);background:linear-gradient(150deg,color-mix(in srgb,var(--signal) 14%,var(--surface)),var(--surface) 70%)}.overall-progress>div:first-child{display:flex;flex-direction:column}.overall-progress .progress{flex:1 1 240px}.note-card .progress{margin:.5rem 0 .2rem;width:100%}@media(max-width:760px){.subject-note .progress-sm{width:56px}.subject-note .progress-label{display:none}}.row-trash{flex:none;display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;transition:background .15s,color .15s,opacity .15s}.row-trash:hover,.row-trash:focus-visible{background:color-mix(in srgb,var(--danger) 16%,transparent);color:var(--danger)}.has-trash{position:relative}.subject-notes .has-trash>a,.course-pages .has-trash>a{padding-right:2.8rem}.subject-notes .row-trash,.course-pages .row-trash{position:absolute;right:.3rem;top:50%;transform:translateY(-50%)}.task.has-trash{grid-template-columns:auto minmax(0,1fr) auto auto}@media(max-width:760px){.task.has-trash{grid-template-columns:auto minmax(0,1fr) auto}.task.has-trash .row-trash{grid-column:3;grid-row:1}.task.has-trash .task-due{grid-column:2}}.res-actions .row-trash{margin-left:.2rem}.file-list .row-trash{margin-left:auto}@media(hover:hover){.subject-notes .row-trash,.course-pages .row-trash,.task .row-trash{opacity:0}li:hover>.row-trash,li:focus-within>.row-trash,.task:hover .row-trash,.task:focus-within .row-trash{opacity:1}}.confirm-message{margin:0;line-height:1.55}.btn.btn-danger{background:var(--danger)!important;color:#fff!important;border-color:transparent!important}.dash-blocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem 1.6rem;align-items:start}.dash-block{min-width:0}.dash-block.w-full{grid-column:1 / -1}.dash-block.is-hidden{opacity:.45}.dash-blocks.is-editing .dash-block{padding:.8rem;border-radius:18px;border:1.5px dashed color-mix(in srgb,var(--signal) 55%,var(--line))}.dash-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.8rem;padding:.4rem .5rem .4rem .8rem;border-radius:12px;background:var(--surface-2)}.dash-tools-btns{display:inline-flex;flex-wrap:wrap;gap:.35rem}.dash-tools button{min-height:32px;padding:0 .7rem;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font:500 .82rem var(--sans);cursor:pointer}.dash-tools button:hover:not(:disabled){border-color:var(--signal)}.dash-tools button:disabled{opacity:.35;cursor:default}.dash-empty{margin:0}@media(max-width:900px){.dash-blocks{grid-template-columns:1fr}.dash-block.w-half{grid-column:1 / -1}}.prose input.task-box[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:0 .6rem 0 0;vertical-align:-5px;border:2px solid var(--muted);border-radius:7px;background:transparent;display:inline-grid;place-content:center;flex:none}.prose input.task-box[type=checkbox]:hover{border-color:var(--signal)}.prose input.task-box[type=checkbox]:checked{background:var(--grad);border-color:transparent}.prose input.task-box[type=checkbox]:checked:after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px)}@media(max-width:760px){.prose input.task-box[type=checkbox]{width:26px;height:26px}}.prose ul:has(>li.task-list-item){padding-left:.4rem}.prose li.task-list-item{margin-left:0;display:flex;align-items:flex-start;gap:0}.prose li.task-list-item>p{margin:0}.prose li.task-list-item>input.task-box{margin-top:.12rem}.learn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.learn-card{border-radius:18px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,transparent);transition:border-color .15s,transform .15s}.learn-card:hover{border-color:color-mix(in srgb,var(--signal) 55%,var(--line));transform:translateY(-2px)}.learn-card.is-done{border-color:color-mix(in srgb,var(--green) 50%,var(--line))}.learn-link{display:flex;flex-direction:column;gap:.7rem;padding:1.1rem 1.1rem 1rem;height:100%}.learn-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--surface-2);font-size:1.4rem}.learn-title{font-weight:600;font-size:1.05rem;padding-right:1.6rem}.learn-card .row-trash{position:absolute;top:.6rem;right:.6rem}@media(hover:hover){.learn-card .row-trash{opacity:0}.learn-card:hover .row-trash,.learn-card:focus-within .row-trash{opacity:1}}@media(max-width:560px){.learn-grid{grid-template-columns:1fr}}.res-actions{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.4rem}.settings-page{max-width:none}.prose li.task-list-item{display:block;position:relative;padding-left:2.1rem}.prose li.task-list-item>input.task-box,.prose li.task-list-item>p>input.task-box:first-child{position:absolute;left:0;top:.3rem;margin:0}@media(max-width:760px){.prose li.task-list-item{padding-left:2.4rem}.prose li.task-list-item>input.task-box{top:.45rem}}.avatar{flex:none;display:inline-grid;place-items:center;border-radius:50%;overflow:hidden;background:var(--grad);color:#fff;font-weight:700;letter-spacing:.02em}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.photo-field{display:flex;gap:1.2rem;align-items:center;padding:1rem 1.2rem;border-radius:18px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,transparent)}.photo-meta{display:flex;flex-direction:column;gap:.35rem;min-width:0}.user-link{display:inline-flex;align-items:center;gap:.6rem;color:var(--text);min-width:0}.user-link span:last-child{overflow:hidden;text-overflow:ellipsis}.intro-photo{display:block;width:132px;height:132px;border-radius:50%;object-fit:cover;margin:0 0 1.8rem;border:1px solid var(--rule)}@media(max-width:560px){.photo-field{flex-direction:column;align-items:flex-start}.intro-photo{width:104px;height:104px}}.prose a.file-link,.rich-content a[href^="/api/files/"]{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .7rem;margin:.1rem 0;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);text-decoration:none;font-weight:500}.prose a.file-link:hover{border-color:var(--signal);color:var(--signal)}.rich-content img{max-width:100%;border-radius:12px}.pdf-doc{--text: #1b1f2e;--muted: #5a6086;--ink: #ffffff;--ink-2: #f4f5fb;--surface: #ffffff;--surface-2: #eef0fb;--line: #dfe2f2;--signal: #4f52e0;width:794px;padding:0;background:#fff;color:#1b1f2e;font:15px/1.6 Schibsted Grotesk,system-ui,sans-serif}.pdf-head{padding:0 0 14px;margin-bottom:18px;border-bottom:2px solid #6366f1}.pdf-head h1{margin:0;font-size:30px;letter-spacing:-.02em;color:#12142a}.pdf-head p{margin:4px 0 0;color:#5a6086;font-size:14px}.pdf-page{margin-bottom:26px}.pdf-page-title{font-size:22px;margin:22px 0 8px;color:#3b3fc4}.pdf-doc .prose{color:#1b1f2e;font-size:15px}.pdf-doc .prose h1,.pdf-doc .prose h2,.pdf-doc .prose h3{color:#12142a}.pdf-doc .prose a{color:#3b3fc4}.pdf-doc .prose code{background:#eef0fb;color:#1b1f2e}.pdf-doc .prose pre{background:#f4f5fb;border:1px solid #dfe2f2;color:#1b1f2e}.pdf-doc .prose blockquote{border-left-color:#6366f1;color:#4a5070}.pdf-doc .prose th,.pdf-doc .prose td{border-bottom:1px solid #dfe2f2}.pdf-doc .diagram{background:#f8f9fd;border-color:#dfe2f2}.pdf-doc .prose input.task-box[type=checkbox]{border-color:#8a90b8}.pdf-doc .prose li.task-list-item:has(.task-box:checked){color:#6c7194}.pdf-doc a.file-link{background:#eef0fb;color:#1b1f2e;border-color:#dfe2f2}.pdf-doc .prose li.task-list-item,.pdf-doc .prose li.task-list-item:has(.task-box:checked){text-decoration-color:currentColor}.pdf-doc *,.pdf-doc *:before,.pdf-doc *:after{text-decoration-color:currentColor;caret-color:auto;accent-color:auto}.pdf-doc .prose strong{color:#12142a}.pdf-box{position:absolute;left:0;top:.3rem;display:inline-grid;place-items:center;width:20px;height:20px;border:2px solid #8a90b8;border-radius:6px;font-size:14px;line-height:1;font-weight:700;color:#fff}.pdf-box.is-on{background:#6366f1;border-color:#6366f1}.info-box{margin-top:.8rem;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 85%,transparent);max-width:760px}.info-box summary{cursor:pointer;padding:.7rem 1rem;font-weight:600;font-size:.92rem;list-style:none}.info-box summary::-webkit-details-marker{display:none}.info-box summary:before{content:"›";display:inline-block;margin-right:.6rem;transition:transform .15s}.info-box[open] summary:before{transform:rotate(90deg)}.info-body{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.6rem;font-size:.92rem}.info-body p{margin:0}.info-body ul{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.35rem}.week-col.is-clickable{cursor:copy}.week-col.is-drop{background:color-mix(in srgb,var(--signal) 7%,transparent)}.slot{touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;overflow:hidden}.slot.is-dragging{cursor:grabbing;z-index:5;box-shadow:0 10px 30px #00000073!important;opacity:.92;transition:none}.slot-grip{position:absolute;top:3px;right:5px;opacity:0;font-size:.8rem;color:var(--muted);cursor:grab;touch-action:none;padding:2px 4px}.slot:hover .slot-grip,.slot:focus-visible .slot-grip{opacity:1}@media(hover:none){.slot-grip{opacity:1}}.slot-resize{position:absolute;left:0;right:0;bottom:0;height:10px;cursor:ns-resize;touch-action:none}.slot-resize:after{content:"";position:absolute;left:50%;bottom:3px;width:22px;height:3px;margin-left:-11px;border-radius:3px;background:currentColor;opacity:.25}.slot:hover .slot-resize:after{opacity:.5}.swatch-auto{display:grid;place-items:center;background:var(--surface-2)!important;color:var(--muted);font:700 .72rem var(--sans)}.modal-actions .grow{flex:1}.chart{margin:1.2rem 0;padding:.8rem;border-radius:16px;background:var(--ink-2);border:1px solid var(--line);color:var(--text);--chart-bg: var(--ink-2)}.chart svg{display:block;width:100%;height:auto;max-height:420px}.pdf-doc .chart{background:#f8f9fd;border-color:#dfe2f2;--chart-bg: #f8f9fd}.chart-top{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.chart-top .grow{flex:1 1 220px}.chart-grid-wrap{overflow-x:auto;display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}.chart-table{border-collapse:separate;border-spacing:4px}.chart-table th{font-weight:500;text-align:left;white-space:nowrap}.chart-table th .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.chart-table input{width:100%;min-width:0;box-sizing:border-box;padding:.35rem .5rem}.chart-table th input{font-weight:600}.chart-table th,.chart-table td{min-width:130px}.chart-table .col-act{min-width:0;width:1%;white-space:nowrap}.series-head{display:flex;align-items:center;gap:.35rem}.series-head .dot{flex:none;margin-right:0}.series-head input{flex:1 1 auto}.series-head .mini-x{flex:none}.mini-x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:1.1rem;line-height:1;padding:0 .2rem}.mini-x:hover{color:var(--danger)}.chart-preview{max-width:640px}.diagram-split{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}@media(max-width:760px){.diagram-split{grid-template-columns:1fr}}.viz-block{position:relative;margin:1rem 0}.viz-edit{position:absolute;top:.6rem;right:.6rem;z-index:2}.viz-block .diagram,.viz-block .chart{margin:0}.blocked-img{display:inline-block;padding:.3rem .7rem;border-radius:10px;border:1px dashed var(--line);color:var(--muted);font-size:.85rem}.sec-list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.3rem}.intro-lead .prose,.intro-lead p{margin:0;font-size:inherit;line-height:inherit;color:inherit}.intro-lead .prose>*+*{margin-top:.6em}.examples-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem 1.1rem;border-radius:16px;border:1px dashed color-mix(in srgb,var(--amber) 55%,var(--line));background:color-mix(in srgb,var(--amber) 8%,var(--surface));font-size:.92rem}.dash-blocks.is-editing .dash-block{cursor:grab}.dash-block.is-dragging{opacity:.4}.dash-block.is-over{border-color:var(--signal)!important;background:color-mix(in srgb,var(--signal) 8%,transparent)}.dash-handle{cursor:grab;-webkit-user-select:none;user-select:none}.year-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem}.year-card{--c: var(--signal);position:relative;display:flex;flex-direction:column;height:100%;min-height:250px;border-radius:22px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 90%,transparent);overflow:hidden;transition:border-color .2s,box-shadow .2s;text-align:left;color:var(--text);font:inherit;cursor:pointer;padding:0}.year-card:hover{border-color:color-mix(in srgb,var(--c) 65%,var(--line));box-shadow:0 18px 40px #0000004d}.year-card-cover{position:relative;display:block;height:118px;background:var(--ink-2);overflow:hidden}.year-card-cover img{width:100%;height:100%;object-fit:cover;display:block}.year-card-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(90% 150% at 10% 0%,color-mix(in srgb,var(--c) 70%,transparent),transparent 60%),radial-gradient(70% 130% at 100% 100%,color-mix(in srgb,#a855f7 40%,transparent),transparent 60%)}.year-card-badge{position:absolute;top:.7rem;right:.7rem;padding:.15rem .6rem;border-radius:999px;background:#0a0c1eb3;color:#fff;font-size:.72rem;font-weight:600;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.year-card-logo{position:relative;z-index:1;display:grid;place-items:center;width:52px;height:52px;margin:-26px 0 0 1.1rem;border-radius:15px;background:var(--surface);border:1px solid var(--line);font-size:1.6rem;overflow:hidden;box-shadow:0 8px 20px #0000004d}.year-card-logo img{width:100%;height:100%;object-fit:cover}.year-card-body{display:flex;flex-direction:column;gap:.2rem;padding:.7rem 1.1rem 1.1rem}.year-card-name{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.year-card-sub{color:var(--muted);font-size:.86rem;min-height:1.3em}.year-card-stats{margin-top:.4rem;font-size:.82rem;color:var(--c);font-weight:600}.year-card-add{align-items:center;justify-content:center;gap:.5rem;border-style:dashed;background:transparent;color:var(--muted)}.year-card-add:hover{color:var(--text)}.year-add-plus{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--surface-2);font-size:1.6rem}.year-description{margin:0 0 1.6rem;padding:1rem 1.2rem;border-radius:16px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 85%,transparent)}.year-page .semester-section{margin-top:1.4rem}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.kpi{position:relative;display:flex;flex-direction:column;gap:.15rem;padding:1rem 1.1rem;border-radius:18px;font-size:.88rem}.kpi em{font-style:normal;font-size:1.1rem;margin-bottom:.2rem}.kpi span{font:700 2rem/1.1 var(--sans);letter-spacing:-.02em}.tracked{display:flex;flex-direction:column;gap:1rem;padding:1.4rem;border-radius:22px;border:1px solid var(--line);background:linear-gradient(160deg,color-mix(in srgb,var(--signal) 9%,var(--surface)),var(--surface) 55%)}.tracked-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.tracked-head h2{margin:0 0 .2rem;font-size:1.25rem}.tracked-head p{margin:0;max-width:60ch}.tracked-count{padding:.25rem .8rem;border-radius:999px;background:var(--surface-2);font-size:.82rem;font-weight:600}.link-create{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;padding:1rem;border-radius:16px;background:var(--ink-2);border:1px solid var(--line)}.link-create-name{flex:1 1 260px;display:flex;flex-direction:column;gap:.3rem;font-size:.9rem}.link-create-dest{display:flex;flex-direction:column;gap:.3rem}.link-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1rem}.link-card{position:relative;display:flex;flex-direction:column;gap:.8rem;padding:1.1rem 1.2rem;border-radius:18px;border:1px solid var(--line);background:var(--surface)}.link-card.is-seen{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}.link-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding-right:2.2rem}.link-card-head strong{font-size:1.05rem}.link-status{margin-left:auto;font-size:.78rem;font-weight:600;color:var(--muted);display:inline-flex;align-items:center;gap:.35rem}.link-status:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted);opacity:.6}.link-status.is-on{color:var(--green)}.link-status.is-on:before{background:var(--green);opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 25%,transparent)}.link-url-row{display:flex;gap:.5rem}.link-url-row input{flex:1;min-width:0;font:.8rem var(--mono);padding:.45rem .6rem}.link-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1rem;margin:0}.link-metrics div{display:flex;flex-direction:column}.link-metrics dt{font-size:.74rem;color:var(--muted)}.link-metrics dd{margin:0;font-weight:600;font-size:.92rem}.link-card .row-trash{position:absolute;top:.7rem;right:.7rem}.links-empty{text-align:left}@media(max-width:760px){.tracked{padding:1rem}.link-cards{grid-template-columns:1fr}.link-create .btn{width:100%;justify-content:center}}.day-tabs{display:none;gap:.35rem}.day-tabs button{flex:1;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.45rem 0;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:inherit;cursor:pointer;min-height:52px}.day-tabs button span{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.day-tabs button strong{font-size:1.05rem;color:var(--text)}.day-tabs button.is-active{background:var(--grad);border-color:transparent;color:#ffffffd9}.day-tabs button.is-active strong{color:#fff}.day-tabs button.is-today:not(.is-active){border-color:var(--signal)}@media(max-width:760px){.day-tabs{display:flex}.week-head .week-day strong{font-size:1rem}}.chart-box{position:relative;width:100%}.chart-box canvas{max-width:100%}.chart{max-width:760px;margin-left:auto;margin-right:auto}.cover-actions{position:absolute;right:1rem;bottom:.7rem;z-index:3;display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.cover-actions .btn{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:color-mix(in srgb,var(--surface) 80%,transparent)}.cover-hint{font-size:.8rem;color:var(--muted)}.page-cover:not(.has-image) .cover-actions{opacity:0;transition:opacity .15s}.page-cover:hover .cover-actions,.page-cover:focus-within .cover-actions{opacity:1}@media(hover:none){.page-cover:not(.has-image) .cover-actions{opacity:1}}.lang-switch{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--rule);border-radius:999px;font-size:.8rem;line-height:1}.lang-switch button{border:0;background:none;color:var(--fg-2);cursor:pointer;padding:.3rem .55rem;border-radius:999px;font-weight:600;letter-spacing:.02em}.lang-switch button:hover{color:var(--fg)}.lang-switch button.is-active{background:var(--fg);color:var(--bg)}.login-lang{display:flex;justify-content:center;margin-top:.8rem}.shell .lang-switch,.login-page .lang-switch{border-color:var(--line)}.shell .lang-switch button,.login-page .lang-switch button{color:var(--muted)}.shell .lang-switch button:hover,.login-page .lang-switch button:hover{color:var(--text)}.shell .lang-switch button.is-active,.login-page .lang-switch button.is-active{background:var(--text);color:var(--ink)}.insert-menu{flex-wrap:wrap;max-width:min(92vw,560px)}.bubble .tool-sep{align-self:stretch;width:1px;margin:4px 3px;background:var(--line)}.bubble.table-tools{gap:2px}.rich-editor:not(.is-compact) .toolbar{display:none}.app-list{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}.app-card{position:relative;display:grid;gap:.5rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.app-card.is-due{border-color:var(--amber, #f0b44c)}.app-head{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;padding-right:2.2rem}.app-company{font-size:1.05rem}.app-status{width:auto!important;min-width:130px}.app-meta{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin:0}.app-due{color:var(--amber, #f0b44c);font-weight:600}.app-notes{margin:0;white-space:pre-wrap;color:var(--text)}.app-link{display:grid;gap:.35rem;padding:.6rem .75rem;border-radius:10px;background:var(--ink-2)}.app-link .link-url-row{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.app-link .link-url-row input{flex:1 1 220px;min-width:0}.app-actions{display:flex;gap:.8rem}.app-card.status-refusee{opacity:.75}.app-card.status-offre{border-color:var(--green, #5fd3a2)}.trash-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.trash-item{display:flex;align-items:center;gap:.8rem;padding:.7rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);flex-wrap:wrap}.trash-icon{font-size:1.4rem}.trash-body{flex:1 1 220px;display:grid;gap:.15rem;min-width:0}.trash-body strong{overflow-wrap:anywhere}.notion-page.no-cover{margin-top:0}.notion-page.no-cover .page-topline{margin-top:0;padding-top:.2rem}.ai-text{margin-top:.6rem}.ai-result{margin-top:.7rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.ai-result .prose{font-size:.92rem}.ai-result .prose p,.ai-result .prose ul{margin:.35rem 0}.ai-result .btn{margin-top:.5rem}.ask-form{display:flex;gap:.6rem;flex-wrap:wrap}.ask-form input{flex:1;min-width:220px}.ask-notes{margin-bottom:1.2rem}.ai-plan{list-style:none;margin:.6rem 0;padding:0;display:grid;gap:.35rem}.app-ai{margin-top:.4rem}.skip-link{position:absolute;left:1rem;top:-4rem;z-index:50;padding:.55rem .9rem;border-radius:8px;background:#fff;color:#05060e;font-weight:600;transition:top .15s}.skip-link:focus{top:.8rem}.pub-main:focus{outline:none}.pub-name{white-space:nowrap}@media(max-width:560px){.pub-nav nav{gap:.9rem;font-size:.88rem}.pub-nav .pub-wrap{width:calc(100% - 28px)}.pub-name{font-size:.92rem}}@media(max-width:400px){.pub-name:before{display:none}.pub-nav nav{gap:.7rem}}.focus-top{display:flex;align-items:center;gap:.6rem}.focus-info{display:flex;flex-direction:column;flex:1;min-width:0}.focus-info .focus-time{flex:none;line-height:1.1}.focus-phase{font-size:.74rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.focus-controls{display:flex;gap:.35rem}.focus-btn{flex:1;padding:.3rem 0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;font-size:.85rem;line-height:1.2}.focus-btn:hover{border-color:var(--signal)}.focus-btn:focus-visible{outline:2px solid var(--signal);outline-offset:1px}.focus-hint{margin:0;font-size:.74rem;color:var(--muted)}.focus-count{color:var(--muted)}.focus-running.phase-short,.focus-running.phase-long{background:color-mix(in srgb,var(--green) 10%,var(--surface));border-color:color-mix(in srgb,var(--green) 40%,var(--line))}.focus-running.phase-short .ring-fg,.focus-running.phase-long .ring-fg{stroke:var(--green)}.ve-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.7rem}.ve-sources{list-style:none;margin:.9rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem .7rem;align-items:center}.ve-sources li{display:inline-flex;align-items:center;gap:.15rem}.ve-filter{margin:1.1rem 0 .8rem}.ve-items{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.ve-items li{padding:.8rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.ve-items li.is-read{opacity:.62}.ve-items .ve-title{display:inline-block;margin:.15rem 0;font-weight:600;color:var(--text)}.ve-items a.ve-title:hover{color:var(--signal)}.ve-items p{margin:.2rem 0 .3rem}.offline-banner{position:fixed;left:0;right:0;top:0;z-index:90;padding:.55rem 1rem;text-align:center;font-size:.88rem;background:#3b2a06;color:#ffe2a3;border-bottom:1px solid #7a5a12}.offline-box{margin-bottom:.5rem}.offline-box .focus-start:disabled{opacity:.55;cursor:not-allowed}.offline-ready{margin:.3rem 0 0}.offline-queue{margin:.5rem 0 0;font-size:.82rem}.offline-queue summary{cursor:pointer;color:var(--muted)}.offline-queue ul{list-style:none;margin:.4rem 0;padding:0;display:grid;gap:.25rem}.offline-queue li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.offline-log{margin-top:.5rem;padding:.5rem .6rem;border:1px solid #7a5a12;border-radius:8px;background:#3b2a0633}.offline-log p{margin:0 0 .3rem}.hero{display:grid;gap:clamp(1.6rem,4vw,2.6rem) clamp(2rem,5vw,4rem);padding:clamp(3rem,8vw,6rem) 0 clamp(2.4rem,5vw,3.6rem)}.hero.has-photo{grid-template-columns:minmax(0,1fr) minmax(220px,320px);align-items:center}.hero.has-photo .facts{grid-column:1 / -1}.hero-text{min-width:0}.hero h1{font-size:clamp(2.8rem,7.4vw,5.4rem);font-weight:650;line-height:.98;letter-spacing:-.045em;margin:0;background:linear-gradient(100deg,#fff 8%,#bfe9ff 38%,#b9a5ff 70%,#ff9fd1);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 32px rgba(139,92,246,.35))}.hero-role{margin:1rem 0 0;font:500 clamp(1rem,2vw,1.25rem) "IBM Plex Mono",ui-monospace,monospace;color:var(--accent-a);letter-spacing:-.01em}.hero-bio{margin-top:1.4rem;max-width:36em;color:var(--fg-2);font-size:clamp(1.05rem,1.8vw,1.28rem);line-height:1.55}.hero-bio .prose{color:var(--fg-2);font-size:inherit;line-height:inherit}.hero-bio .prose p{margin:0}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem .9rem;margin-top:1.8rem}.btn-line{display:inline-flex;align-items:center;padding:.7rem 1.2rem;border-radius:10px;border:1px solid rgba(110,231,249,.4);color:var(--fg);font-weight:500;font-size:.95rem;background:#22d3ee0f;transition:background .15s,border-color .15s,transform .15s}.btn-line:hover{background:#22d3ee24;border-color:var(--accent-a);transform:translateY(-1px)}.social{color:var(--fg-2);font-size:.95rem;padding:.4rem .2rem;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}.social:hover{color:#fff;border-bottom-color:var(--accent-a)}.status-chip{display:inline-flex;align-items:center;gap:.55rem;margin:0 0 1.3rem;padding:.35rem .85rem;border-radius:999px;border:1px solid rgba(74,222,128,.35);background:#4ade8014;color:#bbf7d0;font-size:.85rem}.pulse{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 #4ade8099;animation:pulse 2.2s infinite}@keyframes pulse{70%{box-shadow:0 0 0 9px #4ade8000}to{box-shadow:0 0 #4ade8000}}.hero-photo{justify-self:center;width:min(100%,320px);aspect-ratio:1;padding:4px;border-radius:32px;background:linear-gradient(135deg,var(--accent-a),var(--accent-b),var(--accent-c));box-shadow:0 0 70px -10px #8b5cf6a6}.hero-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:28px;background:#0b0e22}.hero .facts{margin:0;max-width:none}.block{padding:clamp(2.4rem,5vw,3.6rem) 0;border-top:1px solid var(--rule);scroll-margin-top:80px}.block-head{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.6rem}.block-head h2{margin:0;font-size:clamp(1.6rem,3.2vw,2.2rem);font-weight:650;letter-spacing:-.03em}.eyebrow{font:500 .78rem IBM Plex Mono,ui-monospace,monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--accent-a)}.block-more{margin:1.4rem 0 0}.cards{list-style:none;margin:0;padding:0;display:grid;gap:1.1rem}.cards-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}.cards-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr))}.card{display:flex;flex-direction:column;gap:.5rem;padding:1.4rem 1.5rem;border:1px solid var(--rule);border-radius:18px;background:var(--card);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .2s,border-color .2s,box-shadow .25s}.card:hover{transform:translateY(-3px);border-color:#6ee7f973;box-shadow:0 18px 50px -22px #22d3ee8c}.card h3{margin:0;font-size:1.2rem;font-weight:600;letter-spacing:-.02em}.card h3 a:hover{color:var(--link)}.card-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.card-sub{margin:0;color:var(--fg-3);font-size:.88rem}.card-text{margin:0;color:var(--fg-2);font-size:.97rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.card-date{font:500 .78rem IBM Plex Mono,ui-monospace,monospace;color:var(--accent-a)}.card-list{margin:0;padding-left:1.1rem;color:var(--fg-2);font-size:.93rem}.card-links{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;margin:auto 0 0;padding-top:.6rem;font-size:.92rem}.card>.text-link{margin-top:auto;padding-top:.4rem;font-size:.92rem;align-self:flex-start}.empty-card{display:flex;align-items:center;gap:1rem;padding:1.5rem;border:1px dashed rgba(130,150,255,.3);border-radius:18px;color:var(--fg-2);background:var(--card)}.empty-card span{font-size:1.6rem}.empty-card p{margin:0}.timeline-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}.timeline-card{padding:1.4rem 1.5rem;border:1px solid var(--rule);border-radius:18px;background:var(--card);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.timeline-card h3{margin:0 0 1.1rem;font:500 .8rem IBM Plex Mono,ui-monospace,monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-b)}.timeline{list-style:none;margin:0;padding:0 0 0 1.3rem;border-left:1px solid rgba(130,150,255,.28);display:grid;gap:1.3rem}.timeline li{position:relative;display:flex;flex-direction:column;gap:.1rem}.timeline li:before{content:"";position:absolute;left:calc(-1.3rem - 4.5px);top:.4rem;width:8px;height:8px;border-radius:50%;background:var(--accent-a);box-shadow:0 0 10px var(--accent-a)}.tl-period{font:500 .76rem IBM Plex Mono,ui-monospace,monospace;color:var(--accent-a);letter-spacing:.02em}.timeline strong{font-size:1.04rem;font-weight:600;letter-spacing:-.01em}.tl-org{color:var(--fg-2);font-size:.93rem}.tl-desc .prose{color:var(--fg-2);font-size:.93rem;margin-top:.3rem}.tl-desc .prose p,.tl-desc .prose ul{margin:.2rem 0}.skill-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}.skill-card{padding:1.2rem 1.3rem;border:1px solid var(--rule);border-radius:16px;background:var(--card);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.skill-card h3{margin:0 0 .2rem;font:500 .78rem IBM Plex Mono,ui-monospace,monospace;text-transform:uppercase;letter-spacing:.12em;color:var(--fg-3)}.skill-card .chips{margin-top:.6rem}.skill-learning p{margin:.5rem 0 0;color:var(--fg-2)}.about-card{max-width:46em;padding:1.5rem 1.7rem;border:1px solid var(--rule);border-radius:18px;background:var(--card)}.about-card .prose{color:var(--fg-2)}.contact-card{margin:clamp(2.4rem,5vw,3.6rem) 0 clamp(3rem,6vw,5rem);padding:clamp(1.8rem,4vw,3rem);border-radius:26px;text-align:center;border:1px solid rgba(110,231,249,.3);background:radial-gradient(60rem 18rem at 50% 0%,rgba(139,92,246,.22),transparent 70%),var(--card);box-shadow:0 30px 80px -40px #22d3ee80;scroll-margin-top:80px}.contact-card h2{margin:.7rem auto 0;max-width:24em;font-size:clamp(1.4rem,3vw,2.1rem);font-weight:600;line-height:1.25;letter-spacing:-.03em}.contact-card .hero-actions{justify-content:center}@media(max-width:760px){.hero.has-photo{grid-template-columns:1fr}.hero-photo{grid-row:1;width:150px;border-radius:50%;padding:3px}.hero-photo img{border-radius:50%}.block-head{flex-direction:column;gap:.2rem}}@media(prefers-reduced-motion:reduce){.pulse{animation:none}.card,.btn-line{transition:none}.card:hover,.btn-line:hover{transform:none}}.notfound{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 0}.notfound-code{margin:0;font:700 clamp(5rem,22vw,11rem)/1 "Schibsted Grotesk",sans-serif;letter-spacing:-.06em;background:linear-gradient(120deg,#22d3ee,#8b5cf6 55%,#f472b6);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 40px rgba(139,92,246,.45))}.notfound h1{margin:.4rem 0 0;font-size:clamp(1.5rem,4vw,2.2rem);font-weight:600;letter-spacing:-.03em}.notfound-text{margin:.7rem 0 0;max-width:30em;color:var(--fg-2)}.notfound .hero-actions{justify-content:center}.chat{display:grid;gap:.7rem}.chat-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.chat-log{display:grid;gap:.7rem;max-height:60vh;overflow-y:auto;padding:.3rem .1rem}.chat-empty{margin:0;padding:1.2rem;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.chat-msg{padding:.7rem .95rem;border-radius:14px;max-width:min(100%,46rem);overflow-wrap:anywhere}.chat-msg.user{justify-self:end;background:color-mix(in srgb,var(--signal) 22%,var(--surface));border:1px solid color-mix(in srgb,var(--signal) 40%,var(--line))}.chat-msg.user p{margin:0;white-space:pre-wrap}.chat-msg.assistant{justify-self:start;background:var(--surface);border:1px solid var(--line)}.chat-msg .prose{font-size:.94rem}.chat-msg .prose p{margin:.3rem 0}.chat-foot p{margin:.35rem 0 0}.chat-model{margin-right:.8rem;font-family:var(--mono)}.chat-form{display:flex;gap:.6rem;align-items:flex-end}.chat-form textarea{flex:1;resize:vertical;min-height:2.8rem}.ai-providers{list-style:none;margin:.8rem 0 0;padding:0;display:grid;gap:.7rem}.ai-provider{padding:.8rem .95rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.ai-provider.is-on{border-color:color-mix(in srgb,var(--green) 55%,var(--line))}.ai-provider-head{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem;flex-wrap:wrap}.ai-provider .key-form{margin-top:.5rem}.ai-models{margin-top:1.2rem;display:grid;gap:.5rem}.ai-models select{width:100%}.model-info{padding:.8rem .95rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.model-info p{margin:.4rem 0 0}.cap-chips{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}.cap-chips li{font-size:.76rem;padding:.15rem .6rem;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.cap-chips li.on{color:var(--text);border-color:color-mix(in srgb,var(--signal) 55%,var(--line));background:color-mix(in srgb,var(--signal) 14%,transparent)}.delta{font:500 .74rem var(--mono);color:var(--muted);margin-top:.1rem}.delta.up{color:var(--green)}.delta.down{color:#ff8a8a}.focus-sound{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .6rem;padding-top:.2rem;border-top:1px solid var(--line)}.focus-sound select{flex:1;min-width:6rem}.focus-sound input[type=range]{flex:1;min-width:5rem;accent-color:var(--signal)}.test-mode{margin:.2rem 0 1rem;padding:.8rem 1rem;border:1px dashed var(--line);border-radius:12px}.test-mode p{margin:0 0 .6rem}.test-mode .row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem}.fold{padding:0}.fold-head{display:flex;align-items:center;gap:.8rem;width:100%;padding:1rem 1.2rem;border:0;background:none;color:inherit;text-align:left;cursor:pointer;border-radius:inherit}.fold-head:hover{background:color-mix(in srgb,var(--signal) 6%,transparent)}.fold-head:focus-visible{outline:2px solid var(--signal);outline-offset:-2px}.fold-head:disabled{cursor:default}.fold-title{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.fold-title strong{font-size:1.02rem}.fold-summary{color:var(--green);white-space:nowrap}.fold-chevron{transition:transform .2s;color:var(--muted)}.fold.is-open .fold-chevron{transform:rotate(180deg)}.fold-head:disabled .fold-chevron{opacity:.3}.fold-body{padding:0 1.2rem 1.2rem;display:grid;gap:.8rem}.fold-body[hidden]{display:none}@media(prefers-reduced-motion:reduce){.fold-chevron{transition:none}}.ai-provider>summary{list-style:none;cursor:pointer}.ai-provider>summary::-webkit-details-marker{display:none}.ai-provider>summary:after{content:"▾";color:var(--muted);margin-left:.4rem;transition:transform .2s;display:inline-block}.ai-provider[open]>summary:after{transform:rotate(180deg)}.ai-provider[open]>summary{margin-bottom:.4rem}.job-searches,.job-offers{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.job-search,.job-offer{padding:.8rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.job-search.is-paused{opacity:.65}.job-offer.is-new{border-color:color-mix(in srgb,var(--signal) 55%,var(--line))}.job-search-head,.job-offer-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.job-search p,.job-offer p{margin:.25rem 0 0}.job-title{font-weight:600;color:var(--text)}.job-title:hover{color:var(--signal)}.job-summary{color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.job-warn{color:#ffb86b}.job-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-top:.4rem}.job-sources{border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem;display:grid;gap:.4rem}.job-sources legend{padding:0 .4rem;font-size:.85rem;color:var(--muted)}.job-how summary{cursor:pointer;color:var(--muted);font-size:.88rem}.job-ask{padding:.8rem 1rem;border:1px solid var(--signal);border-radius:12px;background:color-mix(in srgb,var(--signal) 10%,var(--surface));display:grid;gap:.5rem}.job-ask p{margin:0}.job-sites{display:flex;flex-wrap:wrap;gap:.2rem .8rem;margin:0;color:var(--muted)}.job-sites a{color:inherit;text-decoration:underline}.job-score{font-variant-numeric:tabular-nums}.job-score.is-high{background:color-mix(in srgb,var(--signal) 25%,var(--surface))}.job-score.is-mid{background:color-mix(in srgb,var(--signal) 10%,var(--surface))}.job-match{margin:0;color:var(--muted)}.sheet-view{margin:1rem 0;overflow-x:auto;border:1px solid var(--line);border-radius:12px}.sheet-view table{border-collapse:collapse;width:100%;margin:0}.sheet-view th,.sheet-view td{padding:.45rem .8rem;border:1px solid var(--line);text-align:left;min-width:4.5rem}.sheet-view th{background:color-mix(in srgb,var(--signal) 10%,var(--surface));font-weight:600}.sheet-view .is-num{text-align:right;font-variant-numeric:tabular-nums}.sheet-view .is-err,.sheet-grid .is-err input{color:#e5484d}.sheet-scroll{overflow:auto;max-height:55vh;border:1px solid var(--line);border-radius:10px}.sheet-grid{border-collapse:collapse}.sheet-grid th{position:sticky;top:0;background:var(--surface);font-weight:500;color:var(--muted);font-size:.78rem;padding:.2rem .5rem;border:1px solid var(--line);white-space:nowrap}.sheet-grid tbody th{position:static;left:0;text-align:center}.sheet-grid td{border:1px solid var(--line);padding:0}.sheet-grid td input{width:8rem;border:0;border-radius:0;background:transparent;padding:.4rem .55rem}.sheet-grid td input.is-num{text-align:right}.sheet-grid td input:focus{outline:2px solid var(--signal);outline-offset:-2px}.sheet-grid td.is-head input{font-weight:600;background:color-mix(in srgb,var(--signal) 8%,transparent)}.sheet-grid .mini-x{margin-left:.3rem}.sheet-formula{display:flex;gap:.7rem;align-items:baseline;min-height:1.6rem;padding:.3rem .7rem;border:1px solid var(--line);border-radius:10px;font-family:ui-monospace,monospace;font-size:.88rem}.prose [data-c=red],.rich-content [data-c=red]{color:#e5484d}.prose [data-c=orange],.rich-content [data-c=orange]{color:#f08a24}.prose [data-c=yellow],.rich-content [data-c=yellow]{color:#d9a400}.prose [data-c=green],.rich-content [data-c=green]{color:#2fa36b}.prose [data-c=blue],.rich-content [data-c=blue]{color:#3b82f6}.prose [data-c=purple],.rich-content [data-c=purple]{color:#8b5cf6}.prose [data-c=pink],.rich-content [data-c=pink]{color:#e255a1}.prose [data-c=gray],.rich-content [data-c=gray]{color:#8a8f98}.prose mark[data-h],.rich-content mark[data-h]{color:inherit;border-radius:3px;padding:0 .12em}.prose mark[data-h=red],.rich-content mark[data-h=red]{background:#e5484d4d}.prose mark[data-h=orange],.rich-content mark[data-h=orange]{background:#f08a244d}.prose mark[data-h=yellow],.rich-content mark[data-h=yellow]{background:#facc1566}.prose mark[data-h=green],.rich-content mark[data-h=green]{background:#2fa36b4d}.prose mark[data-h=blue],.rich-content mark[data-h=blue]{background:#3b82f64d}.prose mark[data-h=purple],.rich-content mark[data-h=purple]{background:#8b5cf64d}.prose mark[data-h=pink],.rich-content mark[data-h=pink]{background:#e255a14d}.prose mark[data-h=gray],.rich-content mark[data-h=gray]{background:#8a8f984d}.prose [data-s=sm],.rich-content [data-s=sm]{font-size:.85em}.prose [data-s=lg],.rich-content [data-s=lg]{font-size:1.25em}.prose [data-s=xl],.rich-content [data-s=xl]{font-size:1.6em;line-height:1.2}.format-wrap{position:relative;display:inline-flex}.format-a{font-weight:700;border-bottom:3px solid var(--signal);line-height:1}.format-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:15.5rem;padding:.7rem;display:grid;gap:.35rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 14px 36px #00000059}.format-title{margin:0;font-size:.74rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.swatches{display:flex;flex-wrap:wrap;gap:.3rem}.swatch{width:1.7rem;height:1.7rem;border-radius:8px;border:1px solid var(--line);background:transparent;cursor:pointer;font-weight:700;font:inherit;color:inherit}.swatch-textColor{background:var(--surface)}.swatch-textColor[data-c=red]{color:#e5484d}.swatch-textColor[data-c=orange]{color:#f08a24}.swatch-textColor[data-c=yellow]{color:#d9a400}.swatch-textColor[data-c=green]{color:#2fa36b}.swatch-textColor[data-c=blue]{color:#3b82f6}.swatch-textColor[data-c=purple]{color:#8b5cf6}.swatch-textColor[data-c=pink]{color:#e255a1}.swatch-textColor[data-c=gray]{color:#8a8f98}.swatch-highlight[data-c=red]{background:#e5484d8c}.swatch-highlight[data-c=orange]{background:#f08a248c}.swatch-highlight[data-c=yellow]{background:#facc1599}.swatch-highlight[data-c=green]{background:#2fa36b8c}.swatch-highlight[data-c=blue]{background:#3b82f68c}.swatch-highlight[data-c=purple]{background:#8b5cf68c}.swatch-highlight[data-c=pink]{background:#e255a18c}.swatch-highlight[data-c=gray]{background:#8a8f988c}.prose [data-f=serif],.rich-content [data-f=serif]{font-family:Georgia,Times New Roman,serif}.prose [data-f=mono],.rich-content [data-f=mono]{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.95em}.prose [data-f=script],.rich-content [data-f=script]{font-family:Segoe Print,Bradley Hand,Snell Roundhand,Comic Sans MS,cursive}.format-panel [data-f=serif]{font-family:Georgia,serif}.format-panel [data-f=mono]{font-family:ui-monospace,Menlo,monospace}.format-panel [data-f=script]{font-family:Segoe Print,Bradley Hand,cursive}.prose [data-a=center],.rich-content [data-a=center]{text-align:center}.prose [data-a=right],.rich-content [data-a=right]{text-align:right}.prose [data-a=justify],.rich-content [data-a=justify]{text-align:justify;-webkit-hyphens:auto;hyphens:auto}.chart-missing{padding:.8rem 1rem;border:1px dashed var(--line);border-radius:12px;color:var(--muted);margin:1rem 0}.chart-source{gap:1.2rem}.pdf-doc .prose table{display:table;width:100%;min-width:0;font-size:10.5px;table-layout:auto}.pdf-doc .prose th,.pdf-doc .prose td{padding:5px 6px}.pdf-doc .prose th{min-width:0;font-size:10px}.pdf-doc .prose td:first-child,.pdf-doc .prose th:first-child{min-width:0}.print-doc .prose td.is-num,.print-doc .prose th.is-num{white-space:nowrap}
