@charset "UTF-8";
/* MatchUp Material 3: stable brand aliases, semantic roles for all components. */
:root {
  color-scheme:light;
  --md-sys-color-primary:#087e8b; --md-sys-color-on-primary:#ffffff;
  --md-sys-color-primary-container:#d4f1f1; --md-sys-color-on-primary-container:#004f58;
  --md-sys-color-secondary:#28664d; --md-sys-color-on-secondary:#ffffff;
  --md-sys-color-secondary-container:#d9efdf; --md-sys-color-on-secondary-container:#164c35;
  --md-sys-color-tertiary:#65548b; --md-sys-color-on-tertiary:#ffffff;
  --md-sys-color-tertiary-container:#ece2ff; --md-sys-color-on-tertiary-container:#49356d;
  --md-sys-color-error:#a52236; --md-sys-color-on-error:#ffffff;
  --md-sys-color-error-container:#ffedef; --md-sys-color-on-error-container:#80172a;
  --md-sys-color-background:#f7faf9; --md-sys-color-on-background:#242138;
  --md-sys-color-surface:#f7faf9; --md-sys-color-on-surface:#242138;
  --md-sys-color-surface-dim:#dce5e2; --md-sys-color-surface-bright:#fcfefd;
  --md-sys-color-surface-container-lowest:#ffffff; --md-sys-color-surface-container-low:#f0f6f3;
  --md-sys-color-surface-container:#eaf2ee; --md-sys-color-surface-container-high:#e3ece7;
  --md-sys-color-surface-container-highest:#dce6e1; --md-sys-color-surface-variant:#e3ece7;
  --md-sys-color-on-surface-variant:#565b64; --md-sys-color-outline:#747f7c;
  --md-sys-color-outline-variant:#cedbd5; --md-sys-color-inverse-surface:#273732;
  --md-sys-color-inverse-on-surface:#f2f8f5; --md-sys-color-inverse-primary:#85d6df;
  --md-sys-color-surface-tint:#087e8b; --md-sys-color-shadow:#172b24; --md-sys-color-scrim:#172b24;
  --md-sys-typescale-display-small:400 2.25rem/1.22 Inter,ui-sans-serif,system-ui,sans-serif;
  --md-sys-typescale-headline-small:650 1.5rem/1.35 Inter,ui-sans-serif,system-ui,sans-serif;
  --md-sys-typescale-title-large:650 1.375rem/1.35 Inter,ui-sans-serif,system-ui,sans-serif;
  --md-sys-typescale-title-medium:650 1rem/1.5 Inter,ui-sans-serif,system-ui,sans-serif;
  --md-sys-typescale-body-large:400 1rem/1.6 Inter,ui-sans-serif,system-ui,sans-serif;
  --md-sys-typescale-body-medium:400 .875rem/1.55 Inter,ui-sans-serif,system-ui,sans-serif;
  --md-sys-typescale-body-small:400 .75rem/1.5 Inter,ui-sans-serif,system-ui,sans-serif;
  --md-sys-typescale-label-large:650 .875rem/1.4 Inter,ui-sans-serif,system-ui,sans-serif;
  --md-sys-typescale-label-medium:600 .75rem/1.4 Inter,ui-sans-serif,system-ui,sans-serif;
  --md-sys-shape-corner-extra-small:4px; --md-sys-shape-corner-small:8px;
  --md-sys-shape-corner-medium:12px; --md-sys-shape-corner-large:16px;
  --md-sys-shape-corner-extra-large:28px; --md-sys-shape-corner-full:999px;
  --md-sys-elevation-level0:none;
  --md-sys-elevation-level1:0 1px 3px #172b2414,0 1px 2px #172b240a;
  --md-sys-elevation-level2:0 3px 8px #172b2414,0 1px 3px #172b2410;
  --md-sys-elevation-level3:0 8px 24px #172b2424,0 2px 6px #172b2414;
  --md-sys-state-hover-opacity:.08; --md-sys-state-focus-opacity:.12; --md-sys-state-pressed-opacity:.12;
  --md-sys-motion-duration-short:150ms; --md-sys-motion-easing-standard:cubic-bezier(.2,0,0,1);
  --bg:var(--md-sys-color-surface); --paper:var(--md-sys-color-surface-container-lowest);
  --ink:var(--md-sys-color-on-surface); --muted:var(--md-sys-color-on-surface-variant);
  --primary:#087e8b; --deep:var(--md-sys-color-on-primary-container); --lavender:#eaf8f6;
  --line:var(--md-sys-color-outline-variant); --danger:var(--md-sys-color-error); --shadow:var(--md-sys-elevation-level1);
  --color-primary:var(--primary); --color-primary-light:var(--lavender);
  --color-text:#242138; --color-text-2:#716d80; --color-border:#dceae7;
  /* Clearance includes wrapped navigation labels at 200% text. */
  --navigation-clearance:calc(5.75rem + 24px + env(safe-area-inset-bottom));
  font:var(--md-sys-typescale-body-large); font-size:16px; color:var(--ink); background:var(--md-sys-color-surface-container);
}
*{box-sizing:border-box}body{margin:0}
button,input,select,textarea{font:inherit;max-width:100%}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}
button,label,small,summary,.label,h1,h2,h3,p{overflow-wrap:anywhere}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--md-sys-color-tertiary);outline-offset:3px}
a{color:var(--deep);text-underline-offset:.2em}
svg{width:22px;height:22px;flex:none;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
h1,h2,h3,p{margin:0}h1{font:var(--md-sys-typescale-headline-small);letter-spacing:-.025em}h2{font:var(--md-sys-typescale-title-large);letter-spacing:-.015em}h3{font:var(--md-sys-typescale-title-medium)}
small,.muted{color:var(--muted)}small{font:var(--md-sys-typescale-body-small)}
.hidden,[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* App shell and persistent navigation. */
#app{max-width:500px;min-height:100vh;min-height:100dvh;margin:auto;background:var(--bg);position:relative;box-shadow:var(--shadow)}
.topbar{padding:calc(18px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 18px max(24px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:var(--paper);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0;max-width:100%;font-size:1.375rem;font-weight:750;letter-spacing:-.04em;color:var(--deep)}
.brand-mark{width:40px;height:40px;flex:none;object-fit:contain}
.top-label{font:var(--md-sys-typescale-label-medium);color:var(--muted)}
.header-welcome{min-width:0;flex:1 1 100%}.header-welcome p{font:var(--md-sys-typescale-body-medium);color:var(--muted);margin-bottom:4px}.header-welcome h1{font:var(--md-sys-typescale-title-large)}
.top-actions{display:flex;gap:8px;align-items:center;margin-left:auto;flex-shrink:0}
.avatar-mini{width:44px;height:44px;min-width:44px;padding:0;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);background:var(--md-sys-color-primary-container);color:var(--deep);font-weight:650;border-radius:50%}
.avatar-mini img{width:100%;height:100%;object-fit:cover}.notification-button{position:relative}.notification-dot{position:absolute;top:8px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--danger);border:1px solid var(--paper)}
main{padding:28px max(24px,env(safe-area-inset-right)) var(--navigation-clearance) max(24px,env(safe-area-inset-left));min-height:65vh}
.bottom-nav{position:fixed;z-index:8;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:500px;background:var(--md-sys-color-surface-container);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:10px max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
.nav-item{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;min-width:0;min-height:60px;padding:6px 0 0;background:none;border:0;color:var(--muted);font:var(--md-sys-typescale-label-medium);text-align:center}
.nav-item::before{content:'';position:absolute;z-index:-1;top:0;width:min(64px,100%);height:32px;border-radius:var(--md-sys-shape-corner-full);background:transparent}
.nav-item[aria-current="page"]{color:var(--deep);font-weight:750}.nav-item[aria-current="page"]::before{background:var(--md-sys-color-primary-container)}.nav-item span{max-width:100%}

/* Shared Material filled, tonal, outlined and text buttons. */
.btn,.icon-btn,.text-btn,.skip,.home-action,.academic-link{transition:box-shadow var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard),background-color var(--md-sys-motion-duration-short) var(--md-sys-motion-easing-standard)}
.btn{min-height:48px;padding:12px 20px;border-radius:var(--md-sys-shape-corner-full);border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;font:var(--md-sys-typescale-label-large);text-decoration:none;white-space:normal}
.primary{color:var(--md-sys-color-on-primary);background:var(--md-sys-color-primary)}.secondary{background:var(--paper);color:var(--deep);border-color:var(--md-sys-color-outline)}.soft{background:var(--md-sys-color-primary-container);color:var(--deep)}.danger{color:var(--md-sys-color-on-error-container);background:var(--md-sys-color-error-container);border-color:var(--danger)}
.text-btn{border:0;background:transparent;color:var(--deep);font:var(--md-sys-typescale-label-large);min-height:44px;padding:10px 4px;border-radius:var(--md-sys-shape-corner-small)}
.icon-btn{display:inline-grid;place-items:center;width:44px;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:50%;background:var(--paper)}.full{width:100%}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.row>*{min-width:0}.between{justify-content:space-between}.stack{display:grid;gap:18px;min-width:0}.grow{flex:1;min-width:0}.row>.grow{flex-basis:120px}
.intro{margin-bottom:24px}.intro p{margin-top:10px;font:var(--md-sys-typescale-body-medium);color:var(--muted)}
.eyebrow{color:var(--deep);font:var(--md-sys-typescale-label-medium);letter-spacing:.06em;display:flex;align-items:center;gap:8px;margin-bottom:12px}.eyebrow::before{content:'';width:6px;height:6px;flex:none;background:var(--md-sys-color-secondary);border-radius:50%}
.section-title{margin:24px 0 14px}.section-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:28px 0 12px}.section-heading h2{font:var(--md-sys-typescale-title-medium)}.section-heading .text-btn{font:var(--md-sys-typescale-label-medium)}

/* Outlined controls: minimum 16px text prevents Safari focus zoom. */
.field{display:grid;gap:8px;min-width:0}label,.label{font:var(--md-sys-typescale-label-large)}
.field input,.field select,.field textarea,.search input,.composer textarea,.product-filters input,.product-filters select{width:100%;min-width:0;min-height:52px;font-size:max(16px,1rem);background-color:var(--paper);border:1px solid var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-small);padding:13px 14px;color:var(--ink)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input[type=checkbox],input[type=radio]{accent-color:var(--primary)}textarea{resize:vertical;min-height:96px}.field small{line-height:1.5}
.fields-two{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px}
/* Native WebKit selects can exceed their measured width at enlarged text. */
.field select,.product-filters select{appearance:none;-webkit-appearance:none;overflow:hidden;text-overflow:ellipsis;padding-right:38px;background-image:linear-gradient(45deg,transparent 50%,var(--deep) 50%),linear-gradient(135deg,var(--deep) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.check{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--line);background:var(--md-sys-color-secondary-container);border-radius:var(--md-sys-shape-corner-medium);min-height:48px;color:var(--md-sys-color-on-secondary-container)}.check input{width:22px;height:22px;flex:none;margin:2px 0}.check small{display:block;color:inherit;font-weight:400;margin-top:6px}
.search{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:8px;margin:0 0 20px}.search>.product-section{grid-column:1 / -1;width:100%;margin:8px 0 0}.search .input-wrap{position:relative;min-width:0}.search .input-wrap svg{position:absolute;left:14px;top:16px;color:var(--muted);width:20px}.search .input-wrap input{padding-left:42px}.search .btn{padding:12px 16px}.filter-summary{font:var(--md-sys-typescale-body-medium);margin:0 0 16px;color:var(--muted)}
input[type=file]{font-size:max(16px,1rem);padding:10px;max-width:100%}input::file-selector-button{border:0;border-radius:var(--md-sys-shape-corner-small);background:var(--md-sys-color-primary-container);color:var(--deep);padding:10px;margin-right:8px;font:inherit;white-space:normal}

/* Discovery retains public card and gesture hooks without decorative gradients. */
.mentor-card{position:relative;min-width:0;border:1px solid var(--line);background:var(--paper);border-radius:var(--md-sys-shape-corner-extra-large);overflow:hidden;box-shadow:var(--shadow);touch-action:pan-y;transition:transform var(--md-sys-motion-duration-short) ease,opacity var(--md-sys-motion-duration-short) ease;outline-offset:4px}
.portrait{position:relative;min-height:236px;overflow:hidden;background:var(--md-sys-color-primary-container);display:flex;align-items:flex-end;justify-content:center}.portrait img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover}.portrait-initials{position:absolute;top:66px;font-size:4rem;letter-spacing:-.04em;font-weight:600;color:var(--deep);line-height:1;user-select:none}.portrait-shade{position:absolute;inset:0;background:transparent}
/* Solid caption remains readable over any user photograph. */
.card-info{position:relative;margin:144px 12px 12px;padding:14px 16px;width:calc(100% - 24px);color:var(--ink);background:var(--paper);border-radius:var(--md-sys-shape-corner-large);z-index:1}.card-info h2{font:var(--md-sys-typescale-title-large)}.card-info p{font:var(--md-sys-typescale-body-medium);color:var(--muted);margin-top:4px}
.card-top{position:absolute;top:14px;left:14px;right:14px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;z-index:1}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:var(--md-sys-shape-corner-small);padding:6px 10px;font:var(--md-sys-typescale-label-medium);background:var(--paper);color:var(--deep);max-width:100%;overflow-wrap:anywhere}.badge svg{width:16px;height:16px}
.card-content{padding:20px}.card-content p{font:var(--md-sys-typescale-body-medium);color:var(--muted);margin:14px 0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font:var(--md-sys-typescale-label-medium);padding:7px 12px;border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-small);background:var(--md-sys-color-surface-container-low);color:var(--deep);overflow-wrap:anywhere;max-width:100%}
.card-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font:var(--md-sys-typescale-body-small)}.card-footer span{display:flex;gap:6px;align-items:center;min-width:0;overflow-wrap:anywhere}.card-footer svg{width:16px;height:16px}.card-footer button{font:var(--md-sys-typescale-label-medium)}
.card-actions{display:flex;gap:12px;align-items:center;margin:20px 0 10px}.skip{width:56px;height:56px;border-radius:50%;background:var(--paper);border:1px solid var(--md-sys-color-outline);color:var(--muted);flex:none}.card-actions .btn{min-width:0}.card-actions .primary{flex:1;min-height:56px}.gesture-hint{text-align:center;font:var(--md-sys-typescale-body-small);color:var(--muted)}
.swipe-stamp{position:absolute;top:64px;left:20px;z-index:2;color:var(--deep);background:var(--paper);border:2px solid var(--primary);font:var(--md-sys-typescale-label-large);padding:8px 12px;border-radius:var(--md-sys-shape-corner-small);pointer-events:none;transform:rotate(-8deg)}

