:root{--r24-radius:14px;--r24-border:#d9e1ea;--r24-bg:#f7f9fc;--r24-text:#172230;--r24-muted:#657386;--r24-primary:#123e67;--r24-success:#14734a;--r24-danger:#a82727;--r24-shadow:0 10px 30px rgba(18,42,66,.09)}
.r24-card{background:#fff;border:1px solid var(--r24-border);border-radius:var(--r24-radius);box-shadow:var(--r24-shadow);padding:18px;margin:18px 0;min-width:0}.r24-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.r24-card-head h2,.r24-card-head h3{margin:0;color:var(--r24-text);font-size:1.1rem}.r24-card-head p{margin:.25rem 0 0;color:var(--r24-muted)}
.r24-dashboard-map,.r24-map-canvas{width:100%;height:430px;min-height:320px;border-radius:12px;overflow:hidden;background:var(--r24-bg);position:relative}.r24-map-counter{display:inline-flex;align-items:center;background:#eef4fa;color:#234c70;border-radius:999px;padding:6px 10px;font-size:.8rem;white-space:nowrap}.r24-map-caption{font-size:.82rem;color:var(--r24-muted);margin-top:7px}.r24-map-warning{color:var(--r24-danger);font-size:.78rem;margin-top:4px}
.r24-loading,.r24-empty,.r24-error{min-height:90px;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;border:1px dashed var(--r24-border);border-radius:10px;color:var(--r24-muted);background:var(--r24-bg)}.r24-error{color:var(--r24-danger);background:#fff7f7;border-color:#efcaca}
.r24-autosave-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;border:1px solid var(--r24-border);border-radius:10px;padding:8px 11px;margin:0 0 14px;background:#fbfcfe;font-size:.82rem;color:var(--r24-muted)}.r24-autosave-dot{width:8px;height:8px;border-radius:50%;background:#91a0b1}.r24-autosave-bar[data-status="saving"] .r24-autosave-dot,.r24-autosave-bar[data-status="dirty"] .r24-autosave-dot{background:#c78513}.r24-autosave-bar[data-status="saved"] .r24-autosave-dot{background:var(--r24-success)}.r24-autosave-bar[data-status="error"] .r24-autosave-dot{background:var(--r24-danger)}.r24-link{border:0;background:transparent;color:var(--r24-primary);padding:3px 5px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.r24-save-now{margin-left:auto}
.r24-restore-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;margin:0 0 15px;border:1px solid #b8cee2;border-radius:11px;background:#eef6fd;color:var(--r24-text)}.r24-restore-panel>div:first-child{display:flex;flex-direction:column}.r24-restore-panel span{font-size:.82rem;color:var(--r24-muted)}.r24-btn-primary,.r24-btn-secondary{border-radius:8px;padding:8px 12px;cursor:pointer;font:inherit}.r24-btn-primary{border:1px solid var(--r24-primary);background:var(--r24-primary);color:#fff}.r24-btn-secondary{border:1px solid var(--r24-border);background:#fff;color:var(--r24-text);margin-left:6px}
.r24-combobox{position:relative;width:100%}.r24-combobox-input{width:100%;box-sizing:border-box}.r24-native-hidden,.r24-url-storage{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.r24-combobox-list{display:none;position:absolute;z-index:10050;top:calc(100% + 4px);left:0;right:0;max-height:290px;overflow:auto;border:1px solid var(--r24-border);border-radius:10px;background:#fff;box-shadow:var(--r24-shadow)}.r24-combobox-list.r24-open{display:block}.r24-combobox-option{display:flex;width:100%;flex-direction:column;align-items:flex-start;text-align:left;border:0;border-bottom:1px solid #edf1f5;background:#fff;padding:10px 12px;cursor:pointer;color:var(--r24-text)}.r24-combobox-option:hover,.r24-combobox-option:focus{background:#f0f6fb;outline:none}.r24-combobox-option span,.r24-combobox-message{font-size:.78rem;color:var(--r24-muted)}.r24-combobox-message{padding:12px}
.r24-upload-box{display:grid;grid-template-columns:minmax(180px,1fr);gap:7px;border:1px dashed #a9bdd0;border-radius:11px;background:#f8fbfe;padding:12px;margin:6px 0}.r24-upload-label{font-weight:600;color:var(--r24-text)}.r24-upload-file{max-width:100%}.r24-upload-message{color:var(--r24-muted)}.r24-upload-complete{border-style:solid;border-color:#a8d7c1;background:#f3fbf7}.r24-upload-preview{display:block;max-width:180px;max-height:140px;object-fit:cover;border-radius:8px;margin-top:5px}
.r24-academy-upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.r24-academy-media-list{margin-top:14px}.r24-academy-media-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;border-top:1px solid var(--r24-border);padding:11px 0}.r24-academy-media-list article>div{display:flex;flex-direction:column}.r24-academy-media-list article span{font-size:.8rem;color:var(--r24-muted)}
.r24-toast-stack{position:fixed;z-index:2147483000;right:18px;bottom:18px;display:flex;flex-direction:column;gap:9px;max-width:min(420px,calc(100vw - 36px))}.r24-toast{transform:translateY(12px);opacity:0;transition:.2s ease;border-radius:10px;background:#fff;color:var(--r24-text);border:1px solid var(--r24-border);box-shadow:var(--r24-shadow);padding:12px 14px}.r24-toast.r24-visible{transform:none;opacity:1}.r24-toast.r24-success{border-left:4px solid var(--r24-success)}.r24-toast.r24-error{border-left:4px solid var(--r24-danger)}
@media(max-width:760px){.r24-dashboard-map,.r24-map-canvas{height:350px}.r24-card-head,.r24-restore-panel{align-items:stretch;flex-direction:column}.r24-academy-upload-grid{grid-template-columns:1fr}.r24-academy-media-list article{grid-template-columns:1fr}.r24-save-now{margin-left:0}.r24-toast-stack{left:12px;right:12px;bottom:12px}}
.r24-pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;margin:10px 18px;padding:10px 0;color:var(--r24-muted);font-size:.86rem}.r24-pager[aria-busy="true"]{opacity:.58;pointer-events:none}.r24-pager-total{margin-right:auto}.r24-pager a,.r24-page-disabled{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:5px 10px;border:1px solid var(--r24-border);border-radius:8px;background:#fff;color:var(--r24-primary);text-decoration:none}.r24-pager a[aria-current="page"]{background:var(--r24-primary);border-color:var(--r24-primary);color:#fff}.r24-page-disabled{opacity:.45;color:var(--r24-muted)}.r24-pager-pages{display:flex;gap:5px}
