/*
------------------------------------------------------------------------------
 folding.lar.systems Web Client
 https://webclient.lar.systems

 Copyright (c) 2026 folding.lar.systems
 All Rights Reserved.

 This source file is part of the folding.lar.systems web client project.

 The software and source code are provided for hobby, educational, and
 entertainment purposes only. This code is provided "AS IS", without
 warranty of any kind, express or implied, including but not limited to
 the warranties of merchantability, fitness for a particular purpose,
 and noninfringement.

 Use of this software is at your own risk. The author and operators of
 folding.lar.systems assume no responsibility for any damage, data loss,
 system instability, or other issues that may arise from the use,
 modification, or redistribution of this code.

 This project is not affiliated with, endorsed by, or officially
 supported by the Folding@Home project or its partners.

------------------------------------------------------------------------------
*/
:root,
[data-theme="folding-dark"] {
	--app-bg: linear-gradient(320deg, rgb(15 17 15) 45%, #081328 100%);
	--app-surface: rgb(10 17 31 / 72%);
	--app-surface-strong: #1b1725;
	--app-border: rgb(118 165 235 / 10%);
	--app-table-border: rgb(118 165 235 / 14%);
	--app-text: #e9e9e9;
	--app-text-muted: #a5a3a3;
	--app-text-secondary: #c7cdd6;
	--app-link: #76a5eb;
	--app-primary: #0d6efd;
	--app-primary-strong: #0b47a0;
	--app-success: #0f482d;
	--app-danger: #7e1f28;
	--app-warning: #926f09;
	--app-up: #2abd77;
	--app-down: #dd3747;
	--app-neutral: #ab9eff;
	--app-scroll-track: #000000;
	--app-scroll-thumb: #0b47a0;
	--app-hour-selected: #003e81;
	--app-hour-hover: #0056b3;
	--app-font-stack: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	--app-panel-radius: 16px;
	--app-subcard-radius: 14px;
	--app-control-radius: 10px;
	--app-button-radius: 10px;
	--app-pill-radius: 999px;
	--app-small-radius: 4px;
	--app-panel-padding: 1rem;
	--app-header-height: 84px;
	--app-header-bg: rgb(6 12 22 / 68%);
	--app-header-border: rgb(118 165 235 / 18%);
	--app-header-shadow: 0 8px 18px rgb(4 10 20 / 10%);
	--app-header-control-bg: rgb(16 28 47 / 85%);
	--app-header-control-border: rgb(118 165 235 / 25%);
	--app-panel-alt: rgb(8 20 36 / 78%);
	--app-panel-shadow: 0 14px 34px rgb(0 0 0 / 14%);
	--app-subcard-bg: linear-gradient(180deg, rgb(10 23 39 / 88%), rgb(7 17 31 / 82%));
	--app-subcard-shadow: 0 12px 24px rgb(0 0 0 / 10%);
	--app-focus-ring: 0 0 0 3px rgb(118 165 235 / 22%);
	--app-input-bg: rgb(6 15 29 / 78%);
	--app-input-border: rgb(118 165 235 / 18%);
	--app-command-strip-top: rgb(8 22 40 / 82%);
	--app-command-strip-bottom: rgb(5 15 29 / 78%);
	--app-progress-track: #02172c;
	--app-rank-row-even: rgb(22 18 30 / 80%);
	--app-rank-row-text: #adadad;
	--app-input-text: #ffffff;
	--app-placeholder-text: #c7cdd6;
	--app-hour-off-bg: rgb(126 31 40 / 18%);
	--app-hour-off-border: rgb(126 31 40 / 55%);
	--app-hour-off-text: #ffd9dc;
	--app-hour-on-text: #ffffff;
	--app-hour-hover-bg: rgb(15 72 45 / 54%);
	--app-hour-hover-text: #ffffff;
	--app-toggle-off-bg: rgb(126 31 40 / 48%);
	--app-toggle-off-border: rgb(221 55 71 / 60%);
	--app-toggle-on-bg: rgb(15 72 45 / 62%);
	--app-toggle-on-border: rgb(43 189 119 / 62%);
	--app-device-text: #b9b9b9;
	--app-progress-display-text: #bdbdbd;
	--app-btn-primary-bg: rgb(13 110 253 / 88%);
	--app-btn-primary-border: rgb(118 165 235 / 26%);
	--app-btn-primary-hover: rgb(11 71 160 / 94%);
	--app-slot-timer-bg: linear-gradient(180deg, rgb(16 28 47 / 20%), rgb(20 4 48 / 10%));
	--app-btn-success-bg: rgb(15 72 45 / 88%);
	--app-btn-success-border: rgb(43 189 119 / 28%);
	--app-btn-success-hover: rgb(21 97 60 / 94%);
	--app-btn-danger-bg: rgb(126 31 40 / 88%);
	--app-btn-danger-border: rgb(221 55 71 / 24%);
	--app-btn-danger-hover: rgb(145 37 47 / 94%);
	--app-btn-warning-bg: rgb(146 111 9 / 88%);
	--app-btn-warning-border: rgb(237 190 64 / 24%);
	--app-btn-warning-hover: rgb(166 127 11 / 94%);
	--app-status-running-text: #39cf86;
	--app-status-paused-text: #ff6978;
	--app-status-finish-text: #f0c44d;
	--app-status-stale-text: var(--app-text-muted);
}

[data-theme="nebula-console"] {
	--app-bg: radial-gradient(circle at top left, #0d213c 0%, #060a16 48%, #020409 100%);
	--app-surface: rgb(8 25 46 / 76%);
	--app-surface-strong: #102846;
	--app-border: rgb(101 208 255 / 14%);
	--app-table-border: rgb(101 208 255 / 16%);
	--app-text: #e7f8ff;
	--app-text-muted: #8db3cc;
	--app-text-secondary: #b9d5e7;
	--app-link: #65d0ff;
	--app-primary: #1c8dff;
	--app-primary-strong: #0d5fb4;
	--app-success: #0f5c4f;
	--app-danger: #7b2548;
	--app-warning: #9a6a18;
	--app-up: #4de0b9;
	--app-down: #ff677f;
	--app-neutral: #9cb8ff;
	--app-scroll-track: #06111d;
	--app-scroll-thumb: #1c8dff;
	--app-hour-selected: #105ea6;
	--app-hour-hover: #1c8dff;
	--app-toggle-off-bg: rgb(123 37 72 / 54%);
	--app-toggle-off-border: rgb(255 103 127 / 54%);
	--app-toggle-on-bg: rgb(15 92 79 / 64%);
	--app-toggle-on-border: rgb(77 224 185 / 58%);
	--app-btn-primary-bg: rgb(28 141 255 / 88%);
	--app-btn-primary-border: rgb(101 208 255 / 24%);
	--app-btn-primary-hover: rgb(21 116 209 / 94%);
	--app-btn-success-bg: rgb(15 92 79 / 88%);
	--app-btn-success-border: rgb(77 224 185 / 26%);
	--app-btn-success-hover: rgb(18 111 95 / 94%);
	--app-btn-danger-bg: rgb(123 37 72 / 88%);
	--app-btn-danger-border: rgb(255 103 127 / 24%);
	--app-btn-danger-hover: rgb(144 44 84 / 94%);
	--app-btn-warning-bg: rgb(154 106 24 / 88%);
	--app-btn-warning-border: rgb(255 192 91 / 22%);
	--app-btn-warning-hover: rgb(176 121 29 / 94%);
}

[data-theme="oblivion"] {
	--app-bg:
		radial-gradient(circle at 22% 18%, rgb(18 92 112 / 18%) 0%, transparent 24%),
		radial-gradient(circle at 78% 32%, rgb(255 124 71 / 10%) 0%, transparent 18%),
		linear-gradient(180deg, #03080c 0%, #041017 45%, #020509 100%);
	--app-surface: rgb(3 16 24 / 84%);
	--app-surface-strong: #081923;
	--app-border: rgb(83 224 255 / 16%);
	--app-table-border: rgb(83 224 255 / 22%);
	--app-text: #dffbff;
	--app-text-muted: #7fa5ad;
	--app-text-secondary: #a4d4db;
	--app-link: #53e0ff;
	--app-primary: #15c8f5;
	--app-primary-strong: #0d8fb0;
	--app-success: #0c6f5b;
	--app-danger: #a02d2d;
	--app-warning: #b96a23;
	--app-up: #5bf8d0;
	--app-down: #ff7f5f;
	--app-neutral: #8dc7ff;
	--app-scroll-track: #02090d;
	--app-scroll-thumb: #0ea8cf;
	--app-hour-selected: #0f7b66;
	--app-hour-hover: #0ea8cf;
	--app-header-bg: rgb(2 11 16 / 58%);
	--app-header-border: rgb(83 224 255 / 24%);
	--app-header-shadow: 0 10px 26px rgb(0 0 0 / 18%);
	--app-header-control-bg: rgb(5 23 34 / 74%);
	--app-header-control-border: rgb(83 224 255 / 28%);
	--app-panel-alt: linear-gradient(180deg, rgb(4 17 26 / 92%), rgb(3 11 18 / 94%));
	--app-panel-shadow: 0 14px 34px rgb(0 0 0 / 18%);
	--app-focus-ring: 0 0 0 3px rgb(83 224 255 / 24%);
	--app-input-bg: rgb(4 17 26 / 88%);
	--app-input-border: rgb(83 224 255 / 22%);
	--app-command-strip-top: rgb(5 20 30 / 88%);
	--app-command-strip-bottom: rgb(3 12 18 / 92%);
	--app-progress-track: #06202b;
	--app-rank-row-even: rgb(8 27 38 / 82%);
	--app-rank-row-text: #a8d8df;
	--app-input-text: #dffbff;
	--app-placeholder-text: #6f98a3;
	--app-hour-off-bg: rgb(160 45 45 / 14%);
	--app-hour-off-border: rgb(255 127 95 / 38%);
	--app-hour-off-text: #ffb29c;
	--app-hour-on-text: #ffffff;
	--app-hour-hover-bg: rgb(21 200 245 / 18%);
	--app-hour-hover-text: #dffbff;
	--app-toggle-off-bg: rgb(160 45 45 / 54%);
	--app-toggle-off-border: rgb(255 127 95 / 58%);
	--app-toggle-on-bg: rgb(12 111 91 / 68%);
	--app-toggle-on-border: rgb(91 248 208 / 54%);
	--app-device-text: #8eb5bc;
	--app-progress-display-text: #c5f4ff;
	--app-btn-primary-bg: rgb(21 200 245 / 84%);
	--app-btn-primary-border: rgb(83 224 255 / 22%);
	--app-btn-primary-hover: rgb(18 179 220 / 90%);
	--app-slot-timer-bg: linear-gradient(180deg, rgb(10 30 42 / 34%), rgb(5 18 28 / 18%));
	--app-panel-radius: 0;
	--app-subcard-radius: 0;
	--app-control-radius: 0;
	--app-button-radius: 0;
	--app-pill-radius: 0;
	--app-small-radius: 0;
	--app-btn-success-bg: rgb(12 111 91 / 86%);
	--app-btn-success-border: rgb(91 248 208 / 22%);
	--app-btn-success-hover: rgb(14 131 107 / 92%);
	--app-btn-danger-bg: rgb(160 45 45 / 84%);
	--app-btn-danger-border: rgb(255 127 95 / 24%);
	--app-btn-danger-hover: rgb(180 54 54 / 90%);
	--app-btn-warning-bg: rgb(185 106 35 / 84%);
	--app-btn-warning-border: rgb(255 178 102 / 22%);
	--app-btn-warning-hover: rgb(205 119 40 / 90%);
}

[data-theme="watney"] {
	--app-bg:
		linear-gradient(180deg, #060608 0%, #050507 100%);
	--app-surface: rgb(8 8 12 / 90%);
	--app-surface-strong: #120d24;
	--app-border: rgb(201 194 73 / 36%);
	--app-table-border: rgb(201 194 73 / 42%);
	--app-text: #e8e8d7;
	--app-text-muted: #b6b08a;
	--app-text-secondary: #d9d37b;
	--app-link: #e5de67;
	--app-primary: #c40017;
	--app-primary-strong: #8f0010;
	--app-success: #6a6f15;
	--app-danger: #b00014;
	--app-warning: #9f8b22;
	--app-up: #d8d250;
	--app-down: #ff4a4a;
	--app-neutral: #c7c15c;
	--app-scroll-track: #050507;
	--app-scroll-thumb: #6b631d;
	--app-hour-selected: #6f7418;
	--app-hour-hover: #7e7218;
	--app-panel-alt: linear-gradient(180deg, rgb(14 11 32 / 92%), rgb(8 8 14 / 94%));
	--app-subcard-bg: linear-gradient(180deg, rgb(18 12 36 / 94%), rgb(10 9 18 / 96%));
	--app-panel-shadow: 0 10px 20px rgb(0 0 0 / 14%);
	--app-subcard-shadow: 0 8px 14px rgb(0 0 0 / 10%);
	--app-focus-ring: 0 0 0 3px rgb(201 194 73 / 20%);
	--app-input-bg: rgb(9 8 17 / 92%);
	--app-input-border: rgb(201 194 73 / 32%);
	--app-header-bg: rgb(7 7 11 / 72%);
	--app-header-border: rgb(201 194 73 / 34%);
	--app-header-shadow: 0 8px 16px rgb(0 0 0 / 14%);
	--app-header-control-bg: rgb(15 12 30 / 84%);
	--app-header-control-border: rgb(201 194 73 / 34%);
	--app-command-strip-top: rgb(18 13 34 / 94%);
	--app-command-strip-bottom: rgb(8 8 14 / 96%);
	--app-progress-track: #211814;
	--app-rank-row-even: rgb(16 12 28 / 88%);
	--app-rank-row-text: #d4cd93;
	--app-input-text: #ece8cb;
	--app-placeholder-text: #9f9a72;
	--app-hour-off-bg: rgb(176 0 20 / 18%);
	--app-hour-off-border: rgb(255 74 74 / 34%);
	--app-hour-off-text: #ffc5c5;
	--app-hour-on-text: #fffde8;
	--app-hour-hover-bg: rgb(159 139 34 / 22%);
	--app-hour-hover-text: #fff6c3;
	--app-toggle-off-bg: rgb(176 0 20 / 62%);
	--app-toggle-off-border: rgb(255 74 74 / 54%);
	--app-toggle-on-bg: rgb(106 111 21 / 68%);
	--app-toggle-on-border: rgb(216 210 80 / 54%);
	--app-device-text: #b4ad82;
	--app-progress-display-text: #eee7a0;
	--app-btn-primary-bg: rgb(111 101 29 / 88%);
	--app-btn-primary-border: rgb(229 222 103 / 34%);
	--app-btn-primary-hover: rgb(132 120 34 / 94%);
	--app-slot-timer-bg: linear-gradient(180deg, rgb(28 18 42 / 62%), rgb(16 10 18 / 42%));
	--app-panel-radius: 0;
	--app-subcard-radius: 0;
	--app-control-radius: 0;
	--app-button-radius: 0;
	--app-pill-radius: 0;
	--app-small-radius: 0;
	--app-btn-success-bg: rgb(106 111 21 / 86%);
	--app-btn-success-border: rgb(216 210 80 / 24%);
	--app-btn-success-hover: rgb(122 128 25 / 92%);
	--app-btn-danger-bg: rgb(176 0 20 / 90%);
	--app-btn-danger-border: rgb(255 74 74 / 28%);
	--app-btn-danger-hover: rgb(198 8 28 / 96%);
	--app-btn-warning-bg: rgb(159 139 34 / 86%);
	--app-btn-warning-border: rgb(229 222 103 / 22%);
	--app-btn-warning-hover: rgb(178 156 39 / 92%);
}

[data-theme="sacred-timeline"] {
	--app-bg:
		radial-gradient(circle at top center, rgb(78 36 21 / 16%) 0%, transparent 28%),
		repeating-linear-gradient(
			90deg,
			rgb(74 34 21 / 9%) 0,
			rgb(74 34 21 / 9%) 2px,
			transparent 2px,
			transparent 36px
		),
		repeating-linear-gradient(
			180deg,
			rgb(74 34 21 / 7%) 0,
			rgb(74 34 21 / 7%) 2px,
			transparent 2px,
			transparent 36px
		),
		linear-gradient(180deg, #120e0a 0%, #0b0d09 100%);
	--app-surface: rgb(11 15 10 / 92%);
	--app-surface-strong: #15140f;
	--app-border: rgb(219 137 80 / 34%);
	--app-table-border: rgb(219 137 80 / 40%);
	--app-text: #f0c49b;
	--app-text-muted: #c6946f;
	--app-text-secondary: #e4ab7e;
	--app-link: #f3a36d;
	--app-primary: #a65a34;
	--app-primary-strong: #7a3f24;
	--app-success: #6d5a2b;
	--app-danger: #8b442e;
	--app-warning: #9a6b3f;
	--app-up: #f0b07f;
	--app-down: #df7b57;
	--app-neutral: #d9a37d;
	--app-scroll-track: #0b0d09;
	--app-scroll-thumb: #6d4428;
	--app-hour-selected: #6d5a2b;
	--app-hour-hover: #8a5730;
	--app-panel-alt: linear-gradient(180deg, rgb(17 19 13 / 94%), rgb(12 15 10 / 96%));
	--app-subcard-bg: linear-gradient(180deg, rgb(21 19 13 / 96%), rgb(13 15 10 / 98%));
	--app-panel-shadow: 0 10px 20px rgb(0 0 0 / 12%);
	--app-subcard-shadow: 0 8px 14px rgb(0 0 0 / 8%);
	--app-focus-ring: 0 0 0 3px rgb(243 163 109 / 20%);
	--app-input-bg: rgb(17 16 11 / 94%);
	--app-input-border: rgb(219 137 80 / 30%);
	--app-header-bg: rgb(12 14 10 / 78%);
	--app-header-border: rgb(219 137 80 / 30%);
	--app-header-shadow: 0 8px 16px rgb(0 0 0 / 12%);
	--app-header-control-bg: rgb(19 18 13 / 88%);
	--app-header-control-border: rgb(219 137 80 / 30%);
	--app-command-strip-top: rgb(21 18 13 / 96%);
	--app-command-strip-bottom: rgb(12 15 10 / 98%);
	--app-progress-track: #2a1b13;
	--app-rank-row-even: rgb(23 18 13 / 90%);
	--app-rank-row-text: #ddb08b;
	--app-input-text: #f0c49b;
	--app-placeholder-text: #b98863;
	--app-hour-off-bg: rgb(139 68 46 / 18%);
	--app-hour-off-border: rgb(223 123 87 / 34%);
	--app-hour-off-text: #f4c5aa;
	--app-hour-on-text: #fff2e4;
	--app-hour-hover-bg: rgb(166 90 52 / 22%);
	--app-hour-hover-text: #fff0df;
	--app-toggle-off-bg: rgb(139 68 46 / 60%);
	--app-toggle-off-border: rgb(223 123 87 / 54%);
	--app-toggle-on-bg: rgb(109 90 43 / 68%);
	--app-toggle-on-border: rgb(240 176 127 / 54%);
	--app-device-text: #c89c79;
	--app-progress-display-text: #f0c49b;
	--app-btn-primary-bg: rgb(166 90 52 / 88%);
	--app-btn-primary-border: rgb(243 163 109 / 26%);
	--app-btn-primary-hover: rgb(143 75 42 / 94%);
	--app-slot-timer-bg: linear-gradient(180deg, rgb(36 24 17 / 64%), rgb(18 17 11 / 44%));
	--app-panel-radius: 0;
	--app-subcard-radius: 0;
	--app-control-radius: 0;
	--app-button-radius: 0;
	--app-pill-radius: 0;
	--app-small-radius: 0;
	--app-btn-success-bg: rgb(109 90 43 / 88%);
	--app-btn-success-border: rgb(240 176 127 / 22%);
	--app-btn-success-hover: rgb(129 107 51 / 94%);
	--app-btn-danger-bg: rgb(139 68 46 / 90%);
	--app-btn-danger-border: rgb(223 123 87 / 24%);
	--app-btn-danger-hover: rgb(156 78 52 / 96%);
	--app-btn-warning-bg: rgb(154 107 63 / 88%);
	--app-btn-warning-border: rgb(243 163 109 / 22%);
	--app-btn-warning-hover: rgb(174 122 72 / 94%);
}

[data-theme="e-ink-light"] {
	--app-bg: linear-gradient(180deg, #f1f1ee 0%, #e8e8e3 100%);
	--app-surface: rgb(245 245 241 / 94%);
	--app-surface-strong: #ddddda;
	--app-border: rgb(32 32 32 / 18%);
	--app-table-border: rgb(32 32 32 / 22%);
	--app-text: #141414;
	--app-text-muted: #474747;
	--app-text-secondary: #2a2a2a;
	--app-link: #111111;
	--app-primary: #1f1f1f;
	--app-primary-strong: #000000;
	--app-success: #1d1d1d;
	--app-danger: #3a3a3a;
	--app-warning: #5a5a5a;
	--app-up: #000000;
	--app-down: #2a2a2a;
	--app-neutral: #4a4a4a;
	--app-scroll-track: #d7d7d3;
	--app-scroll-thumb: #6a6a6a;
	--app-hour-selected: #111111;
	--app-hour-hover: #303030;
	--app-panel-alt: linear-gradient(180deg, rgb(247 247 243 / 96%), rgb(237 237 232 / 94%));
	--app-subcard-bg: linear-gradient(180deg, rgb(250 250 246 / 98%), rgb(240 240 235 / 96%));
	--app-panel-shadow: 0 8px 18px rgb(0 0 0 / 4%);
	--app-subcard-shadow: 0 6px 14px rgb(0 0 0 / 3%);
	--app-focus-ring: 0 0 0 3px rgb(20 20 20 / 12%);
	--app-input-bg: rgb(250 250 246 / 98%);
	--app-input-border: rgb(32 32 32 / 20%);
	--app-header-bg: rgb(246 246 242 / 88%);
	--app-header-border: rgb(32 32 32 / 14%);
	--app-header-shadow: 0 6px 14px rgb(0 0 0 / 4%);
	--app-header-control-bg: rgb(239 239 234 / 96%);
	--app-header-control-border: rgb(32 32 32 / 18%);
	--app-command-strip-top: rgb(249 249 245 / 98%);
	--app-command-strip-bottom: rgb(237 237 232 / 96%);
	--app-progress-track: #d8d8d3;
	--app-rank-row-even: rgb(233 233 228 / 88%);
	--app-rank-row-text: #202020;
	--app-input-text: #111111;
	--app-placeholder-text: #666666;
	--app-hour-off-bg: rgb(230 230 226 / 92%);
	--app-hour-off-border: rgb(48 48 48 / 26%);
	--app-hour-off-text: #2a2a2a;
	--app-hour-on-text: #ffffff;
	--app-hour-hover-bg: rgb(214 214 209 / 96%);
	--app-hour-hover-text: #101010;
	--app-toggle-off-bg: rgb(205 205 200 / 96%);
	--app-toggle-off-border: rgb(66 66 66 / 34%);
	--app-toggle-on-bg: rgb(32 32 32 / 96%);
	--app-toggle-on-border: rgb(0 0 0 / 70%);
	--app-device-text: #3f3f3f;
	--app-progress-display-text: #121212;
	--app-btn-primary-bg: rgb(22 22 22 / 96%);
	--app-btn-primary-border: rgb(0 0 0 / 18%);
	--app-btn-primary-hover: rgb(0 0 0 / 98%);
	--app-slot-timer-bg: linear-gradient(180deg, rgb(242 242 238 / 98%), rgb(228 228 223 / 94%));
	--app-panel-radius: 8px;
	--app-subcard-radius: 8px;
	--app-control-radius: 8px;
	--app-button-radius: 8px;
	--app-pill-radius: 8px;
	--app-small-radius: 2px;
	--app-btn-success-bg: rgb(28 28 28 / 96%);
	--app-btn-success-border: rgb(0 0 0 / 18%);
	--app-btn-success-hover: rgb(8 8 8 / 98%);
	--app-btn-danger-bg: rgb(70 70 70 / 96%);
	--app-btn-danger-border: rgb(20 20 20 / 18%);
	--app-btn-danger-hover: rgb(48 48 48 / 98%);
	--app-btn-warning-bg: rgb(108 108 108 / 96%);
	--app-btn-warning-border: rgb(58 58 58 / 18%);
	--app-btn-warning-hover: rgb(86 86 86 / 98%);
	--app-status-running-text: #111111;
	--app-status-paused-text: #2a2a2a;
	--app-status-finish-text: #4a4a4a;
}

[data-theme="default-light"] {
	--app-bg: linear-gradient(135deg, #f7f7f7 0%, #fff 42%, #f7f7f7 100%);
	--app-surface: rgb(255 255 255 / 74%);
	--app-surface-strong: #f5f3fb;
	--app-border: rgb(159 176 224 / 18%);
	--app-table-border: rgb(159 176 224 / 22%);
	--app-text: #18233f;
	--app-text-muted: #596887;
	--app-text-secondary: #29385d;
	--app-link: #6f82d9;
	--app-primary: #7f93ef;
	--app-primary-strong: #6275cb;
	--app-success: #8ca8d6;
	--app-danger: #d9a1a7;
	--app-warning: #d8c0a6;
	--app-up: #6b86c9;
	--app-down: #c9868f;
	--app-neutral: #a38fda;
	--app-scroll-track: #dde3f1;
	--app-scroll-thumb: #acb8e7;
	--app-hour-selected: #8ba3e7;
	--app-hour-hover: #9ab0eb;
	--app-panel-alt: linear-gradient(180deg, rgb(255 255 255 / 92%), rgb(244 246 252 / 88%));
	--app-panel-shadow: 0 12px 28px rgb(115 130 176 / 12%);
	--app-subcard-bg: linear-gradient(180deg, rgb(255 255 255 / 96%), rgb(241 244 251 / 92%));
	--app-subcard-shadow: 0 12px 24px rgb(115 130 176 / 10%);
	--app-focus-ring: 0 0 0 3px rgb(127 147 239 / 20%);
	--app-input-bg: rgb(255 255 255 / 88%);
	--app-input-border: rgb(159 176 224 / 24%);
	--app-header-bg: rgb(255 255 255 / 58%);
	--app-header-border: rgb(159 176 224 / 16%);
	--app-header-shadow: 0 10px 22px rgb(115 130 176 / 10%);
	--app-header-control-bg: rgb(255 255 255 / 72%);
	--app-header-control-border: rgb(159 176 224 / 20%);
	--app-command-strip-top: rgb(255 255 255 / 84%);
	--app-command-strip-bottom: rgb(240 243 251 / 78%);
	--app-progress-track: #dde4f3;
	--app-rank-row-even: rgb(240 243 250 / 86%);
	--app-rank-row-text: #334465;
	--app-input-text: #18233f;
	--app-placeholder-text: #6f7f9f;
	--app-hour-off-bg: rgb(217 161 167 / 16%);
	--app-hour-off-border: rgb(201 134 143 / 30%);
	--app-hour-off-text: #93626b;
	--app-hour-on-text: #ffffff;
	--app-hour-hover-bg: rgb(139 163 231 / 18%);
	--app-hour-hover-text: #223156;
	--app-toggle-off-bg: rgb(217 161 167 / 82%);
	--app-toggle-off-border: rgb(201 134 143 / 70%);
	--app-toggle-on-bg: rgb(140 168 214 / 86%);
	--app-toggle-on-border: rgb(107 134 201 / 72%);
	--app-device-text: #4f5f7d;
	--app-progress-display-text: #31456e;
	--app-btn-primary-bg: rgb(127 147 239 / 86%);
	--app-btn-primary-border: rgb(159 176 224 / 20%);
	--app-btn-primary-hover: rgb(110 130 222 / 92%);
	--app-slot-timer-bg: linear-gradient(180deg, rgb(255 255 255 / 84%), rgb(236 240 249 / 88%));
	--app-btn-success-bg: rgb(140 168 214 / 82%);
	--app-btn-success-border: rgb(107 134 201 / 18%);
	--app-btn-success-hover: rgb(122 151 200 / 88%);
	--app-btn-danger-bg: rgb(217 161 167 / 84%);
	--app-btn-danger-border: rgb(201 134 143 / 18%);
	--app-btn-danger-hover: rgb(205 145 152 / 90%);
	--app-btn-warning-bg: rgb(216 192 166 / 84%);
	--app-btn-warning-border: rgb(191 166 138 / 18%);
	--app-btn-warning-hover: rgb(205 180 153 / 90%);
	--app-status-running-text: #2f6f4f;
	--app-status-paused-text: #9b4050;
	--app-status-finish-text: #8a6a20;
}

.client-theme-shell {
	min-height: 100vh;
	background: var(--app-bg);
	font-family: var(--app-font-stack);
	color: var(--app-text);
	margin: 0;
	line-height: 1.45;
}

@keyframes client-ui-fade-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.skip-link {
	position: absolute;
	left: 20px;
	top: -48px;
	z-index: 2000;
	padding: 0.55rem 0.8rem;
	border-radius: var(--app-control-radius);
	background: var(--app-surface-strong);
	color: var(--app-text);
	border: 1px solid var(--app-link);
	text-decoration: none;
}

.skip-link:focus {
	top: 12px;
}

.client-shell {
	width: 100%;
	max-width: none;
	margin: 0;
	box-sizing: border-box;
	padding: 16px 20px 32px;
}

.client-shell > main {
	display: block;
}

.client-shell > main > * {
	margin-top: 0;
	margin-bottom: 0;
}

.client-shell > main > * + * {
	margin-top: 16px;
}

.client-sticky-header,
.client-shell > main > *,
.client-shell > footer,
.dashboard-stat-card,
.dashboard-control-card,
.league-subcard,
.schedule-toolbar,
.footer-layout > * {
	animation: client-ui-fade-in 420ms ease both;
}

.client-shell > main > :nth-child(1) {
	animation-delay: 40ms;
}

.client-shell > main > :nth-child(2) {
	animation-delay: 90ms;
}

.client-shell > main > :nth-child(3) {
	animation-delay: 140ms;
}

.client-shell > main > :nth-child(4) {
	animation-delay: 190ms;
}

.client-shell > main > :nth-child(5) {
	animation-delay: 240ms;
}

.client-shell > footer {
	animation-delay: 280ms;
}

@media (prefers-reduced-motion: reduce) {
	.client-sticky-header,
	.client-shell > main > *,
	.client-shell > footer,
	.dashboard-stat-card,
	.dashboard-control-card,
	.league-subcard,
	.schedule-toolbar,
	.footer-layout > * {
		animation: none !important;
	}
}

.client-shell > main > [class*="pt-"] {
	padding-top: 0 !important;
}

.dashboard-command-strip {
	position: relative;
}

.dashboard-command-strip::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, var(--app-command-strip-top), var(--app-command-strip-bottom));
	border: 1px solid var(--app-border);
	border-radius: var(--app-panel-radius);
	box-shadow: var(--app-panel-shadow);
	pointer-events: none;
}

.dashboard-command-strip__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(260px, 1.25fr);
	gap: 12px;
	padding: 14px;
}

.dashboard-stat-card,
.dashboard-control-card {
	min-height: 100px;
	padding: 12px 14px;
	border: 1px solid var(--app-table-border);
	border-radius: var(--app-subcard-radius);
	background: var(--app-subcard-bg);
	box-shadow: var(--app-subcard-shadow), inset 0 1px 0 rgb(255 255 255 / 2%);
}

.dashboard-stat-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.dashboard-stat-card__label {
	display: inline-block;
	margin: 0;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--app-text-muted);
}

.dashboard-stat-card__value-row {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
}

.dashboard-stat-card__value {
	display: block;
	line-height: 1;
	font-size: 2.4rem;
}

.dashboard-control-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.dashboard-control-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.dashboard-control-card__buttons {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.dashboard-control-card__buttons .btn {
	width: 100%;
	min-height: 44px;
	font-size: 0.95rem;
	border-radius: var(--app-button-radius);
}

@media (max-width: 1180px) {
	.dashboard-command-strip__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dashboard-control-card {
		grid-column: 1 / -1;
	}
}

@media (max-width: 700px) {
	.dashboard-command-strip__grid {
		grid-template-columns: 1fr;
		padding: 16px;
	}

	.dashboard-stat-card,
	.dashboard-control-card {
		min-height: auto;
	}

	.dashboard-control-card__buttons {
		grid-template-columns: 1fr;
	}
}

.work_units {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.work_units > * {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.work_units > [class*="pt-"] {
	padding-top: 0 !important;
}

#folding_units {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding-top: 0 !important;
}

.folding-units-empty-state {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100px;
	padding: 24px 16px;
	text-align: center;
	font-size: clamp(1.5rem, 2.5vw, 6rem);
	letter-spacing: 0.10em;
	text-transform: uppercase;
	color: var(--app-text-muted);
}

#folding_units > * {
	margin-top: 0;
	margin-bottom: 0;
}

#folding_units > [class*="pt-"] {
	padding-top: 0 !important;
}

.client-sticky-header {
	position: sticky;
	top: 0;
	z-index: 1050;
	min-height: var(--app-header-height);
	width: 100%;
	padding: 0 14px;
	box-sizing: border-box;
	-webkit-backdrop-filter: blur(14px) saturate(120%);
	backdrop-filter: blur(14px) saturate(120%);
	background: var(--app-header-bg);
	border-bottom: 1px solid var(--app-header-border);
	box-shadow: var(--app-header-shadow);
}

.client-sticky-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.9rem;
	padding: 0.6rem 0.9rem;
}

.client-sticky-header__primary,
.client-sticky-header__status,
.client-sticky-header__secondary,
.client-sticky-header__actions {
	display: flex;
	align-items: center;
}

.client-sticky-header__primary {
	flex: 1 1 auto;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.15rem;
	min-width: 320px;
}

.client-sticky-header__brand {
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--app-text-secondary);
	line-height: 1.2;
	margin-bottom: 0.25rem;
}

.client-sticky-header__meta {
	margin: 0;
	font-size: 0.72rem;
	line-height: 1.25;
	color: var(--app-text);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.65rem;
}

.client-sticky-header__meta-value {
	color: var(--app-text);
}

.client-sticky-header__meta .client-sticky-header__label {
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.68rem;
}

.client-sticky-header__status {
	flex: 0 1 340px;
	justify-content: center;
}

.client-sticky-header__status-grid {
	display: grid;
	grid-template-columns: auto auto auto;
	column-gap: 0.55rem;
	row-gap: 0.2rem;
	align-items: center;
	font-size: 0.72rem;
}

.client-sticky-header__label {
	color: var(--app-text-muted);
}

.client-sticky-header__secondary {
	flex: 0 0 auto;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.45rem;
}

.client-sticky-header__anon {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.72rem;
}

.client-sticky-header__actions {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
}

.client-theme-picker,
.client-header-icon-button {
	height: 34px;
	border: 1px solid var(--app-header-control-border);
	background: var(--app-header-control-bg);
	color: var(--app-text-secondary);
	border-radius: var(--app-pill-radius);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
}

button,
.btn,
input,
select,
a {
	transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease, color 160ms ease;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
.btn:focus-visible {
	outline: none;
	box-shadow: var(--app-focus-ring);
}

.client-theme-picker {
	min-width: 148px;
	padding: 0 2rem 0 0.75rem;
	border-radius: 0;
	appearance: none;
	-webkit-appearance: none;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--app-text-secondary) 50%),
		linear-gradient(135deg, var(--app-text-secondary) 50%, transparent 50%);
	background-position:
		calc(100% - 14px) calc(50% - 1px),
		calc(100% - 9px) calc(50% - 1px);
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	line-height: 1.2;
}

