:root{color:#161616;font-synthesis:none;text-rendering:optimizelegibility;background:#f7f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:#f7f7f4;min-width:320px;min-height:100vh;margin:0}button,.button,input,select,textarea{font:inherit}button,.button{color:#181818;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cfcfc8;border-radius:6px;justify-content:center;align-items:center;gap:.45rem;min-height:2.25rem;padding:.45rem .7rem;text-decoration:none;transition:border-color .14s,background-color .14s,color .14s,transform .14s;display:inline-flex}button:hover,.button:hover{border-color:#909088}button:disabled{color:#8f8f87;cursor:not-allowed;background:#eeeeea}button.primary,.button.primary{color:#fff;background:#1b5e45;border-color:#1b5e45}button.primary:hover:not(:disabled),.button.primary:hover:not(:disabled){background:#154d38;border-color:#154d38}button.primary:active:not(:disabled),.button.primary:active:not(:disabled){transform:translateY(1px)}input,select,textarea{color:#161616;background:#fff;border:1px solid #cfcfc8;border-radius:6px;width:100%;padding:.62rem .7rem;transition:border-color .14s,box-shadow .14s}input:focus,select:focus,textarea:focus,button:focus-visible,.button:focus-visible{outline-offset:2px;outline:2px solid #1b5e45}input:hover,select:hover,textarea:hover{border-color:#aaa9a1}label small{color:#73736b;font-size:.82rem;line-height:1.35}label{gap:.35rem;min-width:0;display:grid}label span,.time-field>span,legend,.label{color:#595953;text-transform:uppercase;font-size:.78rem;font-weight:700}fieldset{border:1px solid #deded7;border-radius:6px;min-width:0;margin:0;padding:1rem}legend{padding:0 .35rem}h1,h2,h3,p{margin:0}h1{font-size:1.35rem;line-height:1.2}h2{font-size:1.15rem;line-height:1.25}h3{font-size:1rem}.screen-shell{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-panel{background:#fff;border:0;border-radius:8px;width:min(100%,540px);padding:2rem;box-shadow:0 1px 3px #0000000f,0 8px 24px #0000000a}.brand-logo-heading{line-height:0}.brand-logo{object-fit:contain;height:auto;display:block}.auth-brand-logo{width:min(17rem,82vw);max-width:100%;margin-left:-.35rem}.auth-card-head{gap:1rem;margin-bottom:1.5rem;display:grid}.auth-card-head>div:first-child{gap:.5rem;display:grid}.auth-card-head p{color:#5f5f58;margin:0;font-size:.95rem;line-height:1.4}.step-dots{order:-1;align-items:center;gap:.5rem;display:flex}.step-dots span{background:#d6d6ce;border-radius:999px;width:.5rem;height:.5rem}.step-dots span.active{background:#1b5e45;width:1.35rem}.stack{gap:1rem;display:grid}.input-shell{min-width:0;position:relative}.input-shell>svg{color:#77776f;pointer-events:none;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.input-shell input{min-height:3rem;padding-left:2.6rem;padding-right:6.2rem}.domain-badge{color:#17432f;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;background:#eef7f2;border:1px solid #9bb9a9;border-radius:999px;align-items:center;gap:.25rem;max-width:5.25rem;min-height:1.65rem;padding:.15rem .45rem;font-size:.76rem;font-weight:800;line-height:1;display:inline-flex;position:absolute;top:50%;right:.6rem;overflow:hidden;transform:translateY(-50%)}.domain-badge svg{flex:none}.trust-line{color:#73736b;font-size:.82rem;line-height:1.4}.auth-help{border-top:1px solid #e3e3dc;gap:1.25rem;margin-top:1.5rem;padding-top:1.25rem;display:grid}.auth-help-section{gap:.75rem;min-width:0;display:grid}.auth-help h2{color:#4f4f49;letter-spacing:0;text-transform:uppercase;font-size:.8rem;font-weight:800}.auth-help-list,.auth-privacy-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.auth-help-item{color:#63635c;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.65rem;font-size:.86rem;line-height:1.35;display:grid}.auth-help-item>span{color:#1b5e45;background:#f7f7f4;border:1px solid #d7d7cf;border-radius:999px;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:inline-flex}.auth-help-note,.pilot-note{color:#6c6c64;font-size:.84rem;line-height:1.45}.auth-help-note{border-left:2px solid #1b5e45;padding-left:.75rem}.auth-help-item div{gap:.15rem;min-width:0;display:grid}.auth-help-item strong{color:#252522;font-size:.9rem}.auth-help-item p{color:#6c6c64}.auth-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.auth-feature-card{background:#fbfbf8;border:1px solid #e1e1da;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.6rem;min-width:0;padding:.75rem;display:grid}.auth-feature-card>span{color:#1b5e45;background:#eef7f2;border:1px solid #cfe3d6;border-radius:999px;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;display:inline-flex}.auth-feature-card div{gap:.1rem;min-width:0;display:grid}.auth-feature-card strong{color:#252522;font-size:.86rem;line-height:1.25}.auth-feature-card p{color:#6c6c64;font-size:.82rem;line-height:1.35}.pilot-note{border-top:1px solid #e3e3dc;padding-top:1rem}.spinner{animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{width:min(100%,1120px);margin:0 auto;padding:1rem}.share-tip-bar{color:#17432f;text-align:center;background:#eef7f2;border-bottom:1px solid #b9d5c5;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem 1rem;width:100%;padding:.5rem 1rem;font-size:.9rem;line-height:1.35;display:flex}.share-tip-bar>span{min-width:0}.share-tip-bar strong{color:#1b5e45;font-weight:800}.fans-note{color:#4f514a;font-size:.84rem}.topbar,.panel-head,.footer-line{justify-content:space-between;align-items:center;gap:1rem;display:flex}.topbar{border-bottom:1px solid #deded7;padding:.65rem 0 1rem}.topbar>div:first-child{gap:.2rem;display:grid}.topbar-brand-logo{width:8.75rem;max-width:44vw;margin-left:-.2rem}.topbar p,.panel-head p,.footer-line,.muted{color:#66665f;font-size:.9rem}.topbar-actions,.button-row,.card-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.nav-tabs{gap:.5rem;padding:1rem 0;display:flex;overflow-x:auto}.nav-tabs button,.segmented button{flex:none}.nav-tabs button.active,.segmented button.active{background:#e8e8e2;border-color:#161616}.tab-badge{color:#fff;background:#1b5e45;border-radius:999px;justify-content:center;align-items:center;min-width:1.2rem;height:1.2rem;padding:0 .35rem;font-size:.72rem;font-weight:800;line-height:1;display:inline-flex}.panel{gap:1rem;padding:1rem 0;display:grid}.post-guidance{border-top:1px solid #deded7;border-bottom:1px solid #deded7;gap:.75rem;padding:.85rem 0;display:grid}.post-guidance h3{color:#4f4f49;letter-spacing:0;text-transform:uppercase;font-size:.8rem;font-weight:800}.post-guidance ul{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.post-guidance li{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.6rem;display:grid}.post-guidance li>span{color:#1b5e45;background:#fff;border:1px solid #d7d7cf;border-radius:999px;justify-content:center;align-items:center;width:1.65rem;height:1.65rem;display:inline-flex}.post-guidance li div{gap:.1rem;min-width:0;display:grid}.post-guidance strong{color:#252522;font-size:.9rem}.post-guidance p{color:#66665f;font-size:.88rem;line-height:1.35}.segmented{background:#fff;border:1px solid #d9d9d2;border-radius:8px;gap:.25rem;padding:.25rem;display:inline-flex}.segmented button{border-color:#0000;min-width:5.2rem}.notice{color:#123827;background:#eef7f2;border:1px solid #9bb9a9;border-radius:6px;padding:.65rem .75rem}.notice.error{color:#6e1717;background:#fff0f0;border-color:#d4a0a0}.notice.auth-debug{color:#4f5d55;overflow-wrap:anywhere;background:#f7faf8;border-color:#c8d8cf;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.76rem;line-height:1.45}.post-list{gap:.65rem;display:grid}.post-row,.request-row{background:#fff;border:1px solid #deded7;border-radius:8px;gap:1.15rem;padding:1.2rem;display:grid;box-shadow:0 1px 2px #16161608}.post-row-expanded{gap:1.25rem;padding-block:1.35rem}.post-main{gap:1rem;min-width:0;display:grid}.student-card-head{justify-content:space-between;align-items:start;gap:1rem;min-width:0;display:flex}.student-identity{align-items:center;gap:.75rem;min-width:0;display:flex}.student-identity div{gap:.1rem;min-width:0;display:grid}.student-identity strong,.student-identity span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.student-identity strong{color:#161616;font-size:1rem}.student-identity span:last-child,.student-card-head time{color:#66665f;font-size:.86rem}.avatar{color:#1b5e45;letter-spacing:0;background:#dcf5e6;border:1px solid #cfe7d8;border-radius:999px;flex:none;justify-content:center;align-items:center;width:2.65rem;height:2.65rem;font-weight:800;display:inline-flex}.post-meta{color:#66665f;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.86rem;display:flex}.swap-lines{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:start;gap:1.5rem;display:grid}.swap-column,.course-option{align-content:start;justify-items:start;gap:.45rem;min-width:0;display:grid}.course-options{align-content:start;gap:.85rem;display:grid}.post-row-expanded .course-options{gap:1rem}.course-badge{color:#14633f;overflow-wrap:anywhere;background:#e6f7ea;border-radius:6px;align-items:center;width:fit-content;max-width:100%;padding:.35rem .55rem;font-weight:800;line-height:1.2;display:inline-flex}.school-tag{color:#4f4f49;overflow-wrap:anywhere;background:#f7f7f4;border:1px solid #d7d7cf;border-radius:999px;align-items:center;width:fit-content;max-width:100%;padding:.16rem .48rem;font-size:.78rem;font-weight:800;line-height:1.2;display:inline-flex}.swap-column>span:not(.label):not(.course-badge):not(.school-tag),.course-option>span:not(.course-badge):not(.school-tag),.request-summary p{color:#55554f;font-size:.95rem}.request-row strong{overflow-wrap:anywhere;min-width:0}.notes{color:#55554f;max-width:72ch;font-size:.9rem}.card-actions{flex-wrap:wrap;justify-content:end;align-items:center;gap:.5rem;display:flex}.icon-button{width:2.25rem;padding-inline:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.request-summary{gap:.3rem;display:grid}.request-summary>span:not(.school-tag){color:#66665f;font-size:.88rem}.accepted-contact{color:#17432f;background:#eef7f2;border:1px solid #9bb9a9;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.65rem .75rem;display:flex}.accepted-contact>span{overflow-wrap:anywhere;min-width:0;font-size:.9rem}.request-contact-form{background:#fbfbf8;border:1px solid #cfe3d6;border-radius:8px;gap:.75rem;padding:.85rem;display:grid}.request-contact-form .button-row{gap:.5rem}.admin-tools{flex-wrap:wrap;align-items:end;gap:.75rem;display:flex}.admin-tools label:first-child{width:min(100%,14rem)}.admin-checkbox{min-height:2.75rem}.admin-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.admin-stat-card{background:#fff;border:1px solid #deded7;border-radius:8px;gap:.15rem;min-width:0;padding:.85rem;display:grid}.admin-stat-card span{color:#595953;text-transform:uppercase;font-size:.74rem;font-weight:800}.admin-stat-card strong{color:#1b5e45;font-size:1.6rem;line-height:1.1}.admin-stat-card small{color:#6c6c64;font-size:.82rem;line-height:1.35}.admin-section{gap:.75rem;display:grid}.admin-section-head{justify-content:space-between;align-items:end;gap:1rem;display:flex}.admin-section-head h3{margin:0;font-size:1rem}.admin-section-head p{color:#64645c;margin:.15rem 0 0;font-size:.9rem}.admin-user-list{background:#fff;border:1px solid #deded7;border-radius:8px;overflow:hidden}.admin-user-row{border-bottom:1px solid #edede8;grid-template-columns:minmax(16rem,1.45fr) minmax(9rem,.8fr) minmax(14rem,1.15fr) minmax(14rem,1fr);gap:.85rem;padding:.9rem;display:grid}.admin-user-row:last-child{border-bottom:0}.admin-user-detail{color:#5f5f58;flex-wrap:wrap;align-items:flex-start;gap:.35rem .5rem;min-width:0;font-size:.86rem;line-height:1.4;display:flex}.admin-user-detail>span,.admin-user-detail>time{overflow-wrap:anywhere;min-width:0}.admin-note{color:#5f5f58;background:#fff;border:1px solid #deded7;border-radius:8px;padding:.8rem .9rem;font-size:.9rem;line-height:1.45}.admin-post.needs-review{background:snow;border-color:#d4a0a0}.admin-review-line{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.flag-pill{color:#4f4f49;background:#f7f7f4;border:1px solid #bfc3bc;border-radius:999px;align-items:center;min-height:1.5rem;padding:.12rem .5rem;font-size:.78rem;font-weight:800;line-height:1.2;display:inline-flex}.flag-pill.danger{color:#6e1717;background:#fff0f0;border-color:#d4a0a0}.flag-pill.clean{color:#17432f;background:#eef7f2;border-color:#94b6a4}.empty-state{color:#66665f;background:#fff;border:1px solid #deded7;border-radius:8px;padding:1rem}.empty-state.small{padding:.75rem}.post-form{gap:1rem;display:grid}.time-field,.day-field{gap:.35rem;min-width:0;display:grid;position:relative}.time-trigger,.day-trigger{text-align:left;justify-content:space-between;width:100%;min-height:2.75rem;padding-inline:.7rem}.time-trigger span,.day-trigger span{text-overflow:ellipsis;min-width:0;overflow:hidden}.time-trigger.empty,.day-trigger.empty{color:#717168}.time-popover,.day-popover{z-index:20;background:#fff;border:1px solid #cfcfc8;border-radius:8px;width:min(34rem,100vw - 2rem);padding:.95rem;position:absolute;top:calc(100% + .4rem);left:0;box-shadow:0 12px 30px #1616161f}.day-popover{width:min(24rem,100vw - 2rem)}.day-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;display:grid}.day-options button{min-height:2.25rem;padding-inline:.5rem}.day-options button.selected{color:#0f6a43;background:#e3f5e9;border-color:#1b5e45}.day-options button:disabled{opacity:.45;cursor:not-allowed}.day-help{color:#66665f;margin:.65rem 0 0;font-size:.82rem}.time-range{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.time-select-group{gap:.35rem;min-width:0;display:grid}.time-select-group strong{font-size:.95rem}.time-select-labels{color:#66665f;text-transform:uppercase;grid-template-columns:minmax(4.3rem,.9fr) minmax(4.3rem,.9fr) minmax(5.8rem,1.1fr);gap:.45rem;font-size:.72rem;font-weight:700;display:grid}.time-select-row{grid-template-columns:minmax(4.3rem,.9fr) minmax(4.3rem,.9fr) minmax(5.8rem,1.1fr);gap:.45rem;display:grid}.time-select-row select{min-height:2.65rem;padding:.45rem .6rem;font-size:1rem}.time-error{color:#7b1d1d;margin-top:.65rem;font-size:.88rem}.time-popover .button-row{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);margin-top:.85rem;display:grid}.form-grid{grid-template-columns:minmax(95px,.65fr) minmax(86px,.52fr) minmax(120px,.7fr) minmax(160px,1fr) minmax(80px,.45fr) minmax(135px,.9fr);align-items:end;gap:.75rem;display:grid}.fieldset-help{color:#66665f;margin-bottom:.85rem;font-size:.88rem;line-height:1.4}.wanted-editor{border-bottom:1px solid #ecece6;gap:.75rem;margin-bottom:.85rem;padding-bottom:.85rem;display:grid}.wanted-editor:last-of-type{border-bottom:0}.wanted-fields{grid-template-columns:minmax(95px,.65fr) minmax(86px,.52fr) minmax(120px,.7fr) minmax(160px,1fr) minmax(80px,.45fr) minmax(135px,.9fr) auto;align-items:end;gap:.75rem;display:grid}.wanted-preferences{flex-wrap:wrap;align-items:center;gap:.55rem .8rem;display:flex}.recitation-control{gap:.65rem;margin-top:.85rem;display:grid}.recitation-grid{grid-template-columns:minmax(120px,.6fr) minmax(180px,1fr);gap:.75rem;max-width:34rem;display:grid}.recitation-line{color:#4f514a;font-size:.9rem}.checkbox-field{align-items:center;gap:.45rem;min-width:0;display:inline-flex}.checkbox-field input{accent-color:#1b5e45;width:1rem;height:1rem;margin:0}.wanted-preferences small{color:#66665f;font-size:.82rem}.wanted-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.wanted-actions span{color:#66665f;font-size:.86rem}.request-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.request-group{align-content:start;gap:.65rem;display:grid}.request-row{grid-template-columns:minmax(0,1fr)}.status{text-transform:capitalize;border:1px solid #cfcfc8;border-radius:999px;align-items:center;min-height:1.45rem;padding:.1rem .5rem;font-size:.78rem;display:inline-flex}.status.active,.status.accepted{color:#17432f;background:#eef7f2;border-color:#94b6a4}.status.closed,.status.declined{color:#6b3516;background:#fff5ed;border-color:#cdb4a0}.status.swapped,.status.pending{color:#42423d;background:#f2f2ed;border-color:#bdbdb5}.status.proposed{color:#17432f;background:#eef7f2;border-color:#9bb9a9}.status.confirmed{color:#17432f;background:#eef7f2;border-color:#94b6a4}.status.expired,.status.cancelled{color:#6b3516;background:#fff5ed;border-color:#cdb4a0}.footer-line{border-top:1px solid #deded7;flex-wrap:wrap;margin-top:1.5rem;padding-top:1rem}@media (width<=820px){.topbar,.panel-head,.post-row{grid-template-columns:1fr;align-items:stretch}.topbar,.panel-head{flex-direction:column}.topbar-actions,.card-actions{justify-content:start}.swap-lines,.form-grid,.wanted-fields,.recitation-grid,.time-range,.request-columns,.admin-stat-grid,.admin-user-row{grid-template-columns:1fr}.wanted-fields button{width:fit-content}.time-popover,.day-popover{width:100%;box-shadow:none;margin-top:.35rem;position:static}}@media (width<=520px){.app-shell{padding:.75rem}.post-row,.request-row,fieldset{padding:.85rem}.screen-shell{padding:1rem}.auth-panel{padding:1.5rem}.auth-brand-logo{width:min(14.5rem,82vw)}.auth-feature-grid{grid-template-columns:1fr}button,.button{width:100%}.icon-button{width:2.25rem}.student-card-head,.accepted-contact{flex-direction:column;align-items:stretch}.segmented{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.segmented button{width:100%;min-width:0}}
