@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700&display=swap";:root{font-family:DM Sans,system-ui,sans-serif;color:#20231f;background:#f4f3ef;font-synthesis:none;--ink: #20231f;--muted: #73776f;--line: #e3e2dc;--paper: #fbfbf9;--accent: #3c5f4c;--accent-soft: #e8eee9}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button{font:inherit;color:inherit}button:focus-visible{outline:3px solid rgba(60,95,76,.24);outline-offset:2px}.app-shell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;padding:24px 16px 18px;background:#eeede8;border-right:1px solid #deddd6;display:flex;flex-direction:column;z-index:20}.brand{height:48px;display:flex;align-items:center;gap:11px;padding:0 8px;margin-bottom:29px}.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:Manrope;font-weight:700}.brand strong,.brand span{display:block}.brand strong{font-family:Manrope;font-size:14px}.brand span{color:var(--muted);font-size:11px;margin-top:2px;letter-spacing:.02em}.nav-label{display:block;padding:0 12px 8px;color:#979a93;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}nav button,.sidebar-bottom>button:first-child{width:100%;border:0;background:transparent;padding:9px 11px;display:flex;gap:11px;align-items:center;border-radius:8px;color:#686c64;font-size:13px;font-weight:500;cursor:pointer;margin:2px 0}nav button:hover,.sidebar-bottom>button:first-child:hover{color:var(--ink);background:#ffffff8c}nav button.active,.sidebar-bottom>button.active:first-child{background:#fff;color:var(--ink);box-shadow:0 1px 2px #1c1f1a0d}nav button.active svg{color:var(--accent)}.sidebar-bottom{margin-top:auto;border-top:1px solid #deddd6;padding-top:12px}.workspace-switcher{width:100%;border:0;background:transparent;display:flex;align-items:center;padding:12px 8px 0;gap:9px;cursor:pointer;text-align:left}.workspace-switcher .avatar{width:29px;height:29px;background:#d9e1da;color:var(--accent);border-radius:7px;display:grid;place-items:center;font-size:11px;font-weight:700}.workspace-switcher span{flex:1}.workspace-switcher strong,.workspace-switcher small{display:block}.workspace-switcher strong{font-size:12px}.workspace-switcher small{color:var(--muted);font-size:10px;margin-top:2px}.close-mobile{display:none}main{grid-column:2;min-width:0}.topbar{height:70px;position:sticky;top:0;z-index:10;background:#f4f3efe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(222,221,214,.9);padding:0 38px;display:flex;align-items:center;justify-content:space-between}.search-button{width:300px;border:1px solid var(--line);background:#ffffffa6;border-radius:8px;padding:9px 11px;display:flex;align-items:center;gap:8px;color:#8a8e86;cursor:pointer;font-size:12px}.search-button span{flex:1;text-align:left}.search-button kbd{border:1px solid #d8d7d1;background:#f4f3ef;border-radius:4px;padding:2px 5px;font:10px DM Sans}.header-actions{display:flex;align-items:center;gap:8px}.auth-button,.icon-button{border:1px solid var(--line);background:#ffffffbf;height:36px;border-radius:8px;display:inline-flex;align-items:center;gap:7px;cursor:pointer}.auth-button{padding:0 12px;font-size:12px;font-weight:600}.icon-button{width:36px;justify-content:center}.menu-button{display:none}.content{max-width:1230px;margin:0 auto;padding:48px 44px 72px}.welcome{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:34px}.eyebrow,.section-kicker{display:block;color:#8a8f87;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.11em}h1,h2,h3,p{margin-top:0}h1{font:700 34px/1.2 Manrope,sans-serif;letter-spacing:-.035em;margin:9px 0 7px}.welcome p,.page-intro{color:var(--muted);font-size:14px;margin:0}.primary-button{border:0;border-radius:8px;background:var(--ink);color:#fff;display:inline-flex;align-items:center;gap:8px;padding:11px 15px;cursor:pointer;font-size:12px;font-weight:600}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:20px;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.metric-strip button{border:0;border-right:1px solid var(--line);background:transparent;padding:17px 19px;text-align:left;cursor:pointer}.metric-strip button:last-child{border-right:0}.metric-strip button:hover{background:#fff}.metric-strip span,.metric-strip small{display:block}.metric-strip span{font-size:11px;color:#71756e}.metric-strip strong{display:inline-block;font:700 24px Manrope;margin:5px 0 1px}.metric-strip small{font-size:10px;color:#a0a39d}.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:22px;min-height:215px}.student-panel{grid-row:span 2;min-height:450px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start}.panel h2{font:700 17px Manrope;letter-spacing:-.02em;margin:5px 0 0}.text-link{color:var(--accent);border:0;background:none;font-size:11px;font-weight:600;cursor:pointer;padding:4px 0}.gentle-empty{height:325px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;max-width:350px;margin:auto}.progress-illustration{display:flex;gap:7px;align-items:center;margin-bottom:24px}.progress-illustration span{width:47px;height:5px;border-radius:5px;background:#dfe5df}.progress-illustration span:first-child{background:#87a08f}.progress-illustration svg{margin-left:3px;color:var(--accent)}.gentle-empty h3{font:700 14px Manrope;margin-bottom:8px}.gentle-empty p{color:var(--muted);font-size:12px;line-height:1.6;margin-bottom:17px}.secondary-button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 11px;display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:600;cursor:pointer}.compact-empty{display:flex;gap:13px;margin:34px 0 25px;align-items:flex-start}.compact-empty>svg{color:#99a79d;margin-top:2px}.compact-empty strong{font-size:12px}.compact-empty p{color:var(--muted);font-size:11px;line-height:1.5;margin:4px 0 0}.add-row{width:100%;border:0;border-top:1px solid #ebeae5;background:transparent;padding:14px 0 0;display:flex;gap:8px;align-items:center;color:var(--accent);font-size:11px;font-weight:600;cursor:pointer}.knowledge-panel,.health-panel{min-height:240px}.idea-lanes{margin:24px 0 16px}.idea-lanes>div{display:flex;align-items:center;gap:11px;padding:10px 0}.idea-lanes svg{color:#849689}.idea-lanes span{flex:1}.idea-lanes strong,.idea-lanes small{display:block}.idea-lanes strong{font-size:12px}.idea-lanes small{color:var(--muted);font-size:10px;margin-top:3px}.idea-lanes em{font-style:normal;color:#92968f;font-size:11px}.health-row{display:flex;align-items:center;gap:10px;margin-top:17px}.health-row div{flex:1}.health-row strong,.health-row small{display:block}.health-row strong{font-size:11px}.health-row small{color:var(--muted);font-size:9px;margin-top:2px}.health-row>span:last-child{font-size:9px;color:#777b74}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.ready{background:#6e987d;box-shadow:0 0 0 3px #e8f0ea}.status-dot.paused{background:#c4a661;box-shadow:0 0 0 3px #f4efdf}.status-dot.neutral{background:#a5aaa3;box-shadow:0 0 0 3px #eceeeb}.page-view{max-width:900px}.page-view h1{margin-top:12px}.page-intro{max-width:620px;line-height:1.6}.empty-card{margin-top:38px;min-height:340px;border:1px solid var(--line);background:var(--paper);border-radius:13px;padding:55px 28px;display:flex;align-items:center;flex-direction:column;justify-content:center;text-align:center}.empty-icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);margin-bottom:18px}.empty-card h3{font:700 16px Manrope;margin-bottom:8px}.empty-card p{font-size:12px;color:var(--muted);max-width:390px;line-height:1.55}.text-button{border:0;background:transparent;color:var(--accent);display:flex;align-items:center;gap:7px;font-weight:600;font-size:11px;cursor:pointer;margin-top:8px}.callout,.setup-list{margin-top:18px;border:1px solid var(--line);border-radius:11px;background:#fbfbf9a6;padding:18px;display:flex;gap:12px}.callout>svg{color:var(--accent)}.callout strong{font-size:12px}.callout p{font-size:11px;color:var(--muted);margin:4px 0 0}.setup-list{flex-direction:column}.setup-list>div{display:flex;gap:12px;align-items:center}.setup-list svg{width:18px;color:#819188}.setup-list strong,.setup-list small{display:block}.setup-list strong{font-size:12px}.setup-list small{color:var(--muted);margin-top:3px;font-size:10px}.toast{position:fixed;right:24px;bottom:24px;z-index:40;background:#242722;color:#fff;border-radius:9px;padding:12px 15px;display:flex;align-items:center;gap:9px;font-size:11px;box-shadow:0 10px 30px #0000002e;animation:rise .2s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scrim{display:none}.modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;overflow-y:auto}.modal-scrim{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#1a1d196b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.auth-dialog{position:relative;z-index:1;width:min(420px,100%);background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:31px;box-shadow:0 24px 70px #15191533;animation:rise .2s ease-out}.dialog-close{position:absolute;z-index:10;right:12px;top:12px;width:40px;height:40px;border:0;border-radius:8px;background:#f1f0eb;display:grid;place-items:center;cursor:pointer;color:var(--ink);font:400 25px/1 Arial,sans-serif}.dialog-close:hover{background:#efeee9;color:var(--ink)}.auth-mark{width:43px;height:43px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);margin-bottom:21px}.auth-dialog h2{font:700 24px Manrope;letter-spacing:-.03em;margin:9px 0 7px}.auth-dialog>p,.setup-card>p{color:var(--muted);font-size:12px;line-height:1.55;margin-bottom:23px}.auth-dialog form,.setup-card form{display:grid;gap:15px}.auth-dialog label,.setup-card label{display:grid;gap:6px;font-size:11px;font-weight:600}.auth-dialog input,.setup-card input{width:100%;height:42px;border:1px solid #d9d9d2;border-radius:8px;background:#fff;padding:0 12px;font:12px DM Sans}.auth-dialog input:focus,.setup-card input:focus{outline:3px solid rgba(60,95,76,.14);border-color:#8da092}.auth-submit{width:100%;justify-content:center;height:42px;margin-top:2px}.auth-submit:disabled,.auth-button:disabled{cursor:wait;opacity:.65}.auth-switch{display:block;margin:18px auto 0;border:0;background:transparent;color:var(--accent);font-size:11px;font-weight:600;cursor:pointer}.form-alert{border-radius:7px;padding:10px 11px;font-size:11px;line-height:1.45}.form-alert.error{color:#883f3a;background:#f7e9e7;border:1px solid #edd3cf}.form-alert.success{color:#315f43;background:#e9f2ec;border:1px solid #d3e5d9}.setup-screen{min-height:100vh;display:grid;place-items:center;padding:30px 20px;background:radial-gradient(circle at 50% 0%,#fafaf7 0,#f4f3ef 52%)}.setup-card{width:min(460px,100%);background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:38px;box-shadow:0 14px 45px #1a1e1a12}.setup-card h1{font-size:28px;margin-top:10px}.setup-note{margin-top:22px;padding:14px;background:#f0f2ed;border-radius:8px}.setup-note strong{font-size:11px}.setup-note p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.centered-state{min-height:100vh;padding:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px}.centered-state svg{color:var(--accent)}.centered-state strong{font:700 15px Manrope}.centered-state span{max-width:480px;color:var(--muted);font-size:11px;line-height:1.5}.data-page{max-width:940px}.data-page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.data-page-header h1{margin-top:11px}.data-empty{min-height:310px}.data-state{min-height:240px;margin-top:32px;border:1px solid var(--line);border-radius:12px;background:var(--paper);display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;color:var(--muted);font-size:11px;text-align:center;padding:25px}.data-state.error strong{color:#883f3a}.record-list,.record-grid{margin-top:32px;display:grid;gap:10px}.record-row{min-height:68px;border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:13px 15px;display:flex;align-items:center;gap:12px}.record-icon{width:35px;height:35px;border-radius:9px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:0 0 auto}.record-main{flex:1;min-width:0;padding:0;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer}.record-main:hover strong{text-decoration:underline;text-underline-offset:3px}.record-main strong,.record-main span{display:block}.record-main strong{font-size:12px}.record-main span{color:var(--muted);font-size:10px;margin-top:4px}.record-main span em{font-style:normal;color:var(--accent);text-transform:capitalize;margin-right:12px}.record-row>small{color:var(--muted);text-transform:capitalize;font-size:10px}.record-row.is-complete .record-main strong{color:var(--muted);text-decoration:line-through}.record-row.is-complete .record-icon{background:#e8eee8;color:#58725e}.record-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-record,.knowledge-record{border:1px solid var(--line);background:var(--paper);border-radius:10px;min-height:108px;padding:17px;display:flex;gap:12px}.project-record>svg{color:var(--accent)}.project-record .record-main{flex:1}.project-record strong,.project-record span{display:block}.project-record strong{font-size:13px}.project-record span{font-size:10px;color:var(--muted);margin-top:7px}.project-record>em{height:fit-content;background:var(--accent-soft);color:var(--accent);border-radius:12px;padding:4px 8px;font-size:9px;font-style:normal;text-transform:capitalize}.knowledge-record .record-main{min-width:0}.knowledge-record em,.knowledge-record strong{display:block}.knowledge-record em{color:var(--accent);font-size:9px;font-style:normal;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.knowledge-record strong{font-size:13px}.knowledge-record p{color:var(--muted);font-size:10px;line-height:1.5;margin:7px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.record-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.record-action{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);min-height:30px;padding:5px 7px;display:inline-flex;align-items:center;gap:4px;cursor:pointer;font:600 10px DM Sans}.record-action:hover{background:#f1f0eb}.record-action.complete{color:var(--accent)}.record-action.danger,.danger-button{color:#a7473c;border-color:#e4c7c2}.record-action.danger:hover,.danger-button:hover{background:#fff4f2}.danger-button{border:1px solid #e4c7c2;background:#fff;border-radius:7px;padding:8px 11px;font-size:11px;font-weight:600;cursor:pointer}.detail-content{display:grid;gap:9px;min-height:44px}.detail-content>p{margin:0;color:var(--muted);font-size:13px;line-height:1.6;white-space:pre-wrap}.detail-content .detail-body{color:var(--ink)}.detail-actions{justify-content:space-between}.data-dialog form select,.data-dialog form textarea{width:100%;border:1px solid #d9d9d2;border-radius:8px;background:#fff;padding:10px 12px;font:12px DM Sans}.data-dialog form select{height:42px}.data-dialog form textarea{resize:vertical;min-height:100px}.data-dialog{max-height:calc(100vh - 40px);overflow-y:auto}.student-shell-note{margin-top:24px;border:1px solid #dce5da;border-radius:10px;background:#f5f8f3;padding:13px 15px;display:flex;gap:10px;color:var(--accent)}.student-shell-note>div{color:var(--ink)}.student-shell-note strong{display:block;font-size:11px}.student-shell-note p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.goal-fields{border:1px solid var(--line);border-radius:9px;padding:14px;display:grid;gap:11px}.goal-fields legend{padding:0 4px;font-size:11px;font-weight:600}.goal-fields>p{margin:-3px 0 2px;color:var(--muted);font-size:10px;line-height:1.45}.goal-timeline{display:grid;gap:12px}.goal-timeline>div{border-left:2px solid var(--accent-soft);padding-left:10px}.goal-timeline strong{font-size:10px;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.goal-timeline p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5;white-space:pre-wrap}.goals-summary{margin-top:25px;padding:15px;border:1px solid #dce5da;border-radius:10px;background:#f5f8f3;display:flex;gap:11px;color:var(--accent)}.goals-summary>div{color:var(--ink)}.goals-summary strong{display:block;font-size:12px}.goals-summary p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.goals-groups{display:grid;gap:28px;margin-top:30px}.goal-group-heading{display:flex;align-items:end;gap:9px}.goal-group-heading h2{margin:4px 0 0;font:700 18px Manrope}.goal-group-heading small{margin:0 0 2px;color:var(--muted);font-size:10px}.goal-records{display:grid;gap:9px;margin-top:11px}.goal-record{min-height:76px;border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:14px;display:flex;align-items:flex-start;gap:11px}.goal-record-icon{width:33px;height:33px;border-radius:9px;display:grid;place-items:center;color:var(--accent);background:var(--accent-soft);flex:0 0 auto}.goal-record>div:nth-child(2){flex:1;min-width:0}.goal-record strong{display:block;font-size:12px}.goal-record p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5;white-space:pre-wrap}.goal-record .text-link{flex:0 0 auto;margin-top:2px}.timeline-summary{border:1px solid #dce5da;background:#f5f8f3;border-radius:9px;padding:13px;margin-bottom:16px}.timeline-summary>strong{font-size:11px}.timeline-summary>p{margin:6px 0 0;color:var(--muted);font-size:11px}.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.score-grid div{background:#fff;border-radius:6px;padding:7px}.score-grid span,.score-grid b{display:block}.score-grid span{color:var(--muted);font-size:9px}.score-grid b{margin-top:2px;font-size:11px}.timeline-list{display:grid;gap:12px}.timeline-entry{display:grid;grid-template-columns:70px 1fr;gap:10px}.timeline-entry>span{color:var(--accent);text-transform:uppercase;font-size:9px;font-weight:700;letter-spacing:.06em;padding-top:2px}.timeline-entry>div{border-left:2px solid var(--line);padding:0 0 12px 12px}.timeline-entry.start>div{border-left-color:var(--accent)}.timeline-entry strong{display:block;font-size:11px}.timeline-entry p,.timeline-entry small{display:block;margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.timeline-event-form{border-top:1px solid var(--line);margin-top:9px;padding-top:16px;display:grid;gap:11px}.timeline-event-form .secondary-button{justify-self:start}.roadmap-intro{margin-top:25px;padding:15px;border:1px solid #dce5da;border-radius:10px;background:#f5f8f3;display:flex;gap:11px;color:var(--accent)}.roadmap-intro>div{color:var(--ink)}.roadmap-intro strong{display:block;font-size:12px}.roadmap-intro p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.roadmap-levels{margin:24px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.roadmap-level{min-height:180px;position:relative;overflow:hidden;border:1px solid var(--line);background:var(--paper);border-radius:11px;padding:18px}.roadmap-number{position:absolute;right:13px;top:10px;color:#edf0eb;font:700 38px Manrope}.roadmap-level>div{position:relative;z-index:1}.roadmap-level h3{margin:8px 0 5px;font:700 18px Manrope}.roadmap-level p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.roadmap-level small{display:inline-block;margin-top:17px;color:var(--accent);font-size:10px;font-weight:600}.roadmap-distribution,.roadmap-activity{border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:18px}.roadmap-distribution{display:flex;align-items:end;justify-content:space-between;gap:25px}.roadmap-distribution h2{margin:6px 0;font:700 17px Manrope}.roadmap-distribution p,.roadmap-activity p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.roadmap-bars{width:150px;height:66px;display:flex;align-items:end;gap:7px}.roadmap-bars span{flex:1;background:var(--accent-soft);border-radius:4px 4px 0 0}.roadmap-bars span:nth-child(1){height:35%}.roadmap-bars span:nth-child(2){height:58%}.roadmap-bars span:nth-child(3){height:78%}.roadmap-activity{margin-top:11px}.roadmap-level ol{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:5px}.roadmap-level li{color:var(--muted);font-size:10px;line-height:1.35}.roadmap-level:is(button){width:100%;text-align:left;cursor:pointer;color:var(--ink);font:inherit}.roadmap-level:is(button):hover{border-color:#b7c3b1;background:#f8faf6}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:7px}.dialog-header h2{margin-bottom:0}.dialog-close-text{flex:0 0 auto;min-width:68px;height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;font-size:11px;font-weight:600}.dialog-close-text:hover{background:#f1f0eb}.profile-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.profile-footer .dialog-actions{margin:0}.profile-footer>.primary-button{min-height:40px;min-width:112px}.timeline-entry-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.timeline-delete{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#a65d5d;cursor:pointer;font:inherit;font-size:10px;padding:0;opacity:.72}.timeline-delete:hover{opacity:1;text-decoration:underline}.timeline-delete:disabled{cursor:wait;opacity:.5}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:3px}.dialog-actions .secondary-button,.dialog-actions .primary-button{min-height:40px;justify-content:center}.dialog-actions .secondary-button{min-width:82px}.dialog-actions .primary-button{min-width:112px}.detail-actions{justify-content:flex-start;flex-wrap:wrap}.flow-legend{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:20px}.flow-legend>span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:10px}.flow-legend b{color:var(--ink);font-size:10px}.flow-legend small{color:var(--accent);font-size:9px}.flow-legend-dot{width:8px;height:8px;border-radius:50%}.flow-legend-dot-lead{background:#9ba995}.flow-legend-dot-student{background:#77936f}.flow-legend-dot-goal{background:#b6a67d}.flow-legend-dot-project{background:#8098a5}.flow-legend-dot-task{background:#a88a7f}.flow-map{position:relative;min-height:370px;margin-top:14px;overflow:hidden;border:1px solid #dce1d7;border-radius:14px;background:radial-gradient(circle at 50% 48%,#f5f7f2 0,#fbfbf8,#f3f4ef)}.flow-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.flow-lines path{fill:none;stroke:#d8ddd2;stroke-width:1.4}.flow-stage{position:absolute;display:grid;grid-template-columns:repeat(3,16px);gap:14px;place-content:center;width:19%;min-height:100px}.flow-stage-label{position:absolute;top:-17px;left:0;width:100%;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.07em;text-align:center;text-transform:uppercase}.flow-stage-label small{display:inline-block;margin-left:4px;color:var(--accent);font-size:9px}.flow-stage-marker{width:8px;height:8px;border-radius:50%;background:#b9c0b5;grid-column:2;justify-self:center}.flow-stage-lead{left:3%;top:14%}.flow-stage-student{left:22%;top:30%}.flow-stage-goal{left:41%;top:40%}.flow-stage-project{left:60%;top:49%}.flow-stage-task{left:79%;top:34%}.flow-orb{width:16px;height:16px;border-radius:50%;box-shadow:0 4px 9px #323a2f24;animation:flow-float 4.6s ease-in-out infinite;animation-delay:calc(var(--orb-index) * -.33s)}.flow-orb-lead{background:#9ba995}.flow-orb-student{background:#77936f}.flow-orb-goal{background:#b6a67d}.flow-orb-project{background:#8098a5}.flow-orb-task{background:#a88a7f}.flow-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;margin:0;color:var(--muted);font-size:12px;text-align:center;padding:24px}@keyframes flow-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media(max-width:640px){.flow-map{min-height:430px}.flow-stage{grid-template-columns:repeat(2,16px);gap:10px;width:22%}.flow-stage-lead{left:1%;top:12%}.flow-stage-student{left:21%;top:30%}.flow-stage-goal{left:40%;top:44%}.flow-stage-project{left:59%;top:57%}.flow-stage-task{left:78%;top:30%}}.student-profile-tabs{display:flex;gap:6px;margin:2px 0 14px;overflow-x:auto;padding-bottom:2px}.student-profile-tabs button{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:7px;padding:7px 10px;font:600 11px DM Sans;cursor:pointer;white-space:nowrap}.student-profile-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.student-profile-section{display:grid;gap:13px}.student-profile-summary{border:1px solid #dce5da;background:#f5f8f3;border-radius:10px;padding:13px}.student-profile-summary h3{margin:5px 0;font-size:15px}.student-profile-summary p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.student-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.student-profile-grid>div{border:1px solid var(--line);border-radius:8px;padding:10px}.student-profile-grid span,.student-profile-grid strong{display:block}.student-profile-grid span{color:var(--muted);font-size:9px}.student-profile-grid strong{margin-top:4px;font-size:11px;line-height:1.35}.student-profile-actions{display:flex;gap:8px;flex-wrap:wrap}.student-profile-actions button{min-height:40px}.student-profile-actions .secondary-button{min-width:110px}@media(max-width:480px){.student-profile-grid{grid-template-columns:1fr}}.optional{color:var(--muted);font-weight:400;margin-left:4px}.home-records{margin:21px 0 16px;display:grid;gap:7px}.home-records button{width:100%;border:0;background:#f3f4f0;border-radius:7px;min-height:36px;padding:8px 10px;display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer}.home-records button:hover{background:#edf0ea}.home-records svg{color:var(--accent)}.home-records span{flex:1;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-records em{color:var(--muted);font-size:9px;font-style:normal;text-transform:capitalize}.knowledge-home{margin-top:25px}@media(max-width:900px){.app-shell{display:block}.sidebar{transform:translate(-100%);transition:transform .2s ease}.sidebar.open{transform:translate(0);box-shadow:12px 0 40px #1419141f}.close-mobile{display:grid;margin-left:auto;border:0;background:transparent;place-items:center;cursor:pointer}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;border:0;background:#191c183d;z-index:15}.menu-button{display:grid;place-items:center;border:0;background:transparent;padding:6px}.topbar{padding:0 22px}.content{padding:38px 28px 60px}}@media(max-width:680px){.search-button{width:auto;flex:1;margin:0 12px}.search-button span,.search-button kbd{display:none}.search-button{justify-content:center;max-width:40px}.auth-button{font-size:0;padding:0;width:36px;justify-content:center}.welcome{align-items:flex-start;flex-direction:column}.metric-strip{grid-template-columns:repeat(2,1fr)}.metric-strip button:nth-child(2){border-right:0}.metric-strip button:nth-child(-n+2){border-bottom:1px solid var(--line)}.home-grid{grid-template-columns:1fr}.student-panel{grid-row:auto;min-height:410px}.content{padding:30px 18px 52px}h1{font-size:29px}.auth-dialog,.setup-card{padding:26px 21px}.data-page-header{align-items:flex-start;flex-direction:column}.record-grid,.roadmap-levels{grid-template-columns:1fr}.record-row{align-items:flex-start;flex-wrap:wrap}.record-row>small{margin-top:9px}.record-actions{width:100%;justify-content:flex-start;padding-left:47px}.project-record,.knowledge-record{flex-wrap:wrap}.project-record .record-actions,.knowledge-record .record-actions{padding-left:0}.roadmap-distribution{align-items:flex-start;flex-direction:column}.roadmap-bars{width:100%}}