.client-header-icon-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	padding: 0;
	cursor: pointer;
}

.client-header-icon {
	width: 16px;
	height: 16px;
}

.client-theme-picker:focus,
.client-header-icon-button:focus,
.client-theme-picker:hover,
.client-header-icon-button:hover {
	border-color: var(--app-link);
	outline: none;
}

@media (max-width: 1180px) {
	.client-sticky-header__inner {
		flex-wrap: wrap;
		align-items: flex-start;
	}

	.client-sticky-header__primary {
		min-width: 260px;
	}

	.client-sticky-header__status {
		order: 4;
		flex: 1 1 100%;
		justify-content: flex-start;
	}

	.client-sticky-header__secondary {
		align-items: flex-start;
	}

	.client-sticky-header__actions {
		margin-left: auto;
	}
}

@media (max-width: 640px) {
	.client-sticky-header__brand {
		font-size: 1rem;
	}

	.client-theme-picker {
		min-width: 126px;
		padding-left: 0.7rem;
		padding-right: 0.7rem;
	}
}

.slot_container,
#folding_league,
#folding_schedule,
.utility-panel,
.content,
footer {
	position: relative;
}

.slot_container::before,
#folding_league::before,
#folding_schedule::before,
.utility-panel::before,
.content::before,
footer::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--app-surface);
	border: 1px solid var(--app-border);
	border-radius: var(--app-panel-radius);
	box-shadow: var(--app-panel-shadow);
	pointer-events: none;
}

