.fm-comment-btn{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(74px + env(safe-area-inset-bottom,0px));z-index:60;font:700 15px var(--sans);color:var(--white);background:var(--royal);border:1px solid #ffffff55;border-radius:999px;padding:12px 18px;box-shadow:0 6px 20px #0006;cursor:pointer}
.fm-comment-btn:hover{background:var(--blue)}.fm-short{display:none}
.fm-comment-panel{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(130px + env(safe-area-inset-bottom,0px));z-index:61;width:min(420px,calc(100vw - 36px));max-height:min(620px,calc(100vh - 150px));display:flex;flex-direction:column;background:var(--navy);color:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px #000a;overflow:hidden}
.fm-comment-panel[hidden]{display:none}
.fm-comment-panel header{display:flex;justify-content:space-between;gap:10px;padding:14px 16px;background:var(--blue);border-bottom:1px solid var(--line)}
.fm-comment-panel h3{margin:0;font:700 17px var(--sans)}.fm-comment-panel header p{margin:3px 0 0;font-size:13px;color:var(--muted)}
.fm-close{background:none;border:0;color:var(--white);font-size:24px;line-height:1;cursor:pointer;padding:0 4px;align-self:flex-start}
.fm-body{padding:14px 16px;overflow:auto}.fm-where{margin:0 0 10px;font-size:13px;color:var(--muted)}.fm-where b{color:var(--white)}
.fm-label{display:block;font-size:13px;font-weight:700;margin-bottom:4px}
.fm-body textarea{display:block;width:100%;padding:10px;border-radius:8px;border:1px solid #8394ad;background:#fff;color:#14264a;margin-bottom:10px;resize:vertical}
#fm-msg{min-height:20px;margin:8px 0 0}
#fm-mine h4{margin:14px 0 6px;font-size:14px;border-top:1px solid var(--line);padding-top:12px}
#fm-mine article{padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}#fm-mine small{color:var(--muted)}#fm-mine p{margin:3px 0 0;overflow-wrap:anywhere}
.fm-reply{color:var(--orange)}
@media(max-width:640px){.fm-long{display:none}.fm-short{display:inline}.fm-comment-btn{right:calc(10px + env(safe-area-inset-right,0px));bottom:calc(66px + env(safe-area-inset-bottom,0px));padding:9px 13px;font-size:13px}.fm-comment-panel{left:8px;right:8px;width:auto;bottom:calc(66px + env(safe-area-inset-bottom,0px))}}
@media print{.fm-comment-btn,.fm-comment-panel{display:none!important}}
/* University monitor */
.fx-wrap{max-width:1280px;margin:0 auto;padding:36px 28px 90px}
.fx-wrap h1{font:normal 40px/1.15 var(--serif);margin:6px 0 6px}.fx-sub{color:var(--muted);margin:0 0 22px;max-width:760px}
.fx-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:22px}
.fx-stat{background:var(--blue);border:1px solid var(--line);border-radius:10px;padding:13px 15px}.fx-stat b{display:block;font-size:26px;line-height:1.2}.fx-stat span{font-size:13px;color:var(--muted)}
.fx-stat.alert b{color:var(--orange)}
.fx-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:16px}
.fx-tabs button{background:none;border:0;border-bottom:3px solid transparent;color:var(--muted);padding:9px 14px;font-weight:700;cursor:pointer}
.fx-tabs button[aria-selected=true]{color:var(--white);border-bottom-color:var(--orange)}
.fx-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.fx-tools input,.fx-tools select,.fx-grant select,.fx-act input{padding:8px 10px;border-radius:7px;border:1px solid #8394ad;background:#fff;color:#14264a;max-width:100%}
.fx-tools input{flex:1 1 220px}
.fx-btn{background:var(--royal);color:var(--white);border:1px solid #ffffff44;border-radius:7px;padding:8px 13px;font-weight:700;cursor:pointer}
.fx-btn:hover{background:var(--blue)}.fx-btn.warn{background:#a8481a;border-color:#ffb38a}.fx-btn.danger{background:#a11d2e;border-color:#ff9aa6}.fx-btn:disabled{opacity:.5;cursor:default}
.fx-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.fx-table{border-collapse:collapse;width:100%;font-size:14px}.fx-table th{text-align:left;padding:9px 11px;background:var(--blue);color:var(--muted);font-size:12px;letter-spacing:.03em;white-space:nowrap}
.fx-table td{padding:9px 11px;border-top:1px solid var(--line);vertical-align:top}
.fx-row{cursor:pointer}.fx-row:hover td{background:#ffffff0d}.fx-row small,.fx-table small{color:var(--muted)}
.fx-nowrap{white-space:nowrap}
.fx-live{display:inline-block;width:9px;height:9px;border-radius:50%;background:#3ddc84;margin-right:6px}
.fx-pill{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#ffffff1f;white-space:nowrap}
.fx-pill.active{background:#1c6b45}.fx-pill.invited{background:#35508f}.fx-pill.banned{background:#a11d2e}.fx-pill.cancelled,.fx-pill.removed{background:#a8481a}.fx-pill.new{background:var(--orange);color:var(--navy)}
.fx-detail td{background:#0b2253;padding:18px}
.fx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.fx-box{background:#ffffff0a;border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}.fx-box.wide{grid-column:1/-1}.fx-box h4{margin:0 0 9px;font-size:15px}.fx-box p{margin:0 0 9px;font-size:14px}.fx-note{color:var(--muted);font-size:13px}
.fx-bar{display:grid;grid-template-columns:150px 1fr 66px;gap:8px;align-items:center;font-size:13px;margin-bottom:6px;width:100%;background:none;border:0;color:inherit;cursor:pointer;padding:3px;border-radius:5px;text-align:left}
.fx-bar[aria-pressed=true]{background:#ffffff1a}
.fx-track{height:8px;background:#ffffff22;border-radius:5px;overflow:hidden}.fx-track i{display:block;height:100%;background:var(--orange)}
.fx-grant{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:9px}.fx-grant select{flex:1 1 200px;min-width:0}
.fx-act{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.fx-act input{flex:1 1 200px}
.fx-msg{min-height:20px;font-size:13px;color:var(--orange);margin:7px 0 0}
.fx-comment{border:1px solid var(--line);border-radius:10px;padding:13px;margin-bottom:10px;background:#ffffff0a}.fx-comment.new{border-color:var(--orange)}
.fx-comment p{margin:6px 0;overflow-wrap:anywhere}.fx-comment small{color:var(--muted)}.fx-comment textarea{display:block;width:100%;padding:8px;border-radius:7px;border:1px solid #8394ad;background:#fff;color:#14264a;margin:6px 0}
@media(max-width:640px){.fx-wrap{padding:22px 16px 90px}.fx-wrap h1{font-size:30px}.fx-bar{grid-template-columns:110px 1fr 56px}.fx-detail td{padding:10px}.fx-grid{grid-template-columns:minmax(0,1fr)}}
.fx-box.wide .fx-scroll{max-height:460px;overflow-y:auto}.fx-box.wide .fx-table th{position:sticky;top:0}
