@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&family=IBM+Plex+Mono:wght@400;500;600&display=swap");:root{--canvas:#f3f4f0;--paper:#fbfbf7;--sidebar:#e8eee9;--ink:#21342f;--muted:#71817a;--line:#dbe2db;--accent:#ae5239;--accent-soft:#f5e8e2;--deep:#28443b;--positive:#447a62;--warning:#ad7534}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font-family:DM Sans,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:#d6ded5}.app-shell,.sidebar{display:flex;min-height:100dvh}.sidebar{width:244px;flex:0 0 244px;background:var(--sidebar);border-right:1px solid #d3ded5;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100dvh;z-index:20}.brand{height:105px;display:flex;align-items:center;gap:12px;padding:0 26px;border-bottom:1px solid #d3ded5}.brand-mark{width:31px;height:31px;background:var(--deep);border-radius:50%;color:#e2e8da;display:grid;place-items:center;font-size:27px;padding-bottom:3px}.brand-mark,.brand-name{font-family:"Instrument Serif",serif;line-height:1}.brand-name{font-size:30px;letter-spacing:-.045em}.brand-sub{font-family:IBM Plex Mono,monospace;font-size:8px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:4px}.nav-section{padding:27px 13px 8px}.eyebrow,.nav-label{color:var(--muted);font:500 10px/1.4 IBM Plex Mono,monospace;letter-spacing:.14em;text-transform:uppercase}.nav-label{padding:0 14px 12px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:6px;color:#53665d;font-weight:600;font-size:13px;transition:background .16s ease,color .16s ease}.nav-link svg{width:17px;height:17px;stroke-width:1.8}.nav-link:hover{background:#dce7dd;color:var(--ink)}.nav-link.active{background:var(--deep);color:#f7f7ef}.nav-link .nav-chevron{margin-left:auto;width:13px;opacity:.6}.sidebar-bottom{margin-top:auto;padding:20px 17px;border-top:1px solid #d3ded5}.sidebar-profile{border:0;background:transparent;color:var(--deep);padding:12px 0 0 44px;display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700}.sidebar-profile:hover{color:var(--accent)}.user-tile{display:flex;align-items:center;gap:10px;min-width:0}.avatar{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;background:#cbdcd0;color:var(--deep);border-radius:50%;font-size:11px;font-weight:700}.user-tile strong{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px}.user-tile small{color:var(--muted);font-size:11px;text-transform:capitalize}.main{min-width:0;flex:1 1}.topbar{height:58px;border-bottom:1px solid var(--line);background:var(--paper);justify-content:space-between;padding:0 clamp(22px,4vw,62px)}.breadcrumbs,.topbar{display:flex;align-items:center}.breadcrumbs{gap:9px;color:var(--muted);font-size:12px}.breadcrumbs strong{color:var(--ink);font-weight:600}.topbar-right{display:flex;gap:19px;align-items:center;color:var(--muted);font:10px IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.06em}.live-dot{width:7px;height:7px;border-radius:50%;background:#5b9876;display:inline-block;margin-right:5px}.content{max-width:1560px;margin:auto;padding:43px clamp(22px,4vw,62px) 100px}.page-intro{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:34px}.page-intro h1{font-family:"Instrument Serif",serif;font-size:clamp(43px,5vw,65px);line-height:.98;font-weight:400;letter-spacing:-.035em;margin:10px 0 13px}.page-intro p{color:var(--muted);margin:0;line-height:1.5}.intro-actions,.toolbar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.button{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:5px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;min-height:37px;font-weight:600;font-size:12px;white-space:nowrap;transition:transform .16s ease,background .16s ease,border-color .16s ease}.button:hover:not(:disabled){transform:translateY(-1px);border-color:#b7c5b8;background:#fffefa}.button svg{width:15px;height:15px}.button.primary{background:var(--deep);border-color:var(--deep);color:#f9f9f3}.button.primary:hover:not(:disabled){background:#395b4d}.button.ghost{background:transparent;border-color:transparent}.button.danger{color:#9b4232;border-color:#e8cfc7;background:#fff9f6}.button.small{min-height:29px;padding:5px 9px;font-size:11px}.text-action{background:none;border:0;color:var(--accent);padding:2px;font-size:12px;font-weight:700}.text-action:hover{text-decoration:underline}.overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:25px}.metric{min-height:149px;padding:21px 22px;background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}.metric:first-child{background:var(--deep);border-color:var(--deep);color:#f8f8ed}.metric:first-child .eyebrow,.metric:first-child .metric-foot{color:#adcbc0}.metric-number{font:400 clamp(30px,3vw,42px)/1 "Instrument Serif",serif;letter-spacing:-.03em;white-space:nowrap}.metric-foot{font-size:11px;color:var(--muted)}.split{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);grid-gap:16px;gap:16px;margin:16px 0}.panel{background:var(--paper);border:1px solid var(--line);min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:19px 22px;border-bottom:1px solid var(--line)}.panel-head h2{font-family:"Instrument Serif",serif;font-weight:400;font-size:25px;letter-spacing:-.02em;margin:0}.panel-body{padding:22px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;padding:12px 19px;border-bottom:1px solid var(--line);color:var(--muted);font:500 10px IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.09em;white-space:nowrap}td{padding:15px 19px;border-bottom:1px solid #e7ebe4;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#f5f7f2}.cell-title{font-weight:700;font-size:13px;color:var(--ink)}.cell-sub{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:400}.row-link:hover{color:var(--accent)}.mono{font-family:IBM Plex Mono,monospace;font-size:11px}.number{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:12px}.pill{border-radius:30px;padding:5px 8px;display:inline-block;background:#e7eee7;color:#436854;font-size:10px;font-weight:700;white-space:nowrap}.pill.muted{background:#ecece5;color:#6b746b}.pill.warm{background:#f5e8db;color:#986239}.pill.rust{background:#f5e6e1;color:#a5503e}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:13px;padding:13px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}.search{position:relative;max-width:320px;flex:1 1;min-width:190px}.search svg{position:absolute;left:11px;top:10px;width:15px;color:var(--muted)}.search input{width:100%;padding:9px 10px 9px 34px;background:#f6f7f3;border:1px solid var(--line);border-radius:4px;outline:none;font-size:12px}.search input:focus{border-color:#809c89}.filter{padding:8px 10px;border:1px solid var(--line);background:#f6f7f3;color:var(--ink);border-radius:4px;font-size:12px}.empty{padding:55px 25px;text-align:center;color:var(--muted)}.empty-symbol{width:45px;height:45px;background:#e8eee7;color:var(--deep);border-radius:50%;display:grid;place-items:center;margin:0 auto 15px}.empty h3{font:400 25px "Instrument Serif",serif;color:var(--ink);margin:0 0 7px}.empty p{margin:0 auto 18px;max-width:350px;line-height:1.5}.stack-list{display:flex;flex-direction:column}.list-line{display:flex;align-items:start;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.list-line:first-child{padding-top:0}.list-line:last-child{border:0;padding-bottom:0}.list-line .list-icon{flex:0 0 auto;width:31px;height:31px;display:grid;place-items:center;background:#e9eee8;color:var(--deep);border-radius:50%}.list-line .list-icon svg{width:15px;height:15px}.list-line main{min-width:0;flex:1 1}.list-line strong{font-size:12px;display:block;line-height:1.4}.list-line small{font-size:11px;color:var(--muted);display:block;margin-top:3px}.list-line time{font:10px IBM Plex Mono,monospace;color:var(--muted);white-space:nowrap}.detail-hero{background:var(--deep);color:#f5f7ed;padding:30px 34px;margin-bottom:18px;display:flex;justify-content:space-between;gap:20px;align-items:end}.detail-hero .eyebrow{color:#b3c9ba}.detail-hero h1{font:400 clamp(40px,5vw,62px)/1 "Instrument Serif",serif;margin:12px 0}.detail-hero p{color:#bbcec2;max-width:660px;margin:0;line-height:1.55}.detail-hero .button{background:#e9f0e5}.tabs{display:flex;gap:22px;overflow-x:auto;border-bottom:1px solid var(--line);margin:24px 0 17px}.tab{padding:0 1px 13px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}.tab.active{border-color:var(--accent);color:var(--ink)}.facts{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:18px;gap:18px}.fact label{display:block;margin-bottom:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font:10px IBM Plex Mono,monospace}.fact strong{font-size:13px;font-weight:600}.section-title{display:flex;justify-content:space-between;align-items:center;margin:29px 0 12px}.section-title h2{font:400 29px "Instrument Serif",serif;margin:0}.timeline{padding:4px 22px}.timeline-item{position:relative;border-left:1px solid var(--line);padding:0 0 25px 23px;margin-left:5px}.timeline-item:last-child{border-left-color:transparent;padding-bottom:4px}.timeline-item:before{content:"";position:absolute;left:-5px;top:3px;width:9px;height:9px;border-radius:50%;background:var(--accent)}.timeline-item strong{display:block;font-size:13px}.timeline-item p{margin:7px 0;color:var(--muted);line-height:1.5}.timeline-item small{color:var(--muted);font:10px IBM Plex Mono,monospace}.stage-track{display:flex;gap:3px;overflow-x:auto;padding:22px}.stage-step{min-width:110px;flex:1 1;padding:12px;background:#eef1e9;border-top:3px solid #c8d4c9}.stage-step.current{background:#e4ede4;border-color:var(--accent)}.stage-step.past{border-color:var(--positive)}.stage-step strong{display:block;font-size:11px}.stage-step small{color:var(--muted);font:10px IBM Plex Mono,monospace}.check-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.check-row:last-child{border:0}.check-row input{accent-color:var(--deep);width:16px;height:16px}.check-row main{flex:1 1}.check-row strong{display:block;font-size:12px}.check-row small{color:var(--muted)}.bar-chart{height:210px;gap:9px;padding:18px 0 0;border-bottom:1px solid var(--line)}.bar-chart,.bar-group{display:flex;align-items:end}.bar-group{flex:1 1;height:100%;min-width:30px;gap:2px;position:relative;padding-bottom:22px}.bar{min-height:2px;width:50%;background:var(--deep)}.bar.secondary{background:#b8cbbd}.bar-group label{position:absolute;bottom:0;left:0;width:100%;text-align:center;color:var(--muted);font:9px IBM Plex Mono,monospace}.legend{display:flex;gap:19px;font-size:11px;color:var(--muted);margin-top:15px}.legend i{display:inline-block;width:8px;height:8px;margin-right:6px;background:var(--deep)}.legend i.light{background:#b8cbbd}.overlay{position:fixed;inset:0;z-index:50;background:rgba(23,43,34,.36);display:flex;justify-content:flex-end;animation:fade-in .18s ease}.drawer{width:min(520px,100%);height:100%;background:var(--paper);box-shadow:-10px 0 50px #1e352725;display:flex;flex-direction:column;animation:slide-in .22s ease}.drawer-head{padding:25px 29px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.drawer-head h2{font:400 34px "Instrument Serif",serif;margin:8px 0 0}.icon-button{border:1px solid var(--line);background:transparent;color:var(--ink);width:32px;height:32px;display:grid;place-items:center;border-radius:4px}.icon-button svg{width:16px}.drawer-scroll{overflow-y:auto;padding:24px 29px;flex:1 1}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:17px 13px;gap:17px 13px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--line);background:#f8f9f5;border-radius:4px;padding:10px 11px;color:var(--ink);outline:none;width:100%;font-size:12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#819c8b;background:var(--paper)}.field textarea{min-height:93px;resize:vertical;line-height:1.5}.field small{color:var(--muted);line-height:1.4}.drawer-foot{border-top:1px solid var(--line);padding:17px 29px;display:flex;justify-content:space-between;gap:10px;background:var(--paper)}.form-error{border:1px solid #e2c4b8;background:#fbf0eb;color:#964b38;padding:11px 13px;font-size:12px;margin-bottom:15px;line-height:1.5}.profile-note{color:var(--muted);font-size:12px;line-height:1.55;margin:0 0 23px}.profile-privacy{border:1px solid var(--line);background:#eef3eb;padding:18px;margin-top:25px;border-radius:4px}.profile-switch{display:flex;align-items:flex-start;gap:12px;cursor:pointer}.profile-switch input{accent-color:var(--deep);width:17px;height:17px;margin:2px 0 0;flex:0 0 auto}.profile-switch strong{display:block;font-size:12px;margin-bottom:5px}.profile-switch small{color:var(--muted);font-size:11px;line-height:1.5;display:block;max-width:350px}.assignment-editor{margin-bottom:15px}.assignment-confirm{margin-top:17px;background:#f4eee5;border:1px solid #e6d8c4;padding:12px 14px;color:#755b3d;font-size:12px}.assignment-warning{color:#9b4232;font-size:11px}.opportunity-block{border-bottom:1px solid var(--line)}.opportunity-block:last-child{border-bottom:0}.opportunity-description{padding:0 22px 18px;color:var(--muted);font-size:12px;line-height:1.5;margin:0}.recurrence-list{margin:0 19px 20px;padding:16px 17px;background:#edf2ec;border:1px solid #d9e4d8}.recurrence-list .eyebrow{margin-bottom:10px;display:block}.recurrence-list>small{display:block;margin-top:9px;color:var(--muted);font-size:11px;line-height:1.45}.recurrence-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #d8e3d7}.recurrence-line:last-of-type{border-bottom:0}.recurrence-line strong{display:block;font-size:12px}.recurrence-line span:not(.pill){color:var(--muted);display:block;margin-top:4px;font-size:11px}.event-disclosure{min-width:105px;max-width:300px}.event-disclosure summary{cursor:pointer;color:var(--accent);font-size:11px;font-weight:700;white-space:nowrap;list-style-position:inside}.event-disclosure[open]{padding:8px 0}.event-disclosure>div{width:min(300px,70vw);padding:10px 3px;font-size:11px;line-height:1.55;white-space:normal}.event-disclosure p{margin:0 0 8px;color:var(--muted)}.event-disclosure p strong{color:var(--ink)}.monthly-trend{display:flex;align-items:flex-end;gap:8px;min-height:210px;height:210px;padding:12px 0 0;overflow-x:auto;border-bottom:1px solid var(--line)}.monthly-point{height:100%;min-width:37px;flex:1 1;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:8px}.monthly-bar{width:100%;min-height:0;background:var(--deep);transition:transform .18s ease;transform-origin:bottom}.monthly-point:hover .monthly-bar{transform:scaleX(.82)}.monthly-point span{text-align:center;color:var(--muted);font:9px IBM Plex Mono,monospace;white-space:nowrap;padding-bottom:8px}.trend-footer{display:flex;justify-content:space-between;gap:12px;color:var(--muted);text-transform:capitalize;font-size:11px;padding:14px 0 0}.trend-footer strong{color:var(--ink);font-family:IBM Plex Mono,monospace}.trend-rows{max-height:165px;overflow:auto;margin-top:14px;border-top:1px solid var(--line)}.trend-rows>div{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px solid var(--line);font-size:11px}.trend-rows span{color:var(--muted)}.trend-rows strong{font-family:IBM Plex Mono,monospace;font-weight:500}.breakdown-link{color:var(--ink);font-size:12px;text-align:left}.auth-screen{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,500px);align-items:center;grid-gap:clamp(36px,7vw,120px);gap:clamp(36px,7vw,120px);padding:clamp(28px,6vw,90px);background:var(--canvas)}.auth-intro{align-self:stretch;min-height:500px;background:var(--deep);color:#f5f7ed;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(32px,6vw,75px);position:relative;overflow:hidden}.auth-intro:after{content:"";border:1px solid #8da99a55;width:420px;height:420px;right:-160px;top:-150px;box-shadow:0 0 0 70px #a2b9a313,0 0 0 140px #a2b9a30c;pointer-events:none}.auth-intro:after,.auth-mark{position:absolute;border-radius:50%}.auth-mark{top:clamp(32px,6vw,75px);left:clamp(32px,6vw,75px);width:44px;height:44px;background:#dfe9d9;color:var(--deep);display:grid;place-items:center;font:34px/1 "Instrument Serif",serif}.auth-eyebrow{color:#b9cebd;font:500 10px/1.4 IBM Plex Mono,monospace;letter-spacing:.18em;margin:0 0 13px}.auth-intro h1{font:400 clamp(70px,10vw,150px)/.9 "Instrument Serif",serif;letter-spacing:-.055em;margin:0 0 25px}.auth-intro>p:last-child{margin:0;max-width:360px;color:#c5d3c6;font-size:15px;line-height:1.6}.auth-screen>:not(.auth-intro){justify-self:center;max-width:100%}.passwordless-card{width:min(430px,100%);background:var(--paper);border:1px solid var(--line);padding:clamp(25px,4vw,38px);box-shadow:0 12px 34px #21342f0a}.passwordless-card h2{font:400 38px/1.05 "Instrument Serif",serif;letter-spacing:-.025em;margin:10px 0 12px}.passwordless-copy{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 25px}.passwordless-copy strong{color:var(--ink);overflow-wrap:anywhere}.passwordless-label{display:block;font-size:12px;font-weight:700;margin-bottom:9px}.passwordless-input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:4px;background:#f8f9f5;color:var(--ink);padding:11px 12px}.passwordless-input:focus,.passwordless-slot:focus{outline:2px solid #819c8b;outline-offset:1px;border-color:#819c8b}.passwordless-help{display:block;color:var(--muted);font-size:11px;margin-top:8px;line-height:1.5}.passwordless-submit{display:flex;justify-content:center;align-items:center;width:100%;min-height:45px;margin-top:23px;padding:10px 14px;border:1px solid var(--deep);border-radius:4px;background:var(--deep);color:#f9f9f3;font-weight:700;font-size:12px}.passwordless-submit:hover:not(:disabled){background:#395b4d}.passwordless-code-set{border:0;margin:0;padding:0;min-width:0}.passwordless-slots{display:flex;gap:clamp(6px,2vw,10px)}.passwordless-slot{flex:1 1;width:0;min-width:0;height:55px;border:1px solid var(--line);border-radius:4px;background:#f8f9f5;color:var(--ink);text-align:center;font:600 23px IBM Plex Mono,monospace}.passwordless-actions{display:flex;justify-content:space-between;gap:15px;margin-top:20px}.passwordless-link{padding:4px 0;border:0;background:transparent;color:var(--accent);font-size:12px;font-weight:700}.passwordless-link:hover:not(:disabled){text-decoration:underline}.passwordless-denied>p:not(.auth-eyebrow){color:var(--muted);line-height:1.6}.notice{border:1px solid var(--line);padding:12px 16px;background:#edf3eb;font-size:12px;color:var(--deep);margin-bottom:20px}.skeleton{background:linear-gradient(90deg,#e9eee8 20%,#f5f7f2 50%,#e9eee8 80%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:3px}.loading-page{padding:45px clamp(22px,4vw,62px)}.loading-page .skeleton{margin-bottom:16px}.error-page{max-width:530px;padding:90px 30px;margin:auto}.error-page h1{font:400 44px "Instrument Serif",serif}.error-page p{color:var(--muted);line-height:1.6}.mobile-menu{display:none}@keyframes shimmer{to{background-position-x:-200%}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in{0%{transform:translateX(20px);opacity:.8}to{transform:translateX(0);opacity:1}}@media(max-width:1100px){.overview-grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media(max-width:768px){.auth-screen{grid-template-columns:1fr;align-content:start;gap:30px;padding:18px}.auth-intro{min-height:310px;padding:30px}.auth-mark{top:30px;left:30px}.auth-intro h1{font-size:76px}.sidebar{position:fixed;transform:translateX(-100%);transition:transform .2s ease;box-shadow:10px 0 30px #21342f18}.sidebar.open{transform:translateX(0)}.mobile-menu{display:grid;border:0;background:transparent;color:var(--ink);padding:5px;margin-right:12px}.topbar{padding:0 19px}.topbar-right{display:none}.content{padding:29px 18px 70px}.page-intro{align-items:start;flex-direction:column;gap:18px;margin-bottom:23px}.page-intro h1{font-size:46px}.overview-grid{gap:8px}.metric{min-height:130px;padding:16px}.metric-number{font-size:32px}.detail-hero{padding:26px 22px;flex-direction:column;align-items:start}.facts{grid-template-columns:repeat(2,1fr)}.panel-body,.panel-head{padding:16px}}@media(max-width:450px){.facts,.form-grid{grid-template-columns:1fr}.overview-grid{grid-template-columns:1fr 1fr}.metric-number{font-size:27px}.drawer-foot,.drawer-head,.drawer-scroll{padding-left:19px;padding-right:19px}}