#folding_schedule::before,
.utility-panel::before,
.content::before,
footer::before {
	box-shadow: var(--app-subcard-shadow);
}

.slot_container,
#folding_league,
#folding_schedule,
.utility-panel,
.content,
footer {
	padding: var(--app-panel-padding);
}

.slot_container,
#folding_league,
#folding_schedule,
.utility-panel,
.content {
	--bs-gutter-x: 1.8rem;
	--bs-gutter-y: 1.2rem;
}

.slot_container {
	padding: 1rem 1.2rem 1.15rem;
}

#folding_league,
#folding_schedule,
.utility-panel,
.content,
footer {
	padding: 14px;
}

#folding_league {
	padding: 0 !important;
}

.slot_container > *,
#folding_league > *,
#folding_schedule > *,
.utility-panel > *,
.content > *,
footer > * {
	position: relative;
	z-index: 1;
}

#folding_league h1,
#folding_league h2,
#folding_league h3,
#folding_league h4,
#folding_league h5,
#folding_league h6,
#folding_schedule h1,
#folding_schedule h2,
#folding_schedule h3,
#folding_schedule h4,
#folding_schedule h5,
#folding_schedule h6,
.utility-panel h1,
.utility-panel h2,
.utility-panel h3,
.utility-panel h4,
.utility-panel h5,
.utility-panel h6,
.content h1,
.content h2,
.content h3,
.content h4,
.content h5,
.content h6 {
	margin-top: 0;
	margin-bottom: 14px;
	line-height: 1.25;
}