/* Feedback, lists and segmented selection. */
.empty,.product-empty{padding:28px 20px;text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-extra-large);display:grid;justify-items:center;gap:14px;min-width:0}.empty-icon{width:64px;height:64px;border-radius:var(--md-sys-shape-corner-large);background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);display:grid;place-items:center;margin-bottom:4px}.empty-icon svg{width:28px;height:28px}.empty h2{font:var(--md-sys-typescale-title-medium)}.empty p,.product-empty p{font:var(--md-sys-typescale-body-medium);color:var(--muted);max-width:34ch}
.notice{font:var(--md-sys-typescale-body-medium);border-radius:var(--md-sys-shape-corner-medium);padding:14px 16px;background:var(--md-sys-color-primary-container);color:var(--deep);margin:0 0 20px;overflow-wrap:anywhere}.notice.error{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container);border:1px solid var(--danger)}.notice .text-btn{color:inherit}
.loading{padding:40px 20px;text-align:center;color:var(--muted);font:var(--md-sys-typescale-body-medium)}.spinner{width:24px;height:24px;border:2px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;display:block;margin:0 auto 12px}@keyframes spin{to{transform:rotate(360deg)}}
.segmented{display:flex;gap:0;padding:0;border:1px solid var(--md-sys-color-outline);border-radius:var(--md-sys-shape-corner-full);background:var(--paper);margin:20px 0}.segmented button{flex:1;min-width:0;border:0;border-right:1px solid var(--md-sys-color-outline);min-height:48px;background:transparent;font:var(--md-sys-typescale-label-large);padding:10px 12px}.segmented button:first-child{border-radius:24px 0 0 24px}.segmented button:last-child{border-right:0;border-radius:0 24px 24px 0}.segmented button[aria-pressed="true"]{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);font-weight:750}
.list{display:grid;gap:14px;min-width:0}.list-card{padding:18px;background:var(--paper);border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-large);min-width:0}.list-card .row+.row,.list-card>.chips{margin-top:16px}.list-card .btn{padding:10px 16px;min-height:44px}
.status{font:var(--md-sys-typescale-label-medium);display:inline-block;padding:6px 10px;border-radius:var(--md-sys-shape-corner-small);background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container)}.status.accepted{background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container)}.status.declined{background:var(--md-sys-color-error-container);color:var(--md-sys-color-on-error-container)}
.peer-button{text-align:left;background:transparent;border:0;padding:0;min-height:44px;flex:1;min-width:90px}.peer-button small{display:block;margin-top:4px}.list-card .subject{margin-top:14px;font:var(--md-sys-typescale-body-medium)}

