:root {
  --navy:#06203F; --blue:#1257C4; --blue2:#0B46A1; --bg:#F5F8FC; --card:#fff;
  --text:#142033; --muted:#637087; --line:#DCE5F0; --success:#1D6B48; --warning:#8B5A00;
  --shadow:0 8px 30px rgba(6,32,63,.08); --radius:18px;
}
*{box-sizing:border-box} html{background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif} body{margin:0;min-height:100vh;background:var(--bg)} button,input,select,textarea{font:inherit} button{cursor:pointer}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(16px,3vw,40px);background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy)}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--navy);color:#fff;font-weight:900;letter-spacing:.04em}.brand-copy{display:flex;flex-direction:column;line-height:1.15}.brand-copy strong{font-size:1rem}.brand-copy small{font-size:.75rem;color:var(--muted);margin-top:3px}.top-actions{display:flex;gap:10px;align-items:center}.language-select,.icon-button{border:1px solid var(--line);background:#fff;border-radius:12px;min-height:44px}.language-select{padding:0 12px;color:var(--navy);font-weight:700}.icon-button{width:44px;font-weight:800;color:#fff;background:var(--blue)}
.page{max-width:1200px;margin:0 auto;padding:clamp(22px,4vw,48px) clamp(16px,3vw,32px) 110px}.hero{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:26px}.hero h1,.section-header h1{color:var(--navy);font-size:clamp(2rem,4vw,3.25rem);line-height:1.05;margin:.2rem 0 .8rem}.hero-copy{max-width:720px;font-size:1.08rem;line-height:1.6;color:var(--muted);margin:0}.eyebrow{font-size:.76rem;letter-spacing:.13em;font-weight:900;color:var(--blue);margin:0 0 8px}.security-pill{display:inline-flex;gap:8px;align-items:center;white-space:nowrap;background:#EAF6EF;color:var(--success);border:1px solid #CDE8D8;border-radius:999px;padding:9px 13px;font-size:.84rem;font-weight:800}.notice{background:#FFF8E7;border:1px solid #F2D79A;color:#6D4B00;border-radius:12px;padding:12px 14px;margin-bottom:18px}
.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.card h2{font-size:1.25rem;color:var(--navy);margin:5px 0 10px}.card p{color:var(--muted);line-height:1.55}.card-heading,.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.next-event-card{grid-column:span 2}.event-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.event-details div,.case-summary-grid .card{background:#F8FAFD;border:1px solid var(--line);border-radius:14px;padding:14px}.event-details span,.label{display:block;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.event-details strong{color:var(--navy)}.status-badge{background:#EAF1FE;color:var(--blue2);border-radius:999px;padding:8px 11px;font-size:.78rem;font-weight:900}.feature-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#EAF1FE;color:var(--blue);font-weight:900;font-size:1.15rem}.university-card{border-style:dashed}.primary-button,.secondary-button{border-radius:12px;min-height:46px;padding:0 18px;font-weight:900;border:1px solid transparent}.primary-button{background:var(--blue);color:#fff}.primary-button:hover{background:var(--blue2)}.secondary-button{background:#fff;color:var(--navy);border-color:var(--line)}button:disabled{opacity:.58;cursor:not-allowed}
.view-panel{animation:fade .18s ease-out}.section-header{margin-bottom:20px}.case-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.case-summary-grid strong{color:var(--navy)}.two-column{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.document-row,.message-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line)}.document-row:first-child,.message-row:first-child{border-top:0}.document-meta{min-width:0}.document-meta strong{display:block;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.document-meta small{color:var(--muted)}.timeline-item{position:relative;padding:0 0 22px 22px;border-left:2px solid #DCE8FA;margin-left:6px}.timeline-item::before{content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--blue)}.timeline-item strong{color:var(--navy)}.timeline-item small{display:block;color:var(--muted);margin-top:4px}.empty-state{font-style:italic;color:var(--muted)!important}.chat-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);gap:18px}.chat-window{padding:0;overflow:hidden}.chat-disclaimer{background:#F1F5FB;border-bottom:1px solid var(--line);padding:13px 18px;color:#45546B;font-size:.86rem;line-height:1.45}.chat-messages{min-height:360px;max-height:56vh;overflow:auto;padding:18px}.message{max-width:82%;padding:12px 14px;border-radius:15px;margin-bottom:12px;line-height:1.55}.assistant-message{background:#F0F5FC;border:1px solid #DFE9F7;color:var(--text)}.user-message{background:var(--navy);color:#fff;margin-left:auto}.message p{margin:0;color:inherit}.chat-form{border-top:1px solid var(--line);padding:14px}.chat-form textarea,#uploadNote,#uploadType,input[type=file]{width:100%;border:1px solid #CBD7E6;border-radius:12px;padding:12px;background:#fff;color:var(--text)}.chat-form textarea:focus,#uploadNote:focus,#uploadType:focus{outline:3px solid rgba(18,87,196,.15);border-color:var(--blue)}.chat-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.privacy-note{font-size:.78rem;color:var(--muted)}.source-card{border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:10px}.source-card strong{display:block;color:var(--navy)}.source-card small{color:var(--muted)}.source-card button{margin-top:8px}.upload-card form{display:grid;gap:9px}.upload-card label{font-size:.84rem;color:var(--navy);font-weight:800;margin-top:4px}.form-result{margin-top:14px;background:#ECF7F0;color:var(--success);padding:12px;border-radius:10px}
.bottom-nav{position:fixed;z-index:30;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);display:grid;grid-template-columns:repeat(5,1fr);width:min(720px,calc(100% - 22px));background:#fff;border:1px solid var(--line);box-shadow:0 12px 35px rgba(6,32,63,.18);border-radius:18px;padding:6px}.bottom-nav button{border:0;background:transparent;border-radius:12px;min-height:58px;color:var(--muted);font-size:.72rem;font-weight:800;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center}.bottom-nav button span:first-child{font-size:1.08rem}.bottom-nav button.active{background:#EDF3FC;color:var(--blue)}
@keyframes fade{from{opacity:.25;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:760px){.brand-copy small{display:none}.hero{align-items:flex-start;flex-direction:column}.security-pill{font-size:.76rem}.dashboard-grid,.two-column,.chat-layout{grid-template-columns:1fr}.next-event-card{grid-column:auto}.event-details{grid-template-columns:1fr}.case-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page{padding-top:24px}.card{padding:18px}.chat-window{padding:0}.sources-panel{order:2}.bottom-nav button{min-height:54px}.bottom-nav button span:last-child{font-size:.66rem}}
@media(max-width:420px){.language-select{max-width:118px}.case-summary-grid{grid-template-columns:1fr}.hero h1,.section-header h1{font-size:2rem}.section-header{align-items:flex-start}.bottom-nav{width:calc(100% - 12px);bottom:max(5px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.message-compose{display:grid;gap:10px;margin:10px 0 18px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#F8FAFD}.message-compose textarea{width:100%;border:1px solid #CBD7E6;border-radius:12px;padding:12px;background:#fff;color:var(--text)}.compose-actions{display:flex;justify-content:flex-end;gap:10px}.document-dialog{width:min(860px,calc(100% - 24px));max-height:84vh;border:0;border-radius:18px;padding:0;box-shadow:0 24px 80px rgba(6,32,63,.28)}.document-dialog::backdrop{background:rgba(6,32,63,.46)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0}.dialog-head strong{color:var(--navy);font-size:1.05rem}.document-dialog-body{padding:18px;background:#F8FAFD;overflow:auto}.released-page{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}.released-page h3{margin:0 0 10px;color:var(--navy)}.released-page pre{white-space:pre-wrap;font:inherit;line-height:1.55;color:var(--text);margin:0}.message-row .message-preview{margin-top:5px;color:var(--muted);font-size:.9rem;white-space:normal}.message-row.client-message{background:#FBFCFE}.message-row.team-message{background:#fff}

/* Client University */
.university-modules{display:grid;gap:18px}.university-module{background:#fff;border:1px solid #dbe4ef;border-radius:18px;padding:18px}.university-module h2{margin:0 0 4px}.university-module>p{margin:0 0 14px;color:#5c6b7b}.lesson-grid{display:grid;gap:10px}.lesson-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid #e4eaf1;border-radius:14px}.lesson-number{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#eef4fb;color:#06203f;font-weight:800}.lesson-copy{min-width:0}.lesson-copy strong{display:block}.lesson-copy small{display:block;color:#6b7785;margin-top:3px}.lesson-status{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#637083}.lesson-video{width:100%;border-radius:12px;background:#000;margin:12px 0}.lesson-placeholder{padding:24px;border:1px dashed #aab8c6;border-radius:12px;text-align:center;color:#667382;background:#f8fafc}.lesson-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}@media(max-width:640px){.lesson-row{grid-template-columns:auto 1fr}.lesson-row>.secondary-button{grid-column:1/-1;width:100%}}