#folding_league .row:first-child,
#folding_schedule .row:first-child,
.content > :first-child {
	margin-top: 0;
}

#folding_league .text-small,
#folding_schedule p,
.utility-panel p,
.content p {
	margin-top: 0;
}

#folding_league > .row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
}

#folding_league > .row > [class*="col-"] {
	width: auto;
	max-width: none;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.league-subcard {
	padding: 14px;
	border: 1px solid var(--app-table-border);
	border-radius: var(--app-subcard-radius);
	background: var(--app-subcard-bg);
	box-shadow: var(--app-subcard-shadow);
}

.league-subcard--tall {
	flex: 1 1 auto;
	height: 100%;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.league-subcard--tall .table-scroll-window {
	flex: 1 1 auto;
	min-height: 0;
	height: 100%;
	max-height: none;
	overflow-y: auto;
	overflow-x: hidden;
}

#folding_schedule .row {
	--bs-gutter-x: 0;
	--bs-gutter-y: 0;
}

#folding_schedule .row > [class*="col-"] {
	padding-left: 0;
	padding-right: 0;
}

.schedule-toolbar {
	padding: 10px 12px;
	border: 1px solid var(--app-table-border);
	border-radius: var(--app-control-radius);
	background: var(--app-subcard-bg);
	box-shadow: var(--app-subcard-shadow);
	width: 100%;
	max-width: none;
	flex: 1 1 100%;
}

