/* Page compositions: shared data, distinct working surfaces. */
body .dashboard-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px;align-items:start}body .dashboard-heading{padding:0;margin:0 0 24px}body .dashboard-heading h1{font-size:28px;font-weight:var(--font-semibold);margin:8px 0;letter-spacing:-.03em}body .dashboard-heading p{font-size:15px;color:var(--secondary)}body .dashboard-heading .dashboard-panel-kicker{font-size:var(--text-label);text-transform:none;letter-spacing:0}.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 24px}body .dashboard-metric{padding:20px 16px}body .dashboard-metric strong{font-size:28px;white-space:nowrap}body .day-rail{display:block;padding:0 0 0 24px;border-left:1px solid var(--hairline);margin-top:0}body .dashboard-panel{border:0;border-radius:0;padding:0;background:transparent;box-shadow:none}body .dashboard-panel+.dashboard-panel{padding-top:32px;margin-top:32px;border-top:1px solid var(--hairline)}body .dashboard-panel-head{margin-bottom:16px;gap:8px}body .dashboard-panel-head h2{font-size:var(--text-base);color:var(--ink)}body .dashboard-panel-head .dashboard-panel-kicker{display:none}body .dashboard-panel-head .link-btn{font-size:var(--text-xs);white-space:nowrap}body .dashboard-task,body .dashboard-event{min-height:60px;padding:12px 0;border:0;border-bottom:1px solid var(--hairline);background:none;border-radius:0;color:var(--ink)}body .dashboard-task strong,body .dashboard-event strong{font-size:var(--text-sm);color:var(--ink);font-weight:var(--font-medium)}body .dashboard-task small,body .dashboard-event small{font-size:var(--text-xs);color:var(--secondary)}body .dashboard-event-date{border:1px solid var(--hairline);border-radius:6px;background:var(--surface);width:40px;flex-basis:40px}body .dashboard-add{color:var(--brand);font-size:var(--text-sm);padding:12px 0;background:none;border:0}body .dashboard-panel-empty{padding:12px 0}body .dashboard-panel-empty strong{font-size:var(--text-sm);font-weight:var(--font-medium)}body .dashboard-panel-empty p{font-size:var(--text-sm);color:var(--secondary);margin:4px 0 8px}
body .next-action{display:flex;align-items:center;flex-direction:row;gap:24px;justify-content:space-between;margin:0 0 24px;padding:20px 24px;background:var(--surface);border:1px solid var(--hairline);border-radius:12px}body .next-action h2{font-size:var(--text-lg);margin:4px 0 8px}body .next-action p{font-size:var(--text-sm);color:var(--secondary);margin:0}body .next-action>.primary-btn{flex-shrink:0;min-width:0}body .dashboard-study-chart{border:1px solid var(--hairline);border-radius:12px;background:var(--surface);padding:24px;margin:0;box-shadow:none}body .study-chart-head{gap:16px;align-items:flex-start}body .study-chart-head h2{font-size:28px;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink)}body .study-chart-head h2 small{display:block;font-size:var(--text-label);font-weight:var(--font-regular);letter-spacing:0;color:var(--secondary);margin-top:4px}body .study-chart-actions{display:block}body .study-chart-actions>.link-btn{display:none}body .study-chart-grid{height:220px;margin-top:24px;gap:20px;background:none}body .study-chart-track{background:transparent;border-radius:0;border-bottom:1px solid var(--hairline)}body .study-chart-track i{max-width:36px;background:#DADDDC;border-radius:4px 4px 0 0}body .study-chart-day.is-today i{background:var(--brand)}body .study-chart-day small,body .study-chart-day>span{font-size:var(--text-xs);color:var(--secondary)}body .study-zero{min-height:176px;padding:24px 0;display:flex;flex-wrap:wrap;align-content:center;gap:12px;text-align:left}.study-zero-icon{display:none!important}body .study-zero strong{font-size:var(--text-base);font-weight:var(--font-medium)}body .study-zero p{font-size:var(--text-sm);color:var(--secondary)}body .study-zero .secondary-btn{background:transparent;border:0;color:var(--brand);padding-left:0}body .study-chart-baseline{border-top:1px dashed var(--hairline);background:none;height:1px}.studio-onboarding{margin-top:24px;border-top:1px solid var(--hairline);padding-top:24px}.studio-onboarding h2{font-size:var(--text-sm);margin:0 0 12px}.studio-checklist{display:flex;gap:8px;flex-wrap:wrap}.studio-checklist button{display:flex;gap:8px;align-items:center;border:1px solid var(--hairline);border-radius:8px;background:var(--surface);padding:8px 12px;color:var(--secondary);font-size:var(--text-label)}.studio-checklist .done{color:var(--success);border-color:transparent;background:var(--success-tint)}.studio-checklist span{font-variant-numeric:tabular-nums}
body .progress-overview{grid-template-columns:repeat(3,1fr);margin-top:16px}body .progress-metric{height:104px;min-height:0;padding:16px 24px}body .progress-metric:nth-child(3n){border-right:0}body .progress-metric:nth-child(-n+3){border-bottom:1px solid var(--hairline)}body .progress-metric strong{font-size:var(--text-title);margin:4px 0}body .progress-section>.section-title-row{display:none}body .activity-panel{padding:24px}body .progress-study{margin:24px 0}body .progress-columns{gap:24px}body .activity-panel-head h2{font-size:var(--text-lg)}body .activity-chart{height:196px;margin-top:24px;gap:16px;border-bottom:1px solid var(--hairline);background:none}body .activity-bar span{background:#DADDDC;border-radius:4px 4px 0 0;max-width:36px}body .activity-bar.studio-today span{background:var(--brand)}body .activity-bar small{font-size:var(--text-xs);color:var(--secondary)}body .progress-study>.empty-state{min-height:176px;display:flex;flex-direction:column;justify-content:center;border-bottom:1px dashed var(--hairline)}body .mastery-progress-row{padding:16px 0;border-bottom:1px solid var(--hairline)}body .mastery-progress-row strong{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--ink)}body .progress-bar,body .fc-progress{height:4px;border-radius:4px;background:var(--hairline)}body .progress-fill,body .fc-progress span{background:var(--brand);border-radius:4px}.studio-chapter-count{display:block;font-size:var(--text-xs);color:var(--secondary);margin-top:8px}.studio-heatmap{margin-top:24px;padding:24px;border:1px solid var(--hairline);background:var(--surface);border-radius:12px}.studio-heatmap h2{font-size:var(--text-lg);margin:0 0 8px}.studio-heatmap p{font-size:var(--text-sm);color:var(--secondary);margin:0 0 20px}.heatmap-scroll{overflow:auto;padding:4px}.heatmap-grid{display:grid;grid-template-rows:repeat(7,12px);grid-auto-flow:column;grid-auto-columns:12px;gap:4px;width:max-content}.heatmap-cell{background:var(--surface-hover);border-radius:2px}.heatmap-cell[data-level="1"]{background:#DCE8FF}.heatmap-cell[data-level="2"]{background:#ACC8FF}.heatmap-cell[data-level="3"]{background:#6499FC}.heatmap-cell[data-level="4"]{background:var(--brand)}.heatmap-key{display:flex;align-items:center;gap:5px;font-size:var(--text-xs);color:var(--secondary);margin-top:12px}.heatmap-key i{width:10px;height:10px;border-radius:2px}
body .matieres-hero{min-height:0;margin:0 0 32px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;gap:24px}body .matieres-hero h1{font-size:30px;font-weight:var(--font-semibold);line-height:1.15;letter-spacing:-.035em;margin-bottom:8px}body .matieres-hero p{font-size:15px;color:var(--secondary)}body .matieres-hero-note{display:none}body .matieres-add.primary-btn{min-width:0;min-height:40px;padding:8px 16px;font-size:var(--text-sm);border-radius:8px}body .matieres-stats{grid-template-columns:repeat(3,1fr)}body .matieres-stat{min-height:88px;padding:16px 24px;display:flex;gap:12px;align-items:center}body .matieres-stat b{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--ink)}body .matieres-stat p{font-size:var(--text-xs);margin-top:4px;color:var(--secondary)}body .matieres-toolbar{margin:32px 0 20px;gap:16px}body .matieres-sort{height:36px;min-width:0;border-color:var(--hairline);border-radius:8px;box-shadow:none;padding:0 12px;background:var(--surface)}body .matieres-view{height:36px;border-color:var(--hairline);border-radius:8px}body .matieres-view button{height:36px;width:36px;font-size:var(--text-panel)}body .matieres-view button.active{background:var(--brand-tint);color:var(--brand);border-radius:0}body .matieres-overview .subject-hub-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}body .matieres-overview .subject-hub-card{border:1px solid var(--hairline);border-left:3px solid var(--subject-accent,#8496B3);border-radius:16px;box-shadow:var(--shadow-card);background:var(--surface)}body .matieres-overview .subject-hub-open{min-height:0;height:100%;padding:24px;border-radius:12px;background:transparent}body .matieres-overview .subject-hub-top .subject-symbol{width:44px;height:44px;border-radius:10px;font-size:var(--text-lg);background:var(--brand-tint);color:var(--ink);box-shadow:none}body .matieres-overview .subject-hub-card h2{font-size:var(--text-lg);line-height:1.2;margin:16px 0 8px;color:var(--ink)}body .matieres-overview .subject-hub-card p{font-size:var(--text-sm);color:var(--secondary);margin-bottom:20px}body .matieres-overview .subject-progress-line{margin-bottom:20px;gap:12px}body .matieres-overview .progress-bar{height:4px;background:var(--hairline)}body .matieres-overview .subject-progress-line strong{font-size:var(--text-sm)}body .subject-hub-foot{border-top:1px solid var(--hairline);padding-top:16px;font-size:var(--text-label);color:var(--secondary)}.studio-next-chapter{font-size:var(--text-label);color:var(--secondary);margin:4px 0 12px;line-height:1.5}.studio-next-chapter b{font-weight:var(--font-medium);color:var(--ink)}body .chapter-mastery-card{padding:24px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface);box-shadow:none}body .chapter-card-head h2{font-size:var(--text-lg)}body .chapter-checkpoints{background:var(--background);border-radius:8px}body .chapter-step{box-shadow:none;border-radius:8px}body .chapter-steps .next-step{border-color:#BACFFF;background:var(--brand-tint)}body .chapter-toolbar{margin-bottom:24px;gap:12px}
body .task-work-layout{grid-template-columns:minmax(0,1fr) 264px;gap:24px}body .task-work-card{padding:0;border:1px solid var(--hairline);border-radius:12px;box-shadow:none}body .task-work-tabs{gap:20px;border-bottom:1px solid var(--hairline);margin-bottom:20px}body .task-work-tabs button{padding:8px 0 12px;border-radius:0;background:none;font-size:var(--text-sm);color:var(--secondary)}body .task-work-tabs button.active{background:none;color:var(--ink);box-shadow:inset 0 -2px var(--ink)}body .task-work-tabs button span{background:var(--surface-hover);color:var(--secondary);font-size:var(--text-xs)}body .task-quick-add{margin:0;padding:16px 20px;border:0;border-bottom:1px solid var(--hairline);background:transparent;border-radius:0}body .task-quick-add input{background:transparent;border:0;padding:0;box-shadow:none;min-width:0}body .task-quick-add button{background:var(--surface);border:1px solid var(--hairline);color:var(--ink);border-radius:6px;font-size:var(--text-sm)}body .task-work-filters{padding:16px 20px;margin:0;gap:8px;flex-wrap:wrap;background:transparent;border:0}body .task-work-filters .studio-control{flex:1;min-width:140px}body .task-results-heading{margin:0;padding:8px 20px;font-size:var(--text-xs);color:var(--secondary)}body .task-work-group h2{background:var(--background);padding:8px 20px;margin:0;font-size:var(--text-label);font-weight:var(--font-medium);color:var(--secondary);border-block:1px solid var(--hairline)}body .task-work-row{padding:12px 20px;min-height:60px;border:0;border-bottom:1px solid var(--hairline);border-radius:0;background:var(--surface);gap:12px}body .task-work-row:hover{background:var(--background)}body .task-work-copy>button{font-size:var(--text-sm);line-height:1.5;color:var(--ink);font-weight:var(--font-medium)}body .task-work-copy>div{font-size:var(--text-xs);color:var(--secondary);gap:8px;margin-top:4px}body .task-priority-chip{font-size:var(--text-xs);background:var(--background);color:var(--secondary);border-radius:4px;padding:2px 6px}body .task-priority-chip.high{background:var(--warning-tint);color:var(--warning)}body .task-day-plan{background:transparent;border:0;border-left:1px solid var(--hairline);border-radius:0;padding:0 0 0 24px;box-shadow:none}body .task-day-title>span{font-size:var(--text-xs);text-transform:none;letter-spacing:0;color:var(--secondary)}body .task-day-plan h2{font-size:var(--text-lg);margin:8px 0 20px}body .task-day-plan h3{font-size:var(--text-sm);font-weight:var(--font-medium)}body .task-day-progress strong{font-size:var(--text-title);color:var(--ink);font-variant-numeric:tabular-nums}body .task-next{background:none;border:0;border-bottom:1px solid var(--hairline);border-radius:0;padding:12px 0}body .task-next strong{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--ink)}body .task-next small{font-size:var(--text-xs);color:var(--secondary)}body .task-day-facts{background:none;border-color:var(--hairline)}body .task-to-calendar{background:transparent;border-color:var(--hairline);font-size:var(--text-sm)}
body .project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:24px}body .project-card{padding:24px;text-align:left;min-height:200px;box-shadow:none}body .project-card:hover{background:var(--surface);border-color:#B9BFCA;box-shadow:none;transform:none}body .project-card h2{font-size:var(--text-lg);color:var(--ink);margin:20px 0 8px}body .project-card p{font-size:var(--text-sm);color:var(--secondary);line-height:1.6;min-height:44px}body .project-card-top{color:var(--secondary);font-size:var(--text-xs)}body .project-facts{font-size:var(--text-label);color:var(--secondary)}body .project-facts strong{font-variant-numeric:tabular-nums;color:var(--ink);font-size:var(--text-sm)}body .connected-empty{grid-column:1/-1;text-align:left;border:0;background:transparent;padding:32px 0;min-height:0}body .connected-empty h2{font-size:var(--text-lg)}body .connected-empty p{margin:12px 0 16px;max-width:48ch;font-size:var(--text-sm);color:var(--secondary)}body .project-summary{border-color:var(--hairline);padding:20px 0}body .project-summary strong{font-size:28px;font-variant-numeric:tabular-nums;color:var(--ink)}body .connected-panel-head h2{font-size:var(--text-lg)}body .actual-row{border-color:var(--hairline);min-height:44px;padding:12px 0}body .connection-label{background:var(--background);color:var(--secondary);border:1px solid var(--hairline);font-size:var(--text-xs)}
body .calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px}body .experience-toolbar{display:flex;gap:12px;margin:0 0 24px;align-items:center}body .experience-toolbar .date-jump{font-size:var(--text-label);color:var(--secondary);margin-left:auto;gap:8px}body .month-card{padding:0;overflow:hidden}body .month-toolbar{padding:20px;border-bottom:1px solid var(--hairline);margin:0;gap:12px}body .month-toolbar h2{font-size:var(--text-lg);color:var(--ink)}body .month-grid{gap:0;padding:0;border:0;background:var(--surface)}body .weekday{padding:12px 0;font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--secondary);background:var(--background);border-bottom:1px solid var(--hairline)}body .day-cell{height:104px;min-height:104px;border:0;border-radius:0;border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);padding:8px 6px;background:var(--surface);box-shadow:none;text-align:left;display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:0;overflow:hidden}body .day-cell:nth-child(7n){border-right:0}body .day-cell:hover{background:var(--background)}body .day-cell.outside{opacity:.4}body .day-cell.selected{box-shadow:inset 0 0 0 1px #AFC6FF;background:var(--brand-tint)}body .day-cell.is-today{background:#F5F8FF}body .day-cell>strong,body .day-cell>.day-number,body .day-cell>.day-num{display:grid;place-items:center;align-self:flex-start;min-width:24px;width:24px;height:24px;font-size:var(--text-label);line-height:24px;font-weight:var(--font-regular);border-radius:50%;margin:0;color:var(--ink)}body .day-cell.is-today>strong,body .day-cell.is-today>.day-number,body .day-cell.is-today>.day-num{background:var(--brand);color:#fff}body .calendar-chip{display:block;max-width:100%;padding:2px 4px;font-size:var(--text-xs);line-height:16px;border-radius:3px;border:0;border-left:2px solid var(--event-accent,#8094B5);background:var(--brand-tint);color:#324766;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body .calendar-chip.exam{background:var(--warning-tint);color:var(--warning);border-color:var(--warning)}body .calendar-chip.sport{background:var(--success-tint);color:var(--success);border-color:var(--success)}body .more-events{font-size:var(--text-xs);color:var(--secondary);line-height:16px}body .day-agenda{padding:0 0 0 20px;border:0;border-left:1px solid var(--hairline);border-radius:0;background:transparent;box-shadow:none}body .day-agenda>h2{font-size:var(--text-lg);line-height:1.3;margin:8px 0 24px;color:var(--ink)}body .agenda-row{background:none;border:0;border-bottom:1px solid var(--hairline);border-left:2px solid var(--hairline);border-radius:0;margin:0 0 16px;padding:0 0 16px 16px;position:relative;display:flex;flex-direction:column;gap:8px}body .agenda-row::before{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:#A2ABB6;left:-4px;top:7px}body .agenda-row>small{order:-2;font-size:var(--text-xs);color:var(--secondary)}body .agenda-row>strong{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--ink)}body .event-category{font-size:var(--text-xs);align-self:flex-start;letter-spacing:0;border-radius:4px;background:var(--surface-hover);color:var(--secondary);padding:2px 6px}body .agenda-actions .secondary-btn{min-height:28px;padding:4px 0;border:0;background:none;color:var(--brand);font-size:var(--text-xs)}body .agenda-actions .icon-btn{height:28px;width:28px;border:0}body .day-agenda>[data-calendar-task]{padding:8px 0;border:0;background:transparent;color:var(--brand);font-size:var(--text-sm);justify-content:flex-start}body .day-agenda .agenda-empty{padding:16px 0}body .day-agenda .agenda-empty h3{font-size:var(--text-sm)}body .day-agenda .agenda-empty p{font-size:var(--text-sm)}.studio-week-scroll{overflow:auto;max-height:680px}.studio-week{min-width:600px;position:relative}.studio-week-head{display:grid;grid-template-columns:44px repeat(7,minmax(0,1fr));position:sticky;top:0;background:var(--surface);z-index:3;border-bottom:1px solid var(--hairline)}.studio-week-head button{min-height:64px;border:0;border-left:1px solid var(--hairline);background:none;color:var(--secondary);font-size:var(--text-xs)}.studio-week-head button strong{display:block;font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--ink)}.studio-week-head button.today strong{background:var(--brand);color:#fff;border-radius:50%;width:28px;height:28px;margin:0 auto}.studio-week-body{display:grid;grid-template-columns:44px repeat(7,minmax(0,1fr));height:1152px}.studio-week-hours{display:grid;grid-template-rows:repeat(24,48px)}.studio-week-hours span{font-size:var(--text-xs);color:var(--secondary);padding:0 4px;text-align:right;transform:translateY(-7px)}.studio-week-column{position:relative;overflow:hidden;border-left:1px solid var(--hairline);background:repeating-linear-gradient(to bottom,transparent 0,transparent 47px,var(--hairline) 47px,var(--hairline) 48px)}.studio-week-column.today{background-color:#F8FAFF}.studio-week-block{position:absolute;left:4px;right:4px;overflow:hidden;border:0;border-left:2px solid var(--brand);border-radius:4px;padding:4px;background:#EDF3FF;color:#284A7C;text-align:left;font-size:var(--text-xs);line-height:1.3;min-height:22px}.studio-week-block strong{display:block;font-size:var(--text-xs);font-weight:var(--font-medium)}.studio-time-line{position:absolute;left:0;right:0;height:1px;background:var(--danger);z-index:2;pointer-events:none}.studio-time-line:before{content:'';position:absolute;left:-3px;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--danger)}.studio-untimed{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--hairline);font-size:var(--text-xs);color:var(--secondary)}.studio-untimed button{border:1px solid var(--hairline);background:var(--background);font-size:var(--text-xs);color:var(--ink);border-radius:5px;padding:4px 8px}
body .cnc-library-notice{padding:0 0 20px;margin-bottom:24px;border:0;border-bottom:1px solid var(--hairline);border-radius:0;background:none;font-size:var(--text-xs);color:var(--secondary)}body .cnc-breadcrumb{font-size:var(--text-label);margin:0 0 20px}body .filiere-grid,body .cnc-subject-grid{display:block;border:1px solid var(--hairline);border-radius:12px;background:var(--surface);overflow:hidden}body .choice-card{display:grid;grid-template-columns:80px minmax(0,1fr) minmax(120px,auto);gap:24px;align-items:center;min-height:76px;width:100%;padding:16px 24px;border:0;border-bottom:1px solid var(--hairline);border-radius:0;background:none;box-shadow:none;text-align:left}body .choice-card:last-child{border:0}body .choice-card:hover{background:var(--background);transform:none;box-shadow:none}body .choice-code{width:auto;height:auto;background:none;color:var(--ink);font-size:var(--text-lg);font-weight:var(--font-medium)}body .choice-card strong{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--ink)}body .choice-card small{font-size:var(--text-label);color:var(--secondary);text-align:right}body .paper-list{display:block;border:1px solid var(--hairline);border-radius:12px;overflow:hidden;background:var(--surface)}body .paper-row{display:grid;grid-template-columns:64px minmax(0,1fr) 100px 64px 24px;gap:16px;min-height:52px;padding:12px 20px;border:0;border-bottom:1px solid var(--hairline);border-radius:0;width:100%;background:none;box-shadow:none;text-align:left;align-items:center;color:var(--ink)}body .paper-row:last-child{border-bottom:0}body .paper-row:hover{background:var(--background);transform:none}body .paper-year{font-size:var(--text-sm);font-weight:var(--font-medium);font-variant-numeric:tabular-nums;color:var(--ink)}body .paper-row strong{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--ink)}body .paper-row small{font-size:var(--text-xs);color:var(--secondary)}body .paper-status{font-size:var(--text-xs);background:var(--surface-hover);color:var(--secondary);border-radius:4px;padding:3px 7px;justify-self:start;white-space:nowrap}body .paper-status.finished{background:var(--success-tint);color:var(--success)}body .paper-status.ready{background:var(--brand-tint);color:#285CAD}.studio-table-head{display:grid;grid-template-columns:64px minmax(0,1fr) 100px 64px 24px;gap:16px;padding:12px 20px;background:var(--background);font-size:var(--text-xs);color:var(--secondary);border-bottom:1px solid var(--hairline)}.studio-cnc-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:24px;padding:12px;background:var(--surface);border:1px solid var(--hairline);border-radius:8px}.studio-cnc-toolbar label{display:flex;align-items:center;gap:8px;font-size:var(--text-label)}.studio-cnc-toolbar .studio-control{min-width:130px}.studio-paper-score{font-size:var(--text-sm);font-variant-numeric:tabular-nums}.studio-row-arrow{width:16px;height:16px;opacity:.6}
body .focus-cockpit{--fc-blue:var(--brand);--fc-ink:var(--ink);--fc-muted:var(--secondary);--fc-border:var(--hairline)}body .focus-cockpit .fc-card{padding:24px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface);box-shadow:none}body .fc-workspace{grid-template-columns:minmax(0,1fr) 320px;gap:24px}body .fc-main-column{gap:24px}body .focus-cockpit .fc-timer{padding:24px 32px}body .fc-mode{font-size:var(--text-xs);font-weight:var(--font-medium);letter-spacing:0;text-transform:none;color:var(--secondary)}body .fc-clock{font-size:96px;line-height:1.1;font-weight:var(--font-medium);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--ink);margin:28px 0 12px}body .fc-timer-subject{font-size:var(--text-base);color:var(--ink)}body .fc-goal{padding-top:20px;margin-top:24px;border-color:var(--hairline)}body .fc-goal>span{font-size:var(--text-xs);color:var(--secondary);font-weight:var(--font-regular);letter-spacing:0;text-transform:none}body .fc-goal>p{font-size:var(--text-base);color:var(--ink)}body .fc-today-number{font-size:28px;font-variant-numeric:tabular-nums;color:var(--ink)}body .fc-streak{background:var(--background);color:var(--secondary);font-size:var(--text-xs);border-radius:5px}body .fc-presets button{border-color:var(--hairline);border-radius:8px;background:var(--surface);padding:12px;color:var(--ink)}body .fc-presets button.selected{background:var(--brand-tint);border-color:#ACC8FF;color:var(--brand)}body .fc-presets strong{font-size:var(--text-sm);font-weight:var(--font-medium)}body .fc-presets span,body .fc-presets button span,body .focus-cockpit legend,body .focus-cockpit label{font-size:var(--text-label);color:var(--secondary)}body .focus-cockpit .fc-card-title h2{font-size:var(--text-base);color:var(--ink)}body .fc-analytics{gap:24px;margin-top:24px}body .fc-history{margin-top:24px}body .fc-bar-track{background:transparent;max-width:32px;border-radius:0;border-bottom:1px solid var(--hairline)}body .fc-bar-track>span{background:#DADDDC;border-radius:4px 4px 0 0}body .fc-bar-value,body .fc-bar{font-size:var(--text-xs);color:var(--secondary)}body .fc-session{padding:12px 0;min-height:56px;border-color:var(--hairline)}body .fc-session-symbol{background:var(--background);border-radius:6px;width:28px;height:28px}body .fc-session-copy>strong{font-size:var(--text-sm);color:var(--ink);font-weight:var(--font-medium)}body .fc-session-copy>span,body .fc-session-copy p,body .fc-session-time span{color:var(--secondary);font-size:var(--text-xs)}body .fc-status{font-size:var(--text-xs);border-radius:4px;background:var(--background);color:var(--secondary)}body .fc-status.completed{background:var(--success-tint);color:var(--success)}body .fc-history-metrics strong{font-size:24px;font-variant-numeric:tabular-nums}body .fc-history-metrics span{font-size:var(--text-xs);color:var(--secondary)}body .fc-history-filters .studio-control{flex:1;min-width:150px}body .fc-selector-grid .studio-control{width:100%;margin-top:6px}body .fc-setup .studio-control{width:100%}body .fc-setup input,body .fc-setup textarea,body .fc-setup .studio-select-trigger{font-size:var(--text-sm)!important;border-color:var(--hairline)!important}body .fc-timer.is-break{background:#F4F8F5;border-color:#D7E5DC}body .fc-timer.is-break .fc-clock{color:var(--success)}body .fc-timer-foot{font-size:var(--text-xs)!important;color:var(--secondary)}body .focus-cockpit .fc-caption{font-size:var(--text-xs);color:var(--secondary)}body.focus-cockpit-immersive .focus-cockpit{max-width:760px}body.focus-cockpit-immersive .fc-timer{border:0;background:transparent;box-shadow:none}body.focus-cockpit-immersive .fc-clock{font-size:clamp(96px,14vw,144px)}
body .auth-gate{background:var(--surface);font-family:var(--font-sans)}body .auth-brand-panel{background:var(--background);border-right:1px solid var(--hairline);color:var(--ink);padding:48px clamp(32px,5vw,80px);overflow:hidden}body .auth-brand-panel:before,body .auth-brand-panel:after{display:none}body .auth-message>p:first-child{font-size:var(--text-label);letter-spacing:0;text-transform:none;color:var(--secondary)}body .auth-message h1{font-size:clamp(36px,3.6vw,52px);font-weight:var(--font-semibold);line-height:1.08;letter-spacing:-.045em;color:var(--ink);max-width:12ch}body .auth-message>p{color:var(--secondary);font-size:var(--text-base)}body .auth-preview{background:var(--surface);border:1px solid var(--hairline);border-radius:12px;box-shadow:var(--shadow-preview);transform:none;color:var(--ink)}body .auth-form-panel{background:var(--surface);padding:48px clamp(32px,5vw,80px)}body .auth-card{max-width:420px;border:0;box-shadow:none;padding:0;background:none}body .auth-card h2{font-size:30px;letter-spacing:-.03em;font-weight:var(--font-semibold);color:var(--ink);line-height:1.2}body .auth-card p,body .auth-brand-footer,body .auth-status{font-size:var(--text-sm);color:var(--secondary)}body .auth-tabs{background:var(--background);border:1px solid var(--hairline);padding:3px;border-radius:8px}body .auth-tab{border-radius:5px;color:var(--secondary);font-size:var(--text-sm);background:none}body .auth-tab.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0B122010}body .auth-form input,body .auth-form select{border-color:var(--hairline);border-radius:8px;background:var(--surface);color:var(--ink);min-height:44px}body .auth-plan{border-color:var(--hairline);border-radius:12px;box-shadow:none;background:var(--surface);color:var(--ink)}body .auth-plan.featured{border-color:#ABC6FF;background:var(--surface)}body .auth-plan h3{font-size:var(--text-lg);color:var(--ink)}body .auth-plan .plan-price{font-variant-numeric:tabular-nums;color:var(--ink)}body .auth-plan.ai-plan{background:var(--background)}body .auth-card a,body .auth-link{color:var(--brand)}body .auth-preview>*{color:var(--ink)}body .auth-preview .preview-bar{background:var(--hairline)}body .auth-preview .preview-bar span{background:var(--brand)}body .auth-brand-footer{color:var(--secondary)}
@media(min-width:1536px){body .dashboard-layout{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}body .fc-workspace{grid-template-columns:minmax(0,1fr) 344px}}
@media(max-width:1279px){body .dashboard-layout{grid-template-columns:minmax(0,1fr) 280px}body .dashboard-metric{padding:16px 12px}body .dashboard-metric strong{font-size:24px}body .dashboard-metric small{font-size:var(--text-xs)}body .day-rail{padding-left:16px}body .calendar-layout{grid-template-columns:1fr}body .day-agenda{border:0;padding:24px 0 0;display:block}body .day-agenda>h2{margin-bottom:16px}body .day-agenda .agenda-row{max-width:560px}body .task-work-layout{grid-template-columns:minmax(0,1fr) 240px}body .fc-workspace{grid-template-columns:minmax(0,1fr) 300px}body .fc-clock{font-size:88px}body .matieres-overview .subject-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1023px){body .dashboard-layout{grid-template-columns:1fr}body .day-rail{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:0;border:0}body .dashboard-panel+.dashboard-panel{margin:0;padding:0;border:0}body .task-work-layout{grid-template-columns:1fr}body .task-day-plan{border:0;border-top:1px solid var(--hairline);padding:24px 0;display:block}body .task-day-facts{max-width:440px}body .task-next{max-width:440px}body .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body .fc-workspace{grid-template-columns:minmax(0,1fr) 280px}body .fc-clock{font-size:72px}body .fc-timer-actions{gap:8px}body .focus-cockpit .fc-timer{padding:24px}body .auth-brand-panel{padding:40px 32px}body .auth-form-panel{padding:40px 32px}body .connected-columns{grid-template-columns:1fr}}
@media(max-width:767px){body .day-rail{grid-template-columns:1fr}body .dashboard-panel+.dashboard-panel{padding-top:24px;border-top:1px solid var(--hairline)}body .dashboard-metrics{grid-template-columns:1fr 1fr}body .next-action{padding:20px;gap:16px;align-items:flex-start;flex-direction:column}body .next-action .primary-btn{width:auto}body .dashboard-study-chart{padding:20px}body .study-chart-grid{gap:12px;height:180px}body .study-chart-head{gap:8px}body .study-chart-head .chart-range button{padding:5px 8px;font-size:var(--text-xs)}body .progress-overview{grid-template-columns:repeat(2,minmax(0,1fr))}body .progress-metric{padding:16px;height:100px;border-right:1px solid var(--hairline)!important;border-bottom:1px solid var(--hairline)}body .progress-metric:nth-child(2n){border-right:0!important}body .progress-metric:nth-last-child(-n+2){border-bottom:0}body .progress-columns{grid-template-columns:1fr}body .progress-metric strong{font-size:28px}body .activity-panel-head{flex-wrap:wrap;gap:16px}.studio-heatmap{padding:20px}body .matieres-hero{flex-wrap:wrap}body .matieres-stats{grid-template-columns:repeat(3,minmax(0,1fr))}body .matieres-stat{padding:12px;min-height:100px}body .matieres-stat strong{font-size:24px}body .matieres-stat b,body .matieres-stat p{font-size:var(--text-xs)}body .matieres-toolbar{flex-wrap:wrap}body .matieres-overview .subject-hub-grid{grid-template-columns:1fr}body .matieres-tabs{flex-wrap:wrap}body .matieres-tabs button{font-size:var(--text-xs);padding:6px 8px}body .matieres-tools{gap:12px}body .subject-hub-open{min-height:0}body .task-work-tabs{gap:16px;overflow:auto;white-space:nowrap}body .task-work-tabs button{font-size:var(--text-label)}body .task-work-tabs button span{display:none}body .task-work-filters{padding:12px}body .task-quick-add{padding:12px}body .task-work-row{padding:12px;gap:8px}body .task-priority-chip{font-size:0;width:6px;height:6px;padding:0;background:#A6AAB0;border-radius:50%;flex-shrink:0}body .task-priority-chip.high{background:var(--warning)}body .task-work-copy>button{font-size:var(--text-sm)}body .project-grid{grid-template-columns:1fr}body .project-card{min-height:0}body .project-summary{gap:24px}body .project-summary strong{font-size:24px}body .month-toolbar{padding:16px;flex-wrap:wrap}body .month-toolbar h2{font-size:var(--text-lg)}body .experience-toolbar{gap:12px;flex-wrap:wrap}body .calendar-mode{width:auto;margin:0}body .calendar-mode button{min-height:32px}body .date-jump{width:100%;justify-content:space-between;margin-left:0!important}body .experience-toolbar>.studio-control{flex:1}body .day-cell{height:88px;min-height:88px;padding:4px 2px}body .calendar-chip{font-size:var(--text-xs);padding:1px 2px;line-height:16px}body .day-cell .more-events{font-size:var(--text-xs)}body .weekday{font-size:var(--text-xs)}body .day-agenda{padding-top:24px}body .fc-workspace{display:flex;flex-direction:column}body .fc-main-column,body .fc-setup{width:100%}body .fc-clock{font-size:96px}body .fc-analytics{grid-template-columns:1fr}body .fc-card{padding:20px!important}body .fc-history-metrics{grid-template-columns:1fr 1fr;gap:16px}body .fc-history-metrics>div:nth-child(2n){border:0}body .fc-session{flex-wrap:wrap;gap:12px}body .fc-session-copy{flex-basis:70%}body .fc-session-time{min-width:0;flex:1}body .fc-session .fc-status{font-size:var(--text-xs)}body .fc-history-filters .studio-control{min-width:130px}body .choice-card{grid-template-columns:48px 1fr;gap:12px;padding:16px}body .choice-card small{grid-column:2;text-align:left}body .paper-row,.studio-table-head{grid-template-columns:44px minmax(0,1fr) 68px 40px;gap:8px;padding:12px}body .paper-row .studio-row-arrow,.studio-table-head>span:last-child{display:none}body .paper-row strong{font-size:var(--text-label)}body .paper-status{font-size:var(--text-xs);padding:2px 4px}.studio-cnc-toolbar{flex-wrap:wrap;padding:12px}.studio-cnc-toolbar label{flex:1;flex-wrap:wrap;gap:4px}.studio-cnc-toolbar .studio-control{width:100%;min-width:110px}body .cnc-library-notice{align-items:flex-start;gap:12px;flex-wrap:wrap}body .paper-workspace{grid-template-columns:1fr}body .auth-brand-panel{display:none}body .auth-gate{grid-template-columns:1fr}body .auth-form-panel{padding:40px 24px;min-height:100dvh}body .auth-card{max-width:420px;width:100%}body .auth-pricing{grid-template-columns:1fr}body .auth-card h2{font-size:28px}}
body .dashboard-metric>span.dashboard-metric-icon{display:none!important}body .dashboard-heading{border:0}body .dashboard-panel,body .dashboard-panel-list{min-height:0;height:auto}body .dashboard-panel+.dashboard-panel{min-height:0}.dashboard-heading .dashboard-panel-kicker{font-weight:var(--font-regular)!important}.next-action .dashboard-panel-kicker{letter-spacing:0!important;text-transform:none!important;font-weight:var(--font-regular)!important}.dashboard-study-chart .dashboard-panel-kicker{font-size:var(--text-xs)!important;letter-spacing:0!important;text-transform:lowercase!important;font-weight:var(--font-regular)!important}.dashboard-study-chart .dashboard-panel-kicker::first-letter{text-transform:uppercase}
body .matieres-overview .subject-hub-grid.is-list{grid-template-columns:1fr}body .matieres-overview .subject-hub-grid.is-list .subject-hub-open{display:grid;grid-template-columns:40px 1fr 1fr;gap:12px;align-items:center;padding:16px 24px}body .matieres-overview .subject-hub-grid.is-list .subject-hub-card h2,body .matieres-overview .subject-hub-grid.is-list .subject-hub-card p{margin:0}body .matieres-overview .subject-hub-grid.is-list .subject-progress-line{margin:0}body .matieres-overview .subject-hub-grid.is-list .subject-card-link{grid-column:3}body .matieres-overview .subject-hub-grid.is-list .studio-next-chapter{grid-column:2;margin:0}body .subject-card-link{color:var(--secondary);font-size:var(--text-sm)}body .subject-card-link>span{display:none}
@media(max-width:767px){body .matieres-overview .subject-hub-grid.is-list .subject-hub-open{display:flex;align-items:stretch;gap:12px}body .matieres-overview .subject-hub-grid.is-list .subject-hub-card h2{font-size:var(--text-lg)}}
body .matieres-overview .subject-card-link{background:transparent;padding:0;min-height:24px;border:0;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--brand)}body .matieres-sort{padding:0;border:0;background:transparent}body .matieres-sort>span:not(.studio-control){display:none}body .matieres-stat p{display:none}body .matieres-stat{min-height:96px}body .task-quick-add:focus-within{box-shadow:none;outline:0}body .task-work-group{padding:0}body .task-work-group h2{text-transform:none;letter-spacing:0}body .paper-row{min-height:44px;padding-top:8px;padding-bottom:8px}body .dashboard-task,body .dashboard-event{padding-top:8px;padding-bottom:8px}body .fc-clock{font-size:96px}.studio-week-hours{position:relative}.studio-week-hours:after{content:'24:00';position:absolute;bottom:0;right:4px;font-size:var(--text-xs);color:var(--secondary)}body .auth-preview{position:relative}body .auth-preview:after{content:'Exemple d’espace';position:absolute;bottom:6px;right:12px;font-size:var(--text-xs);color:var(--secondary)}
/* Task rows keep their title and metadata on separate lines at every width. */
body .tasks-workspace .task-work-row{min-height:72px;padding:14px 20px}
body .tasks-workspace .task-work-copy{display:block;min-width:0}
body .tasks-workspace .task-work-copy>div{margin-top:4px;gap:6px 12px;color:var(--secondary)}
body .tasks-workspace .task-work-tabs button.active{color:var(--brand);box-shadow:inset 0 -2px var(--brand)}
body .tasks-workspace .task-work-row .action-menu summary{width:36px;height:36px;display:grid;place-items:center;list-style:none;border-radius:8px}
body .tasks-workspace .task-work-row .action-menu summary::-webkit-details-marker{display:none}
body .tasks-workspace .task-work-row .action-menu summary:hover{background:var(--surface-hover)}
@media(min-width:768px) and (max-width:1279px){body .tasks-workspace .task-search{flex-basis:100%;min-width:0}body .tasks-workspace .task-work-filters .studio-control{min-width:0}}
@media(max-width:767px){
  body .tasks-workspace .task-work-tabs{gap:4px;flex-wrap:wrap;overflow:visible;border:0}
  body .tasks-workspace .task-work-tabs button{min-height:40px;padding:8px 10px;border-radius:8px;box-shadow:none}
  body .tasks-workspace .task-work-tabs button.active{background:var(--brand-tint);box-shadow:none;color:var(--brand)}
  body .tasks-workspace .task-work-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:16px}
  body .tasks-workspace .task-work-filters :is(.task-search,.studio-control){width:100%;min-width:0;max-width:none}
  body .tasks-workspace .task-work-filters select{width:100%;max-width:none}
  body .tasks-workspace .task-quick-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:16px}
  body .tasks-workspace .task-quick-add>span{display:none}
  body .tasks-workspace .task-quick-add input{width:100%}
  body .tasks-workspace .task-work-row{display:grid;grid-template-columns:20px minmax(0,1fr) 40px;gap:8px;padding:14px 16px;position:relative}
  body .tasks-workspace .task-work-row input[type=checkbox]{width:20px;height:20px}
  body .tasks-workspace .task-work-row>.action-menu{grid-column:3;grid-row:1;margin:0;align-self:start}
  body .tasks-workspace .task-work-row .action-menu summary{width:40px;height:44px}
  body .tasks-workspace .task-priority-chip{position:absolute;right:32px;bottom:12px;margin:0}
}