/* Conversation and account. */
.messages{display:flex;flex-direction:column;gap:14px;padding:20px 0 24px}.bubble{max-width:90%;align-self:flex-start;padding:12px 16px;background:var(--paper);border:1px solid var(--line);border-radius:16px 16px 16px 4px;white-space:pre-wrap;overflow-wrap:anywhere;font:var(--md-sys-typescale-body-medium)}.bubble.own{align-self:flex-end;background:var(--md-sys-color-primary-container);color:var(--deep);border-color:transparent;border-radius:16px 16px 4px 16px}.bubble small{display:block;font:var(--md-sys-typescale-label-medium);margin-bottom:6px;color:inherit}.bubble time{display:block;font:var(--md-sys-typescale-body-small);color:var(--muted);text-align:right;margin-top:8px}
.composer{position:sticky;bottom:var(--navigation-clearance);background:var(--bg);padding:12px 0;display:flex;gap:8px;align-items:flex-end}.composer textarea{min-height:52px;max-height:160px;resize:vertical}.composer .btn{min-height:52px;padding:12px;flex:none}
.chat-heading{align-items:flex-start;flex-wrap:wrap}.chat-heading h1{font:var(--md-sys-typescale-title-large)}.chat-heading p{font:var(--md-sys-typescale-body-medium);color:var(--muted);margin-top:4px}
.profile-note{border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-large);background:var(--paper);padding:18px;margin-bottom:24px}.profile-note p{font:var(--md-sys-typescale-body-medium);color:var(--muted);margin-top:6px}.account-footer{margin-top:28px;padding-top:24px;border-top:1px solid var(--line);display:grid;gap:14px}
.photo-preview{width:74px;height:90px;object-fit:cover;border-radius:var(--md-sys-shape-corner-medium);border:1px solid var(--line)}.settings-links{display:grid;gap:10px;margin-top:24px}.academic-module-fallback{margin-top:20px}
.stepper{display:flex;gap:6px;margin:20px 0 10px}.stepper span{height:4px;flex:1;border-radius:4px;background:var(--line)}.stepper .complete{background:var(--primary)}.step-label{font:var(--md-sys-typescale-label-medium);color:var(--muted);margin-bottom:24px}.profile-step{display:grid;gap:20px;border:0;padding:0;margin:0;min-width:0}.profile-step legend{font:var(--md-sys-typescale-title-medium);margin-bottom:20px;max-width:100%;overflow-wrap:anywhere}