.schedule-action-control {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	min-width: 220px;
}

.schedule-action-control .form-label {
	font-size: 1rem;
	line-height: 1.5;
	color: var(--app-text);
	margin-bottom: 0;
}

.schedule-action-control .form-select {
	flex: 0 1 auto;
	width: auto;
	min-height: 34px;
	border: 1px solid var(--app-input-border);
	border-radius: var(--app-control-radius);
	background-color: var(--app-input-bg);
	color: var(--app-input-text);
	box-shadow: none;
}

.schedule-action-control .form-select:focus {
	border-color: var(--app-link);
	box-shadow: var(--app-focus-ring);
}

#schedule_enabled_toggle.form-check-input {
	background-color: var(--app-toggle-off-bg);
	border-color: var(--app-toggle-off-border);
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 6%);
}

#schedule_enabled_toggle.form-check-input:checked {
	background-color: var(--app-toggle-on-bg);
	border-color: var(--app-toggle-on-border);
	box-shadow: inset 0 0 0 1px rgb(255 255 255 / 8%);
}

#schedule_enabled_toggle.form-check-input:focus {
	border-color: var(--app-link);
	box-shadow: var(--app-focus-ring);
}

.schedule-status-label.schedule-status-active,
.power-status.schedule-status-active {
	color: var(--app-up);
}