@media(max-width:767px){body .fc-clock{font-size:88px}.studio-heatmap{overflow:hidden}.studio-chapter-count{font-size:var(--text-xs)}}
body .auth-brand-panel .auth-wordmark,body .auth-brand-panel .prepago-wordmark{color:var(--ink)!important}body .auth-message>span,body .auth-brand-foot,body .auth-preview-head span,body .auth-preview-row small{color:var(--secondary);font-size:var(--text-sm);line-height:1.6}body .auth-message>span{font-size:var(--text-base);max-width:40ch;display:block}body .auth-preview-progress{height:4px;background:var(--hairline)}body .auth-preview-progress i{background:var(--brand)}body .auth-preview-row{border-color:var(--hairline)}body .auth-message h1{max-width:16ch}body .auth-kicker{font-size:var(--text-xs);font-weight:var(--font-medium);letter-spacing:0;color:var(--secondary);text-transform:lowercase}body .auth-kicker::first-letter{text-transform:uppercase}body .auth-card label,body .auth-tabs button{font-weight:var(--font-medium)}body .auth-tabs button.active{box-shadow:none}body .auth-access>h2{font-size:28px;font-weight:var(--font-semibold);letter-spacing:-.03em;line-height:1.15;margin:16px 0 12px}body .auth-plan-featured{border:1px solid var(--hairline);padding:20px;box-shadow:none;background:var(--background)}body .auth-plan-featured>button{background:transparent;border:1px solid var(--hairline);color:var(--secondary);font-weight:var(--font-medium)}body .auth-plan-name{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--ink)}body .auth-plan li{font-size:var(--text-sm);line-height:1.5;color:var(--secondary)}body .auth-plan-price span{font-size:var(--text-sm);font-weight:var(--font-regular);color:var(--secondary)}body .auth-plan-price small{font-size:var(--text-xs);color:var(--secondary)}body .auth-plan-pill{font-size:var(--text-xs);letter-spacing:0;font-weight:var(--font-regular);border-radius:4px;background:var(--surface);color:var(--secondary);padding:2px 6px}body .auth-promo{border:1px solid var(--hairline);border-radius:12px;box-shadow:none;padding:24px;background:var(--brand-tint);border-color:#CADAFB}body .auth-promo>div small{font-size:var(--text-xs);color:var(--secondary)}body .auth-promo input{font-weight:var(--font-regular);border-radius:8px;border-color:var(--hairline)}body .auth-promo button{border-radius:8px;background:var(--brand-solid);font-weight:var(--font-medium)}body .auth-trial-note small{font-size:var(--text-xs);color:var(--secondary)}body .auth-plan>button{font-size:var(--text-sm);border-radius:8px}body .field label{font-weight:var(--font-medium)}
@media(max-width:767px){body .auth-pricing-grid{grid-template-columns:1fr}body .auth-promo>div{flex-direction:column;gap:8px}}

/* Account screens retain native labels, validation and visibility states. */
body .auth-card label{font-weight:var(--font-semibold);color:var(--ink);font-size:var(--text-label);line-height:1.6}
body .auth-card input,body .auth-card select{min-height:48px;padding:12px 14px;border-color:var(--hairline);border-radius:8px;background:var(--surface);color:var(--ink);font-size:var(--text-sm)}
body .auth-card .auth-submit{min-height:48px;font-weight:var(--font-semibold)}
body .auth-card .auth-tabs{margin:24px 0}
body .auth-promo input,body .auth-promo button{min-height:44px}
body .auth-promo button{font-weight:var(--font-semibold)}
@media(max-width:767px){body .auth-card input,body .auth-card select{font-size:var(--text-base)}body .matieres-hero h1{font-size:28px}}