/* Authentication and dialogs. */
.auth-main{padding-top:32px;padding-bottom:calc(40px + env(safe-area-inset-bottom))}.auth-art{margin:24px 0;background:var(--md-sys-color-surface-container-low);border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-extra-large);min-height:160px;padding:24px;display:flex;align-items:center;justify-content:center}.auth-logo{display:block;width:100%;max-width:320px;height:auto;object-fit:contain}.auth-tabs{margin-top:0}.auth-footnote{text-align:center;color:var(--muted);font:var(--md-sys-typescale-body-small);margin-top:24px}.auth-main h1 em{font-style:normal;color:var(--primary)}.auth-main>.intro p{max-width:35ch}
.dialog{width:min(450px,calc(100vw - 32px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:24px;border:0;border-radius:var(--md-sys-shape-corner-extra-large);background:var(--md-sys-color-surface-container-low);color:var(--ink);box-shadow:var(--md-sys-elevation-level3);overflow:auto;overscroll-behavior:contain;scroll-padding:16px}.dialog::backdrop{background:#172b2466}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.dialog-header h2{min-width:0}.dialog p{font:var(--md-sys-typescale-body-medium)}.dialog .chips{margin:16px 0}.dialog .stack{margin-top:20px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}
.detail-photo{height:180px;border-radius:var(--md-sys-shape-corner-large);width:100%;object-fit:cover;margin-bottom:20px}.detail-item{padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.detail-item small{display:block;margin-bottom:6px}.match-panel{text-align:center}.match-mark{width:80px;height:80px;display:grid;place-items:center;background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);border-radius:var(--md-sys-shape-corner-extra-large);margin:8px auto 24px}.match-mark svg{width:40px;height:40px}.match-panel h2{font:var(--md-sys-typescale-headline-small);color:var(--deep)}.match-panel p{margin-top:12px}.match-panel .btn{margin-top:24px}
.toast{position:fixed;z-index:30;bottom:var(--navigation-clearance);left:50%;transform:translateX(-50%);width:calc(100% - 32px);max-width:452px;background:var(--md-sys-color-inverse-surface);color:var(--md-sys-color-inverse-on-surface);border-radius:var(--md-sys-shape-corner-small);padding:14px 16px;font:var(--md-sys-typescale-body-medium);box-shadow:var(--md-sys-elevation-level2);pointer-events:none}.offline{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container);padding:10px 18px;font:var(--md-sys-typescale-body-medium);text-align:center}.skip-link{position:fixed;top:-100px;z-index:99;background:var(--paper);padding:12px}.skip-link:focus{top:0}

/* Home: one clear next step, compact metrics, academic subject cards. */
.home{padding-top:24px}.home-next{background:var(--md-sys-color-primary);color:var(--md-sys-color-on-primary);border:0;border-radius:var(--md-sys-shape-corner-extra-large);padding:20px}.next-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font:var(--md-sys-typescale-label-medium)}.next-calendar{height:36px;width:36px;flex:none;display:grid;place-items:center;background:#ffffff1f;border-radius:var(--md-sys-shape-corner-medium)}.next-calendar svg{height:20px;width:20px}.home-next h2{font:var(--md-sys-typescale-title-large)}
.next-peer{display:flex;gap:8px;align-items:center;margin:14px 0 8px;font:var(--md-sys-typescale-body-medium)}.next-avatar{width:28px;height:28px;flex:none;border-radius:50%;background:#ffffff1f;display:grid;place-items:center;overflow:hidden;font:var(--md-sys-typescale-label-medium)}.next-avatar img{height:100%;width:100%;object-fit:cover}.next-card-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;margin-top:16px}.next-details{display:grid;gap:6px;min-width:0;font:var(--md-sys-typescale-body-small)}.next-details>span{display:flex;gap:6px;align-items:center;min-width:0;overflow-wrap:anywhere}.next-details svg{width:16px;height:16px}.next-details p{font:var(--md-sys-typescale-body-medium);max-width:28ch}.next-view{min-height:44px;background:var(--paper);color:var(--deep);padding:10px 16px;font:var(--md-sys-typescale-label-large)}.next-view svg{height:18px;width:18px}
.home-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 28px}.stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-large);padding:16px 8px;min-width:0;text-align:center}.stat-card>svg{width:22px;height:22px}.stat-card strong{font:var(--md-sys-typescale-title-large);color:var(--ink)}.stat-card>span{font:var(--md-sys-typescale-body-small);color:var(--muted);overflow-wrap:anywhere}.stat-sessions{color:var(--primary)}.stat-rating{color:var(--md-sys-color-tertiary)}.stat-subjects{color:var(--md-sys-color-secondary)}
.subject-grid{display:grid;gap:12px;min-width:0}.home .subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-card{padding:18px;border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-large);background:var(--paper);min-width:0}.subject-card h3{margin:12px 0 10px}.subject-card small{display:block}.subject-card .chips{margin:12px 0}.subject-card .btn{margin-top:14px}.role-label{display:inline-block;font:var(--md-sys-typescale-label-medium);padding:5px 8px;border-radius:var(--md-sys-shape-corner-small);color:var(--deep);background:var(--md-sys-color-primary-container);max-width:100%;overflow-wrap:anywhere}.teach .role-label{color:var(--md-sys-color-on-secondary-container);background:var(--md-sys-color-secondary-container)}.home .subject-card{display:flex;flex-direction:column;align-items:flex-start;padding:16px 14px}.subject-link{display:flex;align-items:center;gap:6px;text-align:left;font:var(--md-sys-typescale-label-medium);margin-top:auto;padding:10px 0;max-width:100%}.subject-link svg{height:16px;width:16px}
.home-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0 4px}.home-action{min-width:0;display:flex;gap:8px;align-items:center;text-align:left;padding:14px 12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-large);min-height:52px;font:var(--md-sys-typescale-label-large)}.home-action svg{color:var(--primary);height:20px;width:20px}.home-action span{min-width:0;overflow-wrap:anywhere}.suggestion-card{padding:16px;border:1px solid var(--line);background:var(--paper);border-radius:var(--md-sys-shape-corner-large);display:flex;flex-wrap:wrap;align-items:center;gap:12px;min-width:0}.suggestion-card .grow{flex-basis:120px;overflow-wrap:anywhere}.suggestion-card small{display:block}.home-subject-empty{grid-column:1 / -1;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-large);font:var(--md-sys-typescale-body-medium);color:var(--muted)}#homeSuggestions,#academicHome{min-width:0}.subject-dialog .chips{margin-bottom:8px}