.schedule-status-label.schedule-status-disabled,
.power-status.schedule-status-disabled {
	color: var(--app-down);
}

#hour-grid {
	display: grid !important;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 8px;
}

.hour-box {
	width: auto !important;
	margin: 0 !important;
	border: none !important;
	background: transparent;
	padding: 0;
}

.hour-box input[type="checkbox"] {
	display: none;
}

.hour-box label {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0.55rem 0.4rem;
	text-align: center;
	border-radius: var(--app-button-radius);
	border: 1px solid var(--app-hour-off-border);
	background: var(--app-hour-off-bg);
	color: var(--app-hour-off-text);
	cursor: pointer;
}

.hour-box.selected label {
	background-color: var(--app-success);
	border-color: var(--app-success);
	color: var(--app-hour-on-text) !important;
}

.hour-box label:hover {
	background-color: var(--app-hour-hover-bg);
	color: var(--app-hour-hover-text);
}

.utility-panel {
	position: relative;
}

#ipPortForm {
	margin-top: 8px;
}

#ipPortForm .col-12 {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

#ipPortForm .btn,
#ipPortForm .btn-small {
	min-height: 42px;
	border-radius: var(--app-button-radius);
}

.micro-copy,
.footer-copy {
	font-size: 0.8em;
}

.footer-copy {
	font-size: 0.85em;
}

.footer-layout {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 2fr);
	gap: 24px;
	align-items: start;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.footer-layout__heading {
	margin: 0 0 10px;
}

.footer-layout__tools {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.footer-layout__tool-buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
}

.footer-layout__tool-buttons .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	width: 100%;
}

