Address Moodle Marketplace review for mod_meetletacbfree 1.1.3.
Migrate legacy ajax/JS to external services and AMD, enable TLS verification, scope admin CSS with RTLCSS-safe rules, and fix README/lang/boilerplate gaps. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+537
-22
@@ -1185,11 +1185,13 @@
|
||||
background: #c0392b;
|
||||
border-color: #c0392b;
|
||||
}
|
||||
/* rtl:begin:ignore */
|
||||
html[dir="rtl"] .meetlet-modal--confirm .meetlet-modal__title,
|
||||
html[dir="rtl"] .meetlet-modal--confirm .meetlet-modal__body,
|
||||
html[dir="rtl"] .meetlet-modal--confirm .meetlet-modal__lead {
|
||||
text-align: right;
|
||||
}
|
||||
/* rtl:end:ignore */
|
||||
/* Marker class on html; lock scroll on body only — overflow+height on html resets scroll position. */
|
||||
html.meetlet-modal-open body {
|
||||
overflow: hidden;
|
||||
@@ -1349,7 +1351,7 @@ html.meetlet-modal-open body {
|
||||
transition: background .18s ease;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
direction: ltr; /* Keep thumb travel physical LTR; icons stay readable. */
|
||||
/* rtl:ignore */ direction: ltr; /* Keep thumb travel physical LTR; icons stay readable. */
|
||||
}
|
||||
.meetlet-switch__thumb {
|
||||
position: absolute;
|
||||
@@ -1405,20 +1407,20 @@ html.meetlet-modal-open body {
|
||||
.meetlet-access-cell .meetlet-switch {
|
||||
justify-content: center;
|
||||
}
|
||||
.path-admin #adminsettings .form-item:has(.meetlet-switch) {
|
||||
.meetlet-admin-settings .form-item:has(.meetlet-switch) {
|
||||
align-items: flex-start;
|
||||
}
|
||||
.path-admin #adminsettings .form-item:has(.meetlet-switch) > .form-setting {
|
||||
.meetlet-admin-settings .form-item:has(.meetlet-switch) > .form-setting {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
/* Toward the label column: left in LTR, right in RTL. */
|
||||
align-items: start;
|
||||
}
|
||||
.path-admin #adminsettings .form-item:has(.meetlet-switch) > .form-label,
|
||||
.path-admin #adminsettings .form-item:has(.meetlet-switch) > .form-setting {
|
||||
.meetlet-admin-settings .form-item:has(.meetlet-switch) > .form-label,
|
||||
.meetlet-admin-settings .form-item:has(.meetlet-switch) > .form-setting {
|
||||
padding-top: .4rem;
|
||||
}
|
||||
.path-admin #adminsettings .form-item:has(.meetlet-switch) .form-label > label {
|
||||
.meetlet-admin-settings .form-item:has(.meetlet-switch) .form-label > label {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
line-height: 22px;
|
||||
@@ -1426,9 +1428,9 @@ html.meetlet-modal-open body {
|
||||
align-items: center;
|
||||
min-height: 22px;
|
||||
}
|
||||
.path-admin #adminsettings .form-item:has(.meetlet-switch) .form-check,
|
||||
.path-admin #adminsettings .form-item:has(.meetlet-switch) .checkbox,
|
||||
.path-admin #adminsettings .form-item:has(.meetlet-switch) .form-checkbox {
|
||||
.meetlet-admin-settings .form-item:has(.meetlet-switch) .form-check,
|
||||
.meetlet-admin-settings .form-item:has(.meetlet-switch) .checkbox,
|
||||
.meetlet-admin-settings .form-item:has(.meetlet-switch) .form-checkbox {
|
||||
display: inline-flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
@@ -1441,14 +1443,16 @@ html.meetlet-modal-open body {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
html[dir="rtl"] .path-admin #adminsettings .form-item:has(.meetlet-switch) .form-check,
|
||||
html[dir="rtl"] .path-admin #adminsettings .form-item:has(.meetlet-switch) .checkbox,
|
||||
html[dir="rtl"] .path-admin #adminsettings .form-item:has(.meetlet-switch) .form-checkbox {
|
||||
/* rtl:begin:ignore */
|
||||
html[dir="rtl"] .meetlet-admin-settings .form-item:has(.meetlet-switch) .form-check,
|
||||
html[dir="rtl"] .meetlet-admin-settings .form-item:has(.meetlet-switch) .checkbox,
|
||||
html[dir="rtl"] .meetlet-admin-settings .form-item:has(.meetlet-switch) .form-checkbox {
|
||||
/* Keep switch on the label side (visual right), same as pre-compact layout. */
|
||||
flex-direction: row-reverse;
|
||||
justify-content: flex-end;
|
||||
text-align: right;
|
||||
}
|
||||
/* rtl:end:ignore */
|
||||
|
||||
/* Site admin: Moodle role → Adobe Connect role mapping (chip radios). */
|
||||
.meetlet-rolemapping-table .meetlet-rolemapping-cell {
|
||||
@@ -1637,19 +1641,19 @@ html[dir="rtl"] .path-admin #adminsettings .form-item:has(.meetlet-switch) .form
|
||||
}
|
||||
|
||||
/* Cron & video-delivery dashboard (plugin settings) */
|
||||
.path-admin #adminsettings .form-item:has(#meetlet-cronmon) {
|
||||
.meetlet-admin-settings .form-item:has(#meetlet-cronmon) {
|
||||
display: block;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
background: transparent;
|
||||
}
|
||||
.path-admin #adminsettings .form-item:has(#meetlet-cronmon) > .form-label,
|
||||
.path-admin #adminsettings .form-item:has(#meetlet-cronmon) .form-description,
|
||||
.path-admin #adminsettings .form-item:has(#meetlet-cronmon) .form-defaultinfo,
|
||||
.path-admin #adminsettings .form-item:has(#meetlet-cronmon) .form-setting > .form-shortname {
|
||||
.meetlet-admin-settings .form-item:has(#meetlet-cronmon) > .form-label,
|
||||
.meetlet-admin-settings .form-item:has(#meetlet-cronmon) .form-description,
|
||||
.meetlet-admin-settings .form-item:has(#meetlet-cronmon) .form-defaultinfo,
|
||||
.meetlet-admin-settings .form-item:has(#meetlet-cronmon) .form-setting > .form-shortname {
|
||||
display: none !important;
|
||||
}
|
||||
.path-admin #adminsettings .form-item:has(#meetlet-cronmon) > .form-setting {
|
||||
.meetlet-admin-settings .form-item:has(#meetlet-cronmon) > .form-setting {
|
||||
max-width: none;
|
||||
width: 100%;
|
||||
float: none;
|
||||
@@ -2049,20 +2053,26 @@ html[dir="rtl"] .path-admin #adminsettings .form-item:has(.meetlet-switch) .form
|
||||
}
|
||||
}
|
||||
|
||||
html[dir="rtl"] .path-admin #adminsettings #id_s_meetletacbfree_agent_dispatch,
|
||||
html[dir="rtl"] .path-admin #adminsettings select[name="s_meetletacbfree_agent_dispatch"] {
|
||||
/* rtl:begin:ignore */
|
||||
html[dir="rtl"] .meetlet-admin-settings #id_s_meetletacbfree_agent_dispatch,
|
||||
html[dir="rtl"] .meetlet-admin-settings select[name="s_meetletacbfree_agent_dispatch"] {
|
||||
direction: rtl;
|
||||
text-align: right;
|
||||
}
|
||||
html[dir="rtl"] .path-admin #adminsettings #id_s_meetletacbfree_agent_dispatch option,
|
||||
html[dir="rtl"] .path-admin #adminsettings select[name="s_meetletacbfree_agent_dispatch"] option {
|
||||
/* rtl:end:ignore */
|
||||
/* rtl:begin:ignore */
|
||||
html[dir="rtl"] .meetlet-admin-settings #id_s_meetletacbfree_agent_dispatch option,
|
||||
html[dir="rtl"] .meetlet-admin-settings select[name="s_meetletacbfree_agent_dispatch"] option {
|
||||
direction: rtl;
|
||||
text-align: right;
|
||||
}
|
||||
/* rtl:end:ignore */
|
||||
/* rtl:begin:ignore */
|
||||
html[dir="rtl"] .path-admin .meetlet-hourpicker,
|
||||
html[dir="rtl"] .path-admin .meetlet-hourpresets {
|
||||
direction: rtl;
|
||||
}
|
||||
/* rtl:end:ignore */
|
||||
|
||||
.meetlet-gate-msg {
|
||||
white-space: pre-wrap;
|
||||
@@ -2200,3 +2210,508 @@ html[dir="rtl"] .path-admin .meetlet-hourpresets {
|
||||
.activityiconcontainer .activityicon[src*="mod/meetletacbfree"] {
|
||||
filter: none !important;
|
||||
}
|
||||
|
||||
/* ===== MeetLet admin settings (scoped under .meetlet-admin-settings) ===== */
|
||||
.meetlet-admin-settings .settingsform > h2 {
|
||||
display: none;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-settings-hero {
|
||||
display:flex; gap:1rem; align-items:center;
|
||||
padding:1.15rem 1.25rem; margin:0 0 1rem;
|
||||
border-radius:16px;
|
||||
background:
|
||||
radial-gradient(700px 180px at 100% 0%, rgba(82,204,163,.22), transparent 55%),
|
||||
linear-gradient(135deg, #00261a 0%, #0a3d2e 60%, #145c45 100%);
|
||||
color:#fff;
|
||||
border:1px solid rgba(82,204,163,.25);
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-settings-hero img {
|
||||
width:56px; height:56px; object-fit:contain;
|
||||
background:rgba(255,255,255,.95); border-radius:12px; padding:6px;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-settings-hero h3 {
|
||||
margin:0 0 .2rem; font-size:1.2rem; font-weight:700; color:#fff;
|
||||
display:flex; flex-wrap:wrap; align-items:center; gap:.45rem .55rem;
|
||||
}
|
||||
/* rtl:begin:ignore */
|
||||
.meetlet-admin-settings .meetlet-settings-hero .meetlet-settings-version {
|
||||
display:inline-block;
|
||||
flex:0 0 auto;
|
||||
align-self:center;
|
||||
margin-inline-start:auto;
|
||||
padding:.12rem .55rem;
|
||||
font-size:.72rem; font-weight:650; line-height:1.35;
|
||||
letter-spacing:.02em;
|
||||
border-radius:999px;
|
||||
background:rgba(82,204,163,.18);
|
||||
border:1px solid rgba(82,204,163,.35);
|
||||
color:#b8f5df;
|
||||
white-space:nowrap;
|
||||
direction:ltr;
|
||||
unicode-bidi:isolate;
|
||||
}
|
||||
/* rtl:end:ignore */
|
||||
.meetlet-admin-settings .meetlet-settings-hero p {
|
||||
margin:0; opacity:.85; color:#e6faf3;
|
||||
white-space:nowrap;
|
||||
max-width:none;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-settings-copy {
|
||||
min-width:0; flex:1 1 auto;
|
||||
}
|
||||
@media (max-width: 900px) {
|
||||
.meetlet-admin-settings .meetlet-settings-hero p {
|
||||
white-space:normal;
|
||||
}
|
||||
}
|
||||
.meetlet-admin-settings .nav-tabs {
|
||||
border-bottom:2px solid #cfe8de;
|
||||
gap:.2rem;
|
||||
}
|
||||
.meetlet-admin-settings .nav-tabs .nav-link {
|
||||
border:0 !important;
|
||||
border-radius:6px !important;
|
||||
padding:.45rem .9rem;
|
||||
color:#00261a;
|
||||
font-weight:650;
|
||||
box-shadow:none !important;
|
||||
outline:none !important;
|
||||
}
|
||||
.meetlet-admin-settings .nav-tabs .nav-link:hover {
|
||||
background:#e6faf3; color:#00261a;
|
||||
}
|
||||
.meetlet-admin-settings .nav-tabs .nav-link.active {
|
||||
background:#52cca3; color:#00261a;
|
||||
}
|
||||
.meetlet-admin-settings .nav-tabs .nav-link:focus,
|
||||
.meetlet-admin-settings .nav-tabs .nav-link:focus-visible,
|
||||
.meetlet-admin-settings .nav-tabs .nav-link:active {
|
||||
outline:none !important;
|
||||
box-shadow:none !important;
|
||||
border:0 !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-feature-group {
|
||||
margin:1rem 0 .35rem;
|
||||
padding:1rem 1.1rem .35rem;
|
||||
border:1px solid #cfe8de;
|
||||
border-radius:12px;
|
||||
background:linear-gradient(180deg, #f3fbf8 0%, #ffffff 55%);
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-feature-group h4 {
|
||||
margin:0 0 .25rem; color:#00261a; font-size:1.02rem; font-weight:700;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-feature-group p {
|
||||
margin:0 0 .5rem; color:#4a6b5f; font-size:.9rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-settings-card {
|
||||
background:#fff; border:1px solid #cfe8de; border-radius:14px;
|
||||
padding:1rem 1.15rem; margin:.35rem 0 1rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-license-badge {
|
||||
font-weight: 700;
|
||||
border-radius: 999px;
|
||||
padding: .35rem .65rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-license-badge--active {
|
||||
background: var(--ml-green, #52cca3);
|
||||
color: var(--ml-green-deep, #00261a);
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-license-badge--inactive {
|
||||
background: #fff4d6;
|
||||
color: #5a4700;
|
||||
}
|
||||
.meetlet-admin-settings #meetlet-license-modal.meetlet-modal,
|
||||
.meetlet-admin-settings #meetlet-registration-modal.meetlet-modal,
|
||||
.meetlet-admin-settings #meetlet-cronmon-modal.meetlet-modal,
|
||||
.meetlet-admin-settings #meetlet-access-reset-modal.meetlet-modal {
|
||||
z-index: 20000 !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-access-reset-toolbar {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
margin: 0 0 .65rem;
|
||||
}
|
||||
/* Cron videos ops cell: no extra cell/wrapper border (icon buttons keep theirs). */
|
||||
.meetlet-admin-settings .meetlet-cronmon__table td.meetlet-cronmon__dl {
|
||||
border-left: 0 !important;
|
||||
border-right: 0 !important;
|
||||
border-top: 0 !important;
|
||||
background: transparent !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-cronmon__dl .meetlet-iconactions {
|
||||
border: 0 !important;
|
||||
background: transparent !important;
|
||||
box-shadow: none !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal--confirm .meetlet-modal__dialog {
|
||||
width: min(480px, 100%);
|
||||
max-height: min(86vh, 640px);
|
||||
overflow: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal--confirm .meetlet-modal__head {
|
||||
padding: 1.2rem 1.15rem 1rem;
|
||||
border-radius: 18px 18px 0 0;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal__lead {
|
||||
margin: 0 0 .85rem;
|
||||
font-size: 1rem;
|
||||
font-weight: 650;
|
||||
line-height: 1.65;
|
||||
color: #00261a;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal__callout {
|
||||
margin: 0 0 .9rem;
|
||||
padding: .85rem 1rem .7rem;
|
||||
border-radius: 12px;
|
||||
border: 1px solid #e6c56a;
|
||||
background: #fff8e6;
|
||||
color: #5a4700;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal__callout-title {
|
||||
margin: 0 0 .4rem;
|
||||
font-weight: 700;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal__limits {
|
||||
margin: 0 0 .55rem;
|
||||
padding-inline-start: 1.2rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal__keep {
|
||||
margin: 0;
|
||||
color: #334942;
|
||||
line-height: 1.65;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal__foot {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
gap: .6rem;
|
||||
flex-wrap: wrap;
|
||||
padding: .9rem 1.15rem 1.05rem;
|
||||
border-top: 1px solid #cfe8de;
|
||||
background: linear-gradient(180deg, #f7fcfa 0%, #ffffff 70%);
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal__foot .btn {
|
||||
border-radius: 10px;
|
||||
font-weight: 700;
|
||||
padding: .5rem 1.15rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal__foot .btn-success {
|
||||
background: #52cca3 !important;
|
||||
border-color: #3db892 !important;
|
||||
color: #00261a !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal__foot .btn-outline-danger {
|
||||
color: #a33b3b !important;
|
||||
border-color: #d9a0a0 !important;
|
||||
background: #fff !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-modal__foot .btn-outline-danger:hover,
|
||||
.meetlet-admin-settings .meetlet-modal__foot .btn-outline-danger:focus {
|
||||
color: #fff !important;
|
||||
background: #c0392b !important;
|
||||
border-color: #c0392b !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-about {
|
||||
display:grid; gap:1.1rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-about__brand {
|
||||
display:flex; justify-content:center; align-items:center;
|
||||
padding:1.35rem 1.2rem;
|
||||
border-radius:14px;
|
||||
background:#f0f2f4;
|
||||
border:1px solid #e2e6ea;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-about__brand img {
|
||||
max-width:240px; width:100%; height:auto; display:block; margin:0 auto;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-about h4 { margin:0 0 .55rem; color:#00261a; }
|
||||
.meetlet-admin-settings .meetlet-about p {
|
||||
margin:0 0 .85rem; color:#334942; line-height:1.75; text-align:start;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide { display:grid; gap:1rem; }
|
||||
.meetlet-admin-settings .meetlet-guide__heading { margin:0; color:#00261a; font-size:1.15rem; }
|
||||
.meetlet-admin-settings .meetlet-guide__intro {
|
||||
margin:0; color:#334942; line-height:1.7;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__callout {
|
||||
padding:.85rem 1rem; border-radius:10px; line-height:1.65;
|
||||
border:1px solid #e6c56a; background:#fff8e6; color:#5a4700;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__section {
|
||||
padding:1rem 1.05rem; border-radius:12px;
|
||||
border:1px solid #cfe8de; background:#f7fcfa;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__section--current { background:#fff; }
|
||||
.meetlet-admin-settings .meetlet-guide__section h4 {
|
||||
margin:0 0 .55rem; color:#00261a; font-size:1.02rem; font-weight:700;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__section h5 {
|
||||
margin:.85rem 0 .35rem; color:#0a3d2e; font-size:.95rem; font-weight:700;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__body,
|
||||
.meetlet-admin-settings .meetlet-guide__body p,
|
||||
.meetlet-admin-settings .meetlet-guide__body li {
|
||||
color:#334942; line-height:1.7;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__body p { margin:0 0 .55rem; }
|
||||
.meetlet-admin-settings .meetlet-guide__body ol,
|
||||
.meetlet-admin-settings .meetlet-guide__body ul { margin:0 0 .35rem; padding-inline-start:1.25rem; }
|
||||
.meetlet-admin-settings .meetlet-guide__body li { margin:0 0 .35rem; }
|
||||
.meetlet-admin-settings .meetlet-guide__body code,
|
||||
.meetlet-admin-settings .meetlet-guide__table code {
|
||||
font-size:.88em; padding:.05rem .3rem; border-radius:4px;
|
||||
background:#e6faf3; color:#00261a;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__table {
|
||||
width:100%; margin:.35rem 0 0; border-collapse:collapse;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__table th,
|
||||
.meetlet-admin-settings .meetlet-guide__table td {
|
||||
padding:.45rem .55rem; border:1px solid #cfe8de; vertical-align:top;
|
||||
text-align:start;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__table thead th,
|
||||
.meetlet-admin-settings .meetlet-guide__table tbody th {
|
||||
background:#e6faf3; color:#00261a; font-weight:650;
|
||||
}
|
||||
/* rtl:begin:ignore */
|
||||
.meetlet-admin-settings .meetlet-guide__code {
|
||||
margin:.35rem 0 0; padding:.75rem .9rem; overflow-x:auto;
|
||||
border-radius:10px; border:1px solid #cfe8de;
|
||||
background:#0a3d2e; color:#e6faf3;
|
||||
font-size:.82rem; line-height:1.45; direction:ltr; text-align:left;
|
||||
white-space:pre;
|
||||
}
|
||||
/* rtl:end:ignore */
|
||||
.meetlet-admin-settings .meetlet-guide__code-cell code {
|
||||
font-weight:800; letter-spacing:.02em; direction:ltr; unicode-bidi:isolate;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__table td ol,
|
||||
.meetlet-admin-settings .meetlet-guide__table td ul {
|
||||
margin:.15rem 0 0; padding-inline-start:1.15rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-guide__table td li { margin:0 0 .25rem; }
|
||||
.meetlet-admin-settings .meetlet-hourpicker { max-width: 42rem; }
|
||||
.meetlet-admin-settings .meetlet-hourpicker.is-dimmed,
|
||||
.meetlet-admin-settings .form-item.is-dimmed {
|
||||
opacity: .45;
|
||||
pointer-events: none;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-hourpicker__tz {
|
||||
margin: 0 0 .55rem; color:#4a6b5f; font-size:.88rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-hourpresets {
|
||||
display:flex; flex-wrap:wrap; gap:.4rem; margin:0 0 .65rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-hourpreset {
|
||||
border:1px solid #9fdcc4; background:#fff; color:#00261a;
|
||||
border-radius:999px; padding:.28rem .7rem; font-size:.8rem; font-weight:650;
|
||||
cursor:pointer;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-hourpreset:hover { background:#e6faf3; }
|
||||
.meetlet-admin-settings .meetlet-hourpreset--ghost { border-color:#cfe8de; color:#4a6b5f; }
|
||||
.meetlet-admin-settings .meetlet-hourgrid {
|
||||
display:grid; grid-template-columns:repeat(8, minmax(0,1fr)); gap:.35rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-hourchip {
|
||||
border:1px solid #cfe8de; background:#f7fcfa; color:#00261a;
|
||||
border-radius:10px; padding:.45rem 0; font-size:.82rem; font-weight:750;
|
||||
cursor:pointer;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-hourchip.is-on {
|
||||
background:#52cca3; border-color:#0d9f6e; color:#00261a;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-hourchip.is-now { box-shadow:0 0 0 2px rgba(13,159,110,.35); }
|
||||
@media (max-width: 720px) {
|
||||
.meetlet-admin-settings .meetlet-hourgrid { grid-template-columns:repeat(6, minmax(0,1fr)); }
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-about__cta-wrap {
|
||||
display:flex; justify-content:center; margin-top:.35rem; padding-top:.35rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-about__cta {
|
||||
display:inline-flex; align-items:center; justify-content:center;
|
||||
min-width:220px; padding:.7rem 1.35rem; border-radius:10px;
|
||||
background:#52cca3; color:#00261a !important;
|
||||
text-decoration:none !important; font-weight:700;
|
||||
border:1px solid #3db892;
|
||||
box-shadow:0 6px 16px rgba(0,38,26,.08);
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-about__cta:hover {
|
||||
background:#6fd9b5; color:#00261a !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-settings-btn {
|
||||
display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
|
||||
padding:.6rem 1.15rem; border-radius:10px; border:0; cursor:pointer;
|
||||
background:#52cca3; color:#00261a !important;
|
||||
text-decoration:none !important; font-weight:700;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-settings-btn:hover { background:#6fd9b5; color:#00261a !important; }
|
||||
.meetlet-admin-settings .meetlet-settings-btn:disabled { opacity:.65; cursor:wait; }
|
||||
.meetlet-admin-settings .meetlet-settings-btn svg {
|
||||
width:1.1rem; height:1.1rem; flex:0 0 auto; display:block;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-license-actions {
|
||||
display:flex; flex-wrap:wrap; gap:.55rem; align-items:center;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-license-actions .btn {
|
||||
display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-license-actions .btn svg {
|
||||
width:1.05rem; height:1.05rem; flex:0 0 auto; display:block;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-license-btn--free {
|
||||
background: linear-gradient(180deg, #e6faf3 0%, #d4f5ea 100%) !important;
|
||||
border: 2px solid #52cca3 !important;
|
||||
color: #00261a !important;
|
||||
border-radius: 10px !important;
|
||||
font-weight: 700 !important;
|
||||
padding: .6rem 1.15rem !important;
|
||||
box-shadow: 0 4px 12px rgba(82, 204, 163, 0.18) !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-license-btn--free:hover,
|
||||
.meetlet-admin-settings .meetlet-license-btn--free:focus {
|
||||
background: linear-gradient(180deg, #6fd9b5 0%, #52cca3 100%) !important;
|
||||
border-color: #3db892 !important;
|
||||
color: #00261a !important;
|
||||
box-shadow: 0 6px 16px rgba(82, 204, 163, 0.28) !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest { max-width:none; margin:0; }
|
||||
.meetlet-admin-settings .meetlet-conntest__actions {
|
||||
display:flex; flex-wrap:wrap; gap:.75rem; align-items:center;
|
||||
margin:.85rem 0 1rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest__status { color:#4a6b5f; font-size:.9rem; }
|
||||
.meetlet-admin-settings .meetlet-conntest__progress {
|
||||
margin:0 0 1rem; padding:.85rem 1rem;
|
||||
border:1px solid #cfe8de; border-radius:12px; background:#f7fcfa;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest__progress-label {
|
||||
display:flex; justify-content:space-between; gap:.75rem;
|
||||
margin:0 0 .45rem; color:#00261a; font-weight:650; font-size:.92rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest__progress-track {
|
||||
height:10px; border-radius:999px; background:#d9eee5; overflow:hidden;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest__progress-fill {
|
||||
height:100%; width:0; border-radius:999px;
|
||||
background:linear-gradient(90deg, #2f9f7a, #52cca3);
|
||||
transition:width .28s ease;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest__num {
|
||||
min-width:1.7rem; height:1.7rem; border-radius:8px;
|
||||
display:inline-flex; align-items:center; justify-content:center;
|
||||
background:#e6faf3; color:#00261a; font-weight:750; font-size:.85rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest__card--pending { opacity:.78; background:#fbfefe; }
|
||||
.meetlet-admin-settings .meetlet-conntest__card--running {
|
||||
border-color:#e6b422;
|
||||
box-shadow:0 0 0 2px rgba(230,180,34,.22);
|
||||
background:#fff8e6;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest__card--running .meetlet-conntest__num {
|
||||
background:#ffe08a; color:#5c4700;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest__card--ok {
|
||||
border-color:#9fdcc4; background:#f3fbf8;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest__card--fail {
|
||||
border-color:#ead3d0; background:#fff8f7;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-conntest__card--skipped { opacity:.55; }
|
||||
.meetlet-admin-settings .meetlet-dot--pending { background:#9bb7ac; box-shadow:0 0 0 4px rgba(155,183,172,.18); }
|
||||
.meetlet-admin-settings .meetlet-dot--running {
|
||||
background:#e6b422; box-shadow:0 0 0 4px rgba(230,180,34,.28);
|
||||
animation:meetletPulse 1s ease-in-out infinite;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-dot--skipped { background:#b7c4be; box-shadow:none; }
|
||||
.meetlet-admin-settings .meetlet-pill--pending { background:#e8efec; color:#456257; }
|
||||
.meetlet-admin-settings .meetlet-pill--running { background:#ffe08a; color:#5c4700; }
|
||||
.meetlet-admin-settings .meetlet-pill--skipped { background:#eef1f0; color:#667a72; }
|
||||
@keyframes meetletPulse {
|
||||
0%, 100% { transform:scale(1); opacity:1; }
|
||||
50% { transform:scale(1.15); opacity:.75; }
|
||||
}
|
||||
.meetlet-admin-settings form.settingsform {
|
||||
padding-bottom:1rem;
|
||||
}
|
||||
/* Single save row: spacing only — no stacked border/gradient bands. */
|
||||
.meetlet-admin-settings .settingsform > .row:has(.btn-primary),
|
||||
.meetlet-admin-settings .form-buttons,
|
||||
.meetlet-admin-settings .btns-group {
|
||||
margin-top:1.25rem !important;
|
||||
padding:0;
|
||||
border:0;
|
||||
background:transparent;
|
||||
border-radius:0;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-savebar {
|
||||
margin-top: 1.25rem !important;
|
||||
margin-right: 0 !important;
|
||||
margin-left: 0 !important;
|
||||
margin-inline: 0 !important;
|
||||
flex: 0 0 100% !important;
|
||||
max-width: 100% !important;
|
||||
width: 100% !important;
|
||||
padding: .35rem 0 !important;
|
||||
border: 0 !important;
|
||||
background: transparent !important;
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
@media (min-width: 576px) {
|
||||
.meetlet-admin-settings .meetlet-savebar.offset-sm-3,
|
||||
.meetlet-admin-settings .meetlet-savebar {
|
||||
margin-right: 0 !important;
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
}
|
||||
.meetlet-admin-settings .btn-primary,
|
||||
.meetlet-admin-settings input[type="submit"].btn-primary,
|
||||
.meetlet-admin-settings button[type="submit"].btn-primary,
|
||||
.meetlet-admin-settings .meetlet-btn-with-icon.btn-primary {
|
||||
background:#52cca3 !important;
|
||||
border-color:#3db892 !important;
|
||||
color:#00261a !important;
|
||||
font-weight:700 !important;
|
||||
border-radius:10px !important;
|
||||
padding:.55rem 1.35rem !important;
|
||||
box-shadow:none !important;
|
||||
}
|
||||
.meetlet-admin-settings .btn-primary:hover,
|
||||
.meetlet-admin-settings input[type="submit"].btn-primary:hover,
|
||||
.meetlet-admin-settings button[type="submit"].btn-primary:hover {
|
||||
background:#6fd9b5 !important;
|
||||
border-color:#52cca3 !important;
|
||||
color:#00261a !important;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-btn-with-icon {
|
||||
display:inline-flex !important;
|
||||
align-items:center;
|
||||
justify-content:center;
|
||||
gap:.45rem;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-btn-with-icon svg {
|
||||
width:1.1rem;
|
||||
height:1.1rem;
|
||||
flex:0 0 auto;
|
||||
display:block;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-btn-with-icon__label {
|
||||
line-height:1.2;
|
||||
}
|
||||
|
||||
.meetlet-admin-settings .meetlet-server-group {
|
||||
margin:1.1rem 0 .4rem; padding:1rem 1.1rem .2rem;
|
||||
border:1px solid #cfe8de; border-radius:12px;
|
||||
background:linear-gradient(180deg, #f3fbf8 0%, #ffffff 60%);
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-server-group h4 {
|
||||
margin:0 0 .25rem; color:#00261a; font-size:1.02rem; font-weight:700;
|
||||
}
|
||||
.meetlet-admin-settings .meetlet-server-group p {
|
||||
margin:0 0 .55rem; color:#4a6b5f; font-size:.9rem; line-height:1.55;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user