      * {
        box-sizing: border-box;
      }
      html {
        --primary: #0b4dff;
        --deep: #002a9e;
        --navy: #071423;
        --bg: #f6f8fc;
        --card: rgba(255, 255, 255, 0.93);
        --solid: #fff;
        --text: #071423;
        --muted: #7a8499;
        --border: #dde3f0;
        --shadow: 0 22px 60px rgba(7, 20, 35, 0.13);
        --success: #00a86b;
        --danger: #d83a4f;
        --section-treasures-icon: #3c7e8b;
        --section-treasures: #596a6f;
        --section-treasures-text: #596a6f;
        --section-ministry: #c18625;
        --section-living: #951525;
        --section-neutral: #908878;
        --text-main: #111111;
        --text-muted: #888888;
        --line: #b8b8b8;
        --page-bg: #ffffff;
        --font-scale: 1;
        /* Typography copied to match the Watchtower Online Library visual style.
           WOL uses a classic Bootstrap-style sans-serif stack, so the app now
           uses the same stack across Russian, English and Spanish. */
        --wol-font:
          "Helvetica Neue",
          Helvetica,
          Arial,
          sans-serif;
        --pdf-font: var(--wol-font);
        font-family: var(--wol-font);
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-rendering: optimizeLegibility;
        color-scheme: light;
      }
      html[data-theme="dark"] {
        --bg: #050b18;
        --card: rgba(9, 20, 38, 0.93);
        --solid: #0a1426;
        --text: #f7f9ff;
        --muted: #9eacc8;
        --border: rgba(255, 255, 255, 0.12);
        --shadow: 0 22px 70px rgba(0, 0, 0, 0.42);
        --text-main: #f7f9ff;
        --text-muted: #9eacc8;
        --line: rgba(255, 255, 255, 0.2);
        --page-bg: #0a1426;
        color-scheme: dark;
      }
      html[data-font-size="small"] {
        --font-scale: 0.92;
      }
      html[data-font-size="normal"] {
        --font-scale: 1;
      }
      html[data-font-size="large"] {
        --font-scale: 1.12;
      }
      html[data-font-size="xlarge"] {
        --font-scale: 1.25;
      }

      button,
      input,
      textarea,
      select {
        font-family: var(--wol-font);
      }

      body {
        margin: 0;
        font-family: var(--wol-font);
        min-height: 100vh;
        background:
          radial-gradient(
            circle at top left,
            rgba(11, 77, 255, 0.16),
            transparent 430px
          ),
          linear-gradient(135deg, var(--bg), #fff 72%);
        color: var(--text);
        font-size: calc(14px * var(--font-scale));
        line-height: 1.42857143;
      }
      html[data-theme="dark"] body {
        background:
          radial-gradient(
            circle at top left,
            rgba(11, 77, 255, 0.25),
            transparent 430px
          ),
          linear-gradient(135deg, #050b18, #071423);
      }
      button,
      input,
      select,
      textarea {
        font: inherit;
      }
      button {
        cursor: pointer;
      }
      a {
        text-decoration: none;
        color: inherit;
      }
      .hidden {
        display: none !important;
      }
      .loader {
        position: fixed;
        inset: 0;
        z-index: 50;
        display: grid;
        place-content: center;
        text-align: center;
        background: var(--bg);
      }
      .loader img {
        width: min(330px, 74vw);
        animation: pulse 1.45s infinite;
        filter: drop-shadow(0 26px 50px rgba(11, 77, 255, 0.25));
      }
      .loader p {
        color: var(--muted);
        font-weight: 900;
      }
      @keyframes pulse {
        50% {
          transform: scale(1.035);
          opacity: 0.9;
        }
      }
      .login {
        min-height: 100vh;
        display: grid;
        place-items: center;
        padding: 24px;
      }
      .login-card {
        width: min(500px, 100%);
        padding: 30px;
        border: 1px solid var(--border);
        border-radius: 32px;
        background: var(--card);
        box-shadow: var(--shadow);
        backdrop-filter: blur(18px);
      }
      .login-logo {
        display: block;
        width: min(340px, 100%);
        margin: 0 auto 26px;
        filter: drop-shadow(0 10px 24px rgba(7, 20, 35, 0.08));
      }
      html[data-theme="dark"] .login-logo {
        filter: drop-shadow(0 12px 26px rgba(0, 0, 0, 0.32));
      }
      .login-lang {
        display: flex;
        justify-content: flex-end;
        margin-bottom: 10px;
      }
      .lang-switch {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 6px;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.72);
        box-shadow: 0 10px 26px rgba(7, 20, 35, 0.08);
      }
      html[data-theme="dark"] .lang-switch {
        background: rgba(255, 255, 255, 0.06);
      }
      .lang-dot {
        width: 44px;
        height: 44px;
        border: 1px solid transparent;
        border-radius: 50%;
        display: grid;
        place-items: center;
        background: transparent;
        color: var(--muted);
        font-weight: 1000;
        letter-spacing: 0.04em;
        transition: 0.18s;
      }
      .lang-dot:hover {
        transform: translateY(-1px);
        background: rgba(11, 77, 255, 0.08);
        color: var(--primary);
      }
      .lang-dot.active {
        background: linear-gradient(135deg, var(--primary), var(--deep));
        color: #fff;
        box-shadow: 0 10px 22px rgba(11, 77, 255, 0.25);
      }
      .field {
        display: grid;
        gap: 8px;
        margin-bottom: 14px;
        color: var(--muted);
        font-weight: 850;
        font-size: calc(13px * var(--font-scale));
      }
      .field input,
      .field select,
      .field textarea,
      .search {
        width: 100%;
        min-height: 48px;
        border: 1px solid var(--border);
        border-radius: 15px;
        background: rgba(255, 255, 255, 0.58);
        color: var(--text);
        padding: 0 14px;
        outline: none;
      }
      .field textarea {
        min-height: 96px;
        padding-top: 12px;
        resize: vertical;
      }
      html[data-theme="dark"] .field input,
      html[data-theme="dark"] .field select,
      html[data-theme="dark"] .field textarea,
      html[data-theme="dark"] .search {
        background: rgba(255, 255, 255, 0.05);
      }
      html[data-theme="dark"] .login-card .field {
        color: #f7f9ff;
      }
      html[data-theme="dark"] .login-card .field input {
        background: rgba(255, 255, 255, 0.08);
        border-color: rgba(255, 255, 255, 0.18);
        color: #ffffff;
      }
      html[data-theme="dark"] .login-card .field input::placeholder {
        color: rgba(247, 249, 255, 0.72);
      }
      .password-wrap {
        position: relative;
        display: block;
        width: 100%;
      }
      .password-wrap input {
        padding-right: 52px;
      }
      .password-eye {
        position: absolute;
        top: 50%;
        right: 7px;
        transform: translateY(-50%);
        width: 38px;
        height: 38px;
        border: 0;
        border-radius: 12px;
        background: transparent;
        color: var(--muted);
        display: grid;
        place-items: center;
        padding: 0;
        transition:
          background 0.18s,
          color 0.18s;
      }
      .password-eye:hover,
      .password-eye:focus-visible {
        background: rgba(11, 77, 255, 0.09);
        color: var(--primary);
        outline: none;
      }
      .password-eye svg {
        width: 21px;
        height: 21px;
        display: block;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
      }
      .primary,
      .secondary,
      .danger,
      .ghost {
        min-height: 46px;
        border: 0;
        border-radius: 15px;
        padding: 0 18px;
        font-weight: 900;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        transition: 0.18s;
      }
      .primary:hover,
      .secondary:hover,
      .danger:hover,
      .ghost:hover {
        transform: translateY(-1px);
      }
      .primary {
        background: linear-gradient(135deg, var(--primary), var(--deep));
        color: white;
        box-shadow: 0 16px 30px rgba(11, 77, 255, 0.24);
      }
      .secondary {
        background: rgba(11, 77, 255, 0.08);
        border: 1px solid rgba(11, 77, 255, 0.22);
        color: var(--primary);
      }
      .danger {
        background: linear-gradient(135deg, #ef4960, #a51e35);
        color: white;
      }
      .ghost {
        background: transparent;
        color: var(--primary);
      }
      .full {
        width: 100%;
      }
      .stack {
        display: grid;
        gap: 12px;
      }
      .app {
        min-height: 100vh;
        display: grid;
        grid-template-columns: 280px 1fr;
        transition: grid-template-columns 0.24s ease;
      }
      .app.sidebar-collapsed {
        grid-template-columns: 92px 1fr;
      }
      .sidebar {
        position: sticky;
        top: 0;
        height: 100vh;
        padding: 22px;
        border-right: 1px solid var(--border);
        background: rgba(255, 255, 255, 0.72);
        backdrop-filter: blur(18px);
        overflow: hidden;
        transition:
          transform 0.24s ease,
          padding 0.24s ease;
        z-index: 90;
      }
      html[data-theme="dark"] .sidebar {
        background: rgba(5, 11, 24, 0.86);
      }
      .side-head {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 10px;
        margin-bottom: 26px;
      }
      .side-logo {
        width: 205px;
        max-width: 100%;
        transition: width 0.24s ease;
        filter: drop-shadow(0 10px 24px rgba(7, 20, 35, 0.08));
      }
      html[data-theme="dark"] .side-logo {
        filter: drop-shadow(0 12px 26px rgba(0, 0, 0, 0.34));
      }
      .side-collapse,
      .menu-toggle {
        width: 44px;
        height: 44px;
        border: 1px solid var(--border);
        border-radius: 14px;
        background: var(--card);
        color: var(--primary);
        display: inline-grid;
        place-items: center;
        font-size: 24px;
        font-weight: 1000;
      }
      .menu-toggle {
        display: none;
      }
      .app.sidebar-collapsed .sidebar {
        padding: 18px 12px;
      }
      .app.sidebar-collapsed .side-logo {
        width: 58px;
      }
      .app.sidebar-collapsed .side-head {
        justify-content: center;
      }
      .app.sidebar-collapsed .side-collapse {
        position: absolute;
        right: 12px;
        top: 80px;
        width: 36px;
        height: 36px;
        font-size: 20px;
        transform: rotate(180deg);
      }
      .app.sidebar-collapsed .nav button {
        justify-content: center;
        padding: 0;
      }
      .app.sidebar-collapsed .nav-label {
        display: none;
      }
      .nav {
        display: grid;
        gap: 8px;
      }
      .nav button {
        min-height: 48px;
        border: 0;
        border-radius: 16px;
        background: transparent;
        color: var(--muted);
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 0 14px;
        font-weight: 900;
        transition: 0.18s;
        width: 100%;
      }
      .nav-icon {
        width: 32px;
        height: 32px;
        flex: 0 0 32px;
        display: grid;
        place-items: center;
        border-radius: 10px;
        background: rgba(11, 77, 255, 0.08);
        color: var(--primary);
        transition: 0.18s;
      }
      html[data-theme="dark"] .nav-icon {
        background: rgba(255, 255, 255, 0.06);
        color: #ffffff;
      }
      .nav-icon svg {
        width: 20px;
        height: 20px;
        display: block;
        stroke: currentColor;
        fill: none;
        stroke-width: 1.9;
        stroke-linecap: round;
        stroke-linejoin: round;
      }
      .nav-label {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      .nav button.active,
      .nav button:hover {
        background: rgba(11, 77, 255, 0.1);
        color: var(--primary);
      }
      .nav button.active .nav-icon,
      .nav button:hover .nav-icon {
        background: rgba(11, 77, 255, 0.14);
        transform: translateY(-1px);
      }
      html[data-theme="dark"] .nav button.active .nav-icon,
      html[data-theme="dark"] .nav button:hover .nav-icon {
        background: rgba(255, 255, 255, 0.12);
        color: #ffffff;
      }
      html[data-theme="dark"] .nav button.active,
      html[data-theme="dark"] .nav button:hover {
        color: #ffffff;
      }
      .mobile-overlay {
        display: none;
      }
      .main {
        min-width: 0;
      }
      .topbar {
        height: 82px;
        position: sticky;
        top: 0;
        z-index: 20;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        padding: 0 30px;
        border-bottom: 1px solid var(--border);
        background: rgba(246, 248, 252, 0.78);
        backdrop-filter: blur(18px);
      }
      html[data-theme="dark"] .topbar {
        background: rgba(5, 11, 24, 0.78);
      }
      .topbar-left {
        display: flex;
        align-items: center;
        gap: 12px;
        min-width: 0;
      }
      .brand {
        display: flex;
        align-items: center;
        gap: 0;
        border: 0;
        background: transparent;
        color: var(--text);
        min-width: 0;
      }
      .brand strong,
      .brand small {
        display: block;
        text-align: left;
      }
      .brand small,
      .profile small {
        color: var(--muted);
        font-weight: 800;
      }
      .top-actions {
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
      }
      .refresh-button {
        width: 46px;
        height: 46px;
        min-height: 46px;
        border: 1px solid var(--border);
        border-radius: 50%;
        background: var(--card);
        color: var(--primary);
        display: inline-grid;
        place-items: center;
        padding: 0;
        box-shadow: 0 10px 24px rgba(7, 20, 35, 0.08);
      }
      .refresh-button svg {
        width: 22px;
        height: 22px;
        display: block;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
      }
      .refresh-button:hover {
        transform: translateY(-1px);
        background: rgba(11, 77, 255, 0.08);
      }
      .profile {
        min-height: 56px;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: var(--card);
        display: flex;
        align-items: center;
        gap: 11px;
        padding: 6px 14px 6px 8px;
        color: var(--text);
        max-width: 260px;
      }
      .profile .profile-text {
        display: grid;
        gap: 2px;
        line-height: 1.12;
        min-width: 0;
        text-align: left;
      }
      .profile strong,
      .profile small {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      .profile strong {
        color: var(--text);
        font-weight: 900;
      }
      .profile small {
        font-size: 12px;
      }
      .avatar {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        overflow: hidden;
        background: linear-gradient(135deg, var(--primary), var(--deep));
        color: white;
        font-weight: 900;
        flex: 0 0 44px;
      }
      .avatar img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: cover;
        border-radius: 50%;
      }
      .content {
        max-width: 1420px;
        margin: 0 auto;
        padding: 30px;
      }
      .title {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
      }
      .title h1 {
        font-size: clamp(
          calc(28px * var(--font-scale)),
          4vw,
          calc(44px * var(--font-scale))
        );
        letter-spacing: -0.04em;
        margin: 0;
      }
      .title p {
        margin: 6px 0 0;
        color: var(--muted);
        font-weight: 800;
      }
      .card {
        border: 1px solid var(--border);
        border-radius: 24px;
        background: var(--card);
        box-shadow: var(--shadow);
        backdrop-filter: blur(18px);
        padding: 22px;
      }
      .settings-card h2,
      .admin-panel h2 {
        margin: 0 0 16px;
      }
      .meta-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        margin-top: 12px;
      }
      .meta-item {
        padding: 12px 14px;
        border: 1px solid var(--border);
        border-radius: 16px;
        background: rgba(11, 77, 255, 0.05);
      }
      .meta-item small {
        display: block;
        color: var(--muted);
        font-weight: 850;
        margin-bottom: 4px;
      }
      .meta-item strong {
        font-size: calc(14px * var(--font-scale));
      }
      .grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
      }
      .grid2 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
      }
      .layout2 {
        display: grid;
        grid-template-columns: minmax(320px, 0.85fr) minmax(0, 1.15fr);
        gap: 20px;
        align-items: start;
      }
      .formgrid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
      }
      .full-field {
        grid-column: 1/-1;
      }
      .week {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 14px;
        padding: 10px;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: var(--card);
        box-shadow: var(--shadow);
        width: max-content;
        margin: 0 auto 18px;
      }
      .week button {
        width: 44px;
        height: 44px;
        border: 1px solid var(--border);
        border-radius: 50%;
        background: var(--solid);
        color: var(--primary);
        font-size: 26px;
      }
      .week strong {
        min-width: 210px;
        text-align: center;
        color: var(--text-main);
        letter-spacing: 0;
        text-transform: none;
      }
      .tabs {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
        margin: 18px 0;
      }
      .tabs.two {
        grid-template-columns: repeat(2, minmax(0, 220px));
        justify-content: start;
      }
      .tabs button {
        min-height: 56px;
        border: 1px solid var(--border);
        border-radius: 18px;
        background: var(--card);
        color: var(--muted);
        font-weight: 900;
        letter-spacing: 0.04em;
      }
      .tabs button.active {
        background: linear-gradient(135deg, var(--primary), var(--deep));
        color: white;
        box-shadow: 0 18px 34px rgba(11, 77, 255, 0.24);
      }
      .home-swipe {
        width: 100%;
        overflow: hidden;
        touch-action: pan-y;
        cursor: grab;
        user-select: none;
      }
      .home-swipe.dragging {
        cursor: grabbing;
      }
      .home-swipe-track {
        display: flex;
        width: 100%;
        transform: translate3d(var(--home-offset, 0%), 0, 0);
        transition: transform 0.28s ease;
        will-change: transform;
      }
      .home-swipe.dragging .home-swipe-track {
        transition: none;
      }
      .home-swipe-pane {
        flex: 0 0 100%;
        width: 100%;
        min-width: 100%;
        padding: 0 1px;
      }
      .home-swipe-pane:not(.active) {
        pointer-events: none;
      }
      .program {
        display: grid;
        gap: 18px;
        border: 1px solid #e3e3e3;
        border-radius: 6px;
        background: var(--page-bg);
        box-shadow: 0 16px 42px rgba(17, 17, 17, 0.08);
        padding: 34px 44px 38px;
        color: var(--text-main);
      }
      html[data-theme="dark"] .program {
        border-color: var(--border);
        box-shadow: var(--shadow);
      }
      .clm-print-header {
        display: grid;
        gap: 12px;
        margin-bottom: 4px;
      }
      .clm-title-line {
        display: flex;
        align-items: baseline;
        gap: 10px;
        flex-wrap: wrap;
        line-height: 1.16;
      }
      .clm-title-line h2 {
        margin: 0;
        color: var(--text-main);
        font-size: calc(30px * var(--font-scale));
        font-weight: 900;
        letter-spacing: -0.035em;
      }
      .clm-title-line span {
        color: var(--text-muted);
        font-size: calc(20px * var(--font-scale));
        font-weight: 500;
      }
      .clm-date-line {
        display: grid;
        gap: 6px;
      }
      .clm-date-line strong {
        color: var(--text-main);
        font-size: calc(25px * var(--font-scale));
        font-weight: 900;
        letter-spacing: -0.025em;
      }
      .clm-date-line::after {
        content: "";
        display: block;
        height: 1px;
        background: var(--line);
      }
      .pane-program-header {
        display: grid;
        gap: 12px;
        margin-bottom: 4px;
      }
      .pane-program-header h2 {
        margin: 0;
        color: var(--text-main);
        font-size: calc(30px * var(--font-scale));
        font-weight: 900;
        letter-spacing: -0.035em;
        line-height: 1.16;
      }
      .meeting-top,
      .meeting-footer {
        display: grid;
        gap: 0;
        padding: 0;
      }
      .meeting-footer {
        padding-top: 0;
      }
      .section {
        --section-color: var(--primary);
        --section-heading: var(--primary);
        --section-text: var(--primary);
        --section-soft: transparent;
        border: 0;
        border-radius: 0;
        overflow: visible;
        background: transparent;
      }
      html[data-theme="dark"] .section {
        background: transparent;
      }
      .section.blue {
        --section-color: var(--section-treasures-icon);
        --section-heading: var(--section-treasures-text);
        --section-text: var(--section-treasures-text);
      }
      .section.gold {
        --section-color: var(--section-ministry);
        --section-heading: var(--section-ministry);
        --section-text: var(--section-ministry);
      }
      .section.red {
        --section-color: var(--section-living);
        --section-heading: var(--section-living);
        --section-text: var(--section-living);
      }
      .section.gray {
        --section-color: var(--section-neutral);
        --section-heading: var(--section-neutral);
        --section-text: var(--section-neutral);
      }
      .section header {
        display: flex;
        align-items: center;
        gap: 13px;
        padding: 18px 0 6px;
        border-bottom: 0;
        background: transparent;
      }
      .section header .section-icon {
        width: 43px;
        height: 43px;
        border-radius: 0;
        display: grid;
        place-items: center;
        background: var(--section-color);
        color: white;
        box-shadow: none;
        flex: 0 0 auto;
      }
      .section-icon svg {
        width: 28px;
        height: 28px;
        display: block;
        fill: currentColor;
        stroke: currentColor;
      }
      .section h2 {
        margin: 0;
        color: var(--section-heading);
        font-family: var(--wol-font);
        font-size: calc(18px * var(--font-scale));
        font-weight: 700;
        letter-spacing: 0;
        text-transform: uppercase;
        line-height: 1.05;
      }
      .section header h2 {
        flex: 1;
      }
      .section-title-art-wrap {
        flex: 1 1 auto;
        min-width: 0;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 13px;
      }
      .section-title-art {
        display: block;
        width: 43px;
        height: 43px;
        max-width: 43px;
        max-height: 43px;
        object-fit: contain;
        object-position: center;
        flex: 0 0 43px;
      }
      .section-title-fallback {
        display: flex;
        align-items: center;
        gap: 13px;
        min-width: 0;
        flex: 1 1 auto;
      }
      .section-title-fallback h2 {
        flex: 1;
      }
      .section-toggle {
        width: 38px;
        height: 38px;
        border: 1px solid var(--line);
        border-radius: 999px;
        background: transparent;
        color: var(--section-heading);
        font-weight: 1000;
        font-size: 18px;
        display: grid;
        place-items: center;
      }
      .section.is-collapsed header {
        border-bottom: 0;
      }
      .section-body,
      .meeting-section-body {
        display: grid;
        gap: 0;
      }
      .schedule-row,
      .line {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 360px;
        gap: 32px;
        align-items: start;
        padding: 7px 0;
        border-bottom: 0;
        font-weight: 500;
        line-height: 1.35;
      }
      .line:last-child {
        border-bottom: 0;
      }
      .schedule-part,
      .line strong {
        min-width: 0;
        color: var(--text-main);
        font-weight: 500;
      }
      .section .schedule-part,
      .section .line strong {
        color: var(--section-text);
      }
      .schedule-assignee,
      .line span {
        color: var(--text-main);
        text-align: left;
        font-weight: 500;
      }
      .line.single {
        grid-template-columns: 1fr;
      }
      .line.single span {
        display: none;
      }
      .schedule-part-main,
      .schedule-part-extra {
        color: inherit;
      }
      .section .schedule-part-extra {
        color: var(--text-main);
      }
      .line.song strong,
      .line.song .schedule-part {
        color: var(--text-main);
      }
      .program .section .line:hover,
      .meeting-top .line:hover,
      .meeting-footer .line:hover {
        background: transparent;
      }
      .info {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 13px 15px;
        border-radius: 16px;
        background: rgba(11, 77, 255, 0.06);
        margin: 8px 0;
      }
      .muted {
        color: var(--muted);
        font-weight: 750;
      }
      .pill,
      .status {
        display: inline-flex;
        border-radius: 999px;
        background: rgba(11, 77, 255, 0.1);
        color: var(--primary);
        padding: 7px 11px;
        font-size: 12px;
        font-weight: 900;
        letter-spacing: 0.03em;
      }
      .actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        margin-top: 18px;
      }
      .empty {
        padding: 26px;
        border: 1px dashed var(--border);
        border-radius: 20px;
        text-align: center;
        color: var(--muted);
        font-weight: 850;
      }
      .table {
        display: grid;
        border: 1px solid var(--border);
        border-radius: 18px;
        overflow: hidden;
        margin-top: 16px;
      }
      .row {
        display: grid;
        grid-template-columns: 1fr 1fr 0.7fr 0.7fr auto;
        gap: 10px;
        align-items: center;
        border-bottom: 1px solid var(--border);
        padding: 13px 15px;
      }
      .row:last-child {
        border-bottom: 0;
      }
      .toast {
        position: fixed;
        right: 24px;
        bottom: 24px;
        z-index: 100;
        border-radius: 999px;
        background: linear-gradient(135deg, var(--success), #00764b);
        color: white;
        padding: 14px 18px;
        box-shadow: var(--shadow);
        font-weight: 900;
      }
      .modal-backdrop {
        position: fixed;
        inset: 0;
        z-index: 160;
        display: grid;
        place-items: center;
        background: rgba(5, 11, 24, 0.56);
        padding: 20px;
        backdrop-filter: blur(10px);
      }
      .modal-card {
        width: min(430px, 100%);
        padding: 24px;
        border: 1px solid var(--border);
        border-radius: 28px;
        background: var(--card);
        box-shadow: var(--shadow);
        text-align: center;
      }
      .modal-icon {
        width: 56px;
        height: 56px;
        margin: 0 auto 14px;
        border-radius: 18px;
        display: grid;
        place-items: center;
        background: rgba(216, 58, 79, 0.12);
        color: var(--danger);
        font-size: 26px;
        font-weight: 1000;
      }
      .modal-card h2 {
        margin: 0 0 8px;
      }
      .modal-card p {
        margin: 0 0 18px;
        color: var(--muted);
        font-weight: 850;
        line-height: 1.5;
      }

      .confirm-check {
        display: inline-grid;
        place-items: center;
        width: 22px;
        height: 22px;
        margin-left: 8px;
        border-radius: 50%;
        background: var(--success);
        color: #fff;
        font-size: 13px;
        font-weight: 1000;
        box-shadow: 0 8px 18px rgba(0, 168, 107, 0.24);
        vertical-align: middle;
      }
      .field-title-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
      }
      .profile-hero {
        display: flex;
        align-items: center;
        gap: 18px;
        margin-bottom: 20px;
        flex-wrap: wrap;
      }
      .profile-photo {
        width: 96px;
        height: 96px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        overflow: hidden;
        background: linear-gradient(135deg, var(--primary), var(--deep));
        color: #fff;
        font-weight: 1000;
        font-size: 38px;
      }
      .profile-photo img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
      .permission-grid,
      .months-table,
      .reports-grid {
        display: grid;
        gap: 10px;
      }
      .permission-item {
        min-height: 46px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 10px 12px;
        border: 1px solid var(--border);
        border-radius: 15px;
        background: var(--solid);
        font-weight: 850;
      }
      .progress-bars {
        display: grid;
        gap: 10px;
        margin-top: 16px;
      }
      .progress-bar-row {
        display: grid;
        grid-template-columns: 90px 1fr 64px;
        align-items: center;
        gap: 10px;
        font-weight: 850;
      }
      .progress-track {
        height: 14px;
        border-radius: 999px;
        background: rgba(11, 77, 255, 0.1);
        overflow: hidden;
        border: 1px solid var(--border);
      }
      .progress-fill {
        height: 100%;
        border-radius: 999px;
        background: linear-gradient(135deg, var(--primary), var(--deep));
      }
      .report-row,
      .user-detail-row,
      .help-row {
        display: grid;
        grid-template-columns: 1fr 1fr 0.75fr 0.75fr auto;
        gap: 10px;
        align-items: center;
        padding: 13px 15px;
        border-bottom: 1px solid var(--border);
      }
      .report-row:last-child,
      .user-detail-row:last-child,
      .help-row:last-child {
        border-bottom: 0;
      }
      .user-tabs {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
      }
      .user-tabs button {
        border: 1px solid var(--border);
        border-radius: 999px;
        background: var(--solid);
        color: var(--muted);
        padding: 10px 14px;
        font-weight: 900;
      }
      .user-tabs button.active {
        background: linear-gradient(135deg, var(--primary), var(--deep));
        color: #fff;
      }
      .readonly-home-note {
        color: var(--muted);
        font-weight: 850;
        margin-top: 8px;
      }
      .bottom {
        display: none;
      }
      @media (max-width: 1050px) {
        .grid {
          grid-template-columns: repeat(2, minmax(0, 1fr));
        }
        .layout2 {
          grid-template-columns: 1fr;
        }
      }
      @media (max-width: 760px) {
        .app,
        .app.sidebar-collapsed {
          display: block;
        }
        .sidebar,
        .app.sidebar-collapsed .sidebar {
          position: fixed;
          inset: 0 auto 0 0;
          width: min(312px, 86vw);
          height: 100dvh;
          padding: 22px;
          transform: translateX(-105%);
          box-shadow: 20px 0 70px rgba(7, 20, 35, 0.28);
        }
        .app.mobile-menu-open .sidebar {
          transform: translateX(0);
        }
        .app.sidebar-collapsed .side-logo {
          width: 205px;
        }
        .app.sidebar-collapsed .side-head {
          justify-content: flex-end;
        }
        .app.sidebar-collapsed .side-collapse {
          position: static;
          width: 44px;
          height: 44px;
          transform: none;
        }
        .app.sidebar-collapsed .nav button {
          justify-content: flex-start;
          padding: 0 14px;
        }
        .app.sidebar-collapsed .nav-label {
          display: inline;
        }
        .mobile-overlay {
          position: fixed;
          inset: 0;
          z-index: 85;
          background: rgba(5, 11, 24, 0.48);
          backdrop-filter: blur(2px);
        }
        .app.mobile-menu-open .mobile-overlay {
          display: block;
        }
        .menu-toggle {
          display: inline-grid;
          flex: 0 0 auto;
        }
        .side-collapse {
          display: none;
        }
        .topbar {
          height: auto;
          padding: 12px 14px;
          align-items: center;
        }
        .brand small,
        .profile .profile-text {
          display: none;
        }
        .profile {
          min-height: 52px;
          padding: 4px;
          gap: 0;
        }
        .top-actions {
          margin-left: auto;
        }
        .content {
          padding: 18px 14px;
        }
        .week {
          width: 100%;
          justify-content: space-between;
        }
        .week strong {
          min-width: 0;
          font-size: 13px;
        }
        .tabs,
        .tabs.two,
        .grid,
        .grid2,
        .line,
        .formgrid,
        .layout2,
        .row {
          grid-template-columns: 1fr;
        }
        .servant-display-row {
          grid-template-columns: 38px minmax(0, 1fr);
        }
        .servant-display-value {
          grid-column: 2;
          text-align: left;
        }
        .group-member-row {
          grid-template-columns: 1fr;
        }
        .card {
          padding: 18px;
        }
        .lang-switch {
          gap: 6px;
          padding: 5px;
        }
        .lang-dot {
          width: 40px;
          height: 40px;
          font-size: 13px;
        }
        .bottom {
          display: none !important;
        }
        .login-card {
          padding: 24px;
        }
      }
      .assignment-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(220px, 360px) auto;
        gap: 18px;
        align-items: end;
        padding: 10px 0;
        border: 0;
        border-bottom: 1px solid rgba(184, 184, 184, 0.55);
        border-radius: 0;
        background: transparent;
        margin: 0;
      }
      .assignment-row:last-child {
        border-bottom: 0;
      }
      .assignment-row .field {
        margin-bottom: 0;
      }
      .assignment-row .field > span,
      .assignment-row .field-title-row {
        color: var(--text-muted);
        font-size: calc(11px * var(--font-scale));
        letter-spacing: 0.06em;
        text-transform: uppercase;
      }
      .plan-section {
        box-shadow: none;
        background: transparent;
        margin-bottom: 8px;
      }
      .plan-section .formgrid {
        padding: 8px 0 4px;
      }
      .plan-section .secondary[data-add-row] {
        margin: 12px 0 2px;
      }
      .plan-section-note {
        padding: 0 0 10px;
        color: var(--text-muted);
        font-weight: 700;
        margin: 0;
      }
      .row-actions {
        display: flex;
        gap: 8px;
        align-items: center;
      }
      .opening-card {
        margin-bottom: 16px;
      }
      .opening-card h2 {
        margin-top: 0;
      }
      .subtle-label {
        font-size: calc(12px * var(--font-scale));
        font-weight: 900;
        color: var(--muted);
        letter-spacing: 0.04em;
        text-transform: uppercase;
      }
      .weekend-planning {
        display: grid;
        gap: 16px;
      }
      .weekend-planning .plan-section {
        margin-bottom: 0;
      }
      .section-divider {
        margin: 4px 0 8px;
        color: var(--muted);
        font-weight: 850;
      }
      .section-detail .line strong {
        color: var(--text);
      }
      .section-detail .line span {
        font-weight: 850;
      }
      .subtabs {
        display: flex;
        gap: 10px;
        overflow-x: auto;
        padding: 4px 2px 12px;
        margin: 4px 0 16px;
        scrollbar-width: thin;
      }
      .subtabs button {
        flex: 0 0 auto;
        min-height: 46px;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: var(--solid);
        color: var(--muted);
        padding: 0 18px;
        font-weight: 950;
        letter-spacing: 0.045em;
        white-space: nowrap;
        transition: 0.18s;
      }
      .subtabs button:hover {
        transform: translateY(-1px);
        color: var(--primary);
        background: rgba(11, 77, 255, 0.08);
      }
      .subtabs button.active {
        background: linear-gradient(135deg, var(--primary), var(--deep));
        border-color: transparent;
        color: #fff;
        box-shadow: 0 14px 28px rgba(11, 77, 255, 0.22);
      }
      .ministry-shell {
        display: grid;
        gap: 18px;
      }
      .ministry-tools {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 14px;
      }
      .ministry-tools h2 {
        margin: 0;
      }
      .ministry-editor-list {
        display: grid;
        gap: 12px;
      }
      .ministry-data-row {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
        gap: 12px;
        align-items: end;
        padding: 14px;
        border: 1px solid var(--border);
        border-radius: 16px;
        background: var(--solid);
      }
      html[data-theme="dark"] .ministry-data-row {
        background: rgba(255, 255, 255, 0.035);
      }
      .ministry-data-row.three {
        grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
      }
      .ministry-data-row .field {
        margin-bottom: 0;
      }
      .ministry-empty {
        margin: 0 0 14px;
      }
      .ministry-row-actions {
        display: flex;
        gap: 8px;
        align-items: center;
        justify-content: flex-end;
      }
      .service-schedule-title {
        margin: 0 0 14px;
      }
      .ministry-save-actions {
        display: flex;
        gap: 12px;
        flex-wrap: wrap;
        margin-top: 16px;
      }
      @media (max-width: 760px) {
        .assignment-row,
        .ministry-data-row,
        .ministry-data-row.three {
          grid-template-columns: 1fr;
          margin-left: 0;
          margin-right: 0;
        }
        .row-actions,
        .ministry-row-actions {
          width: 100%;
        }
        .row-actions button,
        .ministry-row-actions button {
          width: 100%;
        }
        .program {
          padding: 20px 18px 24px;
          gap: 14px;
          border-radius: 4px;
        }
        .clm-title-line h2 {
          font-size: calc(24px * var(--font-scale));
        }
        .clm-title-line span {
          font-size: calc(16px * var(--font-scale));
        }
        .clm-date-line strong {
          font-size: calc(21px * var(--font-scale));
        }
        .schedule-row,
        .line {
          display: flex;
          flex-direction: column;
          gap: 4px;
          padding: 8px 0;
        }
        .schedule-assignee,
        .line span {
          margin-left: 0;
          font-size: calc(14px * var(--font-scale));
          color: var(--text-main);
          text-align: left;
        }
        .section h2 {
          font-size: calc(18px * var(--font-scale));
          letter-spacing: -0.015em;
        }
        .section-title-art {
          width: 38px;
          height: 38px;
          max-width: 38px;
          max-height: 38px;
          flex-basis: 38px;
        }
        .section header {
          padding: 15px 0 6px;
          gap: 10px;
        }
        .section header .section-icon {
          width: 38px;
          height: 38px;
          border-radius: 0;
        }
        .plan-section .formgrid {
          padding: 10px 0 4px;
        }
        .plan-section .secondary[data-add-row] {
          margin: 10px 0 2px;
        }
        .subtabs {
          margin-left: -2px;
          margin-right: -2px;
        }
        .ministry-tools {
          display: grid;
        }
        .ministry-save-actions .primary,
        .ministry-save-actions .secondary {
          width: 100%;
        }
      }
      .plan-header-actions {
        margin-left: auto;
        display: flex;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
      }

      .clm-planning-program {
        margin-top: 2px;
      }
      .clm-planning-program .field input,
      .clm-planning-program .field select,
      .clm-planning-program .field textarea {
        border-radius: 6px;
        min-height: 42px;
        background: rgba(255, 255, 255, 0.72);
      }
      html[data-theme="dark"] .clm-planning-program .field input,
      html[data-theme="dark"] .clm-planning-program .field select,
      html[data-theme="dark"] .clm-planning-program .field textarea {
        background: rgba(255, 255, 255, 0.06);
      }
      .clm-planning-program .plan-header-actions {
        margin-left: auto;
      }
      .visibility-toggle {
        min-height: 38px;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: var(--card);
        color: var(--muted);
        display: inline-flex;
        align-items: center;
        gap: 7px;
        padding: 0 12px;
        font-weight: 900;
        font-size: 12px;
        white-space: nowrap;
      }
      .visibility-toggle.on {
        color: var(--success);
        border-color: rgba(0, 168, 107, 0.45);
        background: rgba(0, 168, 107, 0.09);
      }
      .servants-card {
        margin-top: 16px;
      }
      .servants-card.card {
        padding: 22px;
      }
      .servants-list,
      .group-editor-list,
      .group-member-list,
      .servant-multi-list {
        display: grid;
        gap: 10px;
      }
      .servant-display-row,
      .servant-editor-row,
      .group-member-row {
        display: grid;
        grid-template-columns: 44px minmax(0, 1fr);
        align-items: center;
        gap: 12px;
      }
      .servant-display-row {
        grid-template-columns: 44px minmax(0, 1fr) minmax(160px, .8fr);
        padding: 10px 0;
        border-bottom: 1px solid rgba(184, 184, 184, 0.35);
      }
      .servant-display-row:last-child {
        border-bottom: 0;
      }
      .servant-display-row strong {
        color: var(--text-main);
      }
      .servant-display-value {
        font-weight: 850;
        color: var(--text-main);
        text-align: right;
      }
      .servant-icon {
        width: 38px;
        height: 38px;
        border-radius: 12px;
        display: grid;
        place-items: center;
        background: rgba(11, 77, 255, 0.08);
        color: var(--section-heading, var(--primary));
        overflow: hidden;
      }
      .servant-icon img,
      .servant-icon-fallback,
      .servant-icon svg {
        width: 24px;
        height: 24px;
        display: block;
        object-fit: contain;
        fill: currentColor;
        stroke: currentColor;
      }
      html[data-theme="dark"] .servant-icon {
        background: rgba(255, 255, 255, 0.08);
        color: #ffffff;
      }
      .servant-editor-row.full-field {
        grid-column: 1 / -1;
      }
      .servant-editor-row .field {
        margin-bottom: 0;
      }
      .servant-multi-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
        align-items: center;
      }
      .servant-multi-row .field {
        margin-bottom: 0;
      }
      .servant-add-btn {
        width: max-content;
        margin-top: 8px;
      }
      .group-member-row {
        grid-template-columns: minmax(160px, 1fr) minmax(150px, .8fr) auto;
        padding: 10px;
        border: 1px solid var(--border);
        border-radius: 16px;
        background: var(--solid);
      }
      .group-member-row .field {
        margin-bottom: 0;
      }
      .member-badge {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 24px;
        height: 24px;
        padding: 0 7px;
        border-radius: 999px;
        background: rgba(11, 77, 255, 0.1);
        color: var(--primary);
        font-weight: 1000;
        font-size: 12px;
        margin-left: 6px;
      }
      .toolbar-grid {
        display: grid;
        grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) auto;
        gap: 14px;
        align-items: end;
        margin-bottom: 16px;
      }
      .toolbar-grid .field {
        margin-bottom: 0;
      }
      .no-top {
        margin-top: 0;
      }

      .groups-view-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
        gap: 14px;
        align-items: start;
      }
      .group-view-card {
        min-width: 0;
        padding: 18px;
        border: 1px solid rgba(221, 227, 240, 0.72);
        border-radius: 4px;
        background: rgba(255, 255, 255, 0.74);
        box-shadow: none;
      }
      html[data-theme="dark"] .group-view-card {
        background: rgba(255, 255, 255, 0.045);
        border-color: var(--border);
      }
      .group-view-card h2 {
        margin: 0 0 14px;
        color: var(--primary);
        font-size: calc(22px * var(--font-scale));
        line-height: 1.1;
        font-weight: 900;
      }
      .group-view-list {
        display: grid;
        gap: 3px;
        margin: 0;
        padding: 0;
        list-style: none;
      }
      .group-view-list li {
        color: var(--text-main);
        font-size: calc(14px * var(--font-scale));
        line-height: 1.35;
        word-break: break-word;
      }
      .group-view-role {
        color: var(--muted);
        font-size: calc(11px * var(--font-scale));
        font-weight: 700;
        margin-left: 4px;
        white-space: nowrap;
      }
      @media (max-width: 760px) {
        .groups-view-grid {
          grid-template-columns: repeat(2, minmax(0, 1fr));
          gap: 12px;
        }
        .group-view-card {
          padding: 14px;
        }
        .group-view-card h2 {
          font-size: calc(20px * var(--font-scale));
        }
        .group-view-list li {
          font-size: calc(13px * var(--font-scale));
        }
      }
      @media (max-width: 430px) {
        .groups-view-grid {
          grid-template-columns: 1fr;
        }
      }

      .admin-entry-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
      }
      .admin-entry-card {
        width: 100%;
        min-height: 132px;
        text-align: left;
        align-items: flex-start;
        justify-content: space-between;
        padding: 22px;
        border-radius: 22px;
      }
      .admin-entry-card strong {
        font-size: 22px;
      }
      .admin-entry-card span {
        color: var(--muted);
        font-weight: 700;
      }
      .admin-title-row,
      .admin-user-toolbar {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        flex-wrap: wrap;
      }
      .admin-plus {
        width: 46px;
        height: 46px;
        min-height: 46px;
        border-radius: 16px;
        padding: 0;
        font-size: 28px;
        line-height: 1;
      }
      .admin-user-list {
        display: grid;
        gap: 10px;
      }
      .admin-user-row {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(0, 1.4fr) minmax(120px, .8fr) minmax(96px, .5fr);
        gap: 12px;
        align-items: center;
        text-align: left;
        border: 1px solid var(--border);
        border-radius: 16px;
        background: var(--card);
        color: var(--text-main);
        padding: 14px;
      }
      .admin-user-row strong,
      .admin-user-card-title strong {
        color: var(--text-main);
      }
      .admin-user-row span,
      .admin-user-row small,
      .admin-user-card-title small {
        color: var(--muted);
        font-weight: 750;
      }
      .admin-user-card-title {
        display: flex;
        align-items: center;
        gap: 14px;
      }
      .admin-detail-actions {
        display: flex;
        gap: 10px;
        flex-wrap: wrap;
      }
      .modal-card.wide {
        width: min(760px, calc(100vw - 28px));
      }
      .modal-close-row {
        display: flex;
        justify-content: flex-end;
        margin-top: 12px;
      }
      .modal-card.wide .report-row {
        grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
      }
      .admin-report-chart {
        display: grid;
        gap: 8px;
        margin: 12px 0;
      }
      @media (max-width: 760px) {
        .admin-entry-grid,
        .admin-user-row {
          grid-template-columns: 1fr;
        }
        .admin-entry-card {
          min-height: 110px;
        }
      }

      .territory-editor-list {
        display: grid;
        gap: 12px;
      }
      .territory-data-row {
        grid-template-columns: repeat(4, minmax(130px, 1fr)) auto;
      }
      .calendar-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 14px;
      }
      .calendar-weekdays {
        display: grid;
        grid-template-columns: repeat(7, 1fr);
        gap: 6px;
        margin-bottom: 6px;
        color: var(--muted);
        font-weight: 900;
        text-align: center;
      }
      .calendar-grid {
        display: grid;
        grid-template-columns: repeat(7, 1fr);
        gap: 6px;
      }
      .calendar-day {
        min-height: 74px;
        border: 1px solid var(--border);
        border-radius: 16px;
        background: var(--solid);
        color: var(--text);
        padding: 8px;
        text-align: left;
        display: grid;
        align-content: start;
        gap: 4px;
      }
      .calendar-day small {
        font-size: 11px;
        color: var(--muted);
        line-height: 1.15;
        overflow: hidden;
        text-overflow: ellipsis;
      }
      .calendar-day.active {
        border-color: var(--primary);
        box-shadow: 0 0 0 3px rgba(11, 77, 255, 0.13);
      }
      .calendar-day.has-talk {
        background: rgba(11, 77, 255, 0.08);
      }
      .calendar-day.muted-day {
        opacity: 0.45;
      }
      .talks-layout {
        align-items: start;
      }
      @media (max-width: 760px) {
        .bottom {
          grid-template-columns: repeat(auto-fit, minmax(48px, 1fr));
        }
        .toolbar-grid,
        .territory-data-row {
          grid-template-columns: 1fr;
        }
        .calendar-day {
          min-height: 58px;
          padding: 6px;
        }
        .calendar-day small {
          display: none;
        }
        .plan-header-actions {
          width: 100%;
          justify-content: flex-start;
        }
        .visibility-toggle {
          max-width: 100%;
          overflow: hidden;
          text-overflow: ellipsis;
        }
      }