.footer-layout__support {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.footer-layout__support-copy {
	max-width: 100% !important;
	margin-bottom: 0.85rem;
}

.footer-layout__support-button {
	min-height: 42px;
	width: 100%;
	max-width: 220px;
}

.legal_stuff {
	max-width: 600px;
	width: 100%;
}

.theme-link-reset {
	border-bottom: none;
	padding-bottom: 0;
}

.progress-bar-initial {
	width: 0%;
}

.slot-chart-canvas {
	min-height: 200px;
	padding-right: 0;
	margin-right: 0;
}

.table-scroll-window {
	max-height: 382px;
	overflow: auto;
}

.bd-placeholder-img {
	font-size: 1.125rem;
	text-anchor: middle;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
}

 

@media (min-width: 768px) {
	.bd-placeholder-img-lg {
		font-size: 3.5rem;
	}
}


.fs-6 {
	padding-top: .90rem !important;
}


.progress {
	background-color: var(--app-progress-track);
	display: flex;
	height: 0.55rem;
	overflow: hidden;
	border-radius: var(--app-pill-radius);
}

.progress-bar {
	color: #18083f;
	background-color: var(--app-primary);
	display: block;
	height: 100%;
	min-width: 0;
	flex: 0 0 auto;
	transition: width .25s ease;
}

hr {
	color: var(--app-border);
}

.control_buttons > .btn {
	width: 30%;
}



body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a {
	color: var(--app-text);
}

th, label, .label, .muted {
	color: var(--app-text-muted);
}

/* Bootstrap's muted utility is tuned for light backgrounds. Override it here
   so helper copy remains readable against this client's dark gradient theme. */
.text-muted,
.text-body-secondary {
	color: var(--app-text-secondary) !important;
	opacity: 1 !important;
}

a {
	color: var(--app-link);
	text-decoration: none;
	border-bottom: 1px solid var(--app-link);
	padding-bottom: 2px;
}

a.btn,
button.btn,
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	vertical-align: middle;
	line-height: 1.2;
	box-sizing: border-box;
	padding-top: 0.375rem;
	padding-bottom: 0.375rem;
	text-decoration: none;
	border-bottom: none;
}

.btn-primary {
	color: #fff;
	background-color: var(--app-btn-primary-bg);
	border-color: var(--app-btn-primary-border);
}

.btn-success {
	color: #fff;
	background-color: var(--app-btn-success-bg);
	border-color: var(--app-btn-success-border);
}

.btn-danger {
	color: #fff;
	background-color: var(--app-btn-danger-bg);
	border-color: var(--app-btn-danger-border);
}

.btn-warning {
	color: #fff;
	background-color: var(--app-btn-warning-bg);
	border-color: var(--app-btn-warning-border);
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active {
	color: #fff;
	background-color: var(--app-btn-success-hover);
	border-color: var(--app-btn-success-border);
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active {
	color: #fff;
	background-color: var(--app-btn-danger-hover);
	border-color: var(--app-btn-danger-border);
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active {
	color: #fff;
	background-color: var(--app-btn-warning-hover);
	border-color: var(--app-btn-warning-border);
}

.alert-warning {
	color: var(--app-status-finish-text);
	background: linear-gradient(180deg, var(--app-surface), var(--app-panel-alt));
	border: 1px solid var(--app-btn-warning-border);
	box-shadow: var(--app-subcard-shadow);
}

.folding-league-status-card {
	padding: 0;
	overflow: hidden;
}

.folding-league-status-card__title {
	padding: 0.75rem 1rem;
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--app-status-finish-text);
	background: linear-gradient(90deg, rgb(0 0 0 / 8%), transparent);
	border-bottom: 1px solid var(--app-btn-warning-border);
}

.folding-league-status-card__body {
	padding: 0.9rem 1rem 1rem;
	font-size: 0.95rem;
	line-height: 1.55;
	color: var(--app-text-secondary);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
	color: #fff;
	background-color: var(--app-btn-primary-hover);
	border-color: var(--app-btn-primary-border);
}


.up {
	color: var(--app-up);
}

.down {
	color: var(--app-down);
}

.same {
	color: var(--app-neutral);
}



/* Override Bootstrap's default background and text colors for specific components */
.navbar {
	background-color: var(--app-surface-strong);
}

	.navbar .navbar-brand {
		color: #ffffff;
	}

	.navbar .nav-link {
		color: #ffffff;
	}

/* Customize other Bootstrap components as needed */
/* For example, buttons, forms, cards, etc. */

.hide {
	display: none;
}

.idle {
	color: var(--app-status-paused-text);
}

.paused {
	color: var(--app-status-paused-text);
}

.finish {
	color: var(--app-status-finish-text);
}

.folding {
	color: var(--app-status-running-text);
}

.stale {
	color: var(--app-status-stale-text);
}

.progress {	 
	height: .55rem;
	font-size: .55rem;	 
}

.icon-list {
  padding-left: 0;
  list-style: none;
}
.icon-list li {
  display: flex;
  align-items: flex-start;
  margin-bottom: .25rem;
}
.icon-list li::before {
  display: block;
  flex-shrink: 0;
  width: 1.5em;
  height: 1.5em;
  margin-right: .5rem;
  content: "";
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23212529' viewBox='0 0 16 16'%3E%3Cpath d='M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zM4.5 7.5a.5.5 0 0 0 0 1h5.793l-2.147 2.146a.5.5 0 0 0 .708.708l3-3a.5.5 0 0 0 0-.708l-3-3a.5.5 0 1 0-.708.708L10.293 7.5H4.5z'/%3E%3C/svg%3E") no-repeat center center / 100% auto;
}

.tcenter {
	text-align:center;
}

.tright {
	text-align: right;
}

.scase {
	text-transform:capitalize;
}

.ucase {
	text-transform: uppercase;
}

.btn-small {
	border: 1px solid transparent;
	padding: 0.175rem 0.35rem;
	font-size: .80em;
	border-radius: var(--app-button-radius);
	text-transform:uppercase;
}

table > tbody > tr > th, table > tbody > tr > td {
	font-size: .80em;
	letter-spacing: .06em;
	padding: 7px 10px;
	border-radius: var(--app-small-radius);
}

table {
	width: 100%;
	border-collapse: collapse;
}

th,
td {
	border: 1px solid var(--app-table-border);
	border-top: none;
	border-bottom: none;
	border-right: none;
	padding: 8px;
	text-align: left;
}

th {
	background-color: var(--app-surface-strong);
}

/*.gpu-ppd-table th, .gpu-ppd-table td {
	border-left: 1px solid #0d6efd !important;
}*/


#folding_units {
	min-height: 212px;
}
.slot_container {
	min-height: 236px;
}


.slot_timer {
	border-left: 4px solid var(--app-primary) !important;
	border-right: 4px solid var(--app-primary) !important;
	border-radius: var(--app-small-radius);
	background: var(--app-slot-timer-bg);
}

.slot_timer.slot-timer-running {
	border-left-color: var(--app-btn-success-bg) !important;
	border-right-color: var(--app-btn-success-bg) !important;
}

.slot_timer.slot-timer-paused {
	border-left-color: var(--app-btn-danger-bg) !important;
	border-right-color: var(--app-btn-danger-bg) !important;
}

.slot_timer.slot-timer-finish {
	border-left-color: var(--app-btn-warning-bg) !important;
	border-right-color: var(--app-btn-warning-bg) !important;
}

.slot_timer.slot-timer-stale {
	border-left-color: var(--app-text-muted) !important;
	border-right-color: var(--app-text-muted) !important;
}


.device_window {
	padding-top: 10px;
	text-align: right;
	float: right;
	font-size: .90em;
	color: #b9b9b9
}

.dev_hide {
	display:none;
}


.chart_hide {
	height:0px;
	overflow:auto;
}

.dev_show, .chart_show {
  
}

.slot_performance p, .slot_performance {
	font-size:.90em;
}

.legal_stuff {
	color: #9c9c9c;
	max-width: 50%;
}

.project-info-bar, .device_window {
	font-size: .90em;
}

.slot-project-title,
.project-info-bar {
	padding-left: 8px;
}

.progress_display_style {
	color: var(--app-progress-display-text);
}

.eta_display_sytle {
	color: var(--app-link);
}

/* Dark Mode for Input Boxes */
input[type="text"].form-control {
	background-color: var(--app-input-bg);
	color: var(--app-input-text);
	border-color: var(--app-input-border);
	border-radius: var(--app-control-radius);
	min-height: 44px;
}

input[type="text"].form-control:focus,
.form-control:focus,
.form-select:focus {
	color: var(--app-input-text);
	background-color: var(--app-input-bg);
	border-color: var(--app-primary);
	box-shadow: var(--app-focus-ring);
}

select,
.form-select,
.form-control,
.form-check-input {
	accent-color: var(--app-primary);
}

.form-check-input {
	background-color: var(--app-input-bg);
	border-color: var(--app-input-border);
}

.form-check-input:checked {
	background-color: var(--app-primary);
	border-color: var(--app-primary);
}

/* Additional styles to change placeholder text color */
::placeholder {
	color: var(--app-placeholder-text);
	opacity: 1;
}



.stats-table {
	width: 100%;
}

	.stats-table:nth-child(n) > tbody > tr:nth-child(n) > td:nth-child(1) {
		width: 40%;
		font-size: 20px;
		color: var(--app-text-secondary);
		letter-spacing: 1px;
		 
	}

		.stats-table:nth-child(n) > tbody > tr:nth-child(n) > td:nth-child(1) > b  {
			font-weight: 400;
		}


	.stats-table:nth-child(n) > tbody > tr:nth-child(n) > td:nth-child(2) {
		width: 60%;
		font-size: .90em;
		letter-spacing: 2px;
		text-align: right;
	 
	}

	.stats-table:nth-child(n) > tbody > tr {
		 border-bottom:solid 1px var(--app-border);
	}

#folding_league > div.row > div:nth-child(1) > table:nth-child(2) > tbody > tr:nth-child(1) > th

.stats-table > tbody > tr > th, #primary-datatable-1 > thead > tr > th {
	font-weight: normal;
	font-size: .90em;
	white-space: nowrap;
}

