:root{--navy:#081827;--blue:#102a43;--soft:#f5f7fb;--text:#17202a;--muted:#65758b;--line:#d9e2ec;--emerald:#0f766e;--gold:#b7791f}*{box-sizing:border-box}body{background:var(--soft);color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}.app{min-height:100vh;display:flex}.sidebar{background:linear-gradient(180deg,var(--navy),var(--blue));color:#fff;flex-direction:column;width:285px;height:100vh;padding:28px;display:flex;position:fixed;overflow-y:auto}.brand{align-items:center;gap:12px;margin-bottom:38px;display:flex}.brand h1{margin:0;font-size:25px}.brand p{color:#bcccdc;margin:2px 0 0;font-size:13px}nav{gap:12px;display:grid}nav a{color:#f8fafc;background:#ffffff12;border-radius:12px;align-items:center;gap:10px;padding:12px;text-decoration:none;display:flex}.owned{color:#cbd5e1;padding-top:10px;font-size:12px;line-height:1.5}.content{width:calc(100% - 285px);margin-left:285px;padding:34px}.hero{border:1px solid var(--line);background:radial-gradient(circle at 100% 0,#d1fae5,#fff 38%,#f8fafc);border-radius:28px;justify-content:space-between;gap:30px;padding:36px;display:flex;box-shadow:0 12px 35px #0f172a12}.eyebrow{color:var(--emerald);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800}.hero h2{margin:8px 0;font-size:44px}.hero p{max-width:780px;color:var(--muted);font-size:18px}.chips{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.chips span,.tag{color:#115e59;background:#e6fffa;border:1px solid #99f6e4;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:700}.profile-card{border:1px solid var(--line);background:#fff;border-radius:20px;min-width:250px;padding:24px}.grid{gap:18px;margin:22px 0;display:grid}.four{grid-template-columns:repeat(4,1fr)}.mini{border:1px solid var(--line);background:#fff;border-radius:20px;gap:7px;padding:22px;display:grid}.mini svg{color:var(--emerald)}.mini strong{font-size:32px}.mini span{color:var(--muted)}.panel{border:1px solid var(--line);background:#fff;border-radius:24px;margin:22px 0;padding:30px}.section-head{justify-content:space-between;align-items:flex-end;gap:25px;margin-bottom:20px;display:flex}.section-head h2{margin:0;font-size:28px}.section-head p{color:var(--muted);margin:0}.cards{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.opp{border:1px solid var(--line);background:#fbfdff;border-radius:18px;padding:20px}.opp h3{margin:14px 0 8px}.opp p{color:var(--muted)}.opp small{color:#64748b;margin-bottom:16px;display:block}.opp a{color:var(--emerald);font-weight:800;text-decoration:none}.passport-grid{grid-template-columns:1fr 1.2fr;gap:26px;display:grid}.line{border-bottom:1px solid var(--line);gap:3px;margin:0;padding:12px 0;display:grid}.line span{color:var(--muted);font-size:14px}.project-form{border:1px solid var(--line);background:#f8fafc;border-radius:18px;gap:12px;margin-top:22px;padding:18px;display:grid}.project-form h3{align-items:center;gap:8px;margin:0;display:flex}.project-form input,.project-form textarea{border:1px solid var(--line);width:100%;font:inherit;border-radius:12px;padding:12px}.project-form textarea{min-height:90px}.project-form button{background:var(--navy);color:#fff;cursor:pointer;border:0;border-radius:12px;padding:13px;font-weight:800}.metrics{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.stat-card{border:1px solid var(--line);background:#fbfdff;border-radius:18px;padding:18px}.stat-card span{text-transform:capitalize;color:var(--muted);display:block}.stat-card strong{color:var(--gold);font-size:30px}.loading{padding:50px;font-size:24px}.add-opp-btn{background:var(--emerald);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:12px;align-items:center;gap:7px;padding:11px 20px;font-size:14px;font-weight:700;transition:opacity .15s;display:flex}.add-opp-btn:hover{opacity:.88}.opp-form{border:1px solid var(--line);background:#f8fafc;border-radius:20px;margin-bottom:22px;padding:26px}.opp-form-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px;display:grid}.opp-form-field{flex-direction:column;gap:6px;display:flex}.opp-form-field.full{grid-column:1/-1}.opp-form-field label{color:var(--text);font-size:13px;font-weight:700}.opp-form-field input,.opp-form-field select,.opp-form-field textarea{border:1px solid var(--line);font:inherit;color:var(--text);background:#fff;border-radius:12px;padding:11px 14px}.opp-form-field textarea{resize:vertical;min-height:80px}.opp-form-submit{background:var(--navy);color:#fff;cursor:pointer;border:0;border-radius:12px;padding:13px 28px;font-size:14px;font-weight:800}.goal-list{gap:6px;margin-top:8px;margin-bottom:18px;display:grid}.goal-item{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;transition:opacity .15s;display:flex}.goal-item.done{opacity:.55;background:#f8fafc}.goal-check{border:2px solid var(--line);cursor:pointer;width:22px;min-width:22px;height:22px;color:var(--emerald);background:#fff;border-radius:6px;justify-content:center;align-items:center;font-size:13px;font-weight:800;transition:border-color .15s,background .15s;display:flex}.goal-item.done .goal-check{background:var(--emerald);border-color:var(--emerald);color:#fff}.goal-text{flex:1;font-size:14px;font-weight:600}.goal-item.done .goal-text{color:var(--muted);text-decoration:line-through}.goal-delete{cursor:pointer;color:var(--muted);opacity:0;background:0 0;border:0;border-radius:6px;align-items:center;padding:3px;transition:opacity .15s;display:flex}.goal-item:hover .goal-delete{opacity:1}.goal-delete:hover{color:#e11d48;background:#fef2f2}.goal-input-row{gap:8px;margin:10px 0 6px;display:flex}.goal-input-row input{border:1px solid var(--line);font:inherit;border-radius:10px;flex:1;padding:9px 13px}.goal-input-row button{background:var(--emerald);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:9px 18px;font-weight:700}.cert-form{border:1px solid var(--line);background:#f8fafc;border-radius:16px;gap:12px;margin:10px 0 14px;padding:18px;display:grid}.print-btn{color:var(--navy);border:1.5px solid var(--line);cursor:pointer;white-space:nowrap;background:#fff;border-radius:12px;align-items:center;gap:7px;padding:10px 18px;font-size:14px;font-weight:700;transition:border-color .15s,color .15s;display:flex}.print-btn:hover{border-color:var(--navy)}.login-bg{background:linear-gradient(135deg,var(--navy) 0%,#1a3a5c 50%,#0d2235 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:#fff;border-radius:28px;width:100%;max-width:480px;padding:40px;box-shadow:0 32px 80px #0006}.login-brand{align-items:center;gap:14px;margin-bottom:28px;display:flex}.login-brand h1{color:var(--navy);margin:0;font-size:26px}.login-brand p{color:var(--muted);margin:3px 0 0;font-size:13px}.login-title{color:var(--navy);margin:0 0 20px;font-size:20px;font-weight:800}.login-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin-bottom:16px;padding:12px 16px;font-size:14px}.login-form{gap:14px;margin-bottom:24px;display:grid}.login-field{gap:6px;display:grid}.login-field label{color:var(--navy);font-size:13px;font-weight:700}.login-field input{border:1.5px solid var(--line);font:inherit;border-radius:12px;padding:13px 16px;font-size:15px;transition:border-color .15s}.login-field input:focus{border-color:var(--emerald);outline:none}.login-btn{color:#fff;font:inherit;cursor:pointer;background:linear-gradient(135deg,#0f766e,#065f46);border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;padding:15px;font-size:16px;font-weight:800;transition:opacity .15s;display:flex}.login-btn:hover{opacity:.9}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-demo-section{border-top:1px solid var(--line);padding-top:20px}.login-demo-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 12px;font-size:12px;font-weight:700}.login-demo-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.login-demo-card{text-align:left;cursor:pointer;background:#fff;border:1.5px solid;border-radius:12px;flex-direction:column;gap:3px;padding:12px;transition:transform .1s,box-shadow .1s;display:flex}.login-demo-card:hover{transform:translateY(-1px);box-shadow:0 4px 14px #0000001a}.login-demo-role{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800}.login-demo-email{color:var(--muted);font-size:11px}.login-demo-pass{font-family:monospace;font-size:12px;font-weight:700}.login-footer{text-align:center;color:var(--muted);margin:20px 0 0;font-size:12px}.sidebar-user{background:#ffffff1a;border-radius:14px;align-items:center;gap:10px;margin-top:auto;padding:12px;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-info strong{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.sidebar-user-info span{color:#bcccdc;white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.logout-btn{color:#fff;cursor:pointer;background:#ffffff26;border:0;border-radius:10px;flex-shrink:0;align-items:center;padding:8px;transition:background .15s;display:flex}.logout-btn:hover{background:#ffffff40}.role-hero{border:1px solid var(--line);border-radius:24px;margin-bottom:4px;padding:32px}.mentor-hero{background:radial-gradient(circle at 100% 0,#dbeafe,#fff 40%,#f8fafc)}.admin-hero{background:radial-gradient(circle at 100% 0,#f5f3ff,#fff 40%,#f8fafc)}.parent-hero{background:radial-gradient(circle at 100% 0,#fef9c3,#fff 40%,#f8fafc)}.role-hero .eyebrow{color:var(--emerald);text-transform:uppercase;letter-spacing:.12em;margin:0 0 6px;font-size:12px;font-weight:800}.role-hero h2{margin:0 0 8px;font-size:38px}.role-hero p{color:var(--muted);margin:0;font-size:16px}.student-grid{gap:14px;display:grid}.student-card{border:1px solid var(--line);cursor:pointer;background:#fbfdff;border-radius:18px;align-items:center;gap:16px;padding:18px 20px;transition:border-color .15s,box-shadow .15s;display:flex}.student-card:hover{border-color:#93c5fd;box-shadow:0 4px 16px #3b82f61a}.student-avatar{background:linear-gradient(135deg,var(--navy),var(--emerald));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;font-size:18px;font-weight:900;display:flex}.student-card-body{flex:1}.student-card-body strong{margin-bottom:2px;font-size:16px;display:block}.student-card-body span{color:var(--muted);font-size:13px;display:block}.student-stats{flex-wrap:wrap;gap:14px;margin-top:8px;display:flex}.student-stats span{color:var(--navy);background:#f0f4f8;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.student-card-arrow{color:#94a3b8;font-size:20px}.back-btn{border:1.5px solid var(--line);font:inherit;cursor:pointer;color:var(--navy);background:#fff;border-radius:12px;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:700;transition:border-color .15s;display:inline-flex}.back-btn:hover{border-color:var(--navy)}.admin-table{border-collapse:collapse;width:100%}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:2px solid var(--line);padding:8px 12px;font-size:12px}.admin-table td{border-bottom:1px solid var(--line);padding:12px;font-size:14px}.admin-table tr:last-child td{border-bottom:0}.admin-badge{color:var(--navy);background:#f0f4f8;border-radius:8px;padding:3px 10px;font-size:13px;font-weight:800}.admin-badge-green{color:#115e59;background:#e6fffa}.notif-badge{color:#fff;border:2px solid var(--navy);background:#ef4444;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:900;line-height:1;animation:.25s cubic-bezier(.34,1.56,.64,1) badge-pop;display:inline-flex;position:absolute;top:-4px;right:-4px}@keyframes badge-pop{0%{transform:scale(0)}to{transform:scale(1)}}.af-panel{padding-bottom:22px}.af-list{gap:0;display:grid}.af-item{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:11px 0;display:flex}.af-item:last-child{border-bottom:0}.af-icon{background:#f0f4f8;border-radius:10px;justify-content:center;align-items:center;width:34px;min-width:34px;height:34px;font-size:18px;display:flex}.af-goal_done .af-icon{background:#e6fffa}.af-cert .af-icon{background:#fef9c3}.af-mentor_note .af-icon{background:#f0f4ff}.af-volunteer .af-icon{background:#f0fdf4}.af-project .af-icon{background:#fff7ed}.af-body{flex-wrap:wrap;flex:1;justify-content:space-between;align-items:center;gap:12px;display:flex}.af-msg{color:var(--text);font-size:14px;font-weight:500}.af-time{color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:12px}.tl-legend{align-items:center;gap:14px;display:flex}.tl-legend-item{border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700}.tl-done-legend{color:#115e59;background:#e6fffa;border:1px solid #99f6e4}.tl-active-legend{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.tl-track{gap:0;padding:8px 0;display:grid}.tl-item{align-items:flex-start;gap:20px;display:flex}.tl-spine{flex-direction:column;align-items:center;width:32px;min-width:32px;padding-top:4px;display:flex}.tl-dot{color:#94a3b8;z-index:1;background:#f0f4f8;border:2px solid #d9e2ec;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:900;display:flex;position:relative}.tl-done .tl-dot{background:var(--emerald);color:#fff;border-color:var(--emerald)}.tl-line{background:var(--line);flex:1;width:2px;min-height:24px;margin:4px 0}.tl-done .tl-line{background:#99f6e4}.tl-card{border:1px solid var(--line);background:#fbfdff;border-radius:16px;flex:1;margin-bottom:18px;padding:18px 20px}.tl-done .tl-card{background:#f0fdf9;border-color:#99f6e4}.tl-card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.tl-goal-text{font-size:15px;font-weight:700;line-height:1.4}.tl-done .tl-goal-text{color:#065f46}.tl-status-badge{white-space:nowrap;border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:800}.tl-badge-done{color:#115e59;background:#e6fffa;border:1px solid #99f6e4}.tl-badge-active{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.tl-dates{flex-wrap:wrap;gap:24px;display:flex}.tl-date-block{flex-direction:column;gap:2px;display:flex}.tl-date-label{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:11px;font-weight:700}.tl-date-val{color:var(--text);font-size:13px;font-weight:600}.tl-date-done .tl-date-val{color:#065f46;font-weight:700}.tl-date-active .tl-date-val{color:#1e40af}.tl-progress-wrap{background:#e2e8f0;border-radius:999px;height:5px;margin-top:14px;overflow:hidden}.tl-progress-bar{border-radius:999px;height:100%}.tl-progress-active{background:linear-gradient(90deg,#3b82f6,#0f766e);width:60%;animation:2s ease-in-out infinite tl-shimmer}@keyframes tl-shimmer{0%,to{opacity:1}50%{opacity:.5}}.tl-pulse{background:#3b82f6;border-radius:50%;width:10px;height:10px;animation:1.6s ease-in-out infinite tl-pulse;display:inline-block}@keyframes tl-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.4)}}.report-btn{background:linear-gradient(135deg,var(--navy),#1e4976);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:14px;align-items:center;gap:8px;padding:13px 22px;font-size:14px;font-weight:800;transition:opacity .15s,transform .15s;display:flex;box-shadow:0 4px 16px #08182738}.report-btn:hover{opacity:.9;transform:translateY(-1px)}.report-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0818278c;justify-content:center;align-items:flex-start;padding:28px;display:flex;position:fixed;inset:0;overflow-y:auto}.report-modal{background:#fff;border-radius:24px;flex-direction:column;width:100%;max-width:980px;display:flex;overflow:hidden;box-shadow:0 24px 80px #08182759}.report-modal-bar{border-bottom:1px solid var(--line);background:#f8fafc;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex}.report-modal-title{color:var(--navy);font-size:16px;font-weight:800}.report-modal-actions{align-items:center;gap:10px;display:flex}.report-action-btn{border:1.5px solid var(--line);font:inherit;cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:700;transition:border-color .15s,background .15s;display:flex}.report-action-btn.email:hover{border-color:var(--emerald);color:var(--emerald)}.report-action-btn.print:hover{border-color:var(--navy);color:var(--navy)}.report-action-btn.email.copied{border-color:var(--emerald);color:#115e59;background:#e6fffa}.report-close{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:8px;align-items:center;padding:6px;transition:color .15s;display:flex}.report-close:hover{color:var(--navy)}.report-doc{padding:36px;font-size:14px}.rd-header{border-bottom:3px solid var(--navy);justify-content:space-between;align-items:flex-start;margin-bottom:22px;padding-bottom:20px;display:flex}.rd-brand{text-transform:uppercase;letter-spacing:.12em;color:var(--emerald);margin:0 0 4px;font-size:11px;font-weight:800}.rd-header h1{margin:4px 0;font-size:28px;line-height:1.2}.rd-sub{color:var(--muted);margin:4px 0 10px;font-size:14px}.rd-interests{flex-wrap:wrap;gap:6px;display:flex}.rd-interests span{color:#115e59;background:#e6fffa;border:1px solid #99f6e4;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700}.rd-meta{text-align:right;color:var(--muted);font-size:13px;line-height:1.7}.rd-meta strong{color:var(--navy);font-size:16px;display:block}.rd-owner{color:var(--emerald);font-size:11px;font-weight:700}.rd-summary-bar{border:1px solid var(--line);border-radius:16px;grid-template-columns:repeat(5,1fr);gap:0;margin-bottom:28px;display:grid;overflow:hidden}.rd-stat{text-align:center;border-right:1px solid var(--line);padding:16px}.rd-stat:last-child{border-right:0}.rd-stat strong{color:var(--navy);font-size:26px;display:block}.rd-stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:11px;font-weight:700}.rd-body{grid-template-columns:1fr 1fr;gap:36px;display:grid}.rd-section-title{text-transform:uppercase;letter-spacing:.1em;color:var(--emerald);border-bottom:1.5px solid var(--line);align-items:center;gap:8px;margin:22px 0 10px;padding-bottom:7px;font-size:12px;display:flex}.rd-section-title:first-child{margin-top:0}.rd-row{border-bottom:1px solid #f0f4f8;flex-direction:column;gap:2px;padding:9px 0;display:flex}.rd-row strong{font-size:13px;font-weight:700}.rd-row span{color:var(--muted);font-size:12px}.rd-row small{color:#94a3b8;font-size:11px}.rd-row-block{flex-direction:column;display:flex}.rd-empty{color:#94a3b8;margin:4px 0;font-size:13px;font-style:italic}.rd-goal-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 0 4px;font-size:11px;font-weight:800}.rd-goal{border-bottom:1px solid #f0f4f8;align-items:flex-start;gap:8px;padding:7px 0;font-size:13px;display:flex}.rd-goal-done{color:#64748b;text-decoration:line-through}.rd-check{color:var(--emerald);min-width:16px;font-size:13px;font-weight:900}.rd-check-open{color:#94a3b8}.rd-badge{color:#115e59;text-transform:none;letter-spacing:0;background:#e6fffa;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.rd-metrics{gap:8px;margin-top:4px;display:grid}.rd-metric{grid-template-columns:90px 1fr 38px;align-items:center;gap:8px;font-size:12px;display:grid}.rd-metric span{text-transform:capitalize;color:var(--muted)}.rd-bar-wrap{background:#f0f4f8;border-radius:999px;height:7px;overflow:hidden}.rd-bar{background:var(--emerald);border-radius:999px;height:100%}.rd-metric strong{color:var(--gold);text-align:right;font-size:12px}.rd-note{border:1px solid var(--line);background:#f8fafc;border-radius:12px;margin-bottom:10px;padding:14px}.rd-note-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.rd-note-head strong{font-size:13px}.rd-note-role{color:var(--emerald);font-size:11px;font-weight:700}.rd-note-head time{color:var(--muted);margin-left:auto;font-size:11px}.rd-note p{color:var(--text);margin:0;font-size:13px;line-height:1.6}.rd-footer{border-top:1.5px solid var(--line);color:#94a3b8;text-align:center;margin-top:32px;padding-top:14px;font-size:11px}@media print{.report-modal-bar,.report-overlay{display:none!important}.report-doc{padding:0!important}}.notes-list{gap:14px;margin-top:4px;display:grid}.note-card{border:1px solid var(--line);background:#fbfdff;border-radius:18px;padding:20px}.note-card-head{align-items:flex-start;gap:14px;margin-bottom:12px;display:flex}.note-avatar{background:linear-gradient(135deg,var(--navy),var(--emerald));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:38px;min-width:38px;height:38px;font-size:16px;font-weight:800;display:flex}.note-card-head>div{flex-direction:column;flex:1;gap:2px;display:flex}.note-card-head strong{font-size:15px}.note-role{color:var(--emerald);font-size:12px;font-weight:700}.note-time{color:var(--muted);font-size:12px}.note-body{color:var(--text);margin:0;font-size:14px;line-height:1.65}.notes-empty{color:var(--muted);margin:8px 0;font-style:italic}.passport-print-doc{display:none}.ppd-header{border-bottom:3px solid #081827;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:18px;display:flex}.ppd-brand{text-transform:uppercase;letter-spacing:.12em;color:#0f766e;margin:0 0 4px;font-size:12px;font-weight:800}.ppd-header h1{margin:4px 0;font-size:26px}.ppd-sub{color:#65758b;margin:4px 0 0;font-size:14px}.ppd-meta{text-align:right;color:#65758b;font-size:12px;line-height:1.6}.ppd-owner{color:#081827;font-weight:700}.ppd-grid{grid-template-columns:1fr 1fr;gap:32px;display:grid}.ppd-grid h2{text-transform:uppercase;letter-spacing:.1em;color:#0f766e;border-bottom:1.5px solid #d9e2ec;margin:22px 0 10px;padding-bottom:6px;font-size:14px}.ppd-row{border-bottom:1px solid #f0f4f8;flex-direction:column;gap:2px;padding:8px 0;font-size:13px;display:flex}.ppd-row strong{font-weight:700}.ppd-row span{color:#65758b}.ppd-row small{color:#94a3b8;font-size:11px}.ppd-row-block{flex-direction:column;display:flex}.ppd-check{color:#0f766e;margin-right:8px;font-weight:800}.ppd-empty{color:#94a3b8;font-size:13px;font-style:italic}.ppd-badge{color:#115e59;text-transform:none;letter-spacing:0;background:#e6fffa;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:700}.ppd-metrics{gap:8px;margin-top:4px;display:grid}.ppd-metric{grid-template-columns:90px 1fr 36px;align-items:center;gap:8px;font-size:12px;display:grid}.ppd-metric span{text-transform:capitalize;color:#65758b}.ppd-bar-wrap{background:#f0f4f8;border-radius:999px;height:7px;overflow:hidden}.ppd-bar{background:#0f766e;border-radius:999px;height:100%}.ppd-metric strong{color:#b7791f;text-align:right;font-size:12px}.ppd-chips{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.ppd-chips span{color:#115e59;background:#e6fffa;border:1px solid #99f6e4;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700}.ppd-footer{color:#94a3b8;text-align:center;border-top:1.5px solid #d9e2ec;margin-top:32px;padding-top:14px;font-size:11px}@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.app,.sidebar,.content{display:none!important}.passport-print-doc{color:#17202a;max-width:960px;margin:0 auto;padding:28px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;display:block!important}}.vol-header{justify-content:space-between;align-items:center;margin-top:22px;margin-bottom:4px;display:flex}.vol-header h3{margin:0}.vol-total{color:var(--emerald);background:#e6fffa;border:1px solid #99f6e4;border-radius:999px;margin-left:10px;padding:3px 10px;font-size:13px;font-weight:600}.vol-toggle{background:var(--navy);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:10px;align-items:center;gap:5px;padding:7px 14px;font-size:13px;font-weight:700;display:flex}.vol-form{border:1px solid var(--line);background:#f8fafc;border-radius:16px;gap:12px;margin:10px 0 14px;padding:18px;display:grid}.vol-form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.vol-line strong{display:block}.vol-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;font-size:13px;display:flex}.vol-hrs{color:#115e59;background:#e6fffa;border:1px solid #99f6e4;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700}.filter-bar{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.filter-btn{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:8px 18px;font-size:13px;font-weight:600;transition:all .15s}.filter-btn:hover{border-color:var(--emerald);color:var(--emerald)}.filter-btn.active{background:var(--emerald);color:#fff;border-color:var(--emerald)}@media (width<=900px){.app{display:block}.sidebar{width:100%;height:auto;position:relative}.owned{margin-top:25px;position:static}.content{width:100%;margin:0;padding:18px}.hero,.section-head{display:block}.four,.cards,.passport-grid,.metrics{grid-template-columns:1fr}.hero h2{font-size:32px}}.hamburger{z-index:200;background:var(--navy);cursor:pointer;color:#fff;border:none;border-radius:10px;justify-content:center;align-items:center;padding:10px;display:none;position:fixed;top:16px;left:16px;box-shadow:0 4px 14px #00000040}.sidebar-overlay{z-index:150;background:#00000073;display:none;position:fixed;inset:0}@media (width<=768px){.hamburger{display:flex}.sidebar-overlay{display:block}.sidebar{z-index:160;flex-direction:column;transition:transform .25s;display:flex;overflow-y:auto;transform:translate(-100%)}.sidebar.open{transform:translate(0)}}.link-btn{color:var(--emerald);cursor:pointer;font-weight:700;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit}.link-btn:hover{text-decoration:underline}.login-select{border:2px solid var(--line);width:100%;font:inherit;color:var(--text);cursor:pointer;background:#fff;border-radius:12px;outline:none;padding:12px 14px;font-size:15px}.login-select:focus{border-color:var(--emerald)}.reg-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=500px){.reg-row{grid-template-columns:1fr}}.reg-steps{border:1px solid var(--line);border-radius:12px;gap:0;margin-bottom:20px;display:flex;overflow:hidden}.reg-step{color:var(--muted);background:#f8fafc;flex:1;align-items:center;gap:10px;padding:12px 16px;font-size:14px;transition:all .2s;display:flex}.reg-step span{background:var(--line);width:28px;height:28px;color:var(--muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.reg-step.active{color:#115e59;background:#e6fffa}.reg-step.active span{background:var(--emerald);color:#fff}.reg-step.done span{color:#fff;background:#10b981}.reg-step p{margin:0;font-weight:600}.interest-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 14px;display:grid}@media (width<=500px){.interest-grid{grid-template-columns:repeat(2,1fr)}}.interest-chip{border:2px solid var(--line);cursor:pointer;color:var(--text);text-align:center;background:#fff;border-radius:10px;padding:9px 10px;font-size:12px;font-weight:600;line-height:1.3;transition:all .15s}.interest-chip:hover{border-color:var(--emerald);color:var(--emerald);background:#e6fffa}.interest-chip.active{background:var(--emerald);border-color:var(--emerald);color:#fff}.terms-row{align-items:center;gap:10px;margin:14px 0;display:flex}.terms-row input{cursor:pointer;width:18px;height:18px;accent-color:var(--emerald);margin:0}.terms-row label{color:var(--text);cursor:pointer;margin:0;font-size:13px}.onboarding-overlay{z-index:300;background:#081827b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.onboarding-card{text-align:center;background:#fff;border-radius:28px;width:100%;max-width:560px;padding:40px;box-shadow:0 24px 64px #00000040}.onboarding-progress{justify-content:center;gap:8px;margin-bottom:28px;display:flex}.onboard-dot{background:var(--line);border-radius:50%;width:10px;height:10px;transition:all .2s}.onboard-dot.active{background:var(--emerald);border-radius:6px;width:28px}.onboarding-icon{margin-bottom:16px}.onboarding-title{color:var(--navy);margin:0 0 10px;font-size:26px;font-weight:800}.onboarding-sub{color:var(--muted);margin:0 0 20px;font-size:16px;line-height:1.6}.onboarding-info{text-align:left;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0;display:grid}.onboard-feature{background:#f8fafc;border-radius:14px;align-items:flex-start;gap:12px;padding:14px;display:flex}.onboard-feature span{font-size:24px}.onboard-feature strong{margin-bottom:2px;font-size:14px;display:block}.onboard-feature p{color:var(--muted);margin:0;font-size:13px}@media (width<=480px){.onboarding-info{grid-template-columns:1fr}}.modal-overlay{z-index:400;background:#081827a6;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:24px;flex-direction:column;width:100%;max-width:680px;max-height:88vh;display:flex;box-shadow:0 24px 64px #00000047}.privacy-modal{max-width:700px}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:24px 28px;display:flex}.modal-head h2{margin:0;font-size:20px}.modal-close{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:4px;display:flex}.modal-close:hover{color:var(--navy);background:#f1f5f9}.modal-body{flex:1;padding:24px 28px;overflow-y:auto}.modal-body h3{color:var(--emerald);border-bottom:1px solid var(--line);margin:24px 0 8px;padding-bottom:6px;font-size:16px}.modal-body h3:first-child{margin-top:0}.modal-body p{color:var(--muted);margin:0 0 12px;font-size:14px;line-height:1.7}.privacy-effective{color:var(--muted);background:#f8fafc;border-radius:8px;margin:0 0 20px;padding:8px 12px;font-size:12px}.modal-footer{border-top:1px solid var(--line);padding:20px 28px}.transport-card{border:1px solid var(--line);background:#f8fafc;border-radius:14px;align-items:flex-start;gap:14px;margin:8px 0;padding:14px;display:flex}.transport-card span:first-child{font-size:28px}.transport-card strong{font-size:15px;font-weight:700;display:block}.transport-limitation{color:#b45309;margin-top:4px;font-size:13px;display:block}.wf-line{align-items:flex-start;gap:12px;padding:10px 0}@media print{.hamburger,.sidebar-overlay,button,.add-opp-btn,.vol-toggle,.print-btn,.report-btn,.logout-btn,.sidebar-user,.owned,.filter-bar,.opp-form,.goal-input-row,.vol-form,.cert-form,.project-form,.note-form,.login-demo-section{display:none!important}.app{display:block}.sidebar{display:none}.content{width:100%;margin:0;padding:0}.passport-print-doc{display:block!important}.panel:not(#passport){display:none}body{color:#000;background:#fff;font-size:11pt}.hero{break-inside:avoid;box-shadow:none;border:1px solid #ccc}.opp,.note-card,.goal-item,.line{break-inside:avoid}a[href]:after{content:" (" attr(href) ")";color:#666;font-size:10pt}}.user-mgmt-table{border-collapse:collapse;width:100%;font-size:14px}.user-mgmt-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#f1f5f9;padding:10px 12px;font-size:12px;font-weight:700}.user-mgmt-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px}.user-mgmt-table tr:hover td{background:#fafafa}.role-badge{border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.role-badge.Student{color:#115e59;background:#e6fffa}.role-badge.Mentor{color:#1e40af;background:#eff6ff}.role-badge.Admin{color:#7c3aed;background:#f5f3ff}.role-badge.Parent{color:#b45309;background:#fffbeb}.reset-pw-row{background:#f8fafc;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;padding:14px;display:flex}.reset-success{color:#065f46;font-size:14px;font-weight:600}.reset-error{color:#b91c1c;font-size:14px}.opp-top-row{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px;display:flex}.opp-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.opp-actions a{text-align:center;flex:1}.app-status-select{border:2px solid var(--line);font:inherit;cursor:pointer;color:var(--navy);background:#fff;border-radius:10px;padding:7px 10px;font-size:12px;font-weight:600;transition:border-color .2s,background .2s}.app-status-select:focus{border-color:var(--emerald);outline:none}.app-status-select.status-saved{color:#1d4ed8;background:#eff6ff;border-color:#3b82f6}.app-status-select.status-applied{color:#92400e;background:#fffbeb;border-color:#f59e0b}.app-status-select.status-interviewing{color:#5b21b6;background:#f5f3ff;border-color:#8b5cf6}.app-status-select.status-accepted{color:#065f46;background:#ecfdf5;border-color:#10b981}.app-status-select.status-not_moving_forward{color:#475569;background:#f1f5f9;border-color:#94a3b8}.app-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.app-badge-saved{color:#1d4ed8;background:#eff6ff}.app-badge-applied{color:#92400e;background:#fffbeb}.app-badge-interviewing{color:#5b21b6;background:#f5f3ff}.app-badge-accepted{color:#065f46;background:#ecfdf5}.app-badge-not_moving_forward{color:#475569;background:#f1f5f9}.my-apps-panel{margin-top:0}.my-apps-list{gap:10px;display:grid}.my-app-item{border:1px solid var(--line);background:#f8fafc;border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}.my-app-info{flex:1;min-width:0}.my-app-info strong{color:var(--navy);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;display:block;overflow:hidden}.my-app-info span{color:var(--muted);font-size:12px}.assign-row{background:#f8fafc;border-radius:12px;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-top:4px;padding:14px 16px;display:flex}.assign-checklist{flex-direction:column;flex:1;gap:6px;display:flex}.assign-check-label{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.assign-check-label input{width:16px;height:16px;accent-color:var(--emerald);cursor:pointer}.invite-form{border:1px solid var(--line);background:#f8fafc;border-radius:20px;margin-bottom:4px;padding:26px}.invite-form-grid{grid-template-columns:1fr 1fr 200px;gap:16px;margin-bottom:18px;display:grid}.invite-success-box{background:#ecfdf5;border:1.5px solid #6ee7b7;border-radius:20px;margin-bottom:4px;padding:24px}.invite-success-header{color:#065f46;align-items:center;gap:10px;margin-bottom:10px;font-size:15px;display:flex}.invite-link-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.invite-link-box{color:#065f46;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1.5px solid #6ee7b7;border-radius:12px;flex:1;min-width:0;padding:10px 14px;font-family:monospace;font-size:12px;overflow:hidden}.invite-copy-btn{border:1.5px solid var(--line);font:inherit;cursor:pointer;white-space:nowrap;color:var(--navy);background:#fff;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:700;transition:border-color .15s,background .15s;display:inline-flex}.invite-copy-btn:hover{border-color:var(--navy)}.invite-email-btn{background:var(--navy);color:#fff;font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:700;text-decoration:none;transition:opacity .15s;display:inline-flex}.invite-email-btn:hover{opacity:.88}.invite-another-btn{font:inherit;color:#065f46;cursor:pointer;background:0 0;border:1.5px dashed #6ee7b7;border-radius:10px;padding:9px 18px;font-size:13px;font-weight:700;transition:background .15s}.invite-another-btn:hover{background:#fff}.invite-pending-list{gap:10px;display:grid}.invite-pending-item{border:1px solid var(--line);background:#f8fafc;border-radius:14px;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 16px;display:flex}.invite-pending-info{flex:1;min-width:0}.invite-pending-info strong{color:var(--navy);font-size:14px;font-weight:700;display:block}.invite-pending-info span{color:var(--muted);margin-top:2px;font-size:12px;display:block}.invite-revoke-btn{cursor:pointer;color:#dc2626;background:0 0;border:1.5px solid #fecaca;border-radius:10px;flex-shrink:0;align-items:center;padding:8px;transition:background .15s,border-color .15s;display:inline-flex}.invite-revoke-btn:hover{background:#fef2f2}@media (width<=768px){.invite-form-grid{grid-template-columns:1fr}.invite-link-row{flex-direction:column}.invite-link-box{width:100%}}.opp-row-admin{border:1px solid var(--line);background:#f8fafc;border-radius:16px;align-items:flex-start;gap:14px;padding:16px;transition:border-color .15s;display:flex}.opp-row-admin:hover{border-color:var(--navy)}.opp-row-main{flex:1;min-width:0}
