Files
xTeVe/html/css/base.css
2026-02-11 11:38:26 +11:00

799 lines
13 KiB
CSS

:root {
--bg-0: #07111d;
--bg-1: #0c1a2b;
--bg-2: #12233a;
--panel: #102238;
--panel-soft: #0f1f33;
--line: #274462;
--line-soft: #1b334d;
--text: #e9f5ff;
--text-muted: #b7cee1;
--accent: #35d2ff;
--accent-strong: #12b9ff;
--accent-soft: rgba(53, 210, 255, 0.2);
--ok: #2fd18a;
--warn: #ffc15a;
--error: #ff6f6f;
--radius-s: 10px;
--radius-m: 14px;
--radius-l: 18px;
--shadow-1: 0 20px 45px rgba(0, 0, 0, 0.32);
--shadow-2: 0 12px 30px rgba(0, 0, 0, 0.28);
}
* {
-webkit-appearance: none;
-moz-appearance: none;
-ms-appearance: none;
box-sizing: border-box;
font-family: "Space Grotesk", "Avenir Next", "Trebuchet MS", sans-serif;
letter-spacing: 0.02em;
}
::-webkit-scrollbar {
width: 11px;
height: 11px;
}
::-webkit-scrollbar-track {
border-radius: 999px;
background: rgba(7, 17, 29, 0.65);
}
::-webkit-scrollbar-thumb {
border-radius: 999px;
border: 2px solid rgba(7, 17, 29, 0.6);
background: linear-gradient(180deg, #2d597f, #1e4060);
}
::-webkit-scrollbar-thumb:hover {
background: linear-gradient(180deg, #3678ac, #20537c);
}
::-webkit-scrollbar-corner {
background: transparent;
}
html,
body {
min-height: 100%;
margin: 0;
color: var(--text);
font-size: 14px;
background:
radial-gradient(circle at 15% 12%, rgba(64, 132, 183, 0.22), transparent 32%),
radial-gradient(circle at 88% 2%, rgba(18, 185, 255, 0.16), transparent 30%),
linear-gradient(180deg, var(--bg-1) 0%, var(--bg-0) 56%, #060d17 100%);
}
body {
line-height: 1.45;
}
a {
color: var(--accent);
}
a:hover {
color: #8de7ff;
}
h1,
h2,
h3,
h4,
h5 {
margin: 0;
font-weight: 600;
letter-spacing: 0.03em;
}
h1 {
font-size: 1.72rem;
}
h2 {
font-size: 1.35rem;
}
h3 {
font-size: 1.2rem;
}
h4 {
font-size: 1.05rem;
}
h5 {
font-size: 0.92rem;
margin: 8px 0;
color: var(--text-muted);
}
p {
margin: 0;
padding: 0;
}
pre {
margin: 0;
color: var(--text-muted);
font-size: 12px;
white-space: pre-wrap;
line-height: 1.55;
letter-spacing: 0.015em;
font-family: "IBM Plex Mono", "SFMono-Regular", "Consolas", monospace;
}
hr {
border: 0;
height: 1px;
margin: 12px 0;
background: linear-gradient(90deg, transparent, var(--line), transparent);
}
label {
margin-bottom: 8px;
display: block;
}
li {
list-style-type: none;
cursor: pointer;
transition: all 0.25s ease;
}
select,
input,
textarea,
button {
outline: none;
color: var(--text);
font-size: 13px;
}
:focus-visible {
outline: 2px solid #91eaff;
outline-offset: 2px;
}
input,
select {
margin: 4px 0;
}
input[type=text],
input[type=search],
input[type=password],
input[type=number],
select,
textarea {
width: 100%;
border-radius: var(--radius-s);
border: 1px solid var(--line);
background-color: rgba(10, 22, 36, 0.78);
color: var(--text);
padding: 10px 11px;
transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
input[type=text]:focus,
input[type=search]:focus,
input[type=password]:focus,
input[type=number]:focus,
select:focus,
textarea:focus {
border-color: var(--accent);
box-shadow: 0 0 0 3px rgba(53, 210, 255, 0.17);
background-color: rgba(9, 25, 40, 0.95);
}
input[type=text]::placeholder,
input[type=search]::placeholder,
input[type=password]::placeholder,
textarea::placeholder {
color: #7e9ab4;
}
input[type=button],
input[type=submit],
button {
cursor: pointer;
border: 1px solid transparent;
border-radius: 999px;
color: #03101a;
padding: 10px 18px;
margin: 8px 8px 8px 0;
font-weight: 700;
letter-spacing: 0.03em;
background: linear-gradient(135deg, #67e8ff 0%, #12b9ff 100%);
box-shadow: 0 10px 22px rgba(18, 185, 255, 0.3);
transition: transform 0.15s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
input[type=button]:hover,
input[type=submit]:hover,
button:hover {
transform: translateY(-1px);
filter: brightness(1.05);
box-shadow: 0 12px 24px rgba(18, 185, 255, 0.36);
}
input[type=button]:active,
input[type=submit]:active,
button:active {
transform: translateY(0);
}
input[type=button]:focus-visible,
input[type=submit]:focus-visible,
button:focus-visible,
input[type=checkbox]:focus-visible,
a:focus-visible,
select:focus-visible,
textarea:focus-visible,
input[type=text]:focus-visible,
input[type=search]:focus-visible,
input[type=password]:focus-visible,
input[type=number]:focus-visible {
outline: 2px solid #7de5ff;
outline-offset: 2px;
}
input[type=button].delete {
color: #fff;
background: linear-gradient(135deg, #ff7f7f 0%, #e94343 100%);
box-shadow: 0 10px 20px rgba(233, 67, 67, 0.35);
}
input[type=button].cancel {
color: #ffd8d8;
border-color: rgba(255, 111, 111, 0.45);
background: rgba(87, 22, 22, 0.45);
box-shadow: none;
}
input[type=button].black,
input[type=submit].black {
color: #d8ecff;
border-color: var(--line);
background: rgba(14, 32, 50, 0.85);
box-shadow: none;
}
input[type=button].center {
margin-right: auto;
margin-left: auto;
}
input[type=button].save {
margin-left: auto;
}
input[type=checkbox] {
width: 20px;
height: 20px;
border: 1px solid var(--line);
border-radius: 6px;
background-color: rgba(10, 22, 36, 0.86);
cursor: pointer;
position: relative;
}
input[type=checkbox]:checked {
border-color: #89ebff;
background-color: #39d6ff;
}
input[type=checkbox]:before {
content: "";
}
input[type=checkbox]:checked:before {
content: "\2713";
color: #032033;
font-size: 14px;
font-weight: 800;
position: absolute;
top: -1px;
left: 3px;
}
.changed {
border-color: #8de7ff !important;
box-shadow: 0 0 0 3px rgba(53, 210, 255, 0.2) !important;
}
.notAvailable {
opacity: 0.58;
cursor: not-allowed;
border-color: rgba(255, 111, 111, 0.45) !important;
}
.pointer {
cursor: pointer;
}
.pointer:hover {
color: var(--accent);
}
.sortThis {
color: var(--accent);
}
.w40px {
max-width: 40px;
}
.w50px {
max-width: 50px;
}
.w80px {
max-width: 80px;
}
.w150px {
max-width: 150px;
}
.w200px {
max-width: 200px;
min-width: 100px;
width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.w220px {
max-width: 220px;
cursor: alias;
}
.w300px {
max-width: 300px;
}
.footer {
font-size: 11px;
}
.center {
text-align: center;
}
.skip-link {
position: absolute;
top: 10px;
left: 10px;
z-index: 2600;
border-radius: 999px;
padding: 8px 12px;
font-size: 12px;
font-weight: 700;
color: #03131f;
background: linear-gradient(135deg, #7be8ff 0%, #19c1ff 100%);
transform: translateY(-180%);
transition: transform 0.2s ease;
}
.skip-link:focus-visible {
transform: translateY(0);
}
.sr-only {
border: 0 !important;
clip: rect(0 0 0 0) !important;
height: 1px !important;
margin: -1px !important;
overflow: hidden !important;
padding: 0 !important;
position: absolute !important;
white-space: nowrap !important;
width: 1px !important;
}
.floatRight {
float: right;
}
.floatLeft {
float: left;
}
.borderSpace {
margin-bottom: 30px;
}
.block {
display: block;
}
.none {
display: none;
}
.showBulk {
display: inline-flex;
}
.hideBulk {
display: none;
}
.noBulk {
}
.notVisible {
display: none;
opacity: 0;
height: 0;
}
.visible {
display: block;
opacity: 1;
}
.menu-active {
color: #011019;
}
.menu-notActive {
}
.menu {
border: 1px solid var(--accent);
}
.half {
width: 45%;
}
.screenLogHidden {
transform: translate(0, -110px);
}
.infoMsg {
color: #87b0d1;
}
.errorMsg {
color: #ff8d8d;
}
.warningMsg {
color: var(--warn);
}
.debugMsg {
color: #d687ff;
}
.News,
.Movie,
.Series,
.Sports,
.Kids {
border-left: 3px solid transparent;
padding-left: 8px;
}
.News {
border-color: #ff8f6e;
}
.Movie {
border-color: #46a4ff;
}
.Series {
border-color: #ffd267;
}
.Sports {
border-color: #5ee495;
}
.Kids {
border-color: #f6a8ff;
}
#loading {
position: fixed;
inset: 0;
z-index: 2000;
background-color: rgba(5, 12, 20, 0.72);
backdrop-filter: blur(1.5px);
}
.loader {
width: 52px;
height: 52px;
border-radius: 50%;
border: 4px solid transparent;
border-top-color: #58ddff;
border-right-color: #12b9ff;
animation: spin 0.9s linear infinite;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
}
#popup {
position: fixed;
inset: 0;
background-color: rgba(3, 9, 16, 0.72);
backdrop-filter: blur(2px);
z-index: 1500;
padding: 16px;
}
#popup-custom,
#mapping-detail,
#user-detail,
#file-detail {
margin: 0 auto;
max-width: 760px;
max-height: calc(100vh - 36px);
overflow: auto;
border-radius: var(--radius-l);
border: 1px solid var(--line);
background: linear-gradient(180deg, rgba(17, 34, 56, 0.97) 0%, rgba(12, 27, 44, 0.97) 100%);
box-shadow: var(--shadow-1);
padding: 16px;
animation: popupIn 0.2s ease;
}
#popup-custom h3 {
margin-bottom: 8px;
text-align: center;
color: #d5efff;
}
.popup-title {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-bottom: 10px;
}
.popup-title h3 {
margin: 0;
text-align: left;
}
#popup-custom .popup-title h3 {
margin: 0;
text-align: left;
}
.popup-close {
min-width: 40px;
min-height: 40px;
margin: 0;
padding: 0;
border-radius: 999px;
border: 1px solid var(--line);
color: #d9f0ff;
background: rgba(14, 32, 50, 0.9);
box-shadow: none;
font-size: 20px;
line-height: 1;
}
.popup-close:hover {
color: #ffffff;
border-color: #5bc8ed;
}
#popup-custom table,
#content_settings table,
#mapping-detail-table,
#user-detail-table {
width: 100%;
table-layout: fixed;
border-collapse: separate;
border-spacing: 0 8px;
}
#popup-custom td,
#content_settings td,
#mapping-detail-table td,
#user-detail-table td {
padding: 2px 6px;
vertical-align: middle;
}
#popup-custom td.left,
#mapping-detail-table td.left,
#user-detail-table td.left {
width: 38%;
color: var(--text-muted);
}
#popup-custom input[type=text],
#popup-custom input[type=password],
#mapping-detail input[type=text],
#content_settings input[type=text],
#content_settings input[type=password] {
width: 100%;
}
#mapping-detail img {
display: block;
max-height: 44px;
margin: 8px auto 12px;
}
#file-detail input[type=text] {
width: 100%;
}
.interaction,
#interaction {
margin-top: 16px;
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
float: right;
}
.interaction input[type=button],
.interaction input[type=submit] {
margin: 0;
min-width: 110px;
}
#popup-interaction {
margin-top: 14px;
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 8px;
}
#notification {
position: fixed;
right: 12px;
top: 12px;
width: 260px;
max-height: calc(100vh - 24px);
overflow: auto;
border-radius: var(--radius-m);
border: 1px solid var(--line);
background: rgba(10, 22, 36, 0.92);
box-shadow: var(--shadow-2);
}
#notification .element {
margin: 8px;
border-radius: 10px;
border-left: 4px solid var(--ok);
background: rgba(17, 35, 56, 0.84);
padding: 8px;
}
#notification h5 {
padding: 0;
margin-bottom: 6px;
}
#notification p {
font-size: 11px;
}
.tableEllipsis {
width: 150px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes popupIn {
0% {
opacity: 0;
transform: translateY(7px) scale(0.99);
}
100% {
opacity: 1;
transform: translateY(0) scale(1);
}
}
@media only screen and (max-width: 619px) {
h1 {
font-size: 1.46rem;
}
#popup {
padding: 0;
}
#popup-custom,
#mapping-detail,
#user-detail,
#file-detail {
max-width: none;
width: 100%;
height: 100%;
max-height: 100%;
border-radius: 0;
border: 0;
padding: 10px 10px calc(14px + env(safe-area-inset-bottom));
}
#popup-custom table {
border-spacing: 0 10px;
}
#popup-custom tr {
display: block;
border: 1px solid var(--line-soft);
border-radius: 10px;
padding: 8px 8px 10px;
background: rgba(12, 26, 42, 0.8);
}
#popup-custom td {
display: block;
width: 100%;
padding: 4px 2px;
}
#popup-custom td.left {
width: 100%;
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.06em;
}
#popup-interaction {
position: sticky;
bottom: 0;
z-index: 5;
margin-top: 10px;
padding-top: 10px;
background: linear-gradient(180deg, rgba(12, 27, 44, 0.1) 0%, rgba(12, 27, 44, 0.96) 30%);
}
.interaction,
#interaction {
justify-content: stretch;
}
.interaction input[type=button],
.interaction input[type=submit],
#popup-interaction input[type=button] {
width: 100%;
min-height: 44px;
}
.popup-title h3 {
font-size: 1.02rem;
}
.popup-close {
min-width: 44px;
min-height: 44px;
}
}