/* Keep a personal assignment highlight in place without changing the program grid. */
.schedule-row.my-assignment {
  background: color-mix(in srgb, var(--primary) 8%, transparent);
  box-shadow: inset 3px 0 0 var(--primary);
  border-radius: 8px;
  padding-inline: 10px;
}
.schedule-part-number {
  color: var(--section-text, var(--primary));
  font-weight: 850;
  white-space: nowrap;
}
.schedule-task-duration {
  color: var(--text-main);
  font-weight: 600;
  white-space: nowrap;
}
.schedule-partner {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 0.88em;
  line-height: 1.25;
  text-align: left;
}
.program > .servants-card {
  margin-top: 0;
  border: 0;
  border-top: 1px solid var(--border);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 18px 0 0;
}
@media (max-width: 760px) {
  .program > .servants-card {
    padding-top: 14px;
  }
  .schedule-row.my-assignment {
    padding-inline: 8px;
  }
}

.meeting-content-fieldset {
  margin: 0;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px 16px 16px;
}
.meeting-content-fieldset legend {
  padding: 0 6px;
  color: var(--text-main);
  font-weight: 800;
}
.meeting-content-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(205px, 1fr));
  gap: 8px;
}
.meeting-content-fieldset .choice {
  min-height: 42px;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 8px 10px;
  background: var(--page-bg);
}