/* Semantic product panels also support native fieldsets and details. */
.product-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:16px;padding:18px;margin-bottom:20px;border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-large);background:var(--paper);min-width:0}.product-filters>*,.product-details>*,.product-section>*{min-width:0}.product-filters label{display:grid;gap:8px}
.product-reasons{display:grid;gap:8px;margin:16px 0;padding:16px;border-radius:var(--md-sys-shape-corner-medium);background:var(--md-sys-color-secondary-container);color:var(--md-sys-color-on-secondary-container);font:var(--md-sys-typescale-body-medium);overflow-wrap:anywhere}.product-reasons ul{margin:0;padding-left:20px}.product-reasons>p,.product-reasons>small{color:inherit;margin:0}.product-reasons li::marker{color:var(--md-sys-color-secondary)}
.product-slots>p{grid-column:1 / -1;font:var(--md-sys-typescale-body-medium);color:var(--muted)}.product-slots label>span{min-width:0;overflow-wrap:anywhere}
.product-details,.product-section{display:grid;gap:12px;min-width:0;padding:18px;margin:16px 0;background:var(--paper);border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-large);overflow-wrap:anywhere}.product-details summary,.product-section summary,.product-safety summary{min-height:44px;padding:10px 0;cursor:pointer;font:var(--md-sys-typescale-label-large);color:var(--deep)}.product-details dt{font:var(--md-sys-typescale-label-medium);color:var(--muted)}.product-details dd{margin:4px 0 12px}.product-details .detail-item{padding:0 0 14px}.product-details .detail-item:last-child{padding-bottom:0;border-bottom:0}.product-details h3{font:var(--md-sys-typescale-title-medium);margin-bottom:8px}.product-details p{font:var(--md-sys-typescale-body-medium);color:var(--muted)}.product-favorite>span{min-width:0;overflow-wrap:anywhere}.empty>img,.product-empty>img{display:block;width:min(100%,180px);height:auto;max-height:160px;object-fit:contain}
.product-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));gap:10px;min-width:0;margin:0;padding:16px;border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-medium)}.product-slots legend{padding:0 4px;max-width:100%;font:var(--md-sys-typescale-label-large);overflow-wrap:anywhere}.product-slots label{display:flex;align-items:center;gap:10px;min-width:0;min-height:48px;padding:10px;border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-small);background:var(--paper);cursor:pointer}.product-slots input[type=checkbox]{width:22px;height:22px;min-height:22px;flex:none;margin:0;padding:0}.product-slots label:has(input:checked){background:var(--md-sys-color-primary-container);color:var(--deep);border-color:var(--primary)}
.product-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}.product-actions>*{min-width:0;max-width:100%}.product-actions [aria-pressed=true],.product-favorite[aria-pressed=true]{background:var(--md-sys-color-tertiary-container);color:var(--md-sys-color-on-tertiary-container);border-color:var(--md-sys-color-tertiary)}
.product-safety{padding:16px;margin:16px 0;border:1px solid var(--line);border-radius:var(--md-sys-shape-corner-medium);background:var(--md-sys-color-surface-container);color:var(--muted);font:var(--md-sys-typescale-body-medium);overflow-wrap:anywhere}.product-safety h3{color:var(--ink);margin-bottom:8px}.product-safety p+p{margin-top:10px}

