Spaces:
Sleeping
Sleeping
UI restyle: strict monochrome tactical palette (black/gray/white) for all trainer surfaces
Browse files
app.py
CHANGED
|
@@ -820,6 +820,176 @@ button.stop {
|
|
| 820 |
transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease, background 120ms ease;
|
| 821 |
}
|
| 822 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 823 |
"""
|
| 824 |
|
| 825 |
UI_HEAD = """
|
|
|
|
| 820 |
transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease, background 120ms ease;
|
| 821 |
}
|
| 822 |
}
|
| 823 |
+
|
| 824 |
+
/* Monochrome tactical overrides: black/gray/white only. */
|
| 825 |
+
:root {
|
| 826 |
+
--ops-bg: #060606;
|
| 827 |
+
--ops-bg-2: #121212;
|
| 828 |
+
--ops-panel: #171717;
|
| 829 |
+
--ops-panel-2: #1f1f1f;
|
| 830 |
+
--ops-panel-3: #242424;
|
| 831 |
+
--ops-border: rgba(220, 220, 220, 0.28);
|
| 832 |
+
--ops-border-strong: rgba(240, 240, 240, 0.38);
|
| 833 |
+
--ops-text: #f1f1f1;
|
| 834 |
+
--ops-muted: #b1b1b1;
|
| 835 |
+
--ops-dim: #8e8e8e;
|
| 836 |
+
--ops-green: #d4d4d4;
|
| 837 |
+
--ops-green-soft: rgba(255, 255, 255, 0.1);
|
| 838 |
+
--ops-cyan: #d4d4d4;
|
| 839 |
+
--ops-cyan-soft: rgba(255, 255, 255, 0.1);
|
| 840 |
+
--ops-amber: #a7a7a7;
|
| 841 |
+
--ops-amber-soft: rgba(255, 255, 255, 0.08);
|
| 842 |
+
--ops-red: #a0a0a0;
|
| 843 |
+
--ops-red-soft: rgba(255, 255, 255, 0.08);
|
| 844 |
+
}
|
| 845 |
+
|
| 846 |
+
.gradio-container {
|
| 847 |
+
--color-accent: #d0d0d0 !important;
|
| 848 |
+
--color-accent-soft: rgba(255, 255, 255, 0.12) !important;
|
| 849 |
+
--color-accent-emphasis: #8a8a8a !important;
|
| 850 |
+
--button-primary-background-fill: #2b2b2b !important;
|
| 851 |
+
--button-primary-background-fill-hover: #3b3b3b !important;
|
| 852 |
+
--button-primary-border-color: rgba(238, 238, 238, 0.4) !important;
|
| 853 |
+
--button-primary-text-color: #f1f1f1 !important;
|
| 854 |
+
}
|
| 855 |
+
|
| 856 |
+
.gradio-container,
|
| 857 |
+
body {
|
| 858 |
+
background:
|
| 859 |
+
radial-gradient(circle at 10% 12%, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0) 32%),
|
| 860 |
+
radial-gradient(circle at 86% 4%, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0) 28%),
|
| 861 |
+
linear-gradient(145deg, #060606 0%, #121212 100%) !important;
|
| 862 |
+
}
|
| 863 |
+
|
| 864 |
+
.block {
|
| 865 |
+
background: linear-gradient(180deg, rgba(27, 27, 27, 0.96) 0%, rgba(18, 18, 18, 0.97) 100%) !important;
|
| 866 |
+
}
|
| 867 |
+
|
| 868 |
+
.mono-hero {
|
| 869 |
+
border-color: rgba(235, 235, 235, 0.3);
|
| 870 |
+
background:
|
| 871 |
+
radial-gradient(circle at 100% 0%, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0) 24%),
|
| 872 |
+
radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0) 26%),
|
| 873 |
+
linear-gradient(145deg, rgba(30, 30, 30, 0.98) 0%, rgba(15, 15, 15, 0.98) 100%);
|
| 874 |
+
}
|
| 875 |
+
|
| 876 |
+
.mono-hero::before {
|
| 877 |
+
background: linear-gradient(90deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.05) 44%, rgba(255, 255, 255, 0) 72%);
|
| 878 |
+
}
|
| 879 |
+
|
| 880 |
+
.mono-hero::after {
|
| 881 |
+
background: linear-gradient(90deg, transparent, rgba(230, 230, 230, 0.45), transparent);
|
| 882 |
+
}
|
| 883 |
+
|
| 884 |
+
.mono-hero-kicker,
|
| 885 |
+
.mono-hero-panel-label,
|
| 886 |
+
.ops-head h3 {
|
| 887 |
+
color: #d7d7d7 !important;
|
| 888 |
+
}
|
| 889 |
+
|
| 890 |
+
.mono-link-row a {
|
| 891 |
+
border-color: rgba(220, 220, 220, 0.34);
|
| 892 |
+
background: rgba(30, 30, 30, 0.96);
|
| 893 |
+
}
|
| 894 |
+
|
| 895 |
+
.mono-link-row a:hover {
|
| 896 |
+
border-color: rgba(245, 245, 245, 0.44);
|
| 897 |
+
background: rgba(42, 42, 42, 0.98);
|
| 898 |
+
}
|
| 899 |
+
|
| 900 |
+
.mono-chip-row span,
|
| 901 |
+
.ops-chip {
|
| 902 |
+
border-color: rgba(214, 214, 214, 0.28);
|
| 903 |
+
background: rgba(28, 28, 28, 0.94);
|
| 904 |
+
}
|
| 905 |
+
|
| 906 |
+
input:focus,
|
| 907 |
+
textarea:focus,
|
| 908 |
+
select:focus,
|
| 909 |
+
.gradio-container textarea:focus,
|
| 910 |
+
.gradio-container input:focus {
|
| 911 |
+
border-color: rgba(238, 238, 238, 0.62) !important;
|
| 912 |
+
box-shadow: 0 0 0 1px rgba(245, 245, 245, 0.24), 0 0 0 4px rgba(245, 245, 245, 0.08) !important;
|
| 913 |
+
}
|
| 914 |
+
|
| 915 |
+
button {
|
| 916 |
+
border-color: rgba(220, 220, 220, 0.38) !important;
|
| 917 |
+
background: linear-gradient(180deg, rgba(48, 48, 48, 0.98) 0%, rgba(30, 30, 30, 0.98) 100%) !important;
|
| 918 |
+
}
|
| 919 |
+
|
| 920 |
+
button:hover {
|
| 921 |
+
border-color: rgba(240, 240, 240, 0.48) !important;
|
| 922 |
+
}
|
| 923 |
+
|
| 924 |
+
button.primary,
|
| 925 |
+
button.stop {
|
| 926 |
+
border-color: rgba(240, 240, 240, 0.48) !important;
|
| 927 |
+
background: linear-gradient(180deg, rgba(60, 60, 60, 0.98) 0%, rgba(36, 36, 36, 0.98) 100%) !important;
|
| 928 |
+
color: #f1f1f1 !important;
|
| 929 |
+
}
|
| 930 |
+
|
| 931 |
+
.ops-visual {
|
| 932 |
+
border-color: rgba(215, 215, 215, 0.32);
|
| 933 |
+
background:
|
| 934 |
+
radial-gradient(circle at 100% 0%, rgba(255, 255, 255, 0.06), transparent 24%),
|
| 935 |
+
radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.04), transparent 26%),
|
| 936 |
+
linear-gradient(180deg, rgba(20, 20, 20, 0.98) 0%, rgba(13, 13, 13, 0.98) 100%);
|
| 937 |
+
}
|
| 938 |
+
|
| 939 |
+
.ops-card {
|
| 940 |
+
border-color: rgba(210, 210, 210, 0.24);
|
| 941 |
+
background:
|
| 942 |
+
radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0) 34%),
|
| 943 |
+
linear-gradient(180deg, rgba(32, 32, 32, 0.98) 0%, rgba(19, 19, 19, 0.98) 100%);
|
| 944 |
+
}
|
| 945 |
+
|
| 946 |
+
.ops-card.metric-neutral,
|
| 947 |
+
.ops-card.metric-cyan,
|
| 948 |
+
.ops-card.metric-green,
|
| 949 |
+
.ops-card.metric-warning,
|
| 950 |
+
.ops-card.metric-danger {
|
| 951 |
+
--ops-card-accent: #d0d0d0;
|
| 952 |
+
--ops-card-glow: rgba(255, 255, 255, 0.06);
|
| 953 |
+
}
|
| 954 |
+
|
| 955 |
+
.ops-meter-fill {
|
| 956 |
+
background: linear-gradient(90deg, #a8a8a8 0%, #d4d4d4 100%);
|
| 957 |
+
box-shadow: 0 0 12px rgba(255, 255, 255, 0.2);
|
| 958 |
+
}
|
| 959 |
+
|
| 960 |
+
.ops-chip.on {
|
| 961 |
+
color: #ececec;
|
| 962 |
+
border-color: rgba(235, 235, 235, 0.48);
|
| 963 |
+
background: rgba(58, 58, 58, 0.94);
|
| 964 |
+
}
|
| 965 |
+
|
| 966 |
+
.ops-chip.off {
|
| 967 |
+
color: #9d9d9d;
|
| 968 |
+
border-color: rgba(210, 210, 210, 0.22);
|
| 969 |
+
}
|
| 970 |
+
|
| 971 |
+
.ops-stage-item.done .ops-stage-dot,
|
| 972 |
+
.ops-stage-item.active .ops-stage-dot {
|
| 973 |
+
color: #e7e7e7;
|
| 974 |
+
border-color: rgba(235, 235, 235, 0.5);
|
| 975 |
+
background: rgba(55, 55, 55, 0.95);
|
| 976 |
+
}
|
| 977 |
+
|
| 978 |
+
.ops-stage-item.pending .ops-stage-dot {
|
| 979 |
+
color: #8e8e8e;
|
| 980 |
+
}
|
| 981 |
+
|
| 982 |
+
.ops-run-badge.ok,
|
| 983 |
+
.ops-run-badge.fail,
|
| 984 |
+
.ops-run-badge.cancel {
|
| 985 |
+
color: #d6d6d6;
|
| 986 |
+
border-color: rgba(225, 225, 225, 0.36);
|
| 987 |
+
}
|
| 988 |
+
|
| 989 |
+
.ops-spark-line {
|
| 990 |
+
stroke: #d8d8d8;
|
| 991 |
+
filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.18));
|
| 992 |
+
}
|
| 993 |
"""
|
| 994 |
|
| 995 |
UI_HEAD = """
|