:root{
  --blue:#174a7e;--blue2:#205c95;--ink:#172235;--muted:#617184;--line:#bfd4e5;
  --bg:#f7fbff;--surface:#fff;--pale:#eaf4fb;--success:#1c5f3e;--successBg:#eaf6ef;
  --shadow:0 20px 44px rgba(24,60,95,.10);
  --sans:'IBM Plex Sans',sans-serif;--serif:'Newsreader',serif
}
*{box-sizing:border-box}
html,body{margin:0;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;background:var(--bg);color:var(--ink);font-family:var(--sans)}
button,input,textarea{font:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
input,textarea{font-size:16px}
.app-shell{min-height:100dvh;background:radial-gradient(circle at 85% 8%,rgba(220,236,248,.95),transparent 28rem),linear-gradient(180deg,#f7fbff 0%,#fff 45%,#f7fbff 100%)}
.site-header{width:min(1180px,calc(100% - 2rem));min-height:84px;margin:auto;display:flex;align-items:center;border-bottom:1px solid rgba(191,212,229,.72)}
.brand{display:flex;align-items:center;gap:.75rem;color:var(--ink);text-decoration:none}
.brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:700}
.brand-copy strong,.brand-copy small{display:block}.brand-copy strong{font-size:1rem}.brand-copy small{font-size:.74rem;color:var(--muted);margin-top:.08rem}
.hero{width:min(1180px,calc(100% - 2rem));margin:auto;padding:4.2rem 0 5rem;display:grid;grid-template-columns:minmax(0,.92fr) minmax(390px,1.08fr);gap:4rem;align-items:center}
.eyebrow{color:var(--blue);font-size:.76rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.hero-copy h1,.results-top h2{font-family:var(--serif);font-weight:600;letter-spacing:-.045em}
.hero-copy h1{font-size:clamp(2.9rem,5vw,4.6rem);line-height:.98;margin:.9rem 0 1rem;max-width:620px}.hero-copy h1 span{color:var(--blue)}
.hero-copy p{max-width:560px;color:#536579;font-size:1.02rem;line-height:1.6;margin:0}.trust{display:flex;gap:1.2rem;margin-top:1.35rem;color:#51677d;font-size:.8rem;font-weight:600}
.search-card{background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:22px;padding:1.45rem;box-shadow:var(--shadow)}
.card-heading span{color:var(--blue);font-size:.7rem;font-weight:700;letter-spacing:.1em}.card-heading h2{font-family:var(--serif);font-size:1.8rem;margin:.25rem 0 1.3rem}
.field-label{display:block;color:#223248;font-size:.9rem;font-weight:800;margin:.95rem 0 .55rem}
.school-picker{position:relative;display:grid;grid-template-columns:1fr auto;border:1.5px solid #adc8dd;border-radius:14px;background:#fbfdff;min-height:54px;align-items:center}
.school-picker:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,74,126,.14)}
.school-picker input{min-width:0;width:100%;border:0;outline:0;background:transparent;padding:.85rem 1rem;color:#24374b}
.school-picker>button{width:46px;height:46px;border:0;background:transparent;color:var(--blue);font-size:1.2rem}
.school-menu{position:absolute;top:calc(100% + .45rem);left:0;right:0;z-index:20;max-height:330px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 44px rgba(22,61,98,.16);padding:.45rem}
.school-option{width:100%;border:0;background:transparent;text-align:left;padding:.7rem;border-bottom:1px solid #edf2f6;border-radius:10px;color:#2a3d51}.school-option:hover{background:#f1f7fb}.school-option strong,.school-option small{display:block}.school-option small{font-size:.72rem;color:#8493a1;margin-top:.15rem}
textarea{width:100%;min-height:108px;padding:.9rem 1rem;border:1px solid #cbd9e4;border-radius:14px;outline:0;background:#fbfdff;color:#26394c;resize:vertical}textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,74,126,.14)}
.chips{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.7rem}.chips button{border:1px solid #c8d8e5;border-radius:999px;background:#fff;color:#4b6176;padding:.45rem .72rem;font-size:.72rem;font-weight:700}
.primary-button{width:100%;min-height:54px;margin-top:.9rem;border:0;border-radius:14px;background:var(--blue);color:#fff;font-weight:700;font-size:1rem}.primary-button:hover{background:var(--blue2)}
.notice{margin:.65rem 0 0;color:#8b2c25;font-size:.78rem}
.results-view{width:min(1180px,calc(100% - 2rem));margin:auto;padding:2.5rem 0 5rem}.results-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.results-top h2{font-size:2.4rem;margin:.15rem 0 .2rem}.results-top p{margin:0;color:#66798d}
.outline-button{border:1px solid #9dbdd6;background:#fff;color:var(--blue);border-radius:999px;padding:.55rem .85rem;font-weight:700}
.emergency-alert{background:#fff4f2;border:2px solid #c93d32;border-radius:18px;padding:1rem 1.1rem;margin-bottom:1rem;box-shadow:0 8px 24px rgba(139,44,37,.08)}.emergency-kicker{display:inline-block;background:#a92d24;color:#fff;border-radius:999px;padding:.28rem .55rem;font-size:.66rem;font-weight:800;letter-spacing:.09em}.emergency-alert h3{margin:.55rem 0 .3rem;font-family:var(--sans);font-size:1.15rem;color:#7f211b}.emergency-alert p{margin:0;color:#6f332f;line-height:1.5;font-weight:600}.resource-card,.empty-card{background:#fff;border:1px solid #9cc3e0;border-radius:18px;padding:1.2rem;box-shadow:0 8px 24px rgba(23,74,126,.07)}
.badges{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.badge{padding:.3rem .55rem;border-radius:999px;font-size:.68rem;font-weight:800}.direct{background:var(--blue);color:#fff}.category{background:#e8f3fb;color:#265a84}.verified{margin-left:auto;color:var(--success);font-size:.75rem;font-weight:700}
.resource-card h3{font-family:var(--serif);font-size:2rem;line-height:1.05;margin:.8rem 0 .35rem}.resource-card>.description{color:#52677c;line-height:1.5;margin:0}
.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;margin-top:1rem}.detail{background:#f5f9fc;border:1px solid #d8e6f0;border-radius:13px;padding:.75rem;min-height:104px}.detail span{display:block;color:#718294;font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.detail strong{display:block;margin-top:.3rem;font-size:.8rem;line-height:1.35;overflow-wrap:anywhere}.map-link{display:inline-block;margin-top:.55rem;color:var(--blue);font-size:.72rem;font-weight:700;text-decoration:none}.map-link:hover{text-decoration:underline}
.info-strip,.access-box{margin-top:.65rem;border-radius:13px;padding:.8rem}.info-strip{background:#edf6fc}.access-box{background:linear-gradient(135deg,#f3f9fd,#eaf4fb);border:1px solid #b9d5e9}.access-box strong{color:var(--blue);font-size:.76rem}.access-box p{margin:.3rem 0 0;color:#405f79;font-size:.8rem;line-height:1.45}
.card-actions{display:flex;justify-content:space-between;gap:.7rem;align-items:center;margin-top:1rem;padding-top:.8rem;border-top:1px solid #e2edf4}.source-link{display:inline-flex;text-decoration:none;background:var(--blue);color:#fff;padding:.6rem .8rem;border-radius:10px;font-size:.78rem;font-weight:700}.feedback{display:flex;gap:.4rem}.feedback button{border:1px solid #c7d8e5;background:#fff;color:#3e5770;border-radius:999px;padding:.5rem .7rem;font-weight:700;font-size:.75rem}
.empty-card{text-align:center;padding:4rem 1.5rem}.empty-card h3{font-size:1.4rem}.empty-card p{color:#617184}
.site-footer{background:#174a7e;color:#fff;min-height:150px;padding:2.5rem max(1rem,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;align-items:center;gap:2rem}.site-footer strong,.site-footer small{display:block}.site-footer small{opacity:.78;margin-top:.25rem}.creator{text-align:right}.creator strong{font-family:var(--serif);font-size:1.45rem}
[hidden]{display:none!important}

@media(max-width:760px){
  body{overflow-x:hidden}
  .app-shell{width:100%;min-width:0}
  .site-header{
    width:calc(100% - 2rem);
    min-height:72px;
    margin:0 1rem;
  }
  .brand-mark{width:38px;height:38px;border-radius:10px}
  .brand-copy strong{font-size:.95rem}
  .brand-copy small{font-size:.68rem}

  .hero{
    width:calc(100% - 2rem);
    margin:0 1rem;
    padding:2rem 0 2.25rem;
    grid-template-columns:1fr;
    gap:1.4rem;
    align-items:start;
  }
  .hero-copy{padding:0}
  .eyebrow{font-size:.66rem;line-height:1.2}
  .hero-copy h1{
    font-size:clamp(2.45rem,12vw,3.35rem);
    line-height:.96;
    max-width:100%;
    margin:.65rem 0 .8rem;
  }
  .hero-copy p{
    max-width:100%;
    font-size:.96rem;
    line-height:1.55;
  }
  .trust{
    margin-top:1rem;
    gap:.9rem 1.1rem;
    font-size:.76rem;
    flex-wrap:wrap;
  }

  .search-card{
    width:100%;
    min-width:0;
    padding:1.15rem;
    border-radius:18px;
    box-shadow:0 10px 28px rgba(24,60,95,.08);
  }
  .card-heading span{font-size:.68rem}
  .card-heading h2{
    font-size:1.65rem;
    line-height:1.08;
    margin:.22rem 0 1rem;
  }
  .field-label{font-size:.9rem;margin:.9rem 0 .45rem}
  .school-picker{min-height:52px;border-radius:12px}
  .school-picker input{padding:.78rem .85rem}
  .school-menu{max-height:42dvh}
  .school-option{min-height:50px}
  textarea{
    min-height:118px;
    border-radius:12px;
    resize:none;
    padding:.85rem;
    line-height:1.45;
  }

  .chips{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.55rem;
    overflow:visible;
    margin-top:.85rem;
  }
  .chips button{
    width:100%;
    min-width:0;
    min-height:42px;
    padding:.5rem .55rem;
    font-size:.74rem;
    white-space:normal;
    line-height:1.15;
  }
  .chips button:last-child{
    grid-column:1 / -1;
  }
  .primary-button{
    min-height:54px;
    border-radius:12px;
    margin-top:1rem;
    font-size:.96rem;
    padding:.7rem .85rem;
  }

  .results-view{
    width:calc(100% - 2rem);
    margin:0 1rem;
    padding:1.5rem 0 2.25rem;
  }
  .results-top{flex-direction:column}
  .results-top h2{font-size:1.95rem}
  .outline-button{min-height:42px}
  .emergency-alert{padding:.9rem;border-radius:15px}.emergency-alert h3{font-size:1.05rem}.emergency-alert p{font-size:.85rem}\n  .resource-card{padding:1rem;border-radius:16px}
  .resource-card h3{font-size:1.55rem}
  .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
  .detail{min-height:92px;padding:.65rem}
  .detail strong{font-size:.74rem}
  .card-actions{align-items:stretch;flex-direction:column}
  .feedback{width:100%}
  .feedback button{flex:1;min-height:42px}
  .source-link{width:100%;justify-content:center}

  .site-footer{
    min-height:auto;
    padding:1.65rem 1rem;
    gap:1.1rem;
    flex-direction:row;
    align-items:flex-end;
    justify-content:space-between;
  }
  .site-footer>div:first-child small{
    display:block;
    max-width:220px;
    font-size:.7rem;
    line-height:1.35;
  }
  .creator{
    text-align:right;
    flex:0 0 auto;
  }
  .creator small{
    display:block;
    font-size:.66rem;
  }
  .creator strong{font-size:1.08rem}
}

@media(max-width:430px){
  .site-header{width:calc(100% - 1.5rem);margin:0 .75rem}
  .hero{width:calc(100% - 1.5rem);margin:0 .75rem;padding:1.6rem 0 1.8rem}
  .hero-copy h1{font-size:clamp(2.3rem,12.5vw,3rem)}
  .search-card{padding:1rem}
  .card-heading h2{font-size:1.52rem}
  .site-footer{padding:1.4rem .9rem}
  .site-footer>div:first-child small{max-width:180px}
}

@media(max-width:360px){
  .chips{grid-template-columns:1fr}
  .chips button:last-child{grid-column:auto}
  .detail-grid{grid-template-columns:1fr}
  .site-footer{flex-direction:column;align-items:flex-start}
  .creator{text-align:left}
}