/* State layers preserve filled-button contrast rather than replacing its fill. */
@media(hover:hover){
  :where(.btn,.icon-btn,.text-btn,.skip,.home-action,.peer-button,.segmented button,.catalog-chip,.academic-view button,.academic-link):not(:disabled):hover{box-shadow:inset 0 0 0 999px rgb(23 43 36 / var(--md-sys-state-hover-opacity))}
  .nav-item:not([aria-current="page"]):hover::before{background:var(--md-sys-color-surface-container-highest)}
}
:where(.btn,.icon-btn,.text-btn,.skip,.home-action,.catalog-chip,.academic-view button):not(:disabled):active{box-shadow:inset 0 0 0 999px rgb(23 43 36 / var(--md-sys-state-pressed-opacity))}
@media(min-width:501px){#app{margin-top:24px;margin-bottom:24px;min-height:calc(100vh - 48px);min-height:calc(100dvh - 48px);border-radius:var(--md-sys-shape-corner-extra-large)}.topbar{border-radius:var(--md-sys-shape-corner-extra-large) var(--md-sys-shape-corner-extra-large) 0 0}.bottom-nav{border-radius:var(--md-sys-shape-corner-large) var(--md-sys-shape-corner-large) 0 0}}
@media(max-width:350px){.topbar,main{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.topbar{gap:8px}.top-actions{gap:4px}.bottom-nav{padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right))}.nav-item{font-size:.6875rem}.fields-two{grid-template-columns:minmax(0,1fr)}.card-content,.home-next,.dialog{padding:16px}.home-stats{gap:8px}.home .subject-card{padding:14px 10px}.btn{padding-left:14px;padding-right:14px}.home-action{flex-wrap:wrap}}
@media(max-height:480px){main{padding-top:20px}.auth-art{min-height:100px;padding:16px}.auth-logo{max-width:240px}.dialog{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.nav-item[aria-current="page"]::before,.product-slots label:has(input:checked),.segmented button[aria-pressed="true"]{outline:2px solid Highlight}.primary{border-color:ButtonText}}
