/* NUYU Care v88｜托育機構查詢 */
.institution-page{padding:0 0 18px}
.institution-page.is-hidden{display:none!important}
body.app-institution-mode [data-page="finder"],
body.app-institution-mode .mobile-filter-fab{display:none!important}

.institution-hero,
.institution-search-card,
.institution-results-panel,
.institution-source-panel{
  background:#fff;
  border:1px solid rgba(93,165,132,.20);
  border-radius:22px;
  box-shadow:0 12px 30px rgba(76,137,111,.10);
}
.institution-hero{
  position:relative;
  overflow:hidden;
  padding:24px;
  margin:2px 0 14px;
  background:#fff;
}
.institution-hero:after{
  content:"";position:absolute;right:-46px;top:-54px;width:170px;height:170px;border-radius:50%;
  background:radial-gradient(circle,rgba(106,189,146,.08),rgba(106,189,146,0) 68%);
}
.institution-kicker{font-size:12px;font-weight:900;letter-spacing:1.2px;color:#4b9b75;text-transform:uppercase}
.institution-title{margin:5px 0 6px;font-size:clamp(25px,5vw,34px);line-height:1.2;color:#2f463b}
.institution-desc{margin:0;max-width:720px;color:#6e7f77;font-size:14px;font-weight:650}
.institution-hero-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.institution-hero-badge{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:#fff;border:1px solid rgba(93,165,132,.18);font-size:12px;font-weight:850;color:#547064}

.institution-search-card{padding:18px;margin-bottom:14px}
.institution-search-title{margin:0 0 12px;font-size:18px;color:#334a40}
.institution-search-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(150px,.75fr) minmax(150px,.75fr);gap:10px}
.institution-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.institution-field label{font-size:12px;font-weight:900;color:#688076}
.institution-input,.institution-select{
  width:100%;height:48px;padding:0 13px;border:1px solid rgba(93,165,132,.26);border-radius:14px;
  background:#fbfffd;color:#33443d;font-size:15px;font-weight:700;outline:none;
}
.institution-input:focus,.institution-select:focus{border-color:#62ad87;box-shadow:0 0 0 3px rgba(98,173,135,.13);background:#fff}
.institution-options{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:12px}
.institution-filter-groups{display:flex;gap:12px;flex-wrap:wrap}
.institution-filter-block{min-width:0}
.institution-filter-label{display:block;margin:0 0 6px;font-size:12px;font-weight:900;color:#688076}
.institution-segment{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;background:#f1f8f4;border:1px solid rgba(93,165,132,.16);border-radius:13px;padding:3px;gap:3px}
.institution-segment button{border:0;background:transparent;border-radius:10px;padding:9px 12px;color:#6c7d75;font-size:13px;font-weight:900;white-space:nowrap;cursor:pointer}
.institution-segment button.active{background:#fff;color:#347c5b;box-shadow:0 3px 10px rgba(61,126,94,.12)}
.institution-search-btn{height:48px;min-width:128px;border:0;border-radius:14px;background:linear-gradient(135deg,#5eaf84,#438f69);color:#fff;font-size:15px;font-weight:950;box-shadow:0 8px 18px rgba(67,143,105,.22);cursor:pointer}
.institution-search-btn:disabled{opacity:.55;cursor:wait}
.institution-helper{margin:11px 0 0;font-size:12px;color:#8a9892;font-weight:650}
.institution-quick-cities{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.institution-city-chip{border:1px solid rgba(93,165,132,.20);background:#fff;color:#587268;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:850;cursor:pointer}
.institution-city-chip:hover{background:#f1faf5;color:#347c5b}

.institution-results-panel{padding:17px;min-height:280px}
.institution-result-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.institution-result-title{margin:0;font-size:18px;color:#334a40}
.institution-result-note{margin:3px 0 0;color:#84928c;font-size:12px;font-weight:650}
.institution-count{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:5px 10px;border-radius:999px;background:#edf8f2;color:#3f8462;font-size:12px;font-weight:950;white-space:nowrap}
.institution-view-switch{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px;padding-bottom:12px;border-bottom:1px solid rgba(93,165,132,.12)}
.institution-view-tabs{display:inline-grid;grid-auto-flow:column;background:#f3f7f5;border-radius:12px;padding:3px;gap:2px}
.institution-view-btn{border:0;background:transparent;border-radius:9px;padding:8px 11px;color:#73837c;font-weight:900;font-size:12px;cursor:pointer}
.institution-view-btn.active{background:#fff;color:#347c5b;box-shadow:0 2px 8px rgba(59,102,82,.12)}
.institution-legend{font-size:11px;color:#83918b;font-weight:750}
.institution-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin:0 3px 0 8px;vertical-align:-1px}
.institution-legend i:first-child{margin-left:0}.institution-legend .baby{background:#61ad83}.institution-legend .school{background:#6c9ee8}.institution-legend .penalty{background:#fff;border:2px solid #e27171}

.institution-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.institution-card{position:relative;border:1px solid rgba(80,137,111,.16);border-radius:17px;background:#fff;padding:15px;min-width:0;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;cursor:pointer}
.institution-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(61,113,88,.10);border-color:rgba(80,137,111,.30)}
.institution-card.has-penalty{border-color:rgba(218,102,102,.34)}
.institution-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.institution-card-name{margin:0;font-size:16px;line-height:1.45;color:#33443d;overflow-wrap:anywhere}
.institution-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.institution-tag{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#eff8f3;color:#4d7a64;font-size:11px;font-weight:900}
.institution-tag.kindergarten{background:#eef4ff;color:#5579ac}.institution-tag.penalty{background:#fff1f1;color:#b55252}.institution-tag.closed{background:#f2f2f2;color:#777}
.institution-card-address{margin:11px 0 0;color:#6f7e77;font-size:13px;font-weight:650;line-height:1.55}
.institution-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}
.institution-stat{background:#f8fbf9;border-radius:12px;padding:8px;text-align:center;min-width:0}
.institution-stat strong{display:block;color:#375246;font-size:15px;line-height:1.2;overflow:hidden;text-overflow:ellipsis}
.institution-stat span{display:block;margin-top:3px;color:#89958f;font-size:10px;font-weight:800;white-space:nowrap}
.institution-card-actions{display:flex;gap:7px;margin-top:12px}
.institution-card-btn{flex:1;border:0;border-radius:11px;padding:9px 8px;font-size:12px;font-weight:900;cursor:pointer;text-decoration:none;text-align:center}
.institution-card-btn.primary{background:#eaf7f0;color:#357b59}.institution-card-btn.secondary{background:#f4f5f5;color:#65736d}

.institution-map-wrap,.institution-google-wrap{display:none}
.institution-map-wrap.active,.institution-google-wrap.active{display:block}
#institutionMap{height:min(62vh,560px);min-height:410px;border-radius:16px;overflow:hidden;background:#eef4f0;border:1px solid rgba(80,137,111,.14)}
.institution-google-frame{width:100%;height:min(62vh,560px);min-height:410px;border:0;border-radius:16px;background:#f3f5f4}
.institution-map-message{padding:40px 18px;text-align:center;color:#788780;background:#f7faf8;border-radius:16px;font-size:13px;font-weight:750}
.institution-map-popup{min-width:220px;max-width:280px}.institution-map-popup strong{display:block;font-size:14px;color:#34463e;margin-bottom:5px}.institution-map-popup p{margin:0;color:#718078;font-size:12px;line-height:1.5}.institution-map-popup button{width:100%;margin-top:8px;border:0;border-radius:9px;padding:8px;background:#4c9a70;color:#fff;font-weight:900;cursor:pointer}
.leaflet-container{font-family:inherit}

.institution-empty,.institution-loading,.institution-error{grid-column:1/-1;padding:44px 16px;text-align:center;border:1px dashed rgba(93,165,132,.24);border-radius:16px;background:#fbfefc;color:#77867f}
.institution-empty-icon{font-size:32px;margin-bottom:6px}.institution-empty strong,.institution-loading strong,.institution-error strong{display:block;color:#52665d;font-size:15px}.institution-empty p,.institution-loading p,.institution-error p{margin:5px auto 0;max-width:520px;font-size:12px;font-weight:650}
.institution-error{border-color:rgba(218,102,102,.25);background:#fffafa}.institution-error strong{color:#a65252}

.institution-source-panel{margin-top:14px;padding:16px}
.institution-source-title{margin:0 0 9px;font-size:15px;color:#3f554b}
.institution-source-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.institution-source-link{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:13px;background:#f8fbf9;color:#4f665b;text-decoration:none;font-size:12px;font-weight:900;border:1px solid rgba(80,137,111,.12)}
.institution-warning{margin:11px 0 0;color:#8a958f;font-size:11px;font-weight:650;line-height:1.65}

.institution-detail-mask{position:fixed;inset:0;background:rgba(37,50,44,.38);z-index:990;opacity:0;pointer-events:none;transition:opacity .2s ease}
.institution-detail-mask.open{opacity:1;pointer-events:auto}
.institution-detail-drawer{position:fixed;z-index:991;right:0;top:0;bottom:0;width:min(520px,100%);background:#fff;transform:translateX(102%);transition:transform .25s ease;box-shadow:-15px 0 40px rgba(29,56,43,.18);display:flex;flex-direction:column}
.institution-detail-drawer.open{transform:translateX(0)}
.institution-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 13px;border-bottom:1px solid rgba(80,137,111,.13)}
.institution-detail-head h3{margin:0;color:#30463b;font-size:20px;line-height:1.4}
.institution-detail-close{flex:0 0 auto;width:38px;height:38px;border:0;border-radius:50%;background:#f1f5f3;color:#5b6f65;font-size:24px;line-height:1;cursor:pointer}
.institution-detail-body{padding:16px 18px 28px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.institution-detail-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:13px}
.institution-detail-section{border:1px solid rgba(80,137,111,.13);border-radius:15px;padding:13px;margin-bottom:11px;background:#fff}
.institution-detail-section h4{margin:0 0 9px;font-size:14px;color:#3d584b}
.institution-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.institution-detail-item{background:#f8fbf9;border-radius:11px;padding:9px;min-width:0}
.institution-detail-item span{display:block;color:#8a9690;font-size:10px;font-weight:850}.institution-detail-item strong{display:block;margin-top:2px;color:#43564d;font-size:13px;overflow-wrap:anywhere}
.institution-detail-address{margin:0;color:#64766d;font-size:13px;font-weight:700;line-height:1.65}
.institution-penalty-ok{padding:11px;border-radius:12px;background:#eef9f3;color:#3e795b;font-size:12px;font-weight:850}
.institution-penalty-alert{padding:11px;border-radius:12px;background:#fff3f3;color:#9d4d4d;font-size:12px;font-weight:850}
.institution-penalty-record{margin-top:8px;padding:10px;border-radius:11px;background:#fffafa;border:1px solid rgba(218,102,102,.16);font-size:12px;color:#6a5a5a;line-height:1.6;overflow-wrap:anywhere}
.institution-detail-map{width:100%;height:250px;border:0;border-radius:13px;background:#f2f4f3}
.institution-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.institution-detail-action{display:flex;align-items:center;justify-content:center;min-height:43px;border-radius:12px;text-decoration:none;font-size:13px;font-weight:950;background:#eaf7f0;color:#347a59;border:0;cursor:pointer;text-align:center}.institution-detail-action.secondary{background:#f2f4f3;color:#617069}

@media(max-width:720px){
  .app-page-nav{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .app-page-nav .page-tab-btn:nth-child(n){grid-column:span 2!important}
  .institution-hero{padding:20px 17px;border-radius:19px}.institution-search-card,.institution-results-panel{padding:14px;border-radius:19px}
  .institution-search-grid{grid-template-columns:1fr 1fr}.institution-field.keyword{grid-column:1/-1}
  .institution-options{grid-template-columns:1fr}.institution-search-btn{width:100%}
  .institution-filter-groups{display:grid;grid-template-columns:1fr;gap:9px}.institution-segment{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.institution-segment button{padding:9px 6px}
  .institution-result-head{align-items:flex-start}.institution-view-switch{align-items:flex-start;flex-direction:column}.institution-legend{line-height:1.8}
  .institution-list{grid-template-columns:1fr}.institution-card{padding:14px}.institution-card:hover{transform:none}
  #institutionMap,.institution-google-frame{height:56vh;min-height:390px}
  .institution-source-links{grid-template-columns:1fr}
  .institution-detail-drawer{top:auto;height:min(88vh,760px);width:100%;border-radius:22px 22px 0 0;transform:translateY(102%)}.institution-detail-drawer.open{transform:translateY(0)}
  .institution-detail-grid{grid-template-columns:1fr 1fr}.institution-detail-body{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
}
@media(max-width:390px){
  .institution-search-grid{grid-template-columns:1fr}.institution-field.keyword{grid-column:auto}.institution-detail-grid{grid-template-columns:1fr}.institution-stats{gap:5px}.institution-stat{padding:7px 4px}
}


/* v89 hierarchy refinement */
.institution-page{background:#fff;padding:2px 0 30px}
.institution-search-card{background:#ffffff;border:1px solid rgba(72,132,104,.18);box-shadow:0 10px 26px rgba(64,111,88,.06)}
.institution-results-panel{background:#ffffff;border:1px solid rgba(72,132,104,.18);box-shadow:0 12px 28px rgba(64,111,88,.07)}
.institution-search-title,.institution-result-title,.institution-source-title{color:#234736;font-weight:950}
.institution-desc{color:#4b6459}
.institution-helper,.institution-result-note,.institution-warning{color:#6e8078}
.institution-field label,.institution-filter-label{color:#456556;font-weight:900}
.institution-input,.institution-select{background:#f9fcfa;border:1px solid rgba(76,137,109,.22)}
.institution-input:focus,.institution-select:focus{border-color:#4f9b73;box-shadow:0 0 0 4px rgba(79,155,115,.12)}
.institution-segment{background:#edf5f0;border:1px solid rgba(79,155,115,.12)}
.institution-segment button{color:#587267;font-weight:900}
.institution-segment button.active{background:#4d9a70;color:#fff;box-shadow:0 4px 12px rgba(77,154,112,.22)}
.institution-search-btn{background:linear-gradient(180deg,#59ad7e 0%,#429566 100%);box-shadow:0 12px 24px rgba(66,149,102,.24)}
.institution-search-btn:hover{transform:translateY(-1px)}
.institution-count{background:#e5f4ea;color:#2f7754;font-size:13px}
.institution-view-tabs{background:#eef4f0;border:1px solid rgba(79,155,115,.14)}
.institution-view-btn{color:#62776d;font-weight:900}
.institution-view-btn.active{background:#ffffff;color:#2f7b57;box-shadow:0 4px 12px rgba(60,106,83,.14)}
.institution-card{border:1px solid rgba(72,132,104,.18);box-shadow:0 6px 18px rgba(67,113,90,.05)}
.institution-card.has-penalty{border-color:rgba(214,95,95,.34);box-shadow:0 8px 22px rgba(214,95,95,.08)}
.institution-card-name{color:#264636;font-weight:950}
.institution-card-address{color:#61766c}
.institution-stat{border:1px solid rgba(79,155,115,.10)}
.institution-stat:nth-child(1){background:#eef8f2}
.institution-stat:nth-child(2){background:#f7fbf9}
.institution-stat:nth-child(3){background:#f3f7fc}
.institution-stat strong{color:#284739;font-size:24px;font-weight:950}
.institution-stat span{color:#72857b;font-size:11px}
.institution-card-btn.primary{background:#e5f4ea;color:#2f7b57}
.institution-card-btn.secondary{background:#f1f4f2;color:#5e7067}
.institution-detail-drawer{background:#f8fbf9}
.institution-detail-head{background:#ffffff}
.institution-detail-head h3{color:#234736;font-weight:950}
.institution-detail-section{background:#ffffff;border:1px solid rgba(72,132,104,.14);box-shadow:0 4px 12px rgba(67,113,90,.04)}
.institution-detail-section h4{color:#2e5442;font-weight:950}
.institution-detail-item{background:#f6fbf8;border:1px solid rgba(79,155,115,.10)}
.institution-detail-item span{color:#7b8f85;font-size:11px}
.institution-detail-item strong{color:#314b3f;font-size:14px;font-weight:900}
.institution-penalty-ok{background:#e8f7ee;color:#2e7752}
.institution-penalty-alert{background:#fff1f1;color:#9d4d4d}