.meeting-settings-details {
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 0 16px 14px;
  background: var(--card-bg, var(--page-bg));
}
.meeting-settings-details > summary {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px 16px;
  padding: 14px 2px;
  cursor: pointer;
  color: var(--text-main);
  list-style: none;
}
.meeting-settings-details > summary::-webkit-details-marker {
  display: none;
}
.meeting-settings-details > summary::after {
  content: "⌄";
  color: var(--primary);
  font-size: 1.15em;
  font-weight: 800;
}
.meeting-settings-details[open] > summary {
  margin-bottom: 12px;
  border-bottom: 1px solid var(--border);
}
.meeting-settings-details > summary span {
  color: var(--muted);
  font-size: 0.92em;
  font-weight: 650;
}
.meeting-settings-details .meeting-content-fieldset + .meeting-content-fieldset {
  margin-top: 10px;
}


/* Workbook-like assignment columns, responsive song labels, and rounded program icons. */
.schedule-row.line:not(.single) {
  --schedule-value-width: clamp(170px, 30%, 360px);
  grid-template-columns: minmax(0, 1fr) var(--schedule-value-width);
}
.schedule-assignee { font-weight: 800; }
.schedule-part-main, .section .schedule-part-main { color: var(--section-heading, var(--primary)); font-weight: 800; }
.schedule-part-extra, .schedule-task-duration { color: var(--text-main); font-weight: 500; }
.schedule-task-duration { font-weight: 650; }
.schedule-partner { font-weight: 650; }
.song-label { display: inline-flex; align-items: center; gap: 7px; color: var(--primary); font-weight: 800; }
.song-icon { width: 19px; height: 19px; flex: 0 0 19px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.line.song .schedule-part { color: var(--primary); font-weight: 750; }
.section header .section-icon, .section-title-art { border-radius: 12px; overflow: hidden; }
.servant-display-row { --schedule-value-width: clamp(170px, 30%, 360px); grid-template-columns: 44px minmax(0, 1fr) var(--schedule-value-width); }
.servant-display-value { font-weight: 850; }
.servant-icon { width: 40px; height: 40px; border-radius: 12px; background: color-mix(in srgb, var(--section-heading, var(--primary)) 10%, transparent); }
.servant-icon-fallback svg, .servant-icon svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 760px) {
  .schedule-row.line:not(.single) { --schedule-value-width: clamp(108px, 36%, 180px); grid-template-columns: minmax(0, 1fr) var(--schedule-value-width); gap: 8px; }
  .servant-display-row { --schedule-value-width: clamp(108px, 36%, 180px); grid-template-columns: 38px minmax(0, 1fr) var(--schedule-value-width); gap: 8px; }
  .servant-display-value { grid-column: auto; text-align: right; }
}
@media (max-width: 440px) and (min-width: 381px) {
  html[data-font-size="xlarge"] .schedule-row.line:not(.single) { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  html[data-font-size="xlarge"] .schedule-assignee { grid-column: 1; }
  html[data-font-size="xlarge"] .servant-display-row { grid-template-columns: 38px minmax(0, 1fr); }
  html[data-font-size="xlarge"] .servant-display-value { grid-column: 2; text-align: left; }
}
@media (max-width: 380px) {
  html[data-font-size="large"] .schedule-row.line:not(.single), html[data-font-size="xlarge"] .schedule-row.line:not(.single) { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  html[data-font-size="large"] .schedule-assignee, html[data-font-size="xlarge"] .schedule-assignee { grid-column: 1; }
  html[data-font-size="large"] .servant-display-row, html[data-font-size="xlarge"] .servant-display-row { grid-template-columns: 38px minmax(0, 1fr); }
  html[data-font-size="large"] .servant-display-value, html[data-font-size="xlarge"] .servant-display-value { grid-column: 2; text-align: left; }
}


/* Meeting content controls and workbook-style layout refinements. */
html[data-font-size="10"] { --font-scale: .714; }
html[data-font-size="12"] { --font-scale: .857; }
html[data-font-size="14"] { --font-scale: 1; }
html[data-font-size="16"] { --font-scale: 1.143; }
html[data-font-size="18"] { --font-scale: 1.286; }
html[data-font-size="20"] { --font-scale: 1.429; }
#groupSettingsForm .group-identity-settings {
  grid-template-columns: minmax(0, 1fr) minmax(140px, 210px);
}
#groupSettingsForm .group-identity-settings .full-field { grid-column: 1 / -1; }
#groupSettingsForm .notification-methods-choice {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
}
#groupSettingsForm .meeting-content-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
}
.meeting-settings-row { margin: 8px 0; }
.meeting-settings-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px;
  text-align: left;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--card);
  color: var(--text-main);
}
.meeting-settings-trigger > span { display: grid; gap: 4px; min-width: 0; }
.meeting-settings-trigger strong { font-size: calc(15px * var(--font-scale)); }
.meeting-settings-trigger small { color: var(--text-muted); font-weight: 650; }
.meeting-settings-trigger > b { color: var(--primary); font-size: 24px; line-height: 1; }
.meeting-settings-details {
  margin: 7px 0;
  padding: 10px 13px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: var(--card);
}
.meeting-settings-details > summary { cursor: pointer; padding: 4px 0; font-weight: 800; }
.meeting-settings-details[open] > summary { margin-bottom: 10px; }
.ministry-schedule-list { display: grid; gap: 8px; }
.ministry-days-list { display: grid; gap: 7px; }
.ministry-days-empty { margin: 4px 0; }
.ministry-day-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--card);
}
.ministry-day-row > div:first-of-type { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.ministry-day-row strong { font-weight: 800; }
.ministry-day-row [data-day-time] { color: var(--text-muted); font-weight: 700; }
.ministry-day-actions { display: flex; gap: 4px; }
.ministry-day-actions button { min-width: 36px; min-height: 36px; padding: 3px 8px; }
.ministry-day-add { width: max-content; margin-top: 5px; }
.profile-settings-card .font-control select,
.font-control select { max-width: 240px; }
.font-preview { font-size: calc(14px * var(--font-scale)); }
.schedule-row.line:not(.single) .schedule-assignee {
  font-weight: 850;
}
.section .schedule-part-number,
.section .schedule-part-main {
  color: var(--section-heading, var(--primary));
  font-weight: 850;
}
.schedule-row.line:not(.single) .schedule-assignee,
.servant-display-row .servant-display-value,
.servant-display-row > strong { font-weight: 850; }
.servant-display-row {
  --schedule-value-width: clamp(170px, 30%, 360px);
  grid-template-columns: 44px minmax(0, 1fr) var(--schedule-value-width);
}
.servant-display-row > strong { min-width: 0; }
.assignment-v2-art.assignment-v2-person-icon {
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: color-mix(in srgb, var(--primary) 9%, transparent);
  color: var(--primary);
}
.assignment-v2-person-icon svg { width: 28px; height: 28px; fill: currentColor; stroke: currentColor; }
.assignment-v2-title > span {
  display: block;
  color: var(--section-heading, var(--primary));
  font-size: calc(14px * var(--font-scale));
  font-weight: 850;
  letter-spacing: .035em;
  line-height: 1.25;
}
.assignment-v2-title h3 { font-weight: 800; }
.assignment-v2-status { font-weight: 800; }
.section.red header h2,
.section-detail header h2 {
  font-size: calc(20px * var(--font-scale));
  font-weight: 800;
}
@media (max-width: 760px) {
  #groupSettingsForm .group-identity-settings {
    grid-template-columns: minmax(0, 1fr) minmax(105px, 130px);
    gap: 10px;
  }
  .schedule-row.line:not(.single) {
    --schedule-value-width: clamp(108px, 36%, 180px);
    grid-template-columns: minmax(0, 1fr) var(--schedule-value-width);
    gap: 8px;
  }
  .servant-display-row {
    --schedule-value-width: clamp(108px, 36%, 180px);
    grid-template-columns: 38px minmax(0, 1fr) var(--schedule-value-width);
    gap: 8px;
  }
  .servant-display-value { grid-column: auto; text-align: right; }
  .section.red header h2,
  .section-detail header h2 { font-size: calc(19px * var(--font-scale)); }
  .assignment-v2-title > span { font-size: calc(15px * var(--font-scale)); }
}
@media (max-width: 440px) and (min-width: 381px) {
  html[data-font-size="18"] .schedule-row.line:not(.single),
  html[data-font-size="20"] .schedule-row.line:not(.single) { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  html[data-font-size="18"] .schedule-assignee,
  html[data-font-size="20"] .schedule-assignee { grid-column: 1; }
  html[data-font-size="18"] .servant-display-row,
  html[data-font-size="20"] .servant-display-row { grid-template-columns: 38px minmax(0, 1fr); }
  html[data-font-size="18"] .servant-display-value,
  html[data-font-size="20"] .servant-display-value { grid-column: 2; text-align: left; }
}
@media (max-width: 380px) {
  html[data-font-size="16"] .schedule-row.line:not(.single),
  html[data-font-size="18"] .schedule-row.line:not(.single),
  html[data-font-size="20"] .schedule-row.line:not(.single) { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  html[data-font-size="16"] .schedule-assignee,
  html[data-font-size="18"] .schedule-assignee,
  html[data-font-size="20"] .schedule-assignee { grid-column: 1; }
  html[data-font-size="16"] .servant-display-row,
  html[data-font-size="18"] .servant-display-row,
  html[data-font-size="20"] .servant-display-row { grid-template-columns: 38px minmax(0, 1fr); }
  html[data-font-size="16"] .servant-display-value,
  html[data-font-size="18"] .servant-display-value,
  html[data-font-size="20"] .servant-display-value { grid-column: 2; text-align: left; }
}


/* Assignment approval controls, readable groups, larger numeric typography, and speaker contacts. */
html[data-font-size="8"] { --font-scale: .571; }
html[data-font-size="10"] { --font-scale: .714; }
html[data-font-size="12"] { --font-scale: .857; }
html[data-font-size="14"] { --font-scale: 1; }
html[data-font-size="16"] { --font-scale: 1.143; }
html[data-font-size="18"] { --font-scale: 1.286; }
html[data-font-size="20"] { --font-scale: 1.429; }
html[data-font-size="22"] { --font-scale: 1.571; }
html[data-font-size="24"] { --font-scale: 1.714; }
html[data-font-size="26"] { --font-scale: 1.857; }
html[data-font-size="28"] { --font-scale: 2; }
html[data-font-size="30"] { --font-scale: 2.143; }
.meeting-content-grid { grid-template-columns: minmax(0, 1fr); gap: 5px; }
.meeting-content-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
.meeting-content-option > .choice { margin: 0; min-width: 0; }
.approval-controls { display: inline-flex; align-items: center; gap: 4px; }
.approval-icon-button,
.approval-add-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 38px;
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: var(--page-bg);
  color: var(--primary);
  font-weight: 800;
}
.approval-icon-button { gap: 4px; }
.approval-icon-button svg { width: 17px; height: 17px; }
.approval-icon-button svg path { fill: currentColor; stroke: none; }
.approval-add-button { font-size: 23px; line-height: 1; }
.approved-member-picker { display: grid; gap: 6px; max-height: min(55vh, 420px); overflow: auto; }
.approved-member-choice { min-height: 42px; }
.approved-member-list { display: grid; gap: 7px; padding-left: 22px; }
.approved-member-list li { font-weight: 700; }
.group-view-card h2 { font-size: calc(21px * var(--font-scale)); font-weight: 850; }
.group-view-list { font-size: calc(17px * var(--font-scale)); line-height: 1.45; }
.group-view-list li { padding-block: 3px; font-weight: 750; }
.section.red header h2 { font-size: calc(21px * var(--font-scale)); }
.pane-program-header h2 { font-size: calc(31px * var(--font-scale)); }
.assignment-v2-category-icon { display: grid; place-items: center; border-radius: 13px; }
.assignment-v2-category-icon svg { width: 30px; height: 30px; }
.assignment-v2-icon-ministry { color: var(--section-gold, #b17a00); background: color-mix(in srgb, #d7a527 13%, transparent); }
.assignment-v2-icon-treasures,
.assignment-v2-icon-watchtower { color: var(--section-blue, #1763a5); background: color-mix(in srgb, #3488cf 13%, transparent); }
.assignment-v2-icon-life { color: var(--section-red, #9b2333); background: color-mix(in srgb, #bd4050 13%, transparent); }
.assignment-v2-icon-talk { color: var(--primary); background: color-mix(in srgb, var(--primary) 11%, transparent); }
.directory-list .directory-row.speaker-directory-row { display: flex; align-items: center; gap: 8px; padding: 0 10px 0 0; }
.speaker-directory-open {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  min-height: 64px;
  padding: 10px 12px;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
}
.speaker-directory-open > span:first-child { display: grid; gap: 3px; min-width: 0; }
.speaker-directory-open strong,
.speaker-directory-open small { overflow-wrap: anywhere; }
.whatsapp-contact {
  display: inline-grid;
  flex: 0 0 40px;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #e8f8ee;
  color: #128c4a;
}
.whatsapp-contact svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.whatsapp-contact:hover { background: #d4f2df; color: #087439; }
@media (max-width: 550px) {
  html[data-font-size="22"] .schedule-row.line:not(.single),
  html[data-font-size="24"] .schedule-row.line:not(.single),
  html[data-font-size="26"] .schedule-row.line:not(.single),
  html[data-font-size="28"] .schedule-row.line:not(.single),
  html[data-font-size="30"] .schedule-row.line:not(.single) { grid-template-columns: minmax(0, 1fr); }
  html[data-font-size="22"] .servant-display-row,
  html[data-font-size="24"] .servant-display-row,
  html[data-font-size="26"] .servant-display-row,
  html[data-font-size="28"] .servant-display-row,
  html[data-font-size="30"] .servant-display-row { grid-template-columns: 38px minmax(0, 1fr); }
  html[data-font-size="22"] .servant-display-value,
  html[data-font-size="24"] .servant-display-value,
  html[data-font-size="26"] .servant-display-value,
  html[data-font-size="28"] .servant-display-value,
  html[data-font-size="30"] .servant-display-value { grid-column: 2; text-align: left; }
}

.assignment-v2-category-icon.assignment-v2-icon-servants {
  background: color-mix(in srgb, var(--primary) 9%, transparent);
  color: var(--primary);
}
