/* AMS School Features - shared front-end styles (mobile-first). Uses theme CSS variables with fallbacks. */
.amsf-empty{background:#f6f9fa;border:1px dashed #b7c9d0;border-radius:12px;padding:18px;color:#3d5560}
.amsf-ok{background:#e8f6ee;border-left:4px solid #1faa59;padding:14px 16px;border-radius:0 10px 10px 0;margin:0 0 1rem}
.amsf-err{background:#fdecec;border-left:4px solid #d33;padding:14px 16px;border-radius:0 10px 10px 0;margin:0 0 1rem}
.amsf-muted{color:#5b6b73;font-size:.92rem}
.amsf-h{margin:1.6rem 0 .6rem}.amsf-h3{margin:1.2rem 0 .5rem}
.amsf-btn{display:inline-block;border:1px solid var(--teal,#0f5c73);background:#fff;color:var(--teal,#0f5c73);border-radius:999px;padding:.4rem .9rem;font:inherit;font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none}
.amsf-btn:hover{background:var(--teal,#0f5c73);color:#fff}

/* Popup */
.ams-popup{position:fixed;inset:0;background:rgba(7,30,40,.62);display:grid;place-items:center;padding:16px;z-index:9999}
.ams-popup[hidden]{display:none}
.ams-popup__box{background:#fff;border-radius:18px;max-width:560px;width:100%;position:relative;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35);animation:amsPop .3s ease}
@keyframes amsPop{from{transform:translateY(14px) scale(.97);opacity:0}to{transform:none;opacity:1}}
.ams-popup__img{display:block;width:100%;height:auto}
.ams-popup__body{padding:22px 24px 26px;text-align:center}
.ams-popup__body h2{margin:0 0 .4rem;font-size:1.5rem}.ams-popup__body p{margin:0 0 1rem;color:#4a5b63}
.ams-popup__x{position:absolute;right:10px;top:8px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.92);font-size:1.6rem;line-height:1;cursor:pointer;color:#12232b;z-index:2}

/* Gallery */
.amsf-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.amsf-tabs button{border:1px solid #c7d6dc;background:#fff;border-radius:999px;padding:.45rem 1rem;font:inherit;cursor:pointer}
.amsf-tabs .is-on{background:var(--teal,#0f5c73);border-color:var(--teal,#0f5c73);color:#fff}
.amsf-grid{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}
@media(min-width:700px){.amsf-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1000px){.amsf-grid{grid-template-columns:repeat(4,1fr)}}
.amsf-item{display:block;border-radius:12px;overflow:hidden;background:#e9eff1;aspect-ratio:4/3}
.amsf-item[hidden]{display:none}
.amsf-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.amsf-item:hover img{transform:scale(1.05)}
.amsf-lb{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:9999;display:grid;grid-template-columns:50px 1fr 50px;align-items:center;padding:10px}
.amsf-lb[hidden]{display:none}.amsf-lb figure{margin:0;text-align:center;grid-column:2;min-width:0}
.amsf-lb img{max-width:100%;max-height:78vh;border-radius:6px}.amsf-lb figcaption{color:#ddd;margin-top:8px;font-size:.9rem}
.amsf-lb button{background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer}
.amsf-lb__p{grid-column:1;grid-row:1}.amsf-lb__n{grid-column:3;grid-row:1}.amsf-lb__x{position:absolute;right:10px;top:6px}

/* Cards: toppers / departments */
.amsf-cards{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
@media(min-width:700px){.amsf-cards{grid-template-columns:repeat(3,1fr)}}@media(min-width:1000px){.amsf-cards{grid-template-columns:repeat(4,1fr)}}
.amsf-card{border:1px solid #dfe7ea;border-radius:14px;overflow:hidden;background:#fff}
.amsf-card img{width:100%;aspect-ratio:1;object-fit:cover;object-position:top;display:block}
.amsf-card__ph{aspect-ratio:1;display:grid;place-items:center;background:linear-gradient(135deg,#0f5c73,#2a8aa5);color:#fff;font:700 3rem Georgia,serif}
.amsf-card__b{padding:12px 14px}.amsf-card h4{margin:0 0 .2rem;font-size:1rem}.amsf-pct{font:700 1.5rem Georgia,serif;color:#0f5c73;margin:.1rem 0}
.amsf-badge{display:inline-block;background:#fff3d6;color:#8a5a00;border-radius:6px;padding:2px 8px;font-size:.78rem;margin:0}

/* Forms */
.amsf-form fieldset{border:1px solid #dfe7ea;border-radius:14px;padding:16px;margin:0 0 14px}
.amsf-form legend{font-weight:700;padding:0 8px;color:#0a3f50}
.amsf-form label{display:block;font-weight:600;font-size:.93rem;margin:0 0 12px}
.amsf-form input,.amsf-form select,.amsf-form textarea{display:block;width:100%;margin-top:4px;padding:.65rem .8rem;border:1px solid #b9c9cf;border-radius:10px;font:inherit;background:#fff;color:#12232b}
.amsf-form input:focus,.amsf-form select:focus,.amsf-form textarea:focus{border-color:#0f5c73;outline:2px solid #0f5c7355}
.amsf-form .is-bad{border-color:#d33;background:#fff6f6}
.amsf-row{display:grid;gap:0 14px;grid-template-columns:1fr}@media(min-width:700px){.amsf-row{grid-template-columns:1fr 1fr}.amsf-wide{grid-column:1/-1}}
.amsf-check{display:flex!important;gap:10px;align-items:flex-start}.amsf-check input{width:auto;margin-top:5px}
.amsf-hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.amsf-shareline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#f6f9fa;border:1px solid #dfe7ea;border-radius:12px;padding:10px 12px;margin:0 0 18px;font-size:.9rem}
.amsf-shareline input{flex:1;min-width:200px;border:1px solid #c7d6dc;border-radius:8px;padding:.4rem .6rem;font:inherit;background:#fff}
.amsf-amt{font:700 2rem Georgia,serif;color:#0f5c73;margin:.2rem 0 1rem}
.amsf-job{border:1px solid #dfe7ea;border-radius:12px;padding:14px 16px;margin:0 0 12px}.amsf-job h3{margin:0 0 .3rem}.amsf-job span{margin-right:12px}

/* Calendar */
.amsf-cal{max-width:1100px}
.amsf-cal__bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}
.amsf-cal__nav{display:flex;align-items:center;gap:10px}.amsf-cal__nav h3{margin:0;min-width:10.5em;text-align:center;font-size:1.3rem}
.amsf-cal__nav button{width:40px;height:40px;border-radius:50%;border:1px solid #c7d6dc;background:#fff;font-size:1.3rem;cursor:pointer}
.amsf-cal__tools{display:flex;gap:10px;align-items:center}
.amsf-seg{display:inline-flex;border:1px solid #0f5c73;border-radius:999px;overflow:hidden}
.amsf-seg button{border:0;background:#fff;padding:.4rem .9rem;font:inherit;cursor:pointer;color:#0f5c73}.amsf-seg .is-on{background:#0f5c73;color:#fff}
.amsf-grid7{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.amsf-dow{text-align:center;font-weight:700;font-size:.78rem;color:#5b6b73;padding:6px 0;text-transform:uppercase}
.amsf-cell{min-height:92px;border:1px solid #dfe7ea;border-radius:10px;background:#fff;padding:6px;text-align:left;font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:3px;min-width:0;overflow:hidden}
.amsf-cell--off{border:0;background:none;cursor:default}
.amsf-cell b{font-size:.92rem}.amsf-cell:hover{border-color:#0f5c73}
.amsf-cell.is-today b{background:#e8a920;color:#2a1c00;border-radius:50%;width:26px;height:26px;display:grid;place-items:center}
.amsf-cell.is-sel{outline:2px solid #0f5c73;background:#f1f8fa}
.amsf-chip{display:block;font-size:.72rem;line-height:1.25;padding:2px 5px;border-radius:5px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.amsf-more{font-size:.72rem;font-weight:700;color:#0f5c73}.amsf-dots{display:none;gap:3px;flex-wrap:wrap}.amsf-dots i{width:7px;height:7px;border-radius:50%;display:block}
.amsf-c-academic{background:#0f5c73}.amsf-c-sports{background:#d9480f}.amsf-c-cultural{background:#7b3fa0}.amsf-c-holiday{background:#2f855a}.amsf-c-general{background:#5b6b73}
.amsf-ev.amsf-c-academic,.amsf-ev.amsf-c-sports,.amsf-ev.amsf-c-cultural,.amsf-ev.amsf-c-holiday,.amsf-ev.amsf-c-general{background:#fff}
.amsf-ev{border-left:5px solid;border-color:inherit}
.amsf-ev.amsf-c-academic{border-color:#0f5c73}.amsf-ev.amsf-c-sports{border-color:#d9480f}.amsf-ev.amsf-c-cultural{border-color:#7b3fa0}.amsf-ev.amsf-c-holiday{border-color:#2f855a}.amsf-ev.amsf-c-general{border-color:#5b6b73}
.amsf-ev{padding:10px 14px;margin:8px 0;border-radius:0 10px 10px 0;box-shadow:0 1px 0 #dfe7ea inset,0 0 0 1px #eef2f4}.amsf-ev h4{margin:0 0 .15rem;font-size:1rem}.amsf-ev p{margin:.15rem 0}
.amsf-panel{margin-top:16px;background:#f6f9fa;border-radius:14px;padding:12px 16px}.amsf-panel h4{margin:0 0 .3rem}
.amsf-ag{display:flex;gap:12px;align-items:flex-start}.amsf-ag__d{flex:none;width:56px;text-align:center;background:#0f5c73;color:#fff;border-radius:10px;padding:6px 0;margin-top:8px}
.amsf-ag__d b{display:block;font-size:1.3rem;line-height:1.1}.amsf-ag__d span{font-size:.72rem;text-transform:uppercase}.amsf-ag .amsf-ev{flex:1;min-width:0}
.amsf-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.82rem;color:#5b6b73;margin:14px 0 0}.amsf-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}
@media(max-width:699px){
  .amsf-cell{min-height:54px;align-items:center;padding:4px 2px}.amsf-chips,.amsf-more{display:none}.amsf-dots{display:flex;justify-content:center}
  .amsf-cal__nav h3{min-width:0;font-size:1.1rem}.amsf-dow{font-size:.68rem}
}

/* Scoreboards */
.amsb-board{background:#0b1f29;color:#fff;border-radius:18px;padding:14px;max-width:1100px}
.amsb-board:fullscreen{border-radius:0;padding:24px;overflow:auto}
.amsb-top{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;margin-bottom:10px}
.amsb-names{display:flex;gap:10px;align-items:center;flex:1;min-width:0;justify-content:center}.amsb-names span{opacity:.6}
.amsb-names input{background:#13303d;border:1px solid #2a5668;color:#fff;border-radius:10px;padding:.5rem .7rem;font:700 1rem inherit;text-align:center;min-width:0;width:100%;max-width:240px}
.amsb-sel{display:flex;gap:6px;align-items:center;font-size:.9rem}.amsb-sel select{background:#13303d;color:#fff;border:1px solid #2a5668;border-radius:8px;padding:.35rem}
.amsb-sides{display:grid;gap:12px;grid-template-columns:1fr 1fr}
.amsb-side{background:#10303d;border-radius:16px;padding:14px;text-align:center;border:3px solid transparent;min-width:0}
.amsb-side.is-poss{border-color:#e8a920}.amsb-side.is-win{border-color:#2fd37a;background:#0e4a35}
.amsb-side h3{margin:0 0 4px;color:#cfe8f0;font:700 1.05rem system-ui,sans-serif;overflow-wrap:anywhere}.amsb-side h3 small{color:#e8a920;font-size:.75rem}
.amsb-score{font:800 clamp(3.2rem,15vw,8rem)/1 "Courier New",monospace;color:#ffd24d;margin:6px 0;letter-spacing:.02em}
.amsb-sets{color:#9fc7d4;margin-bottom:8px}.amsb-sets b{color:#fff;font-size:1.3rem}
.amsb-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.amsb-board button{background:#1b4a5e;color:#fff;border:1px solid #2f6b84;border-radius:10px;padding:.55rem .9rem;font:600 .95rem system-ui,sans-serif;cursor:pointer;touch-action:manipulation}
.amsb-board button:hover{background:#25607a}.amsb-board button:disabled{opacity:.4;cursor:not-allowed}
.amsb-btns button{min-width:62px;padding:.8rem 1rem;font-size:1.15rem;background:#e8a920;color:#2a1c00;border-color:#e8a920}.amsb-btns .sm{background:#1b4a5e;color:#fff;border-color:#2f6b84;font-size:1rem}
.amsb-mini{display:flex;flex-direction:column;gap:6px;margin-top:10px;font-size:.9rem;color:#cfe8f0}.amsb-mini b{color:#fff;margin:0 4px}.amsb-mini button{padding:.2rem .6rem}
.amsb-clock{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin:8px 0}
.amsb-clock b{font:800 clamp(2.6rem,9vw,4.5rem) "Courier New",monospace;color:#7df0a8;background:#06151c;border-radius:12px;padding:0 18px}
.amsb-clock div{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.amsb-q{text-align:center;margin:4px 0 10px;color:#9fc7d4}.amsb-q b{color:#fff;font-size:1.3rem;margin:0 8px}
.amsb-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:14px}
.amsb-info{text-align:center;color:#9fc7d4;margin:12px 0 0}.amsb-winner{color:#7df0a8;font-size:1.2rem}.amsb-hist span{background:#13303d;border-radius:6px;padding:2px 8px;margin:0 3px}
.amsb-hist{text-align:center;color:#9fc7d4}
.amsb-rows{display:grid;gap:6px;margin-top:8px;text-align:left}.amsb-rows div{display:flex;align-items:center;gap:8px;background:#0b2530;border-radius:10px;padding:6px 10px}
.amsb-rows span{flex:1;font-size:.9rem}.amsb-rows b{font-size:1.2rem;min-width:1.4em;text-align:center;color:#ffd24d}.amsb-rows button{padding:.35rem .8rem}
.amsb-white .amsb-score,.amsb-white h3{color:#fff}.amsb-blue{background:#12426e}
@media(max-width:520px){.amsb-board{padding:10px}.amsb-side{padding:10px}.amsb-board button{padding:.5rem .6rem}}
.amsf-hub{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
