﻿/*  Page hero  */
    .page-hero { background:var(--navy); color:#fff; padding:32px 24px 24px; }
    .page-hero h1 { font-size:clamp(1.2rem,2.5vw,1.7rem); color:#fff; margin-bottom:4px; }
    .page-hero p  { color:rgba(255,255,255,.68); font-size:.90rem; }

    /*  Mobile segmented control  */
    .sel-segmented {
      display:none; background:var(--light); border-bottom:2px solid var(--border);
      padding:10px 16px; gap:8px; position:sticky; top:0; z-index:100;
    }
    @media(max-width:900px){ .sel-segmented { display:flex; } }
    .sel-seg-btn {
      flex:1; padding:10px 10px; font-size:.88rem; font-weight:800; cursor:pointer;
      background:var(--white); border:2px solid var(--border); border-radius:9px;
      color:var(--grey); transition:all .15s; display:flex; align-items:center;
      justify-content:center; gap:6px;
    }
    .sel-seg-btn.active { background:var(--navy); color:#fff; border-color:var(--navy); }
    .sel-seg-badge {
      background:var(--red); color:#fff; font-size:.60rem; font-weight:800;
      padding:1px 6px; border-radius:50px;
    }

    /*  Layout  */
    .sel-layout {
      display:grid; grid-template-columns:220px 1fr;
      min-height:calc(100vh - 155px); align-items:start;
    }
    @media(max-width:900px){
      .sel-layout { grid-template-columns:1fr; }
      .sel-sidebar { display:none !important; }
    }

    /*  Sidebar  */
    .sel-sidebar {
      background:var(--white); border-right:1px solid var(--border);
      padding:22px 14px; position:sticky; top:0;
      height:calc(100vh - 155px); overflow-y:auto;
    }
    .sel-sidebar-label {
      font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:1.5px;
      color:var(--grey); margin-bottom:12px; padding:0 6px;
    }
    .sel-nav-item {
      display:flex; align-items:center; gap:10px; padding:11px 12px;
      border-radius:10px; cursor:pointer; font-weight:700; font-size:.90rem;
      color:var(--grey); border:2px solid transparent; transition:all .15s;
      margin-bottom:5px; user-select:none;
    }
    .sel-nav-item:hover { background:var(--light); color:var(--navy); }
    .sel-nav-item.active { background:#e8edf5; color:var(--navy); border-color:var(--border); }
    .sel-nav-icon { font-size:1.1rem; flex-shrink:0; }
    .sel-nav-label { flex:1; }
    .sel-nav-badge {
      background:var(--red); color:#fff; font-size:.60rem; font-weight:800;
      padding:2px 7px; border-radius:50px; flex-shrink:0;
    }

    .sel-sidebar-divider { border:none; border-top:1px solid var(--border); margin:18px 0 14px; }
    .sel-sidebar-majors-list { padding:0 4px; }
    .sel-sidebar-major-pill {
      display:inline-flex; align-items:center; gap:5px;
      background:var(--navy); color:#fff; padding:4px 10px; border-radius:50px;
      font-size:.74rem; font-weight:700; margin:3px 2px;
    }
    .sel-sidebar-major-pill button {
      background:none; border:none; color:rgba(255,255,255,.7); cursor:pointer;
      font-size:.80rem; line-height:1; padding:0;
    }
    .sel-sidebar-major-pill button:hover { color:#fff; }
    .sel-sidebar-none { font-size:.78rem; color:var(--grey-lt); padding:0 4px; }

    /*  Main content  */
    .sel-main { min-height:calc(100vh - 155px); }
    .sel-view { display:none; padding:28px 32px 60px; }
    .sel-view.active { display:block; }
    @media(max-width:900px){ .sel-view { padding:20px 16px 48px; } }

    /*  Empty state  */
    .sel-empty {
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      min-height:420px; text-align:center; padding:40px 20px;
    }
    .sel-empty-icon { font-size:3.2rem; margin-bottom:18px; }
    .sel-empty h2 { color:var(--navy); margin-bottom:10px; font-size:1.4rem; }
    .sel-empty p { font-size:.93rem; color:var(--grey); max-width:400px; line-height:1.6; }
    .sel-empty-actions { display:flex; gap:12px; margin-top:26px; flex-wrap:wrap; justify-content:center; }

    /*  Selected tray  */
    .selected-tray {
      background:var(--light); border:1px solid var(--border); border-radius:var(--radius);
      padding:13px 15px; margin-bottom:18px; display:none;
    }
    .selected-tray.visible { display:block; }
    .selected-tray h4 { font-size:.80rem; margin-bottom:9px; color:var(--grey); text-transform:uppercase; letter-spacing:.5px; }
    .selected-pills { display:flex; gap:7px; flex-wrap:wrap; }
    .selected-pill {
      background:var(--navy); color:#fff; padding:4px 11px; border-radius:50px;
      font-size:.77rem; font-weight:700; display:flex; align-items:center; gap:5px;
    }
    .selected-pill button { background:none; border:none; color:rgba(255,255,255,.7); cursor:pointer; font-size:.86rem; line-height:1; padding:0; }
    .selected-pill button:hover { color:#fff; }

    /*  Microflow banner  */
    .microflow-banner {
      display:none; background:linear-gradient(135deg,#e8f4fd,#d0ebff);
      border:1px solid #93c5fd; border-radius:var(--radius); padding:13px 15px;
      margin-bottom:16px; align-items:center; gap:12px; flex-wrap:wrap;
    }
    .microflow-banner.visible { display:flex; }
    .microflow-banner-text { flex:1; font-size:.87rem; font-weight:700; color:#1e3a8a; }
    .microflow-banner-sub { font-size:.77rem; font-weight:400; color:#3b82f6; margin-top:2px; }

    /*  Major search  */
    .major-search-wrap { position:relative; margin-bottom:16px; }
    .major-search-wrap input { padding-left:40px; font-size:.93rem; border-radius:10px; }
    .major-search-wrap .icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); font-size:1.1rem; pointer-events:none; }
    .search-results-dropdown {
      position:absolute; top:100%; left:0; right:0; z-index:50;
      background:var(--white); border:1.5px solid var(--border); border-top:none;
      border-radius:0 0 12px 12px; max-height:300px; overflow-y:auto; box-shadow:var(--shadow);
    }
    .search-result-item {
      padding:10px 14px; cursor:pointer; display:flex; justify-content:space-between;
      align-items:center; border-bottom:1px solid var(--border); font-size:.88rem;
    }
    .search-result-item:last-child { border-bottom:none; }
    .search-result-item:hover { background:var(--light); }
    .search-result-cat { font-size:.70rem; color:var(--grey); }

    /*  Category grid  */
    .category-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; margin-bottom:26px; }
    .cat-card {
      border:2px solid var(--border); border-radius:10px; padding:16px 12px;
      text-align:center; cursor:pointer;
      transition:border-color .18s, background .18s, transform .15s; background:var(--white);
    }
    .cat-card:hover { border-color:var(--navy); transform:translateY(-2px); }
    .cat-card.selected { border-color:var(--red); background:#fde8ec; }
    .cat-icon { font-size:1.6rem; margin-bottom:7px; }
    .cat-name { font-size:.80rem; font-weight:800; color:var(--navy); }
    .cat-count { font-size:.65rem; color:var(--red); font-weight:700; margin-top:4px; }

    /*  Major list panel  */
    .major-list-panel { display:none; }
    .major-list-panel.visible { display:block; }
    .major-list-header { display:flex; align-items:center; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
    .major-list-header h3 { margin:0; font-size:.95rem; }
    .major-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:7px; max-height:400px; overflow-y:auto; padding:2px; }
    .major-item {
      padding:9px 12px; border:1.5px solid var(--border); border-radius:8px;
      background:var(--white); cursor:pointer; font-size:.85rem; font-weight:600;
      transition:all .15s; display:flex; justify-content:space-between; align-items:center;
    }
    .major-item:hover { border-color:var(--navy); background:#e8edf5; }
    .major-item.selected { border-color:var(--red); background:#fde8ec; color:var(--red); }
    .major-item-tag { font-size:.65rem; color:var(--grey-lt); flex-shrink:0; }
    .major-fit-badge {
      font-size:.62rem; font-weight:800; border:1px solid #c5d0e0;
      border-radius:50px; padding:2px 7px; background:#e8edf5; color:var(--navy);
      white-space:nowrap; flex-shrink:0;
    }
    .major-fit-badge.compact { font-size:.58rem; padding:1px 6px; }

    /*  Filters  */
    .filter-panel {
      background:var(--white); border:1px solid var(--border);
      border-radius:var(--radius); padding:14px 16px; margin-bottom:16px;
    }
    .filter-panel-head {
      display:flex; justify-content:space-between; align-items:center;
      margin-bottom:12px; cursor:pointer; user-select:none;
    }
    .filter-panel-head h3 { font-size:.88rem; margin:0; }
    .filter-toggle-icon { font-size:.8rem; color:var(--grey); transition:transform .2s; }
    .filter-panel.collapsed .filter-toggle-icon { transform:rotate(-90deg); }
    .filter-panel-body { display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:9px; }
    .filter-panel.collapsed .filter-panel-body { display:none; }

    /*  University grid  */
    .uni-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(360px,1fr)); gap:18px; }
    @media(max-width:800px){ .uni-grid { grid-template-columns:1fr; } }
    .uni-card {
      background:var(--white); border:1px solid var(--border);
      border-radius:var(--radius); padding:18px; transition:box-shadow .2s; cursor:default;
    }
    .uni-card:hover { box-shadow:var(--shadow); }
    .uni-card-top { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px; }
    .uni-card-name { font-size:.98rem; font-weight:800; margin-bottom:2px; }
    .uni-card-loc  { font-size:.78rem; color:var(--grey); }
    .uni-card-badge { font-size:.67rem; font-weight:800; padding:3px 9px; border-radius:50px; white-space:nowrap; flex-shrink:0; }
    .badge-high { background:#fde8ec; color:var(--red); border:1px solid #f7aab8; }
    .badge-med  { background:#fff4e0; color:#7a5200; border:1px solid #f7c948; }
    .badge-mod  { background:#e6f7f0; color:#1a7a52; border:1px solid #88d5b5; }

    .uni-ranks { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
    .rank-pill { background:#e8edf5; border-radius:50px; padding:2px 9px; font-size:.67rem; font-weight:800; color:var(--navy); }
    .rank-pill.world { background:#fde8ec; color:var(--red); }

    /*  Fit score  */
    .fit-row { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:10px; }
    .fit-score-pill {
      font-size:.67rem; font-weight:900; padding:3px 10px; border-radius:50px;
      display:inline-flex; align-items:center; gap:4px;
    }
    .fit-score-green  { background:#dcfce7; color:#166534; border:1px solid #86efac; }
    .fit-score-yellow { background:#fef9c3; color:#713f12; border:1px solid #fde047; }
    .fit-score-grey   { background:#f1f5f9; color:#475569; border:1px solid #cbd5e1; }
    .fit-badge { font-size:.65rem; font-weight:700; background:#e8edf5; color:var(--navy); padding:2px 8px; border-radius:50px; border:1px solid #c5d0e0; }
    .fit-badge.match { background:#e0f2fe; color:#0369a1; border-color:#7dd3fc; }
    .fit-badge.near  { background:#fff7ed; color:#9a3412; border-color:#fed7aa; }
    .fit-badge.coop  { background:#f0fdf4; color:#166534; border-color:#86efac; }
    .fit-badge.calc  { background:#fdf4ff; color:#6b21a8; border-color:#d8b4fe; }

    .uni-meta { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin:10px 0; }
    .uni-meta-item { background:var(--light); border-radius:7px; padding:7px 9px; }
    .uni-meta-item label { font-size:.63rem; color:var(--grey); display:block; text-transform:uppercase; letter-spacing:.5px; }
    .uni-meta-item span  { font-weight:700; font-size:.83rem; }

    .uni-desc { font-size:.80rem; color:var(--grey); line-height:1.5; margin-bottom:10px; }
    .uni-card-btns { display:flex; gap:7px; flex-wrap:wrap; margin-top:10px; }

    /*  Expandable program details  */
    .prog-details-toggle {
      display:flex; align-items:center; gap:6px; cursor:pointer;
      font-size:.78rem; font-weight:700; color:var(--navy); margin:10px 0 0;
      background:var(--light); border:1px solid var(--border); border-radius:8px;
      padding:7px 12px; user-select:none; transition:background .15s;
    }
    .prog-details-toggle:hover { background:#e8edf5; }
    .prog-details-toggle .toggle-chevron { transition:transform .2s; font-size:.7rem; margin-left:auto; }
    .prog-details-toggle.open .toggle-chevron { transform:rotate(180deg); }
    .prog-details-body {
      display:none; background:#f8f9fb; border:1px solid var(--border); border-top:none;
      border-radius:0 0 8px 8px; padding:14px 16px;
    }
    .prog-details-body.open { display:block; }
    .prog-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    @media(max-width:540px){ .prog-detail-grid { grid-template-columns:1fr; } }
    .prog-detail-item label { font-size:.64rem; color:var(--grey); text-transform:uppercase; letter-spacing:.5px; display:block; margin-bottom:2px; }
    .prog-detail-item span  { font-size:.82rem; font-weight:700; color:var(--navy); }
    .prog-detail-courses { margin-top:10px; padding-top:10px; border-top:1px solid var(--border); font-size:.80rem; }
    .prog-detail-courses strong { font-size:.64rem; text-transform:uppercase; letter-spacing:.5px; color:var(--grey); display:block; margin-bottom:4px; }

    /*  Search bar (unis)  */
    .search-bar-wrap { position:relative; margin-bottom:14px; }
    .search-bar-wrap input { padding-left:38px; font-size:.93rem; }
    .search-bar-wrap .icon { position:absolute; left:12px; top:50%; transform:translateY(-50%); font-size:1.1rem; pointer-events:none; }
    .results-count { font-size:.80rem; color:var(--grey); margin-bottom:14px; }
    .dist-pill { font-size:.67rem; font-weight:800; background:#e8edf5; color:var(--navy); padding:2px 7px; border-radius:50px; margin-left:5px; }

    /*  Quiz  */
    .quiz-section { display:none; }
    .quiz-section.visible { display:block; }
    .quiz-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:22px; margin-bottom:16px; }
    .quiz-section-title { font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:1.5px; color:var(--red); margin-bottom:12px; }
    .quiz-q { font-size:.90rem; font-weight:700; margin-bottom:10px; color:var(--navy); }
    .quiz-options { display:flex; gap:7px; flex-wrap:wrap; }
    .quiz-opt { padding:7px 13px; border-radius:7px; border:1.5px solid var(--border); font-size:.84rem; font-weight:600; cursor:pointer; background:var(--light); transition:border-color .15s, background .15s; }
    .quiz-opt:hover { border-color:var(--navy); background:#e8edf5; }
    .quiz-opt.selected { border-color:var(--red); background:#fde8ec; color:var(--red); }
    .checkbox-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(145px,1fr)); gap:7px; }
    .cb-item { display:flex; align-items:center; gap:7px; font-size:.84rem; cursor:pointer; padding:7px 10px; border-radius:7px; border:1.5px solid var(--border); background:var(--light); }
    .cb-item input[type="checkbox"] { width:15px; height:15px; accent-color:var(--red); cursor:pointer; }

    /*  Quiz results  */
    .result-section { display:none; }
    .result-section.visible { display:block; }
    .result-card { background:var(--white); border:1px solid var(--border); border-left:4px solid var(--red); border-radius:var(--radius); padding:20px; margin-bottom:14px; }
    .result-rank { font-size:.72rem; font-weight:800; color:var(--red); text-transform:uppercase; letter-spacing:1px; margin-bottom:4px; }
    .result-meta { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin:12px 0; }
    .result-meta-item { background:var(--light); border-radius:7px; padding:9px 12px; }
    .result-meta-item label { font-size:.68rem; color:var(--grey); display:block; margin-bottom:2px; }
    .result-meta-item span { font-weight:700; font-size:.87rem; }
    .result-btns { display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }
    @media(max-width:600px){ .result-meta { grid-template-columns:1fr; } }

    /*  Profile modal  */
    .modal-overlay { display:none; position:fixed; inset:0; z-index:999; background:rgba(0,0,0,.55); align-items:center; justify-content:center; }
    .modal-overlay.open { display:flex; }
    .modal-box { background:var(--white); border-radius:18px; padding:32px 28px; max-width:540px; width:92%; position:relative; box-shadow:0 12px 60px rgba(0,0,0,.25); max-height:90vh; overflow-y:auto; }
    .modal-close { position:absolute; top:12px; right:16px; background:none; border:none; font-size:1.3rem; cursor:pointer; color:var(--grey); }
    .form-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    @media(max-width:500px){ .form-row { grid-template-columns:1fr; } }

    /*  Toast  */
    .save-toast {
      position:fixed; bottom:28px; left:50%; transform:translateX(-50%) translateY(60px);
      background:var(--navy); color:#fff; padding:12px 22px; border-radius:50px;
      font-size:.87rem; font-weight:700; z-index:3000; opacity:0;
      transition:all .3s; display:flex; align-items:center; gap:10px; white-space:nowrap;
    }
    .save-toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
    .toast-undo-btn {
      background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.4);
      color:#fff; font-size:.78rem; font-weight:800; padding:3px 12px;
      border-radius:50px; cursor:pointer; transition:background .15s;
    }
    .toast-undo-btn:hover { background:rgba(255,255,255,.35); }

    /*  Profile banner  */
    .profile-banner {
      background:linear-gradient(135deg,var(--accent),#f5a623); border-radius:var(--radius);
      padding:14px 18px; display:flex; align-items:center; gap:12px;
      margin-bottom:20px; cursor:pointer; transition:box-shadow .2s;
    }
    .profile-banner:hover { box-shadow:var(--shadow); }
    .profile-banner-icon { font-size:1.6rem; flex-shrink:0; }
    .profile-banner h3 { color:var(--navy); margin-bottom:1px; font-size:.90rem; }
    .profile-banner p { font-size:.78rem; color:rgba(26,42,74,.75); margin:0; }

    .flow-stepper {
      margin-top: 14px;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(255,255,255,.14);
      border: 1px solid rgba(255,255,255,.26);
      border-radius: 999px;
      padding: 6px 12px;
      font-size: .76rem;
      font-weight: 700;
    }
    .flow-dot {
      width: 22px;
      height: 22px;
      border-radius: 50%;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #fff;
      background: rgba(255,255,255,.25);
      font-size: .72rem;
    }
    .flow-dot.active { background: var(--accent); color: var(--navy); }
    .flow-label { color: rgba(255,255,255,.88); margin-left: 2px; }

    .quiz-progress-wrap { margin: 0 0 14px; }
    .quiz-progress {
      width: 100%;
      height: 8px;
      background: #e2e8f0;
      border-radius: 999px;
      overflow: hidden;
    }
    .quiz-progress-bar {
      height: 100%;
      width: 0;
      background: linear-gradient(90deg, var(--red), #f59e0b);
      transition: width .2s ease;
    }

    .quiz-opt:focus,
    .cat-card:focus,
    .major-item:focus,
    .sel-nav-item:focus {
      outline: 3px solid rgba(232,184,75,.75);
      outline-offset: 2px;
    }

    /*  Misc  */
    .sel-divider { text-align:center; color:var(--grey); font-size:.90rem; margin:22px 0 16px; }
    .no-results { color:var(--grey); text-align:center; padding:36px 20px; font-size:.90rem; }