#rank_table > tr:nth-child(n) > td:nth-child(11) {
	color: var(--app-text-muted);
	font-size: 10px;
	padding-top: 10px;
	padding-bottom: 6px;
}



#rank_table > tr:nth-child(even) {
	background-color: var(--app-rank-row-even);
}

#rank_table > tr > td {
color: var(--app-rank-row-text);
}

#rank_table .day-ordinal-value {
	font-weight: 600;
}

#rank_table .day-ordinal-suffix {
	color: var(--app-text-muted);
	font-size: 0.78em;
	margin-left: 1px;
}

.text-small {
	font-size: .70em;
}

@media (max-width: 1100px) {
	#folding_league > .row {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 800px) {
	.client-shell {
		padding: 12px 12px 24px;
	}

	#ipPortForm .col-12 {
		justify-content: stretch;
	}

	#ipPortForm .btn,
	#ipPortForm .btn-small {
		width: 100%;
	}

	.footer-layout {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.footer-layout__tool-buttons .btn {
		width: 100%;
	}
}




/* Webkit (Chrome, Safari, newer versions of Opera) */
::-webkit-scrollbar {
	width: 4px; /* Set the width of the scrollbar */
}

::-webkit-scrollbar-thumb {
	background-color: var(--app-scroll-thumb);
	border-radius: var(--app-small-radius); /* Rounded corners for the thumb */
}

::-webkit-scrollbar-track {
	background-color: var(--app-scroll-track);
}

/* Firefox */
html {
	scrollbar-width: thin; /* Specify a thin scrollbar */
}

/* Firefox, again, for the thumb and track */
html {
	scrollbar-color: var(--app-scroll-thumb) var(--app-scroll-track);
}



  .hour-box {
            cursor: pointer;
        }

            .hour-box input[type="checkbox"] {
                display: none;
            }

            .hour-box label {
                display: block;
                cursor: pointer;
            }

.hour-box.selected, .hour-box.hour-box.selected label {
                background-color: var(--app-hour-selected);
                color: #ffffff !important;
                border-radius: var(--app-small-radius);
            }

            .hour-box label:hover {
                background-color: var(--app-hour-hover);
                color: #fff;
                border-radius: var(--app-small-radius);
            }

/* Admin layout corrections against legacy rules later in the cascade */
#folding_units {
	min-height: 0;
}

.slot_container::before {
	display: none;
}

#folding_league::before {
	display: none;
}

.slot_container {
	min-height: 150px;
	padding: 10px 12px !important;
}

.slot_container.pb-4 {
	padding-bottom: 10px !important;
}

.slot_container > .row {
	--bs-gutter-x: 12px;
	--bs-gutter-y: 8px;
	margin-bottom: 0;
}

.slot_container .row.pb-2 {
	padding-bottom: 0 !important;
}

.slot_timer {
	padding-top: 8px;
	padding-bottom: 8px;
}

.device_window {
	padding-top: 4px;
	color: var(--app-device-text);
}

.table-scroll-window {
	max-height: 300px;
}

.legal_stuff {
	color: var(--app-text-muted);
	max-width: 600px !important;
	width: 100%;
}

#ipPortForm .form-label,
#ipPortForm .label,
#ipPortForm p,
#ipPortForm small {
	color: var(--app-text-secondary);
}

#ipPortForm .form-control,
#ipPortForm .form-select {
	color: var(--app-input-text);
	background-color: var(--app-input-bg);
	border-color: var(--app-input-border);
}

#ipPortForm .form-control::placeholder {
	color: var(--app-placeholder-text);
	opacity: 1;
}

.progress_display_style,
.device_window,
.project-info-bar {
	color: var(--app-progress-display-text);
}

.hour-box:not(.selected) label {
	background-color: var(--app-hour-off-bg);
	border-color: var(--app-hour-off-border);
	color: var(--app-hour-off-text) !important;
}

.hour-box.selected,
.hour-box.selected label,
.hour-box.hour-box.selected label {
	background-color: var(--app-success) !important;
	border-color: var(--app-success) !important;
	color: var(--app-hour-on-text) !important;
}

footer {
	padding: 0 !important;
}

footer::before {
	display: none;
}

footer > * {
	position: static;
	z-index: auto;
}

@media (max-width: 1100px) {
	#hour-grid {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	#hour-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.dashboard-command-strip__grid {
		padding: 12px;
	}

	.slot_container {
		padding: 8px 10px !important;
	}
}

.hour-box.selected,
.hour-box.selected label,
.hour-box.hour-box.selected label {
	background: var(--app-success) !important;
	background-color: var(--app-success) !important;
	border-color: var(--app-success) !important;
	color: #ffffff !important;
}
