:root{--primary: #0066cc;--primary-dark: #004499;--bg: #f5f6f8;--card-bg: #ffffff;--text: #1a1a1a;--text-muted: #666;--border: #ddd;--accent: #e85d04;--radius: 8px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.app{display:flex;flex-direction:column;height:100vh}.app-header{background:var(--card-bg);border-bottom:1px solid var(--border);padding:.75rem 1.5rem;display:flex;align-items:center;gap:2rem;flex-shrink:0}.app-header h1{font-size:1.25rem;font-weight:600;color:var(--primary-dark);white-space:nowrap}.nav{display:flex;gap:.5rem}.nav-link{padding:.4rem 1rem;border-radius:var(--radius);text-decoration:none;color:var(--text-muted);font-weight:500;transition:all .15s}.nav-link:hover{background:var(--bg);color:var(--text)}.nav-link.active{background:var(--primary);color:#fff}.app-main{flex:1;overflow:hidden;position:relative}.app-footer{flex-shrink:0;background:var(--card-bg);border-top:1px solid var(--border);padding:.5rem 1.5rem;display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-muted)}.app-footer a{color:var(--primary);text-decoration:none;font-weight:500}.app-footer a:hover{text-decoration:underline}.app-footer-sep{opacity:.5}.map-container{width:100%;height:100%}.map-page-wrap{display:flex;height:100%;position:relative}.map-sidebar{width:300px;flex-shrink:0;background:var(--card-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.map-sidebar-header{padding:.75rem;border-bottom:1px solid var(--border)}.map-sidebar-header-top{display:flex;gap:.5rem;align-items:center}.map-sidebar-close{display:none;flex-shrink:0;background:none;border:1px solid var(--border);border-radius:var(--radius);width:34px;height:34px;font-size:.9rem;cursor:pointer;color:var(--text-muted)}.map-sidebar-close:hover{background:var(--bg);color:var(--accent)}.map-search-input{width:100%;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem}.map-sidebar-toggle{display:none}@media (max-width: 768px){.map-page-wrap{flex-direction:column}.map-sidebar-toggle{display:block;position:absolute;top:.5rem;left:.5rem;z-index:500;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:.45rem .75rem;font-size:.82rem;font-weight:600;color:var(--primary-dark);cursor:pointer;box-shadow:0 2px 6px #0000001f}.map-sidebar{position:absolute;top:0;left:0;width:85%;max-width:320px;height:100%;z-index:600;transform:translate(-100%);transition:transform .2s ease;box-shadow:4px 0 12px #00000026}.map-sidebar.open{transform:translate(0)}.map-sidebar-close{display:block}.map-search-input{font-size:16px}}.school-popup{min-width:220px}.school-popup h3{font-size:1rem;margin-bottom:.3rem;color:var(--primary-dark)}.school-popup .school-meta{font-size:.85rem;color:var(--text-muted);margin-bottom:.5rem}.school-popup a{color:var(--primary);text-decoration:none;font-size:.85rem}.school-popup a:hover{text-decoration:underline}.calendar-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.cal-type-filter{display:flex;gap:.4rem;padding:.5rem 1.5rem;background:var(--card-bg);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0}.cal-type-chip{padding:.2rem .7rem;border-radius:12px;font-size:.78rem;font-weight:500;border:1px solid;background:var(--card-bg);cursor:pointer;transition:all .15s}.cal-type-chip:hover{opacity:.85}.cal-type-chip.active{color:#fff}.cal-type-clear{padding:.2rem .6rem;border-radius:12px;font-size:.78rem;border:1px solid var(--border);background:var(--bg);cursor:pointer;color:var(--text-muted)}.cal-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.cal-empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.cal-empty-state h3{font-size:1.2rem;margin-bottom:.5rem;color:var(--text)}.cal-empty-state p{color:var(--text-muted);font-size:.9rem;margin-bottom:.3rem;max-width:400px}.cal-empty-hint{margin-top:.5rem}.cal-empty-hint a{color:var(--primary);text-decoration:none}.cal-empty-hint a:hover{text-decoration:underline}.cal-list-section-header{font-size:.85rem;font-weight:600;color:var(--primary);text-transform:uppercase;letter-spacing:.03em;padding:.75rem 0 .25rem;margin-top:.5rem}.cal-list-section-header.cal-list-past{color:var(--text-muted)}.cal-list-more-past{text-align:center;color:var(--text-muted);font-size:.82rem;padding:.5rem 0}.event-card-past{opacity:.6}.event-type-badge{display:inline-block;padding:.1rem .5rem;border-radius:8px;font-size:.75rem;font-weight:600;margin:.2rem 0}.calendar-toolbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:var(--card-bg);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.calendar-toolbar h2{font-size:1.1rem;font-weight:600;min-width:180px}.cal-nav-btn{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:.35rem .8rem;cursor:pointer;font-size:.9rem;transition:all .15s}.cal-nav-btn:hover{background:var(--bg);border-color:var(--primary)}.view-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-left:auto}.view-toggle button{background:var(--card-bg);border:none;padding:.4rem 1rem;cursor:pointer;font-size:.9rem;transition:all .15s}.view-toggle button.active{background:var(--primary);color:#fff}.calendar-month{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--card-bg)}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border);flex-shrink:0}.cal-weekday{padding:.5rem;text-align:center;font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase}.cal-grid{flex:1;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;overflow:auto}.cal-day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:.3rem;min-height:70px;font-size:.8rem;position:relative;overflow:hidden}.cal-day.other-month{background:var(--bg);color:var(--text-muted)}.cal-day.today{background:#eef6ff}.cal-day-num{font-weight:600;margin-bottom:.2rem}.cal-event{background:var(--accent);color:#fff;border-radius:3px;padding:.1rem .3rem;margin-bottom:.15rem;font-size:.72rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .15s}.cal-event:hover{opacity:.85}.calendar-list{flex:1;overflow:auto;padding:1rem 1.5rem}.event-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:.75rem;display:flex;gap:1.25rem;align-items:flex-start;transition:box-shadow .15s}.event-card:hover{box-shadow:0 2px 8px #00000014}.event-date{flex-shrink:0;text-align:center;min-width:64px}.event-date .day{font-size:1.75rem;font-weight:700;color:var(--primary);line-height:1}.event-date .month{font-size:.8rem;text-transform:uppercase;color:var(--text-muted);margin-top:.2rem}.event-date .time{font-size:.75rem;color:var(--text-muted);margin-top:.3rem}.event-info{flex:1}.event-info h3{font-size:1rem;margin-bottom:.25rem}.event-info .school-name{font-size:.9rem;color:var(--primary);margin-bottom:.25rem}.event-info .event-desc{font-size:.85rem;color:var(--text-muted)}.event-info a{font-size:.85rem;color:var(--primary);text-decoration:none}.event-info a:hover{text-decoration:underline}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--card-bg);border-radius:var(--radius);padding:1.5rem;max-width:480px;width:90%;box-shadow:0 4px 24px #00000026}.modal h3{margin-bottom:.75rem;color:var(--primary-dark)}.modal .modal-row{margin-bottom:.5rem;font-size:.9rem}.modal .modal-label{font-weight:600;color:var(--text-muted);display:inline-block;min-width:80px}.modal .modal-close{margin-top:1rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);padding:.5rem 1.5rem;cursor:pointer;font-size:.9rem}.leaflet-container{z-index:1}@media (max-width: 640px){.app-header{flex-direction:column;align-items:stretch;gap:.3rem;padding:.4rem .6rem}.app-header h1{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav{gap:.2rem;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.nav-link{padding:.3rem .5rem;font-size:.78rem;white-space:nowrap;flex-shrink:0}.nav-badge{font-size:.6rem;padding:.02rem .25rem}.app-footer{padding:.35rem .6rem;font-size:.7rem;gap:.3rem;flex-wrap:wrap}.calendar-toolbar{padding:.5rem .6rem;gap:.4rem}.calendar-toolbar h2{font-size:.95rem;min-width:auto}.view-toggle{margin-left:0}.view-toggle button{padding:.35rem .6rem;font-size:.82rem}.cal-day{min-height:45px;font-size:.65rem;padding:.15rem}.cal-day-num{font-size:.7rem}.cal-event{font-size:.6rem;padding:.05rem .2rem}.cal-weekday{font-size:.65rem;padding:.3rem 0}.cal-type-filter{padding:.4rem .6rem;gap:.3rem}.cal-type-chip{font-size:.7rem;padding:.15rem .5rem}.calendar-list{padding:.5rem .6rem}.event-card{padding:.6rem .75rem;gap:.6rem}.event-date .day{font-size:1.3rem}.event-info h3{font-size:.9rem}.modal{padding:1rem;width:94%;max-height:85vh;overflow-y:auto}.school-popup{min-width:180px}.impressum-content{padding:1rem .75rem 2rem}.impressum-content h1{font-size:1.3rem}}.impressum-page{height:100%;overflow:auto;background:var(--bg)}.impressum-content{max-width:720px;margin:0 auto;padding:2rem 1.5rem 3rem;background:var(--card-bg);min-height:100%}.impressum-content h1{font-size:1.6rem;font-weight:700;color:var(--primary-dark);margin-bottom:1.5rem}.impressum-content h2{font-size:1.15rem;font-weight:600;color:var(--text);margin-top:1.5rem;margin-bottom:.5rem}.impressum-content h3{font-size:.95rem;font-weight:600;color:var(--primary-dark);margin-top:1rem;margin-bottom:.3rem}.impressum-content p{font-size:.88rem;line-height:1.6;color:var(--text);margin-bottom:.5rem}.impressum-content a{color:var(--primary);text-decoration:none}.impressum-content a:hover{text-decoration:underline}.impressum-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--text-muted);text-align:center}.nav-badge{display:inline-block;background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;padding:.05rem .35rem;border-radius:8px;margin-left:.3rem;vertical-align:middle}.nav-link.active .nav-badge{background:#fff;color:var(--primary)}.search-compare-btn{flex-shrink:0;background:none;border:1px solid var(--border);border-radius:6px;width:28px;height:28px;font-size:.85rem;cursor:pointer;color:var(--text-muted);transition:all .15s;margin-bottom:.2rem}.search-compare-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.search-compare-btn.active{background:#2a9d8f;border-color:#2a9d8f;color:#fff}.search-compare-btn:disabled{opacity:.4;cursor:not-allowed}.compare-page{height:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.compare-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--card-bg);border-bottom:1px solid var(--border);flex-shrink:0}.compare-toolbar h2{font-size:1.1rem;font-weight:600;color:var(--primary-dark)}.compare-clear-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);padding:.3rem .8rem;font-size:.82rem;color:var(--accent);cursor:pointer;transition:all .15s}.compare-clear-btn:hover{background:#fff0e6;border-color:var(--accent)}.compare-scroll{flex:1;overflow:auto;padding:0}.compare-table-wrap{display:inline-block;min-width:100%}.compare-table{border-collapse:collapse;width:100%;font-size:.82rem;background:var(--card-bg)}.compare-col-label{width:140px;min-width:140px;position:sticky;left:0;z-index:2;background:var(--card-bg)}.compare-col-school{min-width:220px;max-width:320px}.compare-corner-cell{background:var(--bg);border-bottom:2px solid var(--border);position:sticky;left:0;z-index:3}.compare-school-header{padding:.5rem .75rem;border-bottom:2px solid var(--border);text-align:left;vertical-align:top}.compare-school-header-inner{display:flex;align-items:center;gap:.4rem}.compare-type-dot{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;color:#fff;font-size:10px;font-weight:700;flex-shrink:0}.compare-school-name{font-size:.88rem;font-weight:600;color:var(--text);text-decoration:none;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compare-school-name:hover{color:var(--primary);text-decoration:underline}.compare-remove-btn{flex-shrink:0;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:.1rem .25rem;border-radius:4px;transition:all .15s}.compare-remove-btn:hover{color:var(--accent);background:#fff0e6}.compare-school-subtitle{font-size:.75rem;color:var(--text-muted);margin-top:.2rem;padding-left:1.6rem}.compare-section-header th{background:#f0f4f8;padding:.4rem .75rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--primary-dark);border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left}.compare-row{border-bottom:1px solid #f0f0f0}.compare-row:hover{background:#fafbfc}.compare-label-cell{padding:.4rem .75rem;font-weight:600;color:var(--text-muted);font-size:.8rem;vertical-align:top;position:sticky;left:0;z-index:1;background:var(--card-bg);border-right:1px solid var(--border)}.compare-row:hover .compare-label-cell{background:#fafbfc}.compare-data-cell{padding:.4rem .6rem;vertical-align:top;font-size:.82rem;border-right:1px solid #f0f0f0}.compare-highlight{font-weight:600;color:var(--primary)}.compare-muted{color:var(--text-muted)}.compare-tags{display:flex;flex-wrap:wrap;gap:.25rem}.compare-tag{background:var(--bg);padding:.1rem .45rem;border-radius:8px;font-size:.74rem;color:var(--text-muted)}.compare-tag-lang{background:#e8f1ff;color:var(--primary)}.compare-rating-cell{vertical-align:top}.compare-rating-cell .compare-strength-pill,.compare-rating-cell .compare-rating-access{display:block}.compare-strength-pill{display:inline-block;padding:.1rem .5rem;border-radius:8px;font-size:.75rem;font-weight:600;border:1px solid;width:fit-content}.compare-strength-pill.compare-best{box-shadow:0 0 0 2px #2a9d8f4d;font-weight:700}.compare-rating-access{font-size:.7rem;color:var(--text-muted)}.compare-strengths-list{list-style:none;padding:0;margin:0}.compare-strengths-list li{font-size:.78rem;padding:.15rem 0 .15rem .7rem;position:relative;line-height:1.4}.compare-strengths-list li:before{content:"★";position:absolute;left:0;color:var(--accent);font-size:.65rem}.compare-fit-text{font-size:.78rem;line-height:1.5;margin:0}.compare-fit-positive{color:#1a6b3c}.compare-fit-negative{color:#8b4513}.compare-add-hint{padding:1rem 1.5rem;text-align:center;flex-shrink:0}.compare-add-link{display:inline-block;padding:.5rem 1.5rem;background:var(--primary);color:#fff;border-radius:var(--radius);text-decoration:none;font-size:.88rem;font-weight:500;transition:opacity .15s}.compare-add-link:hover{opacity:.9}.compare-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.compare-empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.compare-empty h2{font-size:1.3rem;margin-bottom:.5rem;color:var(--text)}.compare-empty p{color:var(--text-muted);font-size:.92rem;margin-bottom:.3rem;max-width:400px}.compare-empty-hint{margin-top:.5rem}.compare-empty-hint a{color:var(--primary);text-decoration:none;font-weight:500}.compare-empty-hint a:hover{text-decoration:underline}@media (max-width: 768px){.compare-col-label{width:90px;min-width:90px}.compare-col-school{min-width:160px;max-width:200px}.compare-table{font-size:.72rem}.compare-toolbar{padding:.5rem .6rem}.compare-toolbar h2{font-size:.95rem}.compare-school-name{font-size:.78rem}.compare-school-subtitle{font-size:.68rem;padding-left:1.4rem}.compare-label-cell,.compare-data-cell{font-size:.72rem;padding:.3rem .4rem}.compare-strength-pill{font-size:.68rem;padding:.05rem .35rem}.compare-rating-access{font-size:.62rem}.compare-tag{font-size:.66rem}.compare-fit-text,.compare-strengths-list li{font-size:.7rem}}.search-page{display:flex;height:100%;overflow:hidden}.search-sidebar{width:320px;flex-shrink:0;background:var(--card-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.search-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}.search-sidebar-header h2{font-size:1.1rem;font-weight:600;color:var(--primary-dark)}.search-reset-btn{background:none;border:1px solid var(--border);border-radius:var(--radius);padding:.25rem .6rem;font-size:.78rem;color:var(--accent);cursor:pointer;transition:all .15s}.search-reset-btn:hover{background:#fff0e6;border-color:var(--accent)}.search-sidebar-scroll{flex:1;overflow-y:auto;padding:.5rem 0}.filter-group{padding:.5rem 1rem;border-bottom:1px solid #f0f0f0}.filter-group-label{font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.4rem}.filter-group-label.collapsible{cursor:pointer;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none}.filter-group-label.collapsible:hover{color:var(--text)}.filter-toggle{font-size:.7rem}.filter-group-content{display:flex;flex-direction:column;gap:.15rem}.filter-text-input{width:100%;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.88rem}.filter-text-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #0066cc1a}.filter-checkbox-row{display:flex;align-items:center;gap:.4rem;font-size:.84rem;cursor:pointer;padding:.18rem 0;transition:opacity .15s}.filter-checkbox-row:hover{opacity:.85}.filter-checkbox-row input[type=checkbox]{margin:0;flex-shrink:0}.filter-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.filter-checkbox-label{flex:1}.filter-checkbox-count{color:var(--text-muted);font-size:.75rem;flex-shrink:0}.filter-range{display:flex;align-items:center;gap:.5rem}.filter-number-input{width:70px;padding:.3rem .4rem;border:1px solid var(--border);border-radius:4px;font-size:.82rem}.filter-rating-hint{font-size:.75rem;color:var(--text-muted);font-style:italic;margin-bottom:.4rem}.filter-rating-row{margin-bottom:.3rem}.filter-rating-select{width:100%;padding:.3rem .4rem;border:1px solid var(--border);border-radius:4px;font-size:.8rem;background:var(--card-bg);cursor:pointer}.filter-rating-select:focus{outline:none;border-color:var(--primary)}.filter-show-more{background:none;border:none;color:var(--primary);font-size:.78rem;cursor:pointer;padding:.3rem 0;text-decoration:underline}.search-results{flex:1;overflow-y:auto;background:var(--bg)}.search-results-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--card-bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.search-results-count{font-size:.95rem}.search-results-count strong{color:var(--primary);font-size:1.1rem}.search-sort{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.search-sort select{padding:.25rem .5rem;border:1px solid var(--border);border-radius:4px;font-size:.85rem;background:var(--card-bg)}.search-result-list{padding:1rem 1.5rem}.search-result-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;overflow:hidden;transition:box-shadow .15s}.search-result-card:hover{box-shadow:0 2px 8px #0000000f}.search-result-main{display:flex;gap:.75rem;padding:.85rem 1rem;cursor:pointer;align-items:flex-start}.search-result-type-badge{flex-shrink:0;width:28px;height:28px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.search-result-info{flex:1;min-width:0}.search-result-name{font-size:.95rem;font-weight:600;margin-bottom:.2rem}.search-result-name a{color:var(--text);text-decoration:none}.search-result-name a:hover{color:var(--primary);text-decoration:underline}.search-result-meta{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-muted);flex-wrap:wrap;margin-bottom:.4rem}.search-result-girls{color:#e83e8c;font-weight:600}.search-result-tags{display:flex;flex-wrap:wrap;gap:.3rem}.search-result-tag{background:var(--bg);padding:.1rem .5rem;border-radius:10px;font-size:.74rem;color:var(--text-muted)}.search-result-tag-lang{background:#e8f1ff;color:var(--primary)}.search-result-tag-gt{background:#e8f7f5;color:#2a9d8f}.search-result-tag-daz{background:#fff0e6;color:var(--accent)}.search-result-strengths{display:flex;flex-direction:column;gap:.2rem;flex-shrink:0;align-items:flex-end}.search-strength-badge{padding:.1rem .5rem;border-radius:8px;font-size:.72rem;font-weight:600;border:1px solid;white-space:nowrap}.search-result-expanded{padding:.5rem 1rem 1rem;border-top:1px solid #f0f0f0;margin-left:42px}.search-ratings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.4rem;margin-bottom:1rem}.search-rating-cell{border-left:3px solid;padding:.2rem 0 .2rem .5rem;display:flex;flex-direction:column;gap:.1rem}.search-rating-dim,.search-rating-level{font-size:.78rem;font-weight:600}.search-rating-access{font-size:.7rem;color:var(--text-muted)}.search-strengths-section,.search-exchanges,.search-ec-cats,.search-bestfit{margin-bottom:.85rem}.search-strengths-section h4,.search-exchanges h4,.search-ec-cats h4,.search-bestfit h4{font-size:.85rem;font-weight:600;color:var(--primary-dark);margin-bottom:.3rem}.search-strengths-section ul{list-style:none;padding:0}.search-strengths-section li{font-size:.82rem;color:var(--text);padding:.15rem 0 .15rem .8rem;position:relative}.search-strengths-section li:before{content:"★";position:absolute;left:0;color:var(--accent);font-size:.7rem}.search-partnerships{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem}.search-partner-tag{background:var(--bg);padding:.15rem .6rem;border-radius:10px;font-size:.78rem;color:var(--text)}.search-exchange-row{display:flex;gap:.75rem;font-size:.82rem;padding:.15rem 0}.search-exchange-dest{font-weight:600}.search-exchange-grade{color:var(--primary)}.search-exchange-type{color:var(--text-muted)}.search-ec-tags{display:flex;flex-wrap:wrap;gap:.3rem}.search-ec-tag{background:var(--bg);padding:.1rem .5rem;border-radius:10px;font-size:.74rem;color:var(--text-muted)}.search-bestfit p{font-size:.82rem;line-height:1.5;color:var(--text)}.search-detail-link{display:inline-block;color:var(--primary);text-decoration:none;font-size:.85rem;font-weight:500;margin-top:.3rem}.search-detail-link:hover{text-decoration:underline}.search-empty{text-align:center;padding:3rem 2rem;color:var(--text-muted)}.search-empty p{margin-bottom:1rem;font-size:.95rem}.search-empty button{background:var(--primary);color:#fff;border:none;border-radius:var(--radius);padding:.5rem 1.5rem;cursor:pointer;font-size:.9rem}@media (max-width: 768px){.search-page{flex-direction:column}.search-sidebar{width:100%;max-height:45vh;border-right:none;border-bottom:1px solid var(--border)}.search-ratings-grid{grid-template-columns:1fr}.search-results-header{padding:.5rem .75rem}.search-results-count{font-size:.85rem}.search-results-count strong{font-size:.95rem}.search-result-list{padding:.5rem .6rem}.search-result-main{padding:.6rem .75rem;gap:.5rem}.search-result-expanded{margin-left:0;padding:.4rem .75rem .75rem}.search-result-name{font-size:.88rem}.search-result-meta{font-size:.75rem}.search-strength-badge{font-size:.65rem;padding:.05rem .35rem}.search-compare-btn{width:24px;height:24px;font-size:.75rem}.filter-text-input{font-size:16px}.filter-rating-select{font-size:14px}}.detail-container{height:100%;overflow:auto;background:var(--bg)}.detail-header{background:var(--card-bg);border-bottom:1px solid var(--border);padding:1rem 2rem;position:sticky;top:0;z-index:10}.detail-back-link{color:var(--primary);text-decoration:none;font-size:.85rem;display:inline-block;margin-bottom:.5rem}.detail-back-link:hover{text-decoration:underline}.detail-header h2{font-size:1.4rem;margin-bottom:.4rem;color:var(--text)}.detail-header-meta{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--text-muted);flex-wrap:wrap}.detail-type-badge{color:#fff;padding:.15rem .6rem;border-radius:12px;font-size:.78rem;font-weight:600}.detail-ext-link{color:var(--primary);text-decoration:none;margin-left:auto}.detail-ext-link:hover{text-decoration:underline}.detail-tabs{display:flex;gap:0;background:var(--card-bg);border-bottom:1px solid var(--border);padding:0 2rem;position:sticky;top:88px;z-index:9;overflow-x:auto}.detail-tabs button{background:none;border:none;border-bottom:2px solid transparent;padding:.6rem 1rem;font-size:.88rem;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:all .15s}.detail-tabs button:hover{color:var(--text)}.detail-tabs button.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.detail-content{padding:1.5rem 2rem;max-width:900px;margin:0 auto}.detail-section{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;margin-bottom:1rem}.detail-section-title{font-size:1.05rem;font-weight:600;color:var(--primary-dark);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #eee}.detail-exec-summary{font-size:.92rem;line-height:1.6;color:var(--text)}.detail-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.detail-info-item{font-size:.85rem}.detail-info-label{color:var(--text-muted);font-size:.78rem;margin-bottom:.15rem}.detail-info-value{font-weight:500}.detail-tracks{display:flex;gap:.5rem;margin-bottom:1rem}.detail-track-badge{background:var(--primary);color:#fff;padding:.2rem .8rem;border-radius:12px;font-size:.8rem;font-weight:600}.detail-languages{display:flex;flex-direction:column;gap:.4rem}.detail-language-row{display:flex;align-items:center;gap:.75rem;font-size:.85rem}.detail-lang-name{font-weight:600;min-width:100px}.detail-lang-level{color:var(--text-muted)}.detail-lang-cert{background:#e8f1ff;color:var(--primary);padding:.1rem .5rem;border-radius:8px;font-size:.78rem}.detail-strengths{display:flex;flex-direction:column;gap:.75rem}.detail-strength-card{border-left:3px solid var(--primary);padding:.5rem 0 .5rem 1rem}.detail-strength-title{font-weight:600;font-size:.92rem;margin-bottom:.25rem}.detail-strength-evidence{font-size:.82rem;color:var(--text-muted);line-height:1.5}.detail-limitations{display:flex;flex-direction:column;gap:.5rem}.detail-limitation-row{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.detail-limitation-status{flex-shrink:0}.detail-limitation-text{flex:1}.detail-limitation-tag{font-size:.72rem;color:var(--text-muted);background:var(--bg);padding:.1rem .4rem;border-radius:4px;white-space:nowrap}.detail-fit-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.detail-fit-text{font-size:.88rem;line-height:1.6}.detail-fit-positive{color:#1a6b3c}.detail-fit-negative{color:#8b4513}.detail-events{display:flex;flex-direction:column;gap:.4rem}.detail-event-row{display:flex;align-items:center;gap:.75rem;font-size:.85rem;padding:.4rem 0;border-bottom:1px solid #f0f0f0}.detail-event-date{font-weight:600;color:var(--primary);min-width:120px}.detail-event-time{color:var(--text-muted);font-size:.8rem}.detail-event-title{flex:1}.detail-open-questions{list-style:none;padding:0}.detail-open-questions li{font-size:.85rem;padding:.3rem 0 .3rem 1.2rem;position:relative}.detail-open-questions li:before{content:"?";position:absolute;left:0;color:var(--accent);font-weight:700}.detail-ratings-table{display:flex;flex-direction:column;gap:.75rem}.detail-rating-row{border-bottom:1px solid #f0f0f0;padding-bottom:.75rem}.detail-rating-label{font-weight:600;font-size:.9rem;margin-bottom:.3rem}.detail-rating-badges{display:flex;gap:.4rem;margin-bottom:.4rem;flex-wrap:wrap}.detail-badge{padding:.15rem .6rem;border-radius:10px;font-size:.78rem;font-weight:600}.detail-badge-sm{padding:.1rem .4rem;border-radius:4px;font-size:.72rem;background:var(--bg);color:var(--text-muted)}.detail-rating-summary{font-size:.83rem;line-height:1.5;color:var(--text)}.detail-rating-limits{font-size:.78rem;color:var(--text-muted);margin-top:.25rem;font-style:italic}.detail-exchange-table table{width:100%;border-collapse:collapse;font-size:.82rem}.detail-exchange-table th{text-align:left;padding:.4rem .5rem;border-bottom:2px solid var(--border);color:var(--text-muted);font-size:.75rem;text-transform:uppercase}.detail-exchange-table td{padding:.4rem .5rem;border-bottom:1px solid #f0f0f0}.detail-trips-timeline{display:flex;flex-direction:column;gap:.5rem}.detail-trip-row{display:flex;gap:1rem;align-items:flex-start}.detail-trip-grade{font-weight:600;color:var(--primary);min-width:90px;font-size:.85rem}.detail-trip-dest{font-weight:500;font-size:.88rem}.detail-trip-purpose{font-size:.82rem;color:var(--text-muted)}.detail-trip-meta{font-size:.75rem;color:var(--text-muted);margin-top:.15rem}.detail-partners{display:flex;flex-direction:column;gap:.5rem}.detail-partner-card{border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem}.detail-partner-name{font-weight:600;font-size:.88rem}.detail-access-level{font-size:.75rem;color:var(--primary);background:#e8f1ff;padding:.1rem .4rem;border-radius:4px;display:inline-block;margin:.2rem 0}.detail-partner-desc{font-size:.82rem;color:var(--text-muted)}.detail-unconfirmed{font-size:.72rem;color:var(--accent);margin-left:.5rem}.detail-internship-level{font-size:.88rem}.detail-il-label{font-weight:600;margin-bottom:.4rem}.detail-il-bar{display:flex;gap:4px;margin-bottom:.5rem}.detail-il-segment{flex:1;height:8px;border-radius:2px;background:#e0e0e0}.detail-il-segment.filled{background:var(--primary)}.detail-il-desc{font-size:.82rem;color:var(--text-muted)}.detail-extracurriculars{display:flex;flex-direction:column;gap:.75rem}.detail-ec-category{display:flex;gap:.75rem;align-items:flex-start}.detail-ec-cat-label{font-weight:600;font-size:.82rem;min-width:80px;color:var(--text-muted)}.detail-ec-items{display:flex;flex-wrap:wrap;gap:.4rem}.detail-ec-tag{background:var(--bg);padding:.2rem .6rem;border-radius:12px;font-size:.8rem}.detail-ec-tag em{color:var(--text-muted);font-style:normal;font-size:.72rem}.detail-sources{display:flex;flex-direction:column;gap:.6rem}.detail-source-row{border-bottom:1px solid #f0f0f0;padding-bottom:.5rem}.detail-source-title a{color:var(--primary);text-decoration:none;font-size:.88rem;font-weight:500}.detail-source-title a:hover{text-decoration:underline}.detail-source-meta{display:flex;gap:.4rem;font-size:.75rem;color:var(--text-muted);margin-top:.2rem;flex-wrap:wrap}.detail-source-evidence{background:var(--bg);padding:.05rem .3rem;border-radius:3px;font-weight:600}.detail-last-updated{font-size:.78rem;color:var(--text-muted);margin-top:1rem;text-align:right}.detail-empty{color:var(--text-muted);font-size:.85rem;font-style:italic}.detail-not-found,.detail-no-profile{padding:3rem 2rem;text-align:center}.detail-no-profile-hint{color:var(--text-muted);font-size:.85rem;margin:.5rem 0 1.5rem}.detail-notes{font-size:.85rem;color:var(--text-muted);line-height:1.5}@media (max-width: 640px){.detail-header{padding:.5rem .6rem;position:relative}.detail-header h2{font-size:1.1rem}.detail-header-meta{font-size:.78rem;gap:.4rem}.detail-type-badge{font-size:.72rem;padding:.1rem .45rem}.detail-tabs{padding:0 .5rem;top:0;z-index:10}.detail-tabs button{padding:.5rem .6rem;font-size:.8rem}.detail-content{padding:.6rem}.detail-section{padding:.85rem .75rem;margin-bottom:.6rem}.detail-section-title{font-size:.95rem}.detail-fit-grid,.detail-info-grid{grid-template-columns:1fr}.detail-exchange-table{overflow-x:auto}.detail-lang-name{min-width:80px;font-size:.78rem}.detail-language-row{font-size:.78rem;gap:.4rem}.detail-trip-grade{min-width:70px;font-size:.78rem}.detail-trip-row{gap:.5rem}.detail-ec-cat-label{min-width:65px;font-size:.75rem}}
