:root{--blue:#007aff;--green:#34c759;--orange:#ff9500;--red:#ff3b30;--purple:#af52de;--teal:#30b0c7;--bg:#f2f2f7;--surface:#fff;--label:#1c1c1e;--secondary:#6e6e73;--tertiary:#8e8e93;--separator:rgba(60,60,67,.18);--radius:12px;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Helvetica Neue",sans-serif;color:var(--label);background:var(--bg);font-synthesis:none}
[hidden]{display:none!important}
*{box-sizing:border-box}html,body{margin:0;min-width:320px;min-height:100%;background:var(--bg)}button,input,select{font:inherit;letter-spacing:0}button{cursor:pointer}.app-shell{min-height:100vh;padding-bottom:calc(74px + env(safe-area-inset-bottom))}.app-bar{position:sticky;z-index:20;top:0;height:52px;display:grid;grid-template-columns:90px 1fr 90px;align-items:center;padding:env(safe-area-inset-top) 16px 0;background:rgba(249,249,249,.9);border-bottom:1px solid var(--separator);backdrop-filter:saturate(180%) blur(20px)}.bar-title{text-align:center;font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar-button{border:0;background:none;color:var(--blue);padding:8px 0;font-size:15px}.back-button{text-align:left}.back-button span{font-size:28px;line-height:0;vertical-align:-2px;margin-right:3px}.home-button{text-align:right}main{width:min(820px,100%);margin:0 auto}.screen{display:none;padding:24px 18px 34px}.screen.active{display:block}.home-header{display:flex;align-items:center;gap:16px;padding:14px 4px 27px}.home-header img{border-radius:15px;box-shadow:0 5px 14px rgba(0,0,0,.12)}.home-header p,.screen-heading p{margin:0 0 4px;color:var(--secondary);font-size:13px}.home-header h1,.screen-heading h1{margin:0;font-size:27px;line-height:1.18;letter-spacing:0}.home-header span{display:block;margin-top:7px;color:var(--secondary);font-size:13px}.ios-section>h2{margin:0 4px 10px;color:var(--secondary);font-size:13px;font-weight:400}.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.category-card{min-height:128px;padding:17px;border:0;border-radius:var(--radius);background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04);text-align:left;display:flex;flex-direction:column;justify-content:space-between}.category-card:first-child{grid-column:span 2}.category-card:hover{filter:brightness(.98)}.category-card:active{transform:scale(.985)}.category-icon,.row-icon,.category-badge{display:grid;place-items:center;color:#fff;font-weight:700}.category-icon{width:38px;height:38px;border-radius:9px;font-size:17px}.category-card strong{display:block;margin-top:16px;font-size:17px}.category-card small{display:block;margin-top:4px;color:var(--secondary);font-size:11px;line-height:1.4}.tone-green{background:var(--green)}.tone-blue{background:var(--blue)}.tone-orange{background:var(--orange)}.tone-purple{background:var(--purple)}.tone-teal{background:var(--teal)}.ios-list{margin-top:26px;background:var(--surface);border-radius:var(--radius);overflow:hidden}.ios-row{position:relative;width:100%;min-height:62px;border:0;background:var(--surface);display:flex;align-items:center;gap:12px;padding:10px 15px;text-align:left}.ios-row+.ios-row:before{content:"";position:absolute;top:0;left:60px;right:0;height:1px;background:var(--separator)}button.ios-row:active{background:#e9e9ed}.row-icon{flex:0 0 32px;width:32px;height:32px;border-radius:8px;font-size:16px}.icon-green{background:var(--green)}.icon-orange{background:var(--orange)}.row-content{min-width:0;flex:1;display:grid;gap:3px}.row-content strong{font-size:15px;font-weight:500}.row-content small{color:var(--secondary);font-size:12px;line-height:1.4}.chevron{color:#c7c7cc;font-size:26px}.status-text{color:var(--secondary);font-size:12px}.screen-heading{display:flex;align-items:center;gap:14px;padding:10px 3px 16px}.category-badge{width:48px;height:48px;border-radius:12px;background:var(--green);font-size:20px}.plain-heading{justify-content:space-between;align-items:flex-end;padding-top:9px}.action-list{margin-top:8px}.action-list .ios-row{min-height:78px}.foot-note{margin:12px 14px;color:var(--tertiary);font-size:12px;line-height:1.5}.search-field{height:48px;margin:4px 0 17px;padding:0 12px;display:flex;align-items:center;gap:8px;border-radius:10px;background:#e3e3e8;color:var(--tertiary)}.search-field:focus-within{background:#fff;box-shadow:0 0 0 3px rgba(0,122,255,.14)}.search-field input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:16px}.search-field button{width:22px;height:22px;padding:0;border:0;border-radius:50%;background:#8e8e93;color:#fff}.picker-list{margin-top:4px}.picker-list .ios-row{min-height:50px}.picker-list .ios-row:before{left:15px}.picker-count{color:var(--tertiary);font-size:12px}.year-control{display:grid;gap:4px;color:var(--secondary);font-size:11px;text-align:right}.year-control select{height:34px;border:0;border-radius:8px;background:#e5e5ea;padding:0 27px 0 10px;color:var(--label)}.result-summary{margin:3px 3px 12px;color:var(--secondary);font-size:13px}.school-list{display:grid;gap:12px}.school-card{border:0;border-radius:var(--radius);background:#fff;padding:16px;text-align:left;box-shadow:0 1px 2px rgba(0,0,0,.04)}.school-card:active{background:#f4f4f6}.school-card-head{display:flex;align-items:flex-start;gap:12px}.school-logo{flex:0 0 42px;width:42px;height:42px;border-radius:10px;background:#e8f2ff;color:var(--blue);display:grid;place-items:center;font-size:18px;font-weight:700}.school-name{min-width:0;flex:1}.school-name strong{font-size:16px}.school-name p{margin:5px 0 0;color:var(--secondary);font-size:12px}.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.tag{padding:4px 7px;border-radius:6px;background:#f2f2f7;color:var(--secondary);font-size:11px}.tag.blue{background:#e8f2ff;color:#0066cc}.school-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px;padding-top:12px;border-top:1px solid var(--separator)}.school-metrics div{display:grid;gap:3px}.school-metrics div+div{padding-left:12px;border-left:1px solid var(--separator)}.school-metrics strong{font-size:16px}.school-metrics span{color:var(--secondary);font-size:10px}.empty-state{padding:42px 24px;text-align:center;border-radius:var(--radius);background:#fff}.empty-symbol{width:50px;height:50px;margin:0 auto 15px;display:grid;place-items:center;border-radius:50%;background:#e5e5ea;color:var(--tertiary);font-size:23px}.empty-state h2{margin:0 0 8px;font-size:18px}.empty-state p{margin:0;color:var(--secondary);font-size:13px;line-height:1.6}.detail-hero{margin:-24px -18px 0;padding:34px 20px 24px;background:#fff;text-align:center;border-bottom:1px solid var(--separator)}.detail-logo{width:68px;height:68px;margin:0 auto 13px;border-radius:16px;background:#e8f2ff;color:var(--blue);display:grid;place-items:center;font-size:28px;font-weight:700}.detail-hero h1{margin:0;font-size:23px}.detail-hero p{margin:7px 0 0;color:var(--secondary);font-size:13px}.favorite-button{margin-top:16px;height:36px;border:0;border-radius:9px;padding:0 17px;background:var(--blue);color:#fff;font-weight:600}.detail-group-title{margin:24px 14px 8px;color:var(--secondary);font-size:13px;font-weight:400}.info-list,.plan-list{margin-top:0}.info-list .ios-row{min-height:54px}.info-label{color:var(--secondary);font-size:14px}.info-value{margin-left:auto;max-width:65%;font-size:14px;text-align:right}.plan-row{padding:13px 15px}.plan-row strong{font-size:14px}.plan-row p{margin:4px 0 0;color:var(--secondary);font-size:11px;line-height:1.45}.plan-number{margin-left:auto;text-align:right;white-space:nowrap}.plan-number strong{color:var(--blue)}.plan-number small{display:block;margin-top:3px;color:var(--secondary);font-size:10px}.pending{color:var(--orange)}.tab-bar{position:fixed;z-index:30;left:0;right:0;bottom:0;height:calc(58px + env(safe-area-inset-bottom));padding:5px max(10px,env(safe-area-inset-left)) env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:rgba(249,249,249,.94);border-top:1px solid var(--separator);backdrop-filter:saturate(180%) blur(20px)}.tab-bar button{border:0;background:none;color:var(--tertiary);display:grid;justify-items:center;align-content:center;gap:1px}.tab-bar button span{font-size:22px;line-height:24px}.tab-bar button small{font-size:10px}.tab-bar button.active{color:var(--blue)}dialog{width:min(440px,100%);max-height:78vh;margin:auto auto 0;padding:0 0 calc(16px + env(safe-area-inset-bottom));border:0;border-radius:16px 16px 0 0;background:#f2f2f7}dialog::backdrop{background:rgba(0,0,0,.35)}.sheet-handle{width:36px;height:5px;margin:7px auto 8px;border-radius:3px;background:#c7c7cc}.dialog-body{padding:18px}.dialog-body h2{margin:0 0 8px;font-size:21px}.dialog-body p{margin:0;color:var(--secondary);font-size:14px;line-height:1.6}.dialog-done{display:block;width:calc(100% - 36px);height:46px;margin:0 18px;border:0;border-radius:11px;background:var(--blue);color:#fff;font-weight:600}
@media(min-width:900px){.app-shell{padding-bottom:30px}.app-bar{position:fixed;left:0;right:0}main{padding-top:66px}.tab-bar{top:72px;bottom:auto;left:max(20px,calc(50% - 510px));right:auto;width:160px;height:auto;padding:8px;display:grid;gap:4px;border:1px solid var(--separator);border-radius:12px;background:#fff}.tab-bar button{height:45px;grid-template-columns:30px 1fr;justify-items:start;align-items:center;padding:0 10px;border-radius:8px}.tab-bar button small{font-size:13px}.tab-bar button.active{background:#e8f2ff}.screen{padding:28px 22px}.category-grid{grid-template-columns:repeat(3,1fr)}.category-card:first-child{grid-column:span 1}.home-header{padding-top:20px}.detail-hero{margin:-28px -22px 0;border-radius:0 0 14px 14px}}
@media(max-width:420px){.home-header h1{font-size:24px}.category-card{min-height:118px}.screen-heading h1{font-size:24px}.results-heading h1{font-size:23px}.school-metrics strong{font-size:15px}}
.category-card .category-status{color:var(--blue);font-weight:600}
.home-brand-mark{width:62px;height:62px;display:grid;place-items:center;flex:none;border-radius:17px;background:linear-gradient(145deg,#1769e0,#4f8df2);color:#fff;font-size:28px;font-weight:800;box-shadow:0 8px 20px rgba(23,105,224,.2)}
.home-help-button{position:absolute;top:16px;right:4px;width:36px;height:36px;border:1px solid #cbdcf5;border-radius:50%;background:#edf4ff;color:#1769e0;font-size:18px;font-weight:750}
.category-card-feature{grid-column:span 2;background:#1769e0;color:#fff;border-color:#1769e0;box-shadow:0 8px 20px rgba(23,105,224,.18)}
.category-card-feature strong{color:#fff}.category-card-feature small{color:#dce9ff}.category-card-feature .category-status{background:rgba(255,255,255,.16);color:#fff}.category-card-feature .category-chevron{color:#fff}
.picker-count{max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.detail-year-select{margin-left:auto;height:32px;border:0;border-radius:8px;background:#e5e5ea;padding:0 28px 0 10px;color:var(--label)}
.query-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.query-controls label{display:grid;gap:6px;min-width:0;font-size:12px;color:var(--secondary)}.query-controls select{width:100%;min-width:0;height:42px;padding:0 8px;border:1px solid var(--separator);border-radius:8px;color:var(--label);background:white;font-size:14px}.score-notice{margin-top:18px;border-top:1px solid var(--separator);border-bottom:1px solid var(--separator);background:transparent}.score-notice small{color:#0066cc}.data-warning{font-size:12px;line-height:1.6;color:#895400;background:#fff5dc;border-left:3px solid #d99012;padding:10px 12px;margin:14px 0}.source-link{font-size:12px;color:#0066cc;text-underline-offset:3px;white-space:nowrap}.score-table-wrap{width:100%;background:white;border-radius:8px;overflow:hidden}.score-table{border-collapse:collapse;width:100%;table-layout:fixed;text-align:left;font-size:14px}.score-table th{font-size:12px;color:var(--secondary);font-weight:500;background:#e9e9ee}.score-table th,.score-table td{padding:12px 10px;border-bottom:1px solid var(--separator);vertical-align:top;overflow-wrap:anywhere}.score-table th:first-child{width:46%}.score-table th:nth-child(2){width:23%}.score-table strong{font-weight:500}.score-table small{display:block;margin-top:5px;font-size:11px;color:var(--secondary);line-height:1.5}.score-table small.pending{color:#895400}.filing-list{display:grid;gap:12px}.filing-item{padding:16px;background:#fff;border-radius:8px;min-width:0}.filing-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.filing-title>.pending{font-size:11px;white-space:nowrap;color:#895400}.school-link{padding:0;border:0;background:transparent;color:#0066cc;font-size:15px;font-weight:600;text-align:left}.filing-item p{font-size:12px;color:var(--secondary);line-height:1.6;margin:8px 0}.filing-item dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.filing-item dt{font-size:11px;color:var(--secondary)}.filing-item dd{margin:5px 0 0;font-size:21px;font-weight:600}.school-metrics strong{overflow-wrap:anywhere}.screen-heading>div{min-width:0}
@media(min-width:900px){main{width:min(820px,calc(100% - 240px));margin-left:max(200px,calc(50% - 350px));margin-right:24px}.tab-bar{left:max(20px,calc(50% - 530px));grid-template-columns:1fr}}
.tag.orange{background:#fff1d6;color:#895400}.confirmed{color:#16833a}.source-caption,.plan-source{display:block;margin-top:5px;color:var(--secondary);font-size:11px;line-height:1.45}.plan-source .source-link{margin-left:5px}

/* Secondary-school lists stay compact: the searchable result only exposes location and code. */
.secondary-card{padding:14px 16px}.secondary-card .school-card-head{align-items:center}.secondary-card .school-name p{margin-top:4px;font-size:13px}.school-location{color:var(--secondary)}.school-code{color:var(--blue)}.secondary-card-status{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0 54px}.secondary-card-status .tag{display:inline-block}
.secondary-detail-hero{padding:18px 20px 16px;text-align:left}.secondary-hero-heading{display:flex;align-items:center;gap:12px}.secondary-detail-hero .detail-logo{flex:0 0 48px;width:48px;height:48px;margin:0;border-radius:12px;font-size:21px}.secondary-hero-copy{min-width:0}.secondary-detail-hero h1{font-size:20px;line-height:1.25;overflow-wrap:anywhere}.secondary-detail-hero p{margin-top:5px;font-size:12px}.secondary-detail-hero .detail-actions{justify-content:flex-start;margin-top:12px}.secondary-year-filter{min-height:54px;margin-top:16px;padding:10px 15px;display:flex;align-items:center;gap:12px;border-radius:10px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}.secondary-year-filter .detail-year-select{margin-left:auto}.secondary-data-section{margin-top:22px}.secondary-data-section>h2{margin:0 4px 8px;color:var(--secondary);font-size:14px;font-weight:500}.secondary-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 4px 8px}.secondary-section-heading h2{margin:0;color:var(--secondary);font-size:14px;font-weight:500}.secondary-section-heading p{margin:4px 0 0;color:var(--tertiary);font-size:11px}.secondary-section-heading .secondary-edit-button{flex:0 0 auto;height:32px;padding:0 10px;font-size:12px}.secondary-table-wrap{max-width:100%;overflow-x:auto;border-radius:10px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}.secondary-plan-table,.secondary-advancement-table{width:100%;min-width:470px;border-collapse:collapse;text-align:left;font-size:13px}.secondary-plan-table th,.secondary-plan-table td,.secondary-advancement-table th,.secondary-advancement-table td{padding:12px 13px;border-bottom:1px solid var(--separator);vertical-align:top}.secondary-plan-table th,.secondary-advancement-table th{color:var(--secondary);font-size:12px;font-weight:500;background:#f7f7f9}.secondary-plan-table th:first-child{width:50%}.secondary-plan-table th:nth-child(2){width:22%}.secondary-plan-table td:nth-child(2),.secondary-plan-table td:nth-child(3){white-space:nowrap}.secondary-plan-table tbody tr:last-child td,.secondary-advancement-table tbody tr:last-child td{border-bottom:0}.secondary-plan-table strong{font-weight:500}.secondary-plan-table .is-local-row{background:#f8fbff}.secondary-row-note{display:block;margin-top:3px;color:var(--tertiary);font-size:10px}.secondary-table-empty{padding:18px 15px;border-radius:10px;background:var(--surface);color:var(--tertiary);font-size:12px;line-height:1.55}.secondary-status-row{min-height:48px;padding:0 15px;display:flex;align-items:center;justify-content:space-between;border-radius:10px;background:var(--surface);font-size:13px}.secondary-status-row span{color:var(--secondary)}.secondary-status-row strong{font-weight:500}.secondary-data-section .data-warning{margin:10px 0}.secondary-data-section .foot-note{margin:10px 4px}.secondary-profile-section{padding-bottom:20px}.secondary-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;border-radius:10px;background:var(--separator)}.secondary-profile-grid>div{min-width:0;padding:13px 15px;background:var(--surface)}.secondary-profile-grid span{display:block;color:var(--secondary);font-size:12px}.secondary-profile-grid strong{display:block;margin-top:6px;font-size:13px;font-weight:500;line-height:1.45;overflow-wrap:anywhere}.secondary-profile-grid .source-link{margin-left:4px}.editor-add{width:100%;height:42px;margin-top:12px;border:1px dashed rgba(0,122,255,.45);border-radius:9px;background:#f5f9ff;color:#0066cc;font-weight:600}.secondary-editor-row{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(88px,.55fr) minmax(0,1fr) 30px;gap:8px;align-items:end;margin-top:10px;padding:10px 8px;border-radius:9px;background:#fff;border:1px solid var(--separator)}.secondary-editor-row label{display:grid;gap:5px;color:var(--secondary);font-size:11px}.secondary-editor-row input{width:100%;min-width:0;height:36px;padding:0 8px;border:1px solid var(--separator);border-radius:7px;background:#fff;color:var(--label);font-size:13px;outline:0}.secondary-editor-row input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,122,255,.12)}.editor-remove{width:30px;height:36px;padding:0;border:0;border-radius:7px;background:#f2f2f7;color:var(--red);font-size:22px;line-height:1}.secondary-plan-edit-dialog .dialog-body{max-height:60vh;overflow-y:auto}
@media(max-width:520px){.secondary-section-heading{align-items:flex-end}.secondary-section-heading .secondary-edit-button{font-size:11px;padding:0 8px}.secondary-profile-grid{grid-template-columns:1fr}.secondary-editor-row{grid-template-columns:minmax(0,1fr) minmax(80px,.55fr) 30px}.secondary-editor-row label:nth-child(3){grid-column:1 / 3}.secondary-editor-row .editor-remove{grid-column:3;grid-row:1 / 3;align-self:center}}

#secondaryPlanEditDialog .dialog-body{max-height:60vh;overflow-y:auto}

/* Keep the navigation title centered even when either side action is hidden. */
.app-bar{display:flex;justify-content:center}
.bar-title{position:absolute;top:0;bottom:0;left:50%;width:calc(100% - 180px);transform:translateX(-50%);display:flex;align-items:center;justify-content:center}
.back-button,.home-button{position:absolute;top:0;bottom:0;display:flex;align-items:center}
.back-button{left:calc(16px + env(safe-area-inset-left))}
.home-button{right:calc(16px + env(safe-area-inset-right))}
.secondary-card{padding-bottom:14px}.secondary-preview{display:grid;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--separator)}.secondary-preview-row{display:grid;grid-template-columns:78px minmax(0,1fr);column-gap:10px;row-gap:3px;align-items:baseline}.secondary-preview-row>span{color:var(--secondary);font-size:12px}.secondary-preview-row>strong{min-width:0;font-size:14px;overflow-wrap:anywhere}.secondary-preview-row>small{grid-column:2;color:var(--tertiary);font-size:11px;line-height:1.4;overflow-wrap:anywhere}.detail-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:16px}.detail-actions .favorite-button{margin-top:0}.secondary-edit-button{height:36px;padding:0 14px;border:1px solid rgba(0,122,255,.28);border-radius:9px;background:#e8f2ff;color:#0066cc;font-weight:600}.dialog-intro{margin-bottom:14px!important}.edit-field{display:grid;gap:6px;margin-top:13px;color:var(--secondary);font-size:12px}.edit-field input,.edit-field textarea{width:100%;padding:10px 11px;border:1px solid var(--separator);border-radius:9px;background:#fff;color:var(--label);font-size:15px;outline:0;resize:vertical}.edit-field input:focus,.edit-field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,122,255,.12)}.dialog-actions{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:8px;padding:0 18px}.dialog-actions button{min-height:44px;border:0;border-radius:10px;font-weight:600}.dialog-secondary{background:#e5e5ea;color:var(--label)}.dialog-primary{background:var(--blue);color:#fff}
/* Confirmed imported quotas are visually distinct from unresolved rows. */
.secondary-row-note.confirmed-note{color:#16833a}
.single-plan-meta{display:block;margin-top:5px;color:#0066cc!important;font-size:11px!important;line-height:1.45}
.single-detail-hero{padding:24px 20px 22px;text-align:center}.single-detail-hero .detail-logo{margin-bottom:10px}.single-detail-hero h1{font-size:22px;line-height:1.3}.single-detail-hero p{margin-top:7px;line-height:1.5}.single-data-section{margin-top:22px}.single-section-heading{margin:0 4px 8px}.single-section-heading h2,.single-material-section>h2{margin:0;color:var(--secondary);font-size:14px;font-weight:500}.single-section-heading p{margin:4px 0 0;color:var(--tertiary);font-size:11px}.single-year-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}.single-year-column{min-width:0;border-radius:10px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04);overflow:hidden}.single-year-column header{padding:11px 9px;background:#f7f7f9;border-bottom:1px solid var(--separator)}.single-year-column header strong{display:block;font-size:16px}.single-year-column header small{display:block;margin-top:4px;color:var(--secondary);font-size:10px;line-height:1.4}.single-year-entries{display:grid}.single-year-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;padding:9px 8px;border-bottom:1px solid var(--separator);align-items:start}.single-year-entry:last-child{border-bottom:0}.single-year-entry span{min-width:0;font-size:11px;line-height:1.45;overflow-wrap:anywhere}.single-year-entry strong{white-space:nowrap;color:var(--blue);font-size:11px}.single-year-empty{padding:20px 8px;color:var(--tertiary);font-size:11px;line-height:1.5;text-align:center}.single-data-note{margin:9px 4px 0;color:var(--tertiary);font-size:11px;line-height:1.5}.single-material-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.single-material-grid>div{min-width:0;min-height:78px;padding:12px 10px;border-radius:10px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}.single-material-grid strong{display:block;font-size:13px}.single-material-grid span{display:block;margin-top:9px;color:var(--tertiary);font-size:11px}.single-material-section{padding-bottom:22px}
.single-year-applicants{display:block;margin-top:4px;color:var(--tertiary);font-size:9px;line-height:1.35;overflow-wrap:anywhere}
.single-material-groups{display:grid;gap:12px}.single-material-subsection{display:grid;gap:7px}.single-material-subsection>h3{margin:0 4px;color:var(--secondary);font-size:12px;font-weight:500}.single-outline-group{min-width:0;padding:11px 12px;border-radius:10px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}.single-outline-group>strong{display:block;font-size:13px;color:var(--label)}.single-outline-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.single-outline-link{display:inline-flex;align-items:center;max-width:100%;min-height:30px;padding:5px 9px;border-radius:7px;background:#eef6ff;color:var(--blue);font-size:11px;line-height:1.35;text-decoration:none;overflow-wrap:anywhere}.single-outline-link:hover{background:#dceeff}.single-outline-link.compact{min-height:22px;padding:2px 6px;font-size:9px}.single-major-materials{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:5px;color:var(--tertiary);font-size:9px;line-height:1.35}.single-major-materials>span{flex:0 0 auto}.single-major-materials .single-outline-links{display:inline-flex;margin-top:0}
.single-year-ratio,.single-year-change{display:block;margin-top:3px;color:var(--secondary);font-size:9px;line-height:1.35;overflow-wrap:anywhere}.single-year-entry.changed{background:#fffaf0}.single-year-change{color:#9a6500}
@media(max-width:520px){.single-year-compare{gap:6px}.single-year-column header{padding-left:7px;padding-right:7px}.single-year-entry{grid-template-columns:1fr;padding:8px 7px}.single-year-entry strong{font-size:10px}.single-material-grid{gap:6px}.single-material-grid>div{padding:10px 8px}}

/* City picker: a compact map gives the geographic filter a clear visual entry point. */
.hubei-map-card{margin:4px 0 18px;padding:14px;border-radius:12px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}.hubei-map-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 2px 8px}.hubei-map-heading strong{font-size:15px}.hubei-map-heading small,.hubei-map-heading>span{color:var(--secondary);font-size:11px}.hubei-map-canvas{position:relative;width:100%;overflow:hidden;border-radius:10px;background:#f7faff}.hubei-map-canvas svg{display:block;width:100%;height:auto}.hubei-map-outline{fill:#e8f2ff;stroke:#b9d3f5;stroke-width:2}.hubei-map-river{fill:none;stroke:#c8e4fb;stroke-width:7;stroke-linecap:round;opacity:.9}.map-city{outline:none;cursor:pointer}.map-city circle{fill:#fff;stroke:#9bbbe2;stroke-width:2;transition:fill .15s,stroke .15s,transform .15s}.map-city.has-schools circle{fill:#d9ebff;stroke:var(--blue)}.map-city:hover circle,.map-city:focus circle{fill:#007aff;stroke:#fff;stroke-width:3}.map-city text{fill:#34516f;font-size:12px;font-weight:600;pointer-events:none}.map-city:hover text,.map-city:focus text{fill:#fff}.hubei-map-tooltip{margin-top:9px;padding:9px 10px;border-radius:8px;background:#f2f7ff;color:var(--secondary);font-size:11px;line-height:1.5}.hubei-map-tooltip strong{display:block;color:var(--label);font-size:12px}.hubei-map-tooltip span{display:block;margin-top:3px;overflow-wrap:anywhere}.city-picker-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:0;background:transparent;overflow:visible}.city-picker-list .ios-row{min-height:64px;padding:11px 12px;border-radius:10px;box-shadow:0 1px 2px rgba(0,0,0,.04)}.city-picker-list .ios-row:before{display:none}.city-picker-list .row-content{gap:4px}.city-picker-list .row-content strong{font-size:14px}.city-picker-list .picker-count{max-width:100%;font-size:10px;text-align:left}.city-picker-list .chevron{margin-left:auto;font-size:22px}
.single-editor-row{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(80px,.55fr) minmax(0,1fr);gap:8px;align-items:end;margin-top:10px;padding:10px 42px 10px 8px;border-radius:9px;background:#fff;border:1px solid var(--separator)}.single-editor-row label{display:grid;gap:5px;color:var(--secondary);font-size:11px}.single-editor-row input{width:100%;min-width:0;height:36px;padding:0 8px;border:1px solid var(--separator);border-radius:7px;background:#fff;color:var(--label);font-size:13px;outline:0}.single-editor-row input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,122,255,.12)}.single-editor-row .editor-remove{position:absolute;right:8px;top:50%;transform:translateY(-50%)}#singlePlanEditDialog .dialog-body{max-height:62vh;overflow-y:auto}
@media(max-width:520px){.city-picker-list{grid-template-columns:1fr 1fr;gap:8px}.city-picker-list .ios-row{padding:10px 9px}.city-picker-list .chevron{font-size:20px}.map-city text{font-size:11px}.single-editor-row{grid-template-columns:minmax(0,1fr) minmax(76px,.55fr);padding-right:42px}.single-editor-row label:nth-child(3),.single-editor-row label:nth-child(4),.single-editor-row label:nth-child(5){grid-column:1 / 3}}
@media(min-width:900px){.city-picker-list{grid-template-columns:repeat(3,minmax(0,1fr))}}

.map-back-button{margin:0 8px 0 0;padding:3px 7px;border:1px solid #c8ddf7;border-radius:6px;background:#fff;color:#1668b8;font:inherit;font-size:10px;cursor:pointer}.map-back-button:hover,.map-back-button:focus-visible{background:#eaf3ff;outline:2px solid rgba(0,122,255,.12);outline-offset:1px}.national-map-land{fill:#edf5ff;stroke:#b7d2ef;stroke-width:2}.national-map-river{fill:none;stroke:#c4e2f8;stroke-width:9;stroke-linecap:round;opacity:.8}.national-map-grid-line{fill:none;stroke:#d0e0f1;stroke-width:1.25;stroke-dasharray:5 7;opacity:.95}.national-map-node{cursor:pointer;outline:0}.national-map-node circle{fill:#fff;stroke:#a3c5e8;stroke-width:2;transition:fill .16s,stroke .16s,transform .16s}.national-map-node.has-schools circle{fill:#d8ebff;stroke:#1677c8}.national-map-node:hover circle,.national-map-node:focus circle{fill:#0a84ff;stroke:#fff;stroke-width:3;transform:scale(1.12);transform-origin:center}.national-map-node text{fill:#395d80;font-size:11px;font-weight:650;pointer-events:none}.national-map-node:hover text,.national-map-node:focus text{fill:#fff}

/* Current data does not invent emblems: official logo fields render as images,
   while records without a verified asset keep a restrained initial fallback. */
.detail-logo-wrap[title*="暂无资料"] .detail-logo-fallback{background:#f2f2f7;color:var(--secondary)}
.school-logo-wrap{flex:0 0 42px;width:42px;height:42px;display:block}.school-logo-wrap .school-logo{width:42px;height:42px}.school-logo-image,.detail-logo-image{object-fit:contain;padding:5px;background:#f5f9ff}.school-logo-fallback,.detail-logo-fallback{display:grid;place-items:center}.detail-logo-wrap{width:68px;height:68px;display:block;margin:0 auto 13px}.detail-logo-wrap .detail-logo{width:68px;height:68px;margin:0}.secondary-detail-hero .detail-logo-wrap{flex:0 0 48px;width:48px;height:48px;margin:0}.secondary-detail-hero .detail-logo-wrap .detail-logo{width:48px;height:48px;border-radius:12px;font-size:21px}.detail-logo-wrap[title*="待补充"] .detail-logo-fallback{background:#f2f2f7;color:var(--secondary)}
.city-picker-list .row-content{min-width:0}.city-picker-list .row-content strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.city-picker-list .city-picker-count{font-size:11px;line-height:1.35;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.city-picker-list .ios-row{min-width:0}.city-picker-list .chevron{flex:0 0 auto}
.school-years{display:block;margin-top:3px;color:var(--blue);font-size:11px;line-height:1.35}
.major-school-card{padding-bottom:14px}.major-school-card .school-card-head{align-items:center}.major-plan-list{margin-top:14px;border-top:1px solid var(--separator)}.major-plan-heading{display:flex;justify-content:space-between;gap:8px;padding:11px 0 7px;color:var(--secondary);font-size:12px}.major-plan-heading strong{font-weight:500;color:var(--label)}.major-plan-heading span{font-size:11px}.major-plan-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:9px 0;border-top:1px solid rgba(60,60,67,.1)}.major-plan-row>span{min-width:0;display:grid;gap:3px}.major-plan-row strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}.major-plan-row small{color:var(--secondary);font-size:11px;line-height:1.35;overflow-wrap:anywhere}.major-plan-count{white-space:nowrap;color:var(--blue);font-size:14px;font-weight:600}.major-plan-empty{padding:13px 0;color:var(--tertiary);font-size:12px}.major-filing-note{display:block;margin-top:8px;color:var(--tertiary);font-size:11px;line-height:1.4}
.hubei-map-region-lines path{fill:none;stroke:#c7d9ee;stroke-width:1;stroke-dasharray:4 4;opacity:.9}.hubei-map-hanriver{fill:none;stroke:#b9ddf7;stroke-width:4;stroke-linecap:round;opacity:.95}.hubei-map-lake{fill:#d8efff;stroke:#b5d8ef;stroke-width:1}.hubei-map-labels text{pointer-events:none}.map-province-label{fill:#6d88a4;font-size:16px;font-weight:700;letter-spacing:2px}.map-region-label{fill:#8aa2bb;font-size:11px;font-weight:500}.map-water-label{fill:#5796bd;font-size:10px;font-weight:500;font-style:italic}.hubei-map-canvas{border:1px solid #e4edf8;background:#f5f9ff}
@media(max-width:520px){.major-plan-row{gap:8px}.major-plan-row strong{font-size:13px}.major-plan-count{font-size:13px}.city-picker-list .city-picker-count{font-size:10px}.map-province-label{font-size:14px}.map-region-label{font-size:10px}}

/* Skill Gaokao keeps the required filters above the query methods. */
.skill-hub .query-controls{margin:0 0 12px;padding:12px;border-radius:12px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}
.skill-hub .query-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
.skill-hub .query-controls label{font-size:11px}
.skill-hub .query-controls select{height:40px}
.skill-filter-hint{margin:0 4px 12px;padding:9px 11px;border-left:3px solid var(--orange);background:#fff5dc;color:#895400;font-size:12px;line-height:1.45}
.skill-city-card .tags{margin-top:12px}
.skill-city-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:13px;padding-top:12px;border-top:1px solid var(--separator);color:var(--secondary);font-size:12px}
.skill-city-total strong{color:var(--blue);font-size:18px;white-space:nowrap}
.skill-detail-hero{padding:22px 20px 20px;text-align:left}
.skill-detail-heading{display:flex;align-items:center;gap:14px;justify-content:center}
.skill-detail-heading .detail-logo-wrap{flex:0 0 68px;margin:0}
.skill-detail-heading>div{min-width:0}
.skill-detail-hero h1{font-size:22px;line-height:1.3;overflow-wrap:anywhere}
.skill-detail-hero h1 small{color:var(--secondary);font-size:14px;font-weight:500;white-space:nowrap}
.skill-detail-hero p{margin-top:6px;line-height:1.5}
.skill-detail-hero .detail-actions{justify-content:center}
.skill-detail-section{margin-top:22px}
.skill-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 4px 9px}
.skill-section-heading h2,.skill-source-section>h2{margin:0;color:var(--secondary);font-size:14px;font-weight:500}
.skill-section-heading p{margin:4px 0 0;color:var(--tertiary);font-size:11px}
.skill-detail-year-filter{display:flex;align-items:center;gap:6px;color:var(--tertiary);font-size:11px;white-space:nowrap}
.skill-detail-year-filter .detail-year-select{margin-left:0}
.skill-section-heading>span{color:var(--tertiary);font-size:10px;text-align:right;white-space:nowrap}
.skill-category-block{margin-top:14px}
.skill-category-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 4px 7px}
.skill-category-head h2{margin:0;font-size:15px}
.skill-category-head small{color:var(--tertiary);font-size:10px}
.skill-group-card{overflow:hidden;margin-top:8px;border-radius:10px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}
.skill-group-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 13px;background:#f7f7f9;border-bottom:1px solid var(--separator)}
.skill-group-head>div:first-child{min-width:0}
.skill-group-head strong{display:block;font-size:13px;overflow-wrap:anywhere}
.skill-group-head small{display:block;margin-top:4px;color:var(--secondary);font-size:10px}
.skill-score{text-align:right;white-space:nowrap}
.skill-score strong{color:var(--blue);font-size:17px}
.skill-score small{color:var(--secondary);font-size:10px}
.skill-major-list{display:grid}
.skill-major-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:10px 13px;border-bottom:1px solid var(--separator)}
.skill-major-row:last-child{border-bottom:0}
.skill-major-row span{min-width:0}
.skill-major-row strong{display:block;font-size:13px;font-weight:500;overflow-wrap:anywhere}
.skill-major-row small{display:block;margin-top:4px;color:var(--secondary);font-size:10px;line-height:1.4;overflow-wrap:anywhere}
.skill-major-row>b{color:var(--blue);font-size:13px;white-space:nowrap}
.skill-detail-empty{padding:16px 13px;color:var(--tertiary);font-size:11px;line-height:1.5}
.skill-detail-empty-wide{border-radius:10px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}
.skill-source-section{padding-bottom:22px}
.skill-source-section p{margin:8px 4px 0;color:var(--tertiary);font-size:11px;line-height:1.55}
.skill-editor-section{margin-top:18px;padding-top:14px;border-top:1px solid var(--separator)}
.skill-editor-section h3{margin:0;color:var(--secondary);font-size:14px;font-weight:500}
.skill-editor-row{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 30px;gap:8px;align-items:end;margin-top:10px;padding:10px 42px 10px 8px;border:1px solid var(--separator);border-radius:9px;background:#fff}
.skill-editor-row label{display:grid;gap:5px;color:var(--secondary);font-size:11px}
.skill-editor-row input,.skill-editor-row select{width:100%;min-width:0;height:36px;padding:0 8px;border:1px solid var(--separator);border-radius:7px;background:#fff;color:var(--label);font-size:13px;outline:0}
.skill-editor-row input:focus,.skill-editor-row select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,122,255,.12)}
.skill-editor-row .editor-remove{position:absolute;right:8px;top:50%;transform:translateY(-50%)}
#skillPlanEditDialog .dialog-body{max-height:70vh;overflow-y:auto}
@media(max-width:520px){.skill-hub .query-controls{grid-template-columns:1fr;gap:8px}.skill-detail-heading{justify-content:flex-start;gap:11px}.skill-detail-heading .detail-logo-wrap{flex-basis:56px;width:56px;height:56px}.skill-detail-heading .detail-logo{width:56px;height:56px;font-size:23px}.skill-detail-hero h1{font-size:20px}.skill-section-heading{align-items:flex-start;flex-direction:column;gap:4px}.skill-section-heading>span{text-align:left}.skill-group-head{padding:11px 10px}.skill-major-row{gap:8px;padding:9px 10px}}
@media(max-width:520px){.skill-editor-row{grid-template-columns:repeat(2,minmax(0,1fr));padding-right:42px}.skill-editor-row .editor-remove{grid-column:auto;align-self:center}}

/* Skill school identity: public and private records use a restrained color rail
   so the ownership remains visible while keeping the iOS surface neutral. */
.skill-ownership-card-public{border-left:4px solid #34c759;background:#fbfffc}
.skill-ownership-card-private{border-left:4px solid #af52de;background:#fdfaff}
.skill-ownership-card-other{border-left:4px solid #8e8e93}
.skill-ownership-row-public{border-left:3px solid #34c759}
.skill-ownership-row-private{border-left:3px solid #af52de}
.skill-ownership-row-other{border-left:3px solid #8e8e93}
.skill-ownership-badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:5px;font-size:10px;font-style:normal;font-weight:600;vertical-align:2px;white-space:nowrap}
.skill-ownership-public{color:#167b3b;background:#e7f8ec}
.skill-ownership-private{color:#7a2ca8;background:#f3e8fb}
.skill-ownership-other{color:#5c5c62;background:#ececf1}
.skill-city-card{cursor:pointer}
.skill-city-card:focus{outline:3px solid rgba(0,122,255,.2);outline-offset:2px}
.skill-category-tag{border:0;cursor:pointer;transition:background .15s,box-shadow .15s}
.skill-category-tag:hover,.skill-category-tag:focus{background:#d6e9ff;outline:2px solid rgba(0,122,255,.22);outline-offset:1px}
.skill-group-head{align-items:stretch;padding:13px 14px;background:#f5f9ff}
.skill-group-identity{display:grid;gap:3px;min-width:0;align-content:start}
.skill-group-kicker{color:var(--secondary);font-size:10px;line-height:1.2}
.skill-group-code{color:var(--blue);font-size:20px!important;line-height:1.1;letter-spacing:.2px}
.skill-group-name{color:var(--label);font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.skill-score{display:grid;gap:3px;align-content:start;justify-items:end}
.skill-score>span{color:var(--secondary);font-size:10px;line-height:1.2}
.skill-score strong{font-size:20px}
.skill-score strong.pending{color:var(--orange)}
.skill-major-row{grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:12px 14px;background:#fff}
.skill-major-row:nth-child(even){background:#f8fbff}
.skill-major-main{display:grid;gap:4px;min-width:0}
.skill-major-main>strong{font-size:15px;font-weight:600;color:var(--label);line-height:1.35}
.skill-major-code{color:var(--blue);font-size:11px;font-weight:600;line-height:1.3}
.skill-major-main small{margin-top:0;color:var(--secondary);font-size:10px;line-height:1.35}
.skill-major-plan{display:grid;justify-items:end;gap:5px;align-content:start}
.skill-major-plan strong{color:var(--blue);font-size:17px;line-height:1.25;white-space:nowrap}
.skill-major-plan small{color:var(--secondary);font-size:10px;line-height:1.25;white-space:nowrap}
.skill-major-tuition{display:inline-flex;align-items:center;padding:3px 7px;border-radius:6px;background:#fff5dc;color:#8a5a00;font-size:13px;line-height:1.25;white-space:nowrap}
.skill-inline-edit{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:0;border:0;border-bottom:1px dashed var(--orange);background:transparent;color:#8a5a00;font:inherit;text-align:left;cursor:pointer}
.skill-inline-edit span{font-size:10px;color:var(--blue)}
.skill-major-row.is-local-row{box-shadow:inset 3px 0 0 var(--orange)}
@media(max-width:520px){
  .skill-ownership-badge{margin-left:4px;padding:2px 5px;font-size:9px}
  .skill-group-head{gap:8px;padding:11px 10px}
  .skill-group-code{font-size:18px!important}
  .skill-group-name{font-size:11px}
  .skill-score strong{font-size:17px}
  .skill-major-row{gap:8px;padding:10px}
  .skill-major-main>strong{font-size:14px}
  .skill-major-plan strong{font-size:14px}
}

/* School identity and transit verification is shared by every detail view. */
.school-profile-panel{margin-top:22px;padding:15px;border-radius:12px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}
.school-profile-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}
.school-profile-heading h2{margin:0;color:var(--secondary);font-size:14px;font-weight:500}
.school-profile-heading p{margin:4px 0 0;color:var(--tertiary);font-size:11px}
.school-profile-heading .secondary-edit-button{flex:0 0 auto;height:32px;padding:0 10px;font-size:12px}
.school-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;border-radius:9px;background:var(--separator)}
.school-profile-grid>div{min-width:0;padding:11px 12px;background:#fff}
.school-profile-grid span{display:block;color:var(--secondary);font-size:11px}
.school-profile-grid strong{display:block;margin-top:5px;font-size:13px;font-weight:500;line-height:1.45;overflow-wrap:anywhere}
.school-profile-grid small{display:block;margin-top:4px;color:var(--secondary);font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.school-profile-wide{grid-column:1 / -1}
.school-campus-list{margin:6px 0 0;padding-left:17px;color:var(--secondary);font-size:11px;line-height:1.5}
.school-profile-review{display:flex;align-items:flex-start;gap:10px;margin-top:10px;padding:9px 10px;border-radius:8px;background:#fff7e5;color:#8a5a00;font-size:11px;line-height:1.4}
.school-profile-review>span{flex:0 0 auto;font-weight:600}
.school-profile-review>div{display:flex;flex-wrap:wrap;gap:5px}
.school-profile-review em{padding:2px 6px;border-radius:999px;background:#ffedc2;font-style:normal}
.school-profile-note{margin:10px 2px 0;color:var(--secondary);font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.school-profile-source{display:inline-block;margin-top:9px;font-size:11px}
.school-location-summary{margin-top:12px;padding:11px 12px;border-radius:10px;background:#f7faff;border:1px solid #e4edf8}
.school-location-summary-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.school-location-summary-heading span{font-size:12px;font-weight:600;color:var(--label)}
.school-location-summary-heading small{font-size:11px;color:var(--secondary)}
.school-location-summary-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:8px}
.school-location-summary-grid.is-multi-campus{grid-template-columns:1fr}
.school-location-summary-grid>div{min-width:0;padding:7px 8px;border-radius:8px;background:#fff}
.school-location-summary-grid span{display:block;color:var(--secondary);font-size:10px}
.school-location-summary-grid strong{display:block;margin-top:3px;color:var(--label);font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.school-location-summary-grid ul{margin:3px 0 0;padding-left:15px;color:var(--label);font-size:11px;line-height:1.4}
.school-location-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.school-location-facts>div{min-width:0;padding:7px 8px;border-radius:8px;background:#fff}
.school-location-facts span{display:block;color:var(--secondary);font-size:10px}
.school-location-facts strong{display:block;margin-top:3px;color:var(--label);font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.school-phone-disclosure{margin-top:8px;border-radius:8px;background:#fff;overflow:hidden}.school-phone-disclosure summary{min-height:42px;padding:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.school-phone-disclosure summary::-webkit-details-marker{display:none}.school-phone-disclosure summary span{color:var(--secondary);font-size:10px}.school-phone-disclosure summary strong{color:var(--blue);font-size:12px;font-weight:600;white-space:nowrap}.school-phone-disclosure summary strong:after{content:'⌄';display:inline-block;margin-left:6px;color:var(--secondary);transition:transform .15s}.school-phone-disclosure[open] summary strong:after{transform:rotate(180deg)}.school-phone-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px;padding:0 8px 9px}.school-phone-list a{min-width:0;padding:8px 9px;border:1px solid #e4edf8;border-radius:7px;background:#f7faff;color:#0066cc;font-size:12px;font-weight:600;line-height:1.35;text-align:center;text-decoration:none;overflow-wrap:anywhere}
.school-campus-summary-list{display:grid;gap:6px;margin-top:3px}
.school-campus-summary{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(72px,.6fr);gap:7px;padding:6px 7px;border:1px solid #edf1f7;border-radius:7px;background:#fbfdff}
.school-campus-summary>div{min-width:0}
.school-campus-summary span{display:block;color:var(--secondary);font-size:10px;line-height:1.35}
.school-campus-summary strong{display:block;margin:0 0 2px;font-size:11px;line-height:1.35;color:var(--label)}
.school-campus-summary>div:first-child>span{font-size:11px;color:var(--label);overflow-wrap:anywhere}
.school-campus-summary .location-inline-edit{font-size:11px}
.location-inline-edit{display:inline-flex;align-items:center;gap:5px;margin-top:3px;padding:0;border:0;border-bottom:1px dashed var(--orange);background:transparent;color:#8a5a00;font:inherit;font-size:12px;line-height:1.4;cursor:pointer}
.location-inline-edit span{font-size:10px;color:var(--blue)}
.location-editable-value{display:flex;align-items:baseline;gap:7px;min-width:0;margin-top:3px}
.location-editable-value>strong{min-width:0;overflow-wrap:anywhere}
.location-editable-value .location-inline-edit{flex:0 0 auto;margin-top:0;color:var(--blue);font-size:10px}
.export-image-button{position:fixed;z-index:40;right:max(18px,env(safe-area-inset-right));bottom:calc(74px + env(safe-area-inset-bottom));min-width:104px;height:40px;padding:0 14px;border:1px solid rgba(0,122,255,.32);border-radius:8px;background:rgba(255,255,255,.96);color:#0066cc;font-size:13px;font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,.12);backdrop-filter:blur(14px);cursor:pointer}.export-image-button:hover,.export-image-button:focus{background:#edf6ff;outline:3px solid rgba(0,122,255,.14)}.export-image-button:disabled{color:var(--secondary);cursor:wait}.is-exporting-image .export-image-button,.is-exporting-image .app-bar,.is-exporting-image .tab-bar{visibility:hidden}.export-capture-target{overflow:visible!important}.school-picker-skill-categories{margin-top:7px}.school-picker-skill-categories .tag{font-size:10px}
.export-image-button[hidden]{display:none}
.school-profile-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}
.school-profile-editor-grid .edit-field{min-width:0}
.school-profile-editor-wide{grid-column:1 / -1}
.school-profile-editor-grid .edit-field select{width:100%;height:42px;padding:0 10px;border:1px solid var(--separator);border-radius:9px;background:#fff;color:var(--label);font-size:15px;outline:0}
.school-profile-editor-grid .edit-field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,122,255,.12)}
.skill-major-plan small{max-width:180px;text-align:right;white-space:normal}
.secondary-plan-table th:nth-child(2){width:18%}.secondary-plan-table th:nth-child(3){width:22%}.secondary-plan-table th:nth-child(4){width:15%}
.secondary-plan-table td:nth-child(4){white-space:nowrap;color:var(--secondary);font-size:11px}
@media(max-width:520px){
  .school-profile-heading{align-items:stretch;flex-direction:column;gap:8px}
  .school-profile-heading .secondary-edit-button{align-self:flex-start}
  .school-profile-grid{grid-template-columns:1fr}
  .school-profile-wide{grid-column:auto}
  .school-profile-editor-grid{grid-template-columns:1fr}
  .school-profile-editor-wide{grid-column:auto}
  .skill-major-plan small{max-width:125px}
  .skill-major-tuition{font-size:12px;padding:3px 6px}
  .skill-major-plan strong{font-size:15px}
  .school-location-summary-grid{grid-template-columns:1fr 1fr}
  .school-location-address{grid-column:1 / -1}
  .school-location-facts{grid-template-columns:1fr}
  .school-campus-summary{grid-template-columns:1fr 1fr}
  .school-campus-summary>div:first-child{grid-column:1 / -1}
  .school-phone-list{grid-template-columns:1fr 1fr}.export-image-button{right:12px;bottom:calc(68px + env(safe-area-inset-bottom));min-width:94px;height:38px;padding:0 11px}
  .secondary-plan-table{min-width:590px}
  .secondary-editor-row{grid-template-columns:minmax(0,1fr) minmax(80px,.55fr) minmax(80px,.55fr) 30px}
  .secondary-editor-row label:nth-child(3){grid-column:auto}
  .secondary-editor-row label:nth-child(4){grid-column:1 / 3}
  .secondary-editor-row .editor-remove{grid-column:4;grid-row:1 / 3}
}

/* The secondary-school plan is intentionally split into the three admission
   tracks requested by the product, with wide tables allowed to scroll on a
   phone instead of shrinking labels into unreadable columns. */
.secondary-plan-sections{display:grid;gap:18px}.secondary-plan-section-block{min-width:0}.secondary-plan-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 4px 8px}.secondary-plan-section-heading h3{margin:0;font-size:16px;line-height:1.3}.secondary-plan-section-heading span{color:var(--tertiary);font-size:11px}.secondary-plan-table-comprehensive{min-width:470px}.secondary-plan-table-threeTwo{min-width:820px}.secondary-plan-table-skill{min-width:560px}.secondary-plan-table-comprehensive th:first-child{width:28%}.secondary-plan-table-comprehensive th:nth-child(2){width:47%}.secondary-plan-table-comprehensive th:nth-child(3){width:25%;white-space:nowrap}.secondary-plan-table-threeTwo th,.secondary-plan-table-skill th{white-space:nowrap}.secondary-plan-table-threeTwo th:nth-child(1),.secondary-plan-table-threeTwo th:nth-child(2){width:17%}.secondary-plan-table-threeTwo th:nth-child(3){width:27%}.secondary-plan-table-threeTwo th:nth-child(4){width:27%}.secondary-plan-table-threeTwo th:nth-child(5){width:12%;white-space:nowrap}.secondary-plan-table-skill th:first-child{width:28%}.secondary-plan-table-skill th:nth-child(2){width:52%}.secondary-plan-table-skill th:nth-child(3){width:20%;white-space:nowrap}.secondary-major-meta{display:block;margin-top:4px;color:var(--secondary);font-size:11px;font-weight:400;line-height:1.45;white-space:normal}.secondary-editor-row{grid-template-columns:repeat(4,minmax(0,1fr));padding-right:48px}.secondary-editor-row input,.secondary-editor-row select{width:100%;min-width:0;height:36px;padding:0 8px;border:1px solid var(--separator);border-radius:7px;background:#fff;color:var(--label);font-size:13px;outline:0}.secondary-editor-row select{padding-right:24px}.secondary-editor-row input:focus,.secondary-editor-row select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,122,255,.12)}.secondary-editor-row .editor-remove{position:absolute;right:8px;top:10px}
.secondary-catalog-table{min-width:560px}.secondary-catalog-table th:first-child{width:24%}.secondary-catalog-table th:nth-child(2){width:54%}.secondary-catalog-table th:nth-child(3){width:22%}.catalog-status{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}.catalog-status.is-confirmed{background:#e8f7ed;color:#237a3b}.catalog-status.is-unconfirmed{background:#fff3d6;color:#9a5b00}.secondary-detail-status{display:inline-flex;vertical-align:middle;margin-left:6px;font-size:11px}.secondary-catalog-section .secondary-section-heading p{max-width:680px}
@media(max-width:520px){.secondary-plan-section-heading h3{font-size:15px}.secondary-plan-table-comprehensive{min-width:470px}.secondary-plan-table-threeTwo{min-width:790px}.secondary-plan-table-skill{min-width:540px}.secondary-editor-row{grid-template-columns:repeat(2,minmax(0,1fr));padding-right:42px}.secondary-editor-row .editor-remove{right:7px;top:10px}}

/* 2026 Wuhan secondary-school source refresh. */
.secondary-education-card{border-left:4px solid #0a84ff;background:#fff}.secondary-technical-card{border-left:4px solid #26a269;background:#f4fbf7}.secondary-picker-row{border-left:4px solid transparent}.secondary-picker-education{border-left-color:#0a84ff}.secondary-picker-technical{border-left-color:#26a269;background:#f4fbf7}.secondary-system-badge{display:inline-flex;align-items:center;min-height:22px;margin-left:7px;padding:0 7px;border-radius:5px;font-size:11px;font-weight:600;vertical-align:2px}.secondary-system-badge.technical{background:#dff5e8;color:#176b43}.secondary-major-fee{display:block;width:max-content;max-width:100%;margin-top:7px;padding:4px 7px;border-radius:5px;background:#fff2cf;color:#7a4b00;font-size:13px;font-weight:600;line-height:1.35;white-space:normal}.secondary-plan-table-skill{min-width:720px}.secondary-plan-table-skill th:first-child{width:17%}.secondary-plan-table-skill th:nth-child(2){width:18%}.secondary-plan-table-skill th:nth-child(3){width:45%}.secondary-plan-table-skill th:nth-child(4){width:20%;white-space:nowrap}.secondary-plan-table-skill td:nth-child(3){white-space:normal}

#secondaryPlanEditDialog{width:min(980px,calc(100vw - 28px));max-height:calc(100dvh - 28px);margin:auto;padding-bottom:0;border-radius:14px;overflow:hidden}#secondaryPlanEditDialog[open]{display:flex;flex-direction:column}#secondaryPlanEditDialog .sheet-handle{flex:0 0 auto}#secondaryPlanEditDialog .dialog-body{flex:1 1 auto;min-height:0;max-height:none;padding:12px 18px 18px;overflow-y:auto;overscroll-behavior:contain}#secondaryPlanEditDialog .dialog-actions{position:relative;z-index:2;flex:0 0 auto;padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--separator);background:rgba(242,242,247,.96);backdrop-filter:blur(16px)}#secondaryPlanEditDialog .secondary-editor-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px 52px 14px 14px;border-radius:10px;align-items:end}#secondaryPlanEditDialog .secondary-editor-row label{min-width:0;font-size:12px}#secondaryPlanEditDialog .secondary-editor-row input,#secondaryPlanEditDialog .secondary-editor-row select{height:40px;font-size:14px}#secondaryPlanEditDialog .editor-remove{right:10px;top:14px;height:40px}
@media(max-width:620px){#secondaryPlanEditDialog{width:100%;max-height:92dvh;margin:auto auto 0;border-radius:16px 16px 0 0}#secondaryPlanEditDialog .dialog-body{padding-left:12px;padding-right:12px}#secondaryPlanEditDialog .dialog-actions{grid-template-columns:1fr 1fr}#secondaryPlanEditDialog .dialog-primary{grid-column:1 / -1;grid-row:1}#secondaryPlanEditDialog .secondary-editor-row{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 44px 12px 10px}#secondaryPlanEditDialog .editor-remove{right:7px;top:12px}.secondary-plan-table-skill{min-width:690px}.secondary-system-badge{margin-left:5px}}

/* Premium mobile home: quiet surfaces, restrained color and tighter information density. */
:root{--bg:#f5f5f7;--surface:#fff;--label:#1d1d1f;--secondary:#6e6e73;--tertiary:#86868b;--separator:rgba(60,60,67,.16);--blue:#0071e3;--green:#218b74;--orange:#b97822;--purple:#7a5ab8;--teal:#278fa4}
html,body{overscroll-behavior-x:none}
.app-shell{background:var(--bg)}
.app-bar{height:56px;background:rgba(250,250,252,.88);border-bottom-color:rgba(60,60,67,.12)}
.bar-title{font-size:15px;letter-spacing:.01em}
.home-screen{}
#homeScreen{padding-top:18px}
.home-header{position:relative;align-items:center;gap:15px;padding:18px 6px 28px}
.home-header img{width:58px;height:58px;border-radius:16px;box-shadow:0 8px 22px rgba(0,0,0,.11)}
.home-header p{margin-bottom:5px;color:#73737a;font-size:13px;letter-spacing:.04em}
.home-header h1{font-size:28px;letter-spacing:-.02em;font-weight:700}
.home-header span{margin-top:6px;color:#8a8a90;font-size:13px}
.ios-section>h2{margin:0 5px 10px;color:#79797f;font-size:12px;font-weight:600;letter-spacing:.04em}
.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.category-card{position:relative;min-height:116px;padding:15px;border:1px solid rgba(60,60,67,.08);border-radius:15px;background:rgba(255,255,255,.92);box-shadow:0 5px 18px rgba(31,38,48,.045);display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto 1fr;gap:10px 11px;justify-content:initial;transition:transform .16s,box-shadow .16s,border-color .16s}
.category-card:first-child{grid-column:span 2}
.category-card:hover,.category-card:focus-visible{border-color:rgba(0,113,227,.22);box-shadow:0 8px 22px rgba(31,38,48,.08);outline:0}
.category-card:active{transform:scale(.985);box-shadow:0 3px 10px rgba(31,38,48,.06)}
.category-icon{width:40px;height:40px;border-radius:12px;font-size:16px;grid-row:1 / span 2;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}
.category-card>span:nth-child(2){min-width:0;display:grid;align-content:center;gap:3px}
.category-card strong{margin:0;font-size:16px;line-height:1.25;letter-spacing:-.01em}
.category-card small{margin:0;color:#85858b;font-size:11px;line-height:1.35}
.category-card small.category-status{color:var(--blue);font-size:11px;font-weight:600;white-space:normal}
.tone-green{background:#218b74}.tone-blue{background:#1677c8}.tone-orange{background:#b97822}.tone-purple{background:#7a5ab8}.tone-teal{background:#278fa4}
.home-status{margin-top:20px;border:1px solid rgba(60,60,67,.08);box-shadow:0 5px 18px rgba(31,38,48,.04)}
.home-status .ios-row{min-height:58px;background:rgba(255,255,255,.92)}
.home-status .ios-row+.ios-row:before{left:59px;background:rgba(60,60,67,.1)}
.home-status .row-icon{width:30px;height:30px;border-radius:9px;font-size:15px}
.home-status .row-content strong{font-size:14px;font-weight:600}
.home-status .row-content small{font-size:11px;color:#85858b}
.home-status .status-text{font-size:11px;color:#77777d}
.home-status .chevron{font-size:22px}
.export-preview-dialog{width:min(520px,calc(100vw - 24px));max-height:90dvh;margin:auto;padding-bottom:0;border-radius:18px;overflow:hidden}
.export-preview-dialog .dialog-body{max-height:calc(90dvh - 116px);overflow:auto;padding:16px}
.export-preview-dialog h2{font-size:20px}
.export-preview-frame{margin-top:12px;max-height:52dvh;overflow:auto;border:1px solid var(--separator);border-radius:10px;background:#f2f2f7;text-align:center;-webkit-overflow-scrolling:touch}
.export-preview-frame img{display:block;width:100%;height:auto;user-select:none;-webkit-user-select:none}
.export-preview-name{display:block;margin-top:8px;color:var(--tertiary);font-size:11px;overflow-wrap:anywhere}
.export-preview-dialog .dialog-actions{padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--separator);background:rgba(242,242,247,.96);backdrop-filter:blur(16px)}
@media(max-width:620px){
  #homeScreen{padding-left:14px;padding-right:14px}
  .home-header{padding:12px 4px 24px}
  .home-header img{width:54px;height:54px}
  .home-header h1{font-size:24px}
  .category-grid{grid-template-columns:1fr;gap:9px}
  .category-card,.category-card:first-child{grid-column:auto;min-height:86px;padding:13px 14px;grid-template-columns:38px minmax(0,1fr);gap:10px}
  .category-icon{width:38px;height:38px;border-radius:11px}
  .category-card strong{font-size:15px}
  .category-card small{font-size:11px}
  .home-status{margin-top:18px}
}

/* The planner is a first-class home workflow, separate from the skill query hub. */
.home-shortcuts #openVolunteer{grid-column:1 / -1;min-height:76px;border-color:#cfe0ff;background:linear-gradient(105deg,#eef5ff,#fff);box-shadow:0 5px 18px rgba(23,105,255,.09)}
.home-shortcuts #openVolunteer .row-icon{background:#1769ff;color:#fff}
.home-shortcuts #openVolunteer .row-content strong{color:#1557c8}
.home-shortcuts #openVolunteer .row-content small{color:#6a7f9f}
@media(max-width:620px){.home-shortcuts #openVolunteer{grid-column:1 / -1;min-height:72px}.home-shortcuts #openVolunteer .row-icon{display:grid}}

/* The volunteer entry is intentionally light on the home screen so its
   label remains readable in both desktop and phone previews. */
.home-version{display:inline-flex;margin-left:9px;padding:2px 7px;border:1px solid #cbdcf5;border-radius:999px;background:#edf4ff;color:#1769e0;font-size:10px;font-style:normal;font-weight:700;vertical-align:middle;letter-spacing:.02em}
#openVolunteer{color:#1557c8}
#openVolunteer .row-content strong{color:#1557c8}
#openVolunteer .row-content small{color:#6a7f9f}
#openVolunteer.category-card-feature{background:linear-gradient(105deg,#eef5ff,#fff);border-color:#cfe0ff;color:#1557c8;box-shadow:0 5px 18px rgba(23,105,255,.09)}
#openVolunteer.category-card-feature strong{color:#1557c8}
#openVolunteer.category-card-feature small{color:#6a7f9f}
#openVolunteer.category-card-feature .category-status{background:#e4efff;color:#1769e0}
#openVolunteer.category-card-feature .category-chevron{color:#1769e0}

/* v136: three clear product workspaces. Detailed admission types stay inside
   查招生 so the home surface remains a decision point instead of a catalog. */
.category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.category-card{min-height:142px;padding:17px 44px 17px 17px}
.category-card.category-card-feature{grid-column:auto}
.category-card.category-card-feature{background:linear-gradient(105deg,#eaf3ff,#fff);border-color:#cfe0ff;color:#1557c8;box-shadow:0 7px 22px rgba(23,105,255,.11)}
.category-card.category-card-feature strong{color:#1557c8}
.category-card.category-card-feature small{color:#6a7f9f}
.category-card.category-card-feature .category-status{background:#e4efff;color:#1769e0}
.home-service-note{max-width:620px;margin:18px auto 0;padding:14px 16px;border:1px solid rgba(60,60,67,.1);border-radius:12px;background:rgba(255,255,255,.78);display:grid;gap:4px;color:#73737a;font-size:12px;line-height:1.55}
.home-service-note strong{color:#3c3c43;font-size:13px}
.workspace-heading{padding-bottom:8px}
.workspace-intro{margin:0 3px 22px;color:var(--secondary);font-size:13px;line-height:1.55}
.workspace-section-label{margin:0 3px 10px;color:var(--secondary);font-size:12px;font-weight:600}
.workspace-row-list{display:grid;gap:10px}
.workspace-row{position:relative;min-width:0;min-height:76px;padding:13px 42px 13px 14px;border:1px solid rgba(60,60,67,.1);border-radius:13px;background:#fff;box-shadow:0 4px 15px rgba(31,38,48,.04);display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;text-align:left;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.workspace-row:hover,.workspace-row:focus-visible{border-color:rgba(0,113,227,.24);box-shadow:0 7px 20px rgba(31,38,48,.075);outline:0}
.workspace-row:active{transform:scale(.99)}
.workspace-row-primary{border-color:#cfe0ff;background:#f7fbff}
.workspace-row.is-planned{background:#fbfbfc}
.workspace-row-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;font-size:15px;font-weight:700}
.workspace-row-copy{min-width:0;display:grid;gap:4px}
.workspace-row-copy strong{font-size:15px;font-weight:650;line-height:1.3}
.workspace-row-copy small{color:var(--secondary);font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.workspace-row-status{align-self:start;margin-top:3px;padding:4px 7px;border-radius:999px;background:#edf6ff;color:#0769c9;font-size:10px;font-weight:600;white-space:nowrap}
.workspace-row.is-planned .workspace-row-status{background:#f0f0f3;color:#7b7b83}
.workspace-row-chevron{position:absolute;right:14px;top:50%;translate:0 -50%;color:#c5c5ca;font-size:22px}
.workspace-tip{margin:18px 3px 0;padding:14px 15px;border-radius:11px;background:#eef6ff;color:#536b84;display:grid;gap:4px;font-size:12px;line-height:1.55}
.workspace-tip strong{color:#205b91;font-size:13px}
.workspace-tip-muted{background:#f2f2f5;color:#6e6e73}
.workspace-tip-muted strong{color:#45454b}
@media(max-width:760px){.category-grid{grid-template-columns:1fr}.category-card{min-height:92px;padding:14px 42px 14px 14px}.category-card.category-card-feature{min-height:100px}.home-service-note{margin-top:16px}.workspace-row{min-height:72px}}

.location-address-value{display:flex;align-items:flex-start;flex-wrap:wrap;gap:5px 8px;margin-top:6px;min-width:0}
.location-address-link{min-width:0;color:var(--label);font-weight:600;line-height:1.45;text-decoration:none;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}
.location-address-link:hover,.location-address-link:focus-visible{color:var(--blue);text-decoration:underline}
.location-map-actions{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}
.location-map-actions a{padding:3px 6px;border-radius:6px;background:#eaf3ff;color:#0066cc;font-size:10px;font-weight:700;line-height:1.3;text-decoration:none;white-space:nowrap}
.location-map-actions a:hover,.location-map-actions a:focus-visible{background:#d9eaff}
.school-campus-summary .location-address-value{margin-top:4px}

/* Secondary-school code split, editable remarks, deletion and city drill-down. */
.secondary-plan-table-skill{min-width:980px}.secondary-plan-table-skill th:nth-child(1){width:12%}.secondary-plan-table-skill th:nth-child(2){width:13%}.secondary-plan-table-skill th:nth-child(3){width:15%}.secondary-plan-table-skill th:nth-child(4){width:30%}.secondary-plan-table-skill th:nth-child(5){width:12%;white-space:nowrap}.secondary-plan-table-skill th:nth-child(6){width:18%}.secondary-plan-table-skill td:nth-child(1),.secondary-plan-table-skill td:nth-child(2),.secondary-plan-table-skill td:nth-child(3){white-space:nowrap}.secondary-plan-table-skill td:nth-child(4){color:var(--label);font-size:13px;white-space:normal}.secondary-plan-table-skill td:nth-child(4)>strong{font-size:14px;font-weight:600;line-height:1.45}.secondary-code-cell{color:var(--blue);font-variant-numeric:tabular-nums}.secondary-plan-remark{display:block;color:var(--secondary);font-size:12px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}.secondary-delete-button{height:40px;padding:0 13px;border:1px solid #ffb4b4;border-radius:9px;background:#fff4f4;color:#c62828;font-size:14px;font-weight:600;cursor:pointer}.secondary-delete-button:hover,.secondary-delete-button:focus{background:#ffe6e6;outline:2px solid rgba(198,40,40,.15);outline-offset:1px}.secondary-restore-button{display:block;width:max-content;margin:10px 0 0;padding:8px 12px;border:1px solid #b8d4ff;border-radius:8px;background:#f4f8ff;color:var(--blue);font-size:12px;cursor:pointer}.secondary-restore-button:hover,.secondary-restore-button:focus{background:#e6f0ff;outline:2px solid rgba(0,122,255,.15);outline-offset:1px}.secondary-editor-wide{grid-column:1 / -1}.secondary-editor-row textarea{width:100%;min-height:58px;padding:8px;border:1px solid var(--separator);border-radius:7px;background:#fff;color:var(--label);font:inherit;font-size:13px;line-height:1.4;resize:vertical;outline:0}.secondary-editor-row textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,122,255,.12)}
.secondary-city-map-card{margin:16px 0 18px;padding:16px;border-radius:14px;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.04)}.secondary-city-map-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.secondary-city-map-heading div{display:grid;gap:3px}.secondary-city-map-heading strong{font-size:16px}.secondary-city-map-heading small,.secondary-city-map-heading>span{color:var(--secondary);font-size:11px}.secondary-city-map-canvas{position:relative;overflow:hidden;border:1px solid #dbe8f8;border-radius:11px;background:#f6faff}.secondary-city-map-canvas svg{display:block;width:100%;height:auto;min-height:220px}.secondary-city-map-outline{fill:#e7f1ff;stroke:#a8c8f5;stroke-width:2}.secondary-city-map-river{fill:none;stroke:#b9dafa;stroke-width:15;stroke-linecap:round;opacity:.8}.secondary-city-map-road{fill:none;stroke:#c5daf3;stroke-width:1.5;stroke-dasharray:7 6}.secondary-city-map-city-label{fill:#6d8eaf;font-size:22px;font-weight:700;text-anchor:middle;opacity:.9}.secondary-city-map-node{cursor:pointer;outline:0}.secondary-city-map-node circle{fill:#fff;stroke:#1677d2;stroke-width:2.5;transition:fill .15s,transform .15s}.secondary-city-map-node:hover circle,.secondary-city-map-node:focus circle{fill:#e2f0ff;transform:scale(1.08);transform-origin:center}.secondary-city-map-node text{fill:#24537e;font-size:12px;font-weight:600;pointer-events:none}.secondary-city-map-node .secondary-city-map-count{fill:#6d8aa5;font-size:10px;font-weight:500}.secondary-city-map-legend{display:flex;flex-wrap:wrap;gap:7px 12px;margin-top:10px;color:var(--secondary);font-size:11px}.secondary-city-map-legend span{display:inline-flex;align-items:center;gap:5px}.secondary-city-map-legend i{width:7px;height:7px;border-radius:50%;background:#1677d2;display:inline-block}
@media(max-width:620px){.secondary-plan-table-skill{min-width:920px}.secondary-city-map-card{padding:12px}.secondary-city-map-heading{align-items:flex-start;flex-direction:column;gap:3px}.secondary-city-map-heading strong{font-size:15px}.secondary-city-map-canvas svg{min-height:190px}.secondary-city-map-city-label{font-size:18px}.secondary-city-map-node circle{r:22}.secondary-city-map-node text{font-size:11px}}

/* Address-derived district grouping and seven-column 3+2 plans. */
.secondary-plan-table-threeTwo{min-width:1120px}.secondary-plan-table-threeTwo th:nth-child(1),.secondary-plan-table-threeTwo th:nth-child(2){width:11%}.secondary-plan-table-threeTwo th:nth-child(3){width:16%}.secondary-plan-table-threeTwo th:nth-child(4),.secondary-plan-table-threeTwo th:nth-child(5){width:18%}.secondary-plan-table-threeTwo th:nth-child(6){width:10%;white-space:nowrap}.secondary-plan-table-threeTwo th:nth-child(7){width:16%}.secondary-plan-table-threeTwo td:nth-child(3),.secondary-plan-table-threeTwo td:nth-child(4),.secondary-plan-table-threeTwo td:nth-child(5),.secondary-plan-table-threeTwo td:nth-child(7){white-space:normal}.secondary-city-map-node.is-selected circle{fill:#0a84ff;stroke:#005bb5;stroke-width:3.5}.secondary-city-map-node.is-selected text{fill:#fff}.secondary-city-map-node.is-selected .secondary-city-map-count{fill:#eaf5ff}.secondary-city-map-legend{gap:7px}.secondary-city-map-legend button{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:3px 8px;border:1px solid #dbe8f8;border-radius:6px;background:#fff;color:var(--secondary);font:inherit;cursor:pointer}.secondary-city-map-legend button:hover,.secondary-city-map-legend button:focus{border-color:#7db7f5;outline:0}.secondary-city-map-legend button.is-selected{border-color:#0a84ff;background:#e7f2ff;color:#005bb5;font-weight:600}.secondary-district-group{margin:0 0 22px;padding:0 0 4px;border-radius:10px;transition:background .15s,box-shadow .15s}.secondary-district-group.is-selected{background:#eef6ff;box-shadow:0 0 0 2px #0a84ff}.secondary-district-group-heading{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:0 4px;outline:0}.secondary-district-group.is-selected .secondary-district-group-heading{padding:0 12px}.secondary-district-group-heading h2{margin:0;font-size:17px;letter-spacing:0}.secondary-district-group-heading span{color:var(--secondary);font-size:12px}.secondary-district-school-list{display:grid;gap:12px}.secondary-district-group.is-selected .secondary-district-school-list{padding:0 8px 8px}
@media(max-width:620px){.secondary-plan-table-threeTwo{min-width:1080px}.secondary-district-group-heading h2{font-size:16px}}

/* Secondary school-name search presents the four decision fields up front. */
.picker-list .secondary-picker-row{min-height:126px;align-items:flex-start;padding-top:14px;padding-bottom:14px}.secondary-picker-content{gap:7px}.secondary-picker-content>strong{font-size:16px;line-height:1.35}.secondary-picker-facts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--secondary);font-size:12px}.secondary-picker-ownership{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:5px;font-size:11px}.secondary-picker-ownership-public{background:#e6f2ff;color:#005fb8}.secondary-picker-ownership-private{background:#fff0e5;color:#a34700}.secondary-picker-ownership-unknown{background:#ededf2;color:#666}.secondary-picker-address,.secondary-picker-classes{display:grid!important;grid-template-columns:64px minmax(0,1fr);gap:7px;color:var(--label)!important;font-size:12px!important;line-height:1.5!important}.secondary-picker-address b,.secondary-picker-classes b{color:var(--secondary);font-weight:500}.secondary-picker-review{width:max-content;padding:2px 6px;border-radius:4px;background:#fff3d6;color:#9a5b00!important;font-size:10px!important}.secondary-picker-row>.chevron{align-self:center}
@media(max-width:520px){.picker-list .secondary-picker-row{min-height:132px;padding-left:11px;padding-right:11px}.secondary-picker-address,.secondary-picker-classes{grid-template-columns:58px minmax(0,1fr);gap:5px}.secondary-picker-content>strong{font-size:15px}}

/* Two-stage secondary-major navigation: twelve stable categories first, then
   concrete majors with a local classification override. */
.secondary-major-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:6px;background:transparent;border-radius:0;overflow:visible}.secondary-major-category-card{min-width:0;min-height:88px;padding:13px 12px;border:1px solid #e1e4e9;border-left:4px solid #5b8fd8;border-radius:8px;background:#fff;display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:10px;text-align:left;box-shadow:0 1px 2px rgba(0,0,0,.035)}.secondary-major-category-card:hover,.secondary-major-category-card:focus{border-color:#8cb8ee;outline:2px solid rgba(0,122,255,.12);outline-offset:1px}.secondary-major-category-card>span:nth-child(2){min-width:0}.secondary-major-category-card strong{display:block;font-size:15px;line-height:1.35}.secondary-major-category-card small{display:block;margin-top:5px;color:var(--secondary);font-size:11px;line-height:1.4}.secondary-major-category-mark{width:38px;height:38px;border-radius:8px;background:#e8f2ff;color:#0769c9;display:grid;place-items:center;font-size:15px;font-weight:700}.secondary-major-category-card.is-skill-1{border-left-color:#16a085}.secondary-major-category-card.is-skill-1 .secondary-major-category-mark{background:#e5f7f2;color:#137560}.secondary-major-category-card.is-skill-2{border-left-color:#8e6bbd}.secondary-major-category-card.is-skill-2 .secondary-major-category-mark{background:#f0eafa;color:#6f489f}.secondary-major-category-card.is-skill-3{border-left-color:#cc7a16}.secondary-major-category-card.is-skill-3 .secondary-major-category-mark{background:#fff1dc;color:#9b5700}.secondary-major-category-card.is-skill-4{border-left-color:#d85b6a}.secondary-major-category-card.is-skill-4 .secondary-major-category-mark{background:#ffe9ec;color:#a83745}.secondary-major-category-card.is-comprehensive{border-left-color:#267a4d}.secondary-major-category-card.is-comprehensive .secondary-major-category-mark{background:#e5f5ec;color:#176b43}.secondary-major-category-card.is-employment{border-left-color:#b86b08}.secondary-major-category-card.is-employment .secondary-major-category-mark{background:#fff0d5;color:#8b5000}.secondary-major-search{margin-top:14px}.secondary-major-list{display:grid;gap:9px}.secondary-major-option{min-width:0;min-height:72px;border:1px solid #e4e5e9;border-radius:8px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.03)}.secondary-major-main{min-width:0;padding:12px 14px;border:0;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}.secondary-major-main:hover,.secondary-major-main:focus{background:#f7faff;outline:0}.secondary-major-main>span:first-child{min-width:0}.secondary-major-main strong{display:block;font-size:15px;line-height:1.4;overflow-wrap:anywhere}.secondary-major-main small{display:block;margin-top:4px;color:var(--secondary);font-size:11px}.secondary-major-reclassify{align-self:center;min-height:34px;margin-right:12px;padding:0 10px;border:1px solid #b8d4ff;border-radius:7px;background:#f4f8ff;color:#075da8;font-size:11px;font-weight:600;white-space:nowrap}.secondary-major-reclassify:hover,.secondary-major-reclassify:focus{background:#e5f0ff;outline:2px solid rgba(0,122,255,.12)}.secondary-major-edit-name{margin:12px 0 4px;padding:11px 12px;border-radius:8px;background:#fff;color:var(--label);font-size:16px;font-weight:600;line-height:1.4}.edit-field select{width:100%;height:42px;padding:0 10px;border:1px solid var(--separator);border-radius:9px;background:#fff;color:var(--label);font-size:15px;outline:0}.edit-field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,122,255,.12)}
@media(max-width:560px){.secondary-major-category-grid{grid-template-columns:1fr}.secondary-major-category-card{min-height:76px}.secondary-major-option{grid-template-columns:minmax(0,1fr) auto}.secondary-major-main{padding-left:12px}.secondary-major-reclassify{margin-right:8px;padding:0 8px}}

/* v75 home and mobile navigation: centered identity, consistent entry cards and light transitions. */
html,body{overscroll-behavior-x:auto}
#homeScreen{padding-top:18px}
.home-header{max-width:620px;margin:0 auto;padding:30px 12px 34px;display:grid;justify-items:center;gap:14px;text-align:center}
.home-header img{width:70px;height:70px;border-radius:19px;box-shadow:0 10px 28px rgba(18,50,43,.16)}
.home-header>div{display:grid;justify-items:center}
.home-header p{margin:0 0 6px;color:#747478;font-size:12px;font-weight:600;letter-spacing:0}
.home-header h1{font-size:30px;font-weight:700;line-height:1.15;letter-spacing:0}
.home-header span{margin-top:7px;color:#77777c;font-size:13px}
.home-header em{display:inline-flex;align-items:center;gap:4px;margin-top:13px;padding:6px 10px;border:1px solid rgba(33,139,116,.18);border-radius:999px;background:#eef8f5;color:#377267;font-size:11px;font-style:normal;line-height:1}
.home-header em strong{font-size:inherit}
.category-section>h2{margin:0 2px 11px;color:#6e6e73;font-size:12px;font-weight:600;letter-spacing:0}
.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.category-card,.category-card:first-child{grid-column:auto;position:relative;min-height:104px;padding:15px 42px 15px 15px;border:1px solid rgba(60,60,67,.1);border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(31,38,48,.045);display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;justify-content:initial;gap:4px 12px;text-align:left;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.category-card:hover,.category-card:focus-visible{border-color:rgba(0,113,227,.24);box-shadow:0 7px 22px rgba(31,38,48,.075);outline:0}
.category-card:active{transform:scale(.985)}
.category-icon{grid-column:1;grid-row:1 / span 2;width:40px;height:40px;border-radius:12px;font-size:16px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.category-card-copy{grid-column:2;grid-row:1;min-width:0;align-self:end}
.category-card strong{margin:0;font-size:16px;font-weight:650;line-height:1.28;letter-spacing:0}
.category-card small{margin:3px 0 0;color:#7d7d82;font-size:11px;line-height:1.35}
.category-card .category-status{grid-column:2;grid-row:2;align-self:start;width:max-content;margin-top:2px;padding:4px 7px;border-radius:999px;background:#edf6ff;color:#0769c9;font-size:10px;font-weight:600;line-height:1}
.category-card.is-pending .category-status{background:#f2f2f4;color:#77777c}
.category-chevron{position:absolute;right:15px;top:50%;translate:0 -50%;color:#c5c5ca;font-size:22px;font-weight:400}
.home-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:20px}
.home-shortcuts .ios-row{min-width:0;min-height:68px;padding:11px 13px;border:1px solid rgba(60,60,67,.1);border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(31,38,48,.04)}
.home-shortcuts .row-icon{width:34px;height:34px;border-radius:10px;font-size:15px}
.home-shortcuts .row-content strong{font-size:14px;font-weight:600}
.home-shortcuts .row-content small{font-size:10px;line-height:1.35}
.home-shortcuts .chevron{font-size:21px}
.screen.active{backface-visibility:hidden;transform:translateZ(0)}
.export-preview-status{min-height:18px;margin-top:8px!important;color:#26745f!important;font-size:12px!important;font-weight:600}
.export-preview-dialog .dialog-actions{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:8px}
.export-preview-dialog .dialog-actions button{width:100%;min-width:0;margin:0}

@media(min-width:900px){
  #homeScreen{max-width:1080px;margin:0 auto;padding-top:26px}
  .home-header{padding-top:34px;padding-bottom:40px}
  .category-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
  .category-card,.category-card:first-child{min-height:166px;padding:16px;grid-template-columns:1fr;grid-template-rows:46px auto 1fr;align-content:start;gap:10px}
  .category-icon{grid-column:1;grid-row:1;width:42px;height:42px}
  .category-card-copy{grid-column:1;grid-row:2;align-self:start}
  .category-card .category-status{grid-column:1;grid-row:3;align-self:end}
  .category-chevron{right:14px;top:25px;translate:0 0}
}
@media(max-width:620px){
  #homeScreen{padding:12px 14px 30px}
  .home-header{padding:20px 8px 28px;gap:11px}
  .home-header img{width:62px;height:62px;border-radius:17px}
  .home-header h1{font-size:26px}
  .category-grid{grid-template-columns:1fr;gap:9px}
  .category-card,.category-card:first-child{min-height:82px;padding:12px 40px 12px 13px;grid-template-columns:38px minmax(0,1fr);gap:2px 11px}
  .category-icon{width:38px;height:38px;border-radius:11px}
  .category-card strong{font-size:15px}
  .category-card small{font-size:10px}
  .category-card .category-status{font-size:9px}
  .category-chevron{right:13px}
  .home-shortcuts{gap:9px;margin-top:17px}
  .home-shortcuts .ios-row{min-height:66px;padding:10px}
  .home-shortcuts .row-icon{display:none}
  .home-shortcuts .row-content strong{font-size:13px}
  .export-preview-dialog .dialog-actions{grid-template-columns:1fr 1fr}
  .export-preview-dialog .dialog-actions .dialog-primary{grid-column:1 / -1;grid-row:1}
}
.secondary-fee-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.secondary-fee-grid>div{min-width:0;border:1px solid var(--separator);border-radius:8px;background:var(--surface);overflow:hidden}.secondary-fee-grid h3{margin:0;padding:10px 12px;background:#f7f7f9;color:var(--secondary);font-size:12px;font-weight:600}.secondary-fee-row{min-height:44px;padding:9px 12px;border-top:1px solid var(--separator);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.secondary-fee-row span{font-size:12px;line-height:1.45;overflow-wrap:anywhere}.secondary-fee-row strong{color:#8b5000;font-size:14px;white-space:nowrap}.secondary-fee-source{margin-top:8px}.secondary-major-fee{display:inline-flex;margin-top:7px;padding:4px 7px;border-radius:6px;background:#fff0d5;color:#8b5000;font-size:12px;font-weight:600;line-height:1.4}
@media(max-width:560px){.secondary-fee-grid{grid-template-columns:1fr}.secondary-fee-row{grid-template-columns:minmax(0,1fr) auto}.secondary-major-fee{display:flex;width:max-content;max-width:100%}}

/* Unified data overview */
.icon-blue{background:var(--blue)}
.data-overview-heading{padding-bottom:14px}
.overview-reset-button,.overview-load-more,.overview-edit-button{min-height:36px;padding:0 13px;border:1px solid rgba(0,122,255,.3);border-radius:7px;background:#f3f8ff;color:#0066cc;font-size:13px;font-weight:600}
.overview-reset-button:focus,.overview-load-more:focus,.overview-edit-button:focus,.overview-tabs button:focus{outline:3px solid rgba(0,122,255,.15);outline-offset:1px}
.overview-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 14px;border:1px solid var(--separator);border-radius:8px;background:#fff;overflow:hidden}
.overview-summary>div{min-width:0;padding:14px 16px}
.overview-summary>div+div{border-left:1px solid var(--separator)}
.overview-summary span{display:block;color:var(--secondary);font-size:12px}
.overview-summary strong{display:block;margin-top:5px;font-size:23px;line-height:1.2}
.overview-summary .has-conflicts strong{color:#c9342c}
.overview-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-bottom:12px;padding:3px;border-radius:8px;background:#e3e3e8}
.overview-tabs button{min-width:0;height:38px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:var(--secondary);font-size:13px;font-weight:600}
.overview-tabs button.active{background:#fff;color:#0066cc;box-shadow:0 1px 3px rgba(0,0,0,.1)}
.overview-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(5,minmax(110px,1fr));gap:10px;padding:14px;border:1px solid var(--separator);border-radius:8px;background:#fff}
.overview-filters label{min-width:0;display:grid;gap:5px;color:var(--secondary);font-size:11px}
.overview-filters input,.overview-filters select{width:100%;min-width:0;height:40px;padding:0 10px;border:1px solid var(--separator);border-radius:7px;background:#f7f7f9;color:var(--label);font-size:13px;outline:0}
.overview-filters input:focus,.overview-filters select:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(0,122,255,.12)}
.overview-source-filter{grid-column:span 2}
.overview-result-heading{min-height:48px;padding:16px 3px 8px;display:flex;align-items:end;justify-content:space-between;gap:12px}
.overview-result-heading strong{font-size:17px}
.overview-result-heading span{color:var(--secondary);font-size:12px;text-align:right}
.overview-table-shell{min-height:180px}
.overview-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--separator);border-radius:8px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.overview-table{width:100%;min-width:1120px;border-collapse:collapse;text-align:left;font-size:13px}
.overview-table th,.overview-table td{padding:11px 12px;border-bottom:1px solid var(--separator);vertical-align:top}
.overview-table th{position:sticky;z-index:2;top:0;background:#f7f7f9;color:var(--secondary);font-size:11px;font-weight:600;white-space:nowrap}
.overview-table tbody tr:last-child td{border-bottom:0}
.overview-table tbody tr:hover{background:#f8fbff}
.overview-table td>strong{display:block;max-width:270px;font-size:13px;font-weight:600;line-height:1.45;overflow-wrap:anywhere}
.overview-table td>small{display:block;max-width:270px;margin-top:4px;color:var(--secondary);font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.overview-plan-table th:nth-last-child(-n+4),.overview-plan-table td:nth-last-child(-n+4){white-space:nowrap}
.overview-table-link{max-width:270px;padding:0;border:0;background:transparent;color:#0066cc;font-size:13px;font-weight:600;line-height:1.45;text-align:left;overflow-wrap:anywhere}
.overview-table-link:hover{text-decoration:underline}
.overview-status{display:inline-flex;align-items:center;min-height:24px;padding:3px 7px;border-radius:5px;background:#edf7f0;color:#247140;font-size:11px;font-weight:600;white-space:nowrap}
.overview-status.is-conflict{background:#fff0e5;color:#a34700}
.overview-status.is-edited{background:#e8f2ff;color:#0066cc}
.overview-status.is-resolved{background:#ededf2;color:#666}
.overview-edit-button.secondary{border-color:var(--separator);background:#f4f4f6;color:var(--label)}
.overview-table-empty{padding:38px 16px;color:var(--secondary);text-align:center}
.overview-load-more{display:block;min-width:150px;margin:14px auto 0;background:#fff}
#dataOverviewEditDialog{width:min(820px,calc(100vw - 28px));max-height:calc(100dvh - 28px);margin:auto;padding-bottom:0;border-radius:14px;overflow:hidden}
#dataOverviewEditDialog[open]{display:flex;flex-direction:column}
#dataOverviewEditDialog .dialog-body{flex:1 1 auto;min-height:0;max-height:none;overflow:auto}
#dataOverviewEditDialog .dialog-actions{flex:0 0 auto;padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--separator);background:rgba(242,242,247,.96);backdrop-filter:blur(16px)}
.overview-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
.overview-editor-grid .edit-field{min-width:0}
.overview-editor-wide{grid-column:1 / -1}
@media(min-width:900px){body.overview-mode main{width:min(1220px,calc(100% - 220px));margin-left:190px;margin-right:30px}.data-overview-screen{padding-left:20px;padding-right:20px}}
@media(max-width:720px){.overview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-summary>div:nth-child(3){border-left:0}.overview-summary>div:nth-child(n+3){border-top:1px solid var(--separator)}.overview-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:11px;gap:9px}.overview-search,.overview-source-filter{grid-column:1 / -1}.overview-table{min-width:980px}.overview-result-heading{align-items:flex-start;flex-direction:column;gap:3px}.overview-result-heading span{text-align:left}}
@media(max-width:520px){.data-overview-heading{align-items:center}.data-overview-heading h1{font-size:24px}.overview-reset-button{padding:0 10px}.overview-summary>div{padding:12px}.overview-summary strong{font-size:20px}.overview-tabs button{font-size:12px}.overview-editor-grid{grid-template-columns:1fr}.overview-editor-wide{grid-column:auto}#dataOverviewEditDialog{width:100%;max-height:92dvh;margin:auto auto 0;border-radius:16px 16px 0 0}#dataOverviewEditDialog .dialog-actions{grid-template-columns:1fr 1fr}#dataOverviewEditDialog .dialog-primary{grid-column:1 / -1;grid-row:1}}

/* Secondary plans: compact cards replace wide tables on phones. */
.secondary-plan-mobile{display:none}
.secondary-plan-card{min-width:0;overflow:hidden;border:1px solid rgba(60,60,67,.12);border-radius:8px;background:#fff;box-shadow:0 2px 10px rgba(31,38,48,.035)}
.secondary-plan-card.is-local{border-color:rgba(0,122,255,.28);background:#f8fbff}
.secondary-plan-card>header{padding:13px 14px 12px;border-bottom:1px solid var(--separator)}
.secondary-plan-card>header>span{display:block;margin-bottom:5px;color:var(--secondary);font-size:11px;font-weight:500}
.secondary-plan-card>header>strong{display:block;font-size:16px;font-weight:650;line-height:1.42;overflow-wrap:anywhere}
.secondary-plan-card>header .secondary-major-fee{margin-top:7px}
.secondary-plan-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.secondary-plan-card-fact{min-width:0;padding:11px 14px;border-top:1px solid var(--separator)}
.secondary-plan-card-fact:nth-child(-n+2){border-top:0}
.secondary-plan-card-fact:nth-child(even){border-left:1px solid var(--separator)}
.secondary-plan-card-fact.is-wide{grid-column:1 / -1;border-left:0}
.secondary-plan-card-fact.is-wide+.secondary-plan-card-fact{border-left:0}
.secondary-plan-card dt{margin:0 0 5px;color:var(--secondary);font-size:10px;line-height:1.35}
.secondary-plan-card dd{min-width:0;margin:0;color:var(--label);font-size:13px;font-weight:550;line-height:1.45;overflow-wrap:anywhere}
.secondary-plan-card dd>.secondary-code-cell{font-size:14px}
.secondary-plan-card dd>.secondary-row-note{margin-top:3px}

/* Public pages are read-only. The online admin session enables these controls. */
body:not(.admin-mode) [data-edit-page],body:not(.admin-mode) [data-edit-school-profile],body:not(.admin-mode) [data-edit-secondary],body:not(.admin-mode) [data-edit-secondary-plans],body:not(.admin-mode) [data-edit-single-plans],body:not(.admin-mode) [data-edit-skill],body:not(.admin-mode) [data-edit-skill-group],body:not(.admin-mode) [data-secondary-major-edit],body:not(.admin-mode) [data-delete-secondary],body:not(.admin-mode) #secondaryRestoreButton,body:not(.admin-mode) .overview-edit-button{display:none!important}
.page-edit-dialog{width:min(480px,calc(100vw - 28px))}
.page-edit-actions{display:grid;gap:8px}
.page-edit-action{width:100%;min-height:66px;padding:12px 14px;border:1px solid var(--separator);border-radius:8px;background:#fff;color:var(--label);display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left}
.page-edit-action span{min-width:0;display:grid;gap:4px}
.page-edit-action strong{font-size:14px;font-weight:650}
.page-edit-action small{color:var(--secondary);font-size:11px;line-height:1.4}
.page-edit-action b{color:#b4b4b9;font-size:23px;font-weight:400}
.page-edit-action.is-danger strong{color:#c62828}
.admin-dialog{width:min(430px,calc(100vw - 28px))}
.admin-status{min-height:20px;margin:10px 0 0;color:#b42318;font-size:12px;line-height:1.45}
.admin-dialog .dialog-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.online-save-notice{position:fixed;z-index:220;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));max-width:min(460px,calc(100vw - 32px));padding:10px 14px;border-radius:8px;background:rgba(26,27,30,.92);color:#fff;font-size:12px;font-weight:600;line-height:1.4;text-align:center;opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:opacity .18s ease,transform .18s ease;box-shadow:0 8px 28px rgba(0,0,0,.18)}
.online-save-notice.is-visible{opacity:1;transform:translate(-50%,0)}
.online-save-notice.is-error{background:rgba(166,35,35,.95)}

@media(max-width:700px){
  .secondary-plan-desktop{display:none}
  .secondary-plan-mobile{display:grid;gap:9px}
  .secondary-plan-section-block{min-width:0}
  .secondary-plan-section-heading{margin:0 2px 8px;align-items:flex-end}
  .secondary-plan-section-heading h3{font-size:17px}
  .secondary-plan-section-heading span{font-size:10px;text-align:right}
  .secondary-plan-sections{gap:24px}
}

.edge-swipe-zone{position:fixed;z-index:120;left:0;top:calc(52px + env(safe-area-inset-top));bottom:calc(54px + env(safe-area-inset-bottom));width:22px;touch-action:none;background:transparent}
body.is-edge-swiping{overflow:hidden;user-select:none}
body.is-edge-swiping .screen.active{will-change:transform}
.export-wide-layout .app-bar,.export-wide-layout .tab-bar,.export-wide-layout .export-image-button,.export-wide-layout .edge-swipe-zone{display:none!important}
.export-wide-layout .export-render-surface{display:block!important;padding:24px!important;background:#f2f2f7!important}

/* Shared 学小帮 brand lockup. Keep the mark legible without competing with
   the current page title on small screens. */
.app-bar-logo{width:24px;height:24px;flex:none;border-radius:7px;box-shadow:0 2px 6px rgba(79,70,229,.2)}
.bar-title{gap:7px}
.bar-title span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.home-brand-logo{width:62px;height:62px;display:block;flex:none;border-radius:17px;box-shadow:0 8px 20px rgba(79,70,229,.22)}
@media(max-width:420px){.app-bar-logo{width:22px;height:22px;border-radius:6px}.bar-title{gap:5px;font-size:14px}.home-brand-logo{width:58px;height:58px;border-radius:16px}}

/* Keep a stale horizontal swipe or an oversized long label from shifting the
   whole app viewport. Tables and filter rails retain their own local scroll. */
html,body{overflow-x:hidden}
main,.app-shell{min-width:0}

/* v135 home hierarchy: make the six entry points readable at a glance while
   keeping the screen quiet enough for repeated use. */
#homeScreen{padding-top:24px;padding-bottom:42px}
#homeScreen .home-header{max-width:760px;padding:28px 12px 34px;gap:16px}
#homeScreen .home-header img{width:76px;height:76px;border-radius:20px;box-shadow:0 10px 24px rgba(23,67,107,.16)}
#homeScreen .home-header p{font-size:14px;font-weight:700;color:#526273}
#homeScreen .home-header h1{font-size:32px;line-height:1.18;font-weight:760;color:#1d2d40}
#homeScreen .home-header span{max-width:34em;margin-top:9px;font-size:14px;line-height:1.55;color:#728194}
#homeScreen .home-header em{margin-top:15px;padding:7px 11px;font-size:11px}
#homeScreen .category-section{max-width:1080px;margin:0 auto}
#homeScreen .category-section>h2{margin:0 4px 13px;color:#41566c;font-size:15px;font-weight:750;letter-spacing:0}
#homeScreen .category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
#homeScreen .category-card,#homeScreen .category-card:first-child{min-height:138px;padding:18px 44px 17px 18px;border-radius:15px;border-color:#e3e9f0;background:#fff;box-shadow:0 7px 22px rgba(31,55,83,.055)}
#homeScreen .category-card strong{font-size:19px;line-height:1.3;color:#21364d}
#homeScreen .category-card small{font-size:13px;line-height:1.45;color:#718196}
#homeScreen .category-card .category-status{font-size:11px;padding:5px 8px}
#homeScreen .category-icon{width:46px;height:46px;border-radius:13px;font-size:18px}
#homeScreen .category-card-feature{grid-column:1 / -1;min-height:104px;grid-template-columns:46px minmax(0,1fr) auto;grid-template-rows:auto;align-items:center;padding:18px 48px 18px 20px;background:linear-gradient(105deg,#eef5ff,#fff);border-color:#cfe0ff;box-shadow:0 8px 24px rgba(23,105,255,.10)}
#homeScreen .category-card-feature .category-icon{grid-column:1;grid-row:1}
#homeScreen .category-card-feature .category-card-copy{grid-column:2;grid-row:1;align-self:center}
#homeScreen .category-card-feature .category-status{grid-column:3;grid-row:1;align-self:center;margin:0}
#homeScreen .category-card-feature strong{font-size:20px;color:#1557c8}
#homeScreen .category-card-feature small{font-size:13px;color:#6a7f9f}
#homeScreen .home-service-note{max-width:1080px;margin:18px auto 0;padding:14px 16px;border:1px solid #e2e9f0;border-radius:12px;background:#f8fafc;color:#6b7b8d;font-size:13px;line-height:1.55;display:flex;align-items:baseline;gap:10px}
#homeScreen .home-service-note strong{color:#2f4963;font-size:13px;white-space:nowrap}
#homeScreen .home-service-note span{min-width:0}
@media(max-width:899px){
  #homeScreen .category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #homeScreen .category-card-feature{grid-column:1 / -1}
}
@media(max-width:620px){
  #homeScreen{padding:16px 14px 32px}
  #homeScreen .home-header{padding:20px 6px 27px;gap:12px}
  #homeScreen .home-header img{width:64px;height:64px;border-radius:17px}
  #homeScreen .home-header h1{font-size:27px}
  #homeScreen .home-header span{font-size:13px}
  #homeScreen .category-section>h2{font-size:14px;margin-bottom:10px}
  #homeScreen .category-grid{grid-template-columns:1fr;gap:10px}
  #homeScreen .category-card,#homeScreen .category-card:first-child{min-height:94px;padding:14px 42px 14px 15px;grid-template-columns:42px minmax(0,1fr);gap:7px 11px}
  #homeScreen .category-icon{width:42px;height:42px;border-radius:12px}
  #homeScreen .category-card strong{font-size:17px}
  #homeScreen .category-card small{font-size:12px}
  #homeScreen .category-card-feature{min-height:96px;grid-template-columns:42px minmax(0,1fr);padding:15px 42px 15px 15px}
  #homeScreen .category-card-feature .category-card-copy{grid-column:2;grid-row:1}
  #homeScreen .category-card-feature .category-status{grid-column:2;grid-row:2;justify-self:start;margin-top:0}
  #homeScreen .category-card-feature strong{font-size:18px}
  #homeScreen .home-service-note{margin-top:16px;padding:12px 13px;display:block;font-size:12px;line-height:1.55}
  #homeScreen .home-service-note strong{display:block;margin-bottom:3px;font-size:12px}
}
