Spaces:
Running on Zero
Running on Zero
Update app.py
Browse files
app.py
CHANGED
|
@@ -1874,7 +1874,7 @@ def check_gradio_share_links_status(session_role=""):
|
|
| 1874 |
|
| 1875 |
|
| 1876 |
# -----------------------------------------------------------------------------
|
| 1877 |
-
# CSS Styles —
|
| 1878 |
# -----------------------------------------------------------------------------
|
| 1879 |
FONT_FILENAME = os.getenv("VIP_MYANMAR_FONT", "Burma013-Regular.ttf").strip() or "Burma013-Regular.ttf"
|
| 1880 |
|
|
@@ -1913,35 +1913,35 @@ MYANMAR_FONT_CSS = _load_embedded_myanmar_font_css()
|
|
| 1913 |
|
| 1914 |
CUSTOM_CSS = MYANMAR_FONT_CSS + r"""
|
| 1915 |
:root {
|
| 1916 |
-
--page: #
|
| 1917 |
-
--page-2: #
|
| 1918 |
-
--surface: #
|
| 1919 |
-
--surface-2: #
|
| 1920 |
-
--surface-3: #
|
| 1921 |
-
--
|
| 1922 |
-
--
|
| 1923 |
-
--
|
| 1924 |
-
--muted
|
| 1925 |
-
--
|
| 1926 |
-
--
|
| 1927 |
-
--
|
| 1928 |
-
--
|
| 1929 |
-
--
|
| 1930 |
-
--gold
|
| 1931 |
-
--green: #
|
| 1932 |
-
--amber: #
|
| 1933 |
-
--red: #
|
| 1934 |
-
--line: rgba(
|
| 1935 |
-
--line-strong: rgba(
|
| 1936 |
-
--shadow: 0
|
| 1937 |
-
--shadow-soft: 0
|
| 1938 |
--font-main: 'Burma013YF', 'Noto Sans Myanmar', 'Myanmar Text', 'Pyidaungsu', 'Segoe UI', sans-serif;
|
| 1939 |
}
|
| 1940 |
|
| 1941 |
* {
|
| 1942 |
box-sizing: border-box;
|
| 1943 |
scrollbar-width: thin;
|
| 1944 |
-
scrollbar-color: rgba(
|
| 1945 |
}
|
| 1946 |
|
| 1947 |
html, body, .gradio-container,
|
|
@@ -1964,9 +1964,9 @@ body, .gradio-container {
|
|
| 1964 |
|
| 1965 |
body {
|
| 1966 |
background:
|
| 1967 |
-
radial-gradient(circle at
|
| 1968 |
-
radial-gradient(circle at
|
| 1969 |
-
linear-gradient(180deg, #
|
| 1970 |
}
|
| 1971 |
|
| 1972 |
.gradio-container {
|
|
@@ -1984,10 +1984,10 @@ body {
|
|
| 1984 |
min-height: 188px;
|
| 1985 |
padding: 34px 38px;
|
| 1986 |
margin-bottom: 22px;
|
| 1987 |
-
border: 1px solid rgba(
|
| 1988 |
border-radius: 28px;
|
| 1989 |
background:
|
| 1990 |
-
linear-gradient(115deg, rgba(
|
| 1991 |
var(--surface);
|
| 1992 |
box-shadow: var(--shadow);
|
| 1993 |
}
|
|
@@ -2002,7 +2002,7 @@ body {
|
|
| 2002 |
line-height: 1;
|
| 2003 |
font-weight: 900;
|
| 2004 |
letter-spacing: -24px;
|
| 2005 |
-
color: rgba(
|
| 2006 |
pointer-events: none;
|
| 2007 |
}
|
| 2008 |
|
|
@@ -2011,10 +2011,11 @@ body {
|
|
| 2011 |
position: absolute;
|
| 2012 |
left: 30px;
|
| 2013 |
bottom: 0;
|
| 2014 |
-
width:
|
| 2015 |
height: 5px;
|
| 2016 |
border-radius: 999px 999px 0 0;
|
| 2017 |
-
background: linear-gradient(90deg, var(--
|
|
|
|
| 2018 |
}
|
| 2019 |
|
| 2020 |
.hero-badge {
|
|
@@ -2025,25 +2026,26 @@ body {
|
|
| 2025 |
align-items: center;
|
| 2026 |
gap: 8px;
|
| 2027 |
padding: 7px 12px;
|
| 2028 |
-
border: 1px solid rgba(
|
| 2029 |
border-radius: 999px;
|
| 2030 |
-
color: #
|
| 2031 |
-
background: rgba(
|
| 2032 |
font-size: 11px;
|
| 2033 |
font-weight: 800;
|
| 2034 |
letter-spacing: 1.1px;
|
| 2035 |
-
box-shadow: 0
|
| 2036 |
}
|
| 2037 |
|
| 2038 |
.hero h1 {
|
| 2039 |
position: relative;
|
| 2040 |
z-index: 1;
|
| 2041 |
margin: 14px 0 8px;
|
| 2042 |
-
color:
|
| 2043 |
font-size: clamp(30px, 4vw, 46px);
|
| 2044 |
line-height: 1.15;
|
| 2045 |
font-weight: 900;
|
| 2046 |
letter-spacing: -.8px;
|
|
|
|
| 2047 |
}
|
| 2048 |
|
| 2049 |
.hero p {
|
|
@@ -2060,31 +2062,29 @@ body {
|
|
| 2060 |
.glass-card, .login-card {
|
| 2061 |
border: 1px solid var(--line) !important;
|
| 2062 |
border-radius: 22px !important;
|
| 2063 |
-
background: rgba(
|
| 2064 |
box-shadow: var(--shadow-soft) !important;
|
| 2065 |
padding: 24px !important;
|
| 2066 |
-
backdrop-filter: blur(
|
| 2067 |
}
|
| 2068 |
|
| 2069 |
.glass-card:hover {
|
| 2070 |
-
border-color: rgba(
|
| 2071 |
-
box-shadow: 0 14px
|
| 2072 |
}
|
| 2073 |
|
| 2074 |
.login-card {
|
| 2075 |
max-width: 500px !important;
|
| 2076 |
margin: 34px auto !important;
|
| 2077 |
padding: 32px !important;
|
| 2078 |
-
border-top: 4px solid var(--
|
| 2079 |
}
|
| 2080 |
|
| 2081 |
-
.section-title {
|
| 2082 |
-
margin-bottom: 16px;
|
| 2083 |
-
}
|
| 2084 |
|
| 2085 |
.section-title h2 {
|
| 2086 |
margin: 0 0 7px;
|
| 2087 |
-
color:
|
| 2088 |
font-size: 20px;
|
| 2089 |
font-weight: 900;
|
| 2090 |
letter-spacing: -.15px;
|
|
@@ -2102,12 +2102,11 @@ body {
|
|
| 2102 |
position: relative;
|
| 2103 |
overflow: hidden;
|
| 2104 |
min-height: 116px;
|
| 2105 |
-
border: 1px solid rgba(
|
| 2106 |
border-radius: 20px !important;
|
| 2107 |
-
background:
|
| 2108 |
-
linear-gradient(145deg, rgba(255,253,251,.98), rgba(249,239,233,.95)) !important;
|
| 2109 |
padding: 15px 18px !important;
|
| 2110 |
-
box-shadow: 0 10px 28px rgba(
|
| 2111 |
}
|
| 2112 |
|
| 2113 |
.stat-card::before {
|
|
@@ -2117,7 +2116,7 @@ body {
|
|
| 2117 |
left: 0;
|
| 2118 |
width: 100%;
|
| 2119 |
height: 4px;
|
| 2120 |
-
background: linear-gradient(90deg, var(--
|
| 2121 |
}
|
| 2122 |
|
| 2123 |
.stat-card label,
|
|
@@ -2127,7 +2126,7 @@ body {
|
|
| 2127 |
}
|
| 2128 |
|
| 2129 |
.stat-card input {
|
| 2130 |
-
color:
|
| 2131 |
background: transparent !important;
|
| 2132 |
border: 0 !important;
|
| 2133 |
font-size: 28px !important;
|
|
@@ -2137,47 +2136,40 @@ body {
|
|
| 2137 |
box-shadow: none !important;
|
| 2138 |
}
|
| 2139 |
|
| 2140 |
-
.amount-card::before {
|
| 2141 |
-
|
| 2142 |
-
}
|
| 2143 |
-
|
| 2144 |
-
.amount-card input {
|
| 2145 |
-
color: #8a6028 !important;
|
| 2146 |
-
}
|
| 2147 |
|
| 2148 |
/* ---------- Inputs ---------- */
|
| 2149 |
.gradio-container input:not([type="range"]),
|
| 2150 |
.gradio-container textarea,
|
| 2151 |
.gradio-container select {
|
| 2152 |
color: var(--ink) !important;
|
| 2153 |
-
background: #
|
| 2154 |
-
border: 1px solid rgba(
|
| 2155 |
border-radius: 13px !important;
|
| 2156 |
-
box-shadow: inset 0 1px 0 rgba(255,255,255,.
|
| 2157 |
}
|
| 2158 |
|
| 2159 |
.gradio-container input::placeholder,
|
| 2160 |
-
.gradio-container textarea::placeholder {
|
| 2161 |
-
color: #b09ca4 !important;
|
| 2162 |
-
}
|
| 2163 |
|
| 2164 |
.gradio-container input:focus,
|
| 2165 |
.gradio-container textarea:focus,
|
| 2166 |
.gradio-container select:focus {
|
| 2167 |
-
border-color: rgba(
|
| 2168 |
-
box-shadow: 0 0 0 4px rgba(
|
| 2169 |
outline: none !important;
|
| 2170 |
}
|
| 2171 |
|
| 2172 |
/* ---------- Buttons ---------- */
|
| 2173 |
.primary-action, .admin-action {
|
| 2174 |
min-height: 49px !important;
|
| 2175 |
-
border: 1px solid rgba(
|
| 2176 |
border-radius: 14px !important;
|
| 2177 |
padding: 10px 20px !important;
|
| 2178 |
-
color: #
|
| 2179 |
-
background: linear-gradient(110deg,
|
| 2180 |
-
box-shadow: 0 10px
|
| 2181 |
font-size: 14px !important;
|
| 2182 |
font-weight: 900 !important;
|
| 2183 |
transition: transform .18s ease, box-shadow .18s ease, filter .18s ease !important;
|
|
@@ -2185,35 +2177,35 @@ body {
|
|
| 2185 |
|
| 2186 |
.primary-action:hover, .admin-action:hover {
|
| 2187 |
transform: translateY(-2px);
|
| 2188 |
-
filter: saturate(1.
|
| 2189 |
-
box-shadow: 0 14px
|
| 2190 |
}
|
| 2191 |
|
| 2192 |
button.secondary,
|
| 2193 |
button[aria-label="secondary"] {
|
| 2194 |
-
color:
|
| 2195 |
-
background: #
|
| 2196 |
-
border-color: rgba(
|
| 2197 |
border-radius: 12px !important;
|
| 2198 |
}
|
| 2199 |
|
| 2200 |
button.secondary:hover,
|
| 2201 |
button[aria-label="secondary"]:hover {
|
| 2202 |
-
|
|
|
|
|
|
|
| 2203 |
}
|
| 2204 |
|
| 2205 |
/* ---------- Tabs ---------- */
|
| 2206 |
-
.tabs {
|
| 2207 |
-
gap: 15px !important;
|
| 2208 |
-
}
|
| 2209 |
|
| 2210 |
.tab-nav {
|
| 2211 |
padding: 7px !important;
|
| 2212 |
margin-bottom: 16px !important;
|
| 2213 |
border: 1px solid var(--line) !important;
|
| 2214 |
border-radius: 16px !important;
|
| 2215 |
-
background: rgba(
|
| 2216 |
-
box-shadow: 0 7px 20px rgba(
|
| 2217 |
}
|
| 2218 |
|
| 2219 |
.tab-nav button {
|
|
@@ -2223,9 +2215,9 @@ button[aria-label="secondary"]:hover {
|
|
| 2223 |
}
|
| 2224 |
|
| 2225 |
.tab-nav button.selected {
|
| 2226 |
-
color: #
|
| 2227 |
-
background: linear-gradient(110deg,
|
| 2228 |
-
box-shadow: 0 7px 18px rgba(
|
| 2229 |
}
|
| 2230 |
|
| 2231 |
/* ---------- Tables ---------- */
|
|
@@ -2233,41 +2225,32 @@ button[aria-label="secondary"]:hover {
|
|
| 2233 |
border: 1px solid var(--line) !important;
|
| 2234 |
border-radius: 16px !important;
|
| 2235 |
overflow: hidden !important;
|
| 2236 |
-
background: #
|
| 2237 |
-
box-shadow: 0 7px 22px rgba(
|
| 2238 |
}
|
| 2239 |
|
| 2240 |
-
.dataframe table {
|
| 2241 |
-
background: #fffdfb !important;
|
| 2242 |
-
}
|
| 2243 |
|
| 2244 |
.dataframe th {
|
| 2245 |
-
color: #
|
| 2246 |
-
background: linear-gradient(180deg, #
|
| 2247 |
-
border-color: rgba(
|
| 2248 |
font-size: 12px !important;
|
| 2249 |
font-weight: 900 !important;
|
| 2250 |
}
|
| 2251 |
|
| 2252 |
.dataframe td {
|
| 2253 |
-
color:
|
| 2254 |
-
background: #
|
| 2255 |
-
border-color: rgba(
|
| 2256 |
font-size: 12px !important;
|
| 2257 |
}
|
| 2258 |
|
| 2259 |
-
.dataframe tbody tr:nth-child(even) td {
|
| 2260 |
-
|
| 2261 |
-
}
|
| 2262 |
-
|
| 2263 |
-
.dataframe tbody tr:hover td {
|
| 2264 |
-
background: #f5e6e5 !important;
|
| 2265 |
-
}
|
| 2266 |
|
| 2267 |
/* ---------- Gradio service monitor ---------- */
|
| 2268 |
-
.gradio-monitor-wrap {
|
| 2269 |
-
padding: 16px 18px !important;
|
| 2270 |
-
}
|
| 2271 |
|
| 2272 |
.gradio-monitor-head {
|
| 2273 |
display: flex;
|
|
@@ -2279,16 +2262,12 @@ button[aria-label="secondary"]:hover {
|
|
| 2279 |
|
| 2280 |
.gradio-monitor-head h3 {
|
| 2281 |
margin: 0;
|
| 2282 |
-
color:
|
| 2283 |
font-size: 17px;
|
| 2284 |
font-weight: 900;
|
| 2285 |
}
|
| 2286 |
|
| 2287 |
-
.gradio-monitor-head p {
|
| 2288 |
-
margin: 4px 0 0;
|
| 2289 |
-
color: var(--muted);
|
| 2290 |
-
font-size: 12px;
|
| 2291 |
-
}
|
| 2292 |
|
| 2293 |
.gradio-service-card {
|
| 2294 |
display: flex;
|
|
@@ -2298,7 +2277,7 @@ button[aria-label="secondary"]:hover {
|
|
| 2298 |
padding: 15px 17px;
|
| 2299 |
border: 1px solid var(--line);
|
| 2300 |
border-radius: 15px;
|
| 2301 |
-
background: #
|
| 2302 |
}
|
| 2303 |
|
| 2304 |
.gradio-service-title {
|
|
@@ -2320,57 +2299,28 @@ button[aria-label="secondary"]:hover {
|
|
| 2320 |
font-size: 10px;
|
| 2321 |
font-weight: 900;
|
| 2322 |
letter-spacing: .35px;
|
| 2323 |
-
background: rgba(255,255,255,.
|
| 2324 |
-
}
|
| 2325 |
-
|
| 2326 |
-
.gradio-service-detail {
|
| 2327 |
-
margin-top: 5px;
|
| 2328 |
-
color: var(--muted);
|
| 2329 |
-
font-size: 12px;
|
| 2330 |
-
}
|
| 2331 |
-
|
| 2332 |
-
.gradio-service-meta {
|
| 2333 |
-
display: flex;
|
| 2334 |
-
flex-wrap: wrap;
|
| 2335 |
-
justify-content: flex-end;
|
| 2336 |
-
gap: 7px 12px;
|
| 2337 |
-
color: var(--muted-2);
|
| 2338 |
-
font-size: 11px;
|
| 2339 |
}
|
| 2340 |
|
|
|
|
|
|
|
| 2341 |
.gradio-service-meta b { color: var(--ink); }
|
| 2342 |
-
.gradio-service-meta a { color: var(--
|
| 2343 |
|
| 2344 |
-
.service-ok {
|
| 2345 |
-
|
| 2346 |
-
|
| 2347 |
-
}
|
| 2348 |
-
.service-
|
| 2349 |
-
.service-
|
| 2350 |
-
|
| 2351 |
-
.service-warn {
|
| 2352 |
-
border-color: rgba(168, 111, 33, .25);
|
| 2353 |
-
background: rgba(168, 111, 33, .055);
|
| 2354 |
-
}
|
| 2355 |
-
.service-warn .service-dot,
|
| 2356 |
-
.service-warn .service-pill { color: var(--amber); }
|
| 2357 |
-
|
| 2358 |
-
.service-down {
|
| 2359 |
-
border-color: rgba(181, 66, 79, .24);
|
| 2360 |
-
background: rgba(181, 66, 79, .055);
|
| 2361 |
-
}
|
| 2362 |
-
.service-down .service-dot,
|
| 2363 |
-
.service-down .service-pill { color: var(--red); }
|
| 2364 |
-
|
| 2365 |
-
.service-idle .service-dot,
|
| 2366 |
-
.service-idle .service-pill { color: var(--muted); }
|
| 2367 |
|
| 2368 |
/* ---------- Generated key ---------- */
|
| 2369 |
.key-output textarea {
|
| 2370 |
min-height: 60px !important;
|
| 2371 |
-
color:
|
| 2372 |
-
background: linear-gradient(180deg, #
|
| 2373 |
-
border: 1px dashed rgba(
|
| 2374 |
font-family: 'SFMono-Regular', Consolas, 'Myanmar Text', monospace !important;
|
| 2375 |
font-size: 18px !important;
|
| 2376 |
font-weight: 900 !important;
|
|
@@ -2382,34 +2332,29 @@ button[aria-label="secondary"]:hover {
|
|
| 2382 |
display: inline-block;
|
| 2383 |
padding: 4px 9px;
|
| 2384 |
border-radius: 999px;
|
| 2385 |
-
color: #
|
| 2386 |
-
background: rgba(
|
| 2387 |
-
border: 1px solid rgba(
|
| 2388 |
font-size: 11px;
|
| 2389 |
font-weight: 900;
|
| 2390 |
}
|
| 2391 |
|
| 2392 |
.permission-badge.restricted {
|
| 2393 |
-
color: #
|
| 2394 |
-
background: rgba(
|
| 2395 |
-
border-color: rgba(
|
| 2396 |
}
|
| 2397 |
|
| 2398 |
/* ---------- Markdown / alerts ---------- */
|
| 2399 |
-
.gradio-container .prose {
|
| 2400 |
-
|
| 2401 |
-
}
|
| 2402 |
-
|
| 2403 |
-
.gradio-container .prose strong {
|
| 2404 |
-
color: var(--burgundy-deep) !important;
|
| 2405 |
-
}
|
| 2406 |
|
| 2407 |
.login-error-alert {
|
| 2408 |
padding: 12px 14px;
|
| 2409 |
-
border: 1px solid rgba(
|
| 2410 |
border-radius: 13px;
|
| 2411 |
-
color: #
|
| 2412 |
-
background: rgba(
|
| 2413 |
}
|
| 2414 |
|
| 2415 |
/* ---------- Footer ---------- */
|
|
@@ -2424,54 +2369,29 @@ button[aria-label="secondary"]:hover {
|
|
| 2424 |
}
|
| 2425 |
|
| 2426 |
@media (max-width: 760px) {
|
| 2427 |
-
.gradio-container {
|
| 2428 |
-
|
| 2429 |
-
}
|
| 2430 |
-
.hero {
|
| 2431 |
-
|
| 2432 |
-
|
| 2433 |
-
|
| 2434 |
-
}
|
| 2435 |
-
.
|
| 2436 |
-
right: 11px;
|
| 2437 |
-
top: -18px;
|
| 2438 |
-
font-size: 125px;
|
| 2439 |
-
}
|
| 2440 |
-
.hero::after {
|
| 2441 |
-
left: 20px;
|
| 2442 |
-
width: 100px;
|
| 2443 |
-
}
|
| 2444 |
-
.glass-card, .login-card {
|
| 2445 |
-
padding: 16px !important;
|
| 2446 |
-
border-radius: 16px !important;
|
| 2447 |
-
}
|
| 2448 |
-
.stat-card {
|
| 2449 |
-
min-height: 102px;
|
| 2450 |
-
}
|
| 2451 |
-
.stat-card input {
|
| 2452 |
-
font-size: 23px !important;
|
| 2453 |
-
}
|
| 2454 |
-
.gradio-service-card {
|
| 2455 |
-
align-items: flex-start;
|
| 2456 |
-
flex-direction: column;
|
| 2457 |
-
}
|
| 2458 |
-
.gradio-service-meta {
|
| 2459 |
-
justify-content: flex-start;
|
| 2460 |
-
}
|
| 2461 |
}
|
| 2462 |
"""
|
| 2463 |
|
| 2464 |
|
| 2465 |
theme = gr.themes.Soft(
|
| 2466 |
-
primary_hue="
|
| 2467 |
-
secondary_hue="
|
| 2468 |
-
neutral_hue="
|
| 2469 |
radius_size="lg",
|
| 2470 |
).set(
|
| 2471 |
-
body_background_fill="#
|
| 2472 |
-
body_text_color="#
|
| 2473 |
-
block_background_fill="#
|
| 2474 |
-
block_border_color="rgba(
|
| 2475 |
)
|
| 2476 |
|
| 2477 |
|
|
|
|
| 1874 |
|
| 1875 |
|
| 1876 |
# -----------------------------------------------------------------------------
|
| 1877 |
+
# CSS Styles — Midnight Neon redesign + Myanmar font
|
| 1878 |
# -----------------------------------------------------------------------------
|
| 1879 |
FONT_FILENAME = os.getenv("VIP_MYANMAR_FONT", "Burma013-Regular.ttf").strip() or "Burma013-Regular.ttf"
|
| 1880 |
|
|
|
|
| 1913 |
|
| 1914 |
CUSTOM_CSS = MYANMAR_FONT_CSS + r"""
|
| 1915 |
:root {
|
| 1916 |
+
--page: #070b14;
|
| 1917 |
+
--page-2: #0a1020;
|
| 1918 |
+
--surface: #0e1628;
|
| 1919 |
+
--surface-2: #121d33;
|
| 1920 |
+
--surface-3: #18243c;
|
| 1921 |
+
--surface-4: #1d2b47;
|
| 1922 |
+
--ink: #e8edf8;
|
| 1923 |
+
--text: #d7deed;
|
| 1924 |
+
--muted: #98a6be;
|
| 1925 |
+
--muted-2: #74849f;
|
| 1926 |
+
--purple: #7c5cff;
|
| 1927 |
+
--purple-2: #a855f7;
|
| 1928 |
+
--cyan: #22d3ee;
|
| 1929 |
+
--cyan-deep: #0891b2;
|
| 1930 |
+
--gold: #f6c453;
|
| 1931 |
+
--green: #2dd4a7;
|
| 1932 |
+
--amber: #f59e0b;
|
| 1933 |
+
--red: #fb7185;
|
| 1934 |
+
--line: rgba(148, 163, 184, .16);
|
| 1935 |
+
--line-strong: rgba(124, 92, 255, .42);
|
| 1936 |
+
--shadow: 0 20px 60px rgba(0, 0, 0, .42);
|
| 1937 |
+
--shadow-soft: 0 10px 30px rgba(0, 0, 0, .30);
|
| 1938 |
--font-main: 'Burma013YF', 'Noto Sans Myanmar', 'Myanmar Text', 'Pyidaungsu', 'Segoe UI', sans-serif;
|
| 1939 |
}
|
| 1940 |
|
| 1941 |
* {
|
| 1942 |
box-sizing: border-box;
|
| 1943 |
scrollbar-width: thin;
|
| 1944 |
+
scrollbar-color: rgba(124, 92, 255, .48) rgba(7, 11, 20, .75);
|
| 1945 |
}
|
| 1946 |
|
| 1947 |
html, body, .gradio-container,
|
|
|
|
| 1964 |
|
| 1965 |
body {
|
| 1966 |
background:
|
| 1967 |
+
radial-gradient(circle at 12% 0%, rgba(124, 92, 255, .18), transparent 30%),
|
| 1968 |
+
radial-gradient(circle at 92% 10%, rgba(34, 211, 238, .10), transparent 26%),
|
| 1969 |
+
linear-gradient(180deg, #070b14 0%, #09101d 48%, #050913 100%) !important;
|
| 1970 |
}
|
| 1971 |
|
| 1972 |
.gradio-container {
|
|
|
|
| 1984 |
min-height: 188px;
|
| 1985 |
padding: 34px 38px;
|
| 1986 |
margin-bottom: 22px;
|
| 1987 |
+
border: 1px solid rgba(124, 92, 255, .28);
|
| 1988 |
border-radius: 28px;
|
| 1989 |
background:
|
| 1990 |
+
linear-gradient(115deg, rgba(14, 22, 40, .98), rgba(10, 16, 32, .98)),
|
| 1991 |
var(--surface);
|
| 1992 |
box-shadow: var(--shadow);
|
| 1993 |
}
|
|
|
|
| 2002 |
line-height: 1;
|
| 2003 |
font-weight: 900;
|
| 2004 |
letter-spacing: -24px;
|
| 2005 |
+
color: rgba(124, 92, 255, .08);
|
| 2006 |
pointer-events: none;
|
| 2007 |
}
|
| 2008 |
|
|
|
|
| 2011 |
position: absolute;
|
| 2012 |
left: 30px;
|
| 2013 |
bottom: 0;
|
| 2014 |
+
width: 168px;
|
| 2015 |
height: 5px;
|
| 2016 |
border-radius: 999px 999px 0 0;
|
| 2017 |
+
background: linear-gradient(90deg, var(--purple), var(--cyan), var(--gold));
|
| 2018 |
+
box-shadow: 0 0 22px rgba(34, 211, 238, .30);
|
| 2019 |
}
|
| 2020 |
|
| 2021 |
.hero-badge {
|
|
|
|
| 2026 |
align-items: center;
|
| 2027 |
gap: 8px;
|
| 2028 |
padding: 7px 12px;
|
| 2029 |
+
border: 1px solid rgba(34, 211, 238, .30);
|
| 2030 |
border-radius: 999px;
|
| 2031 |
+
color: #8be9f7;
|
| 2032 |
+
background: rgba(34, 211, 238, .08);
|
| 2033 |
font-size: 11px;
|
| 2034 |
font-weight: 800;
|
| 2035 |
letter-spacing: 1.1px;
|
| 2036 |
+
box-shadow: 0 0 22px rgba(34, 211, 238, .06);
|
| 2037 |
}
|
| 2038 |
|
| 2039 |
.hero h1 {
|
| 2040 |
position: relative;
|
| 2041 |
z-index: 1;
|
| 2042 |
margin: 14px 0 8px;
|
| 2043 |
+
color: #eef2ff !important;
|
| 2044 |
font-size: clamp(30px, 4vw, 46px);
|
| 2045 |
line-height: 1.15;
|
| 2046 |
font-weight: 900;
|
| 2047 |
letter-spacing: -.8px;
|
| 2048 |
+
text-shadow: 0 0 24px rgba(124, 92, 255, .22);
|
| 2049 |
}
|
| 2050 |
|
| 2051 |
.hero p {
|
|
|
|
| 2062 |
.glass-card, .login-card {
|
| 2063 |
border: 1px solid var(--line) !important;
|
| 2064 |
border-radius: 22px !important;
|
| 2065 |
+
background: rgba(14, 22, 40, .94) !important;
|
| 2066 |
box-shadow: var(--shadow-soft) !important;
|
| 2067 |
padding: 24px !important;
|
| 2068 |
+
backdrop-filter: blur(14px);
|
| 2069 |
}
|
| 2070 |
|
| 2071 |
.glass-card:hover {
|
| 2072 |
+
border-color: rgba(124, 92, 255, .34) !important;
|
| 2073 |
+
box-shadow: 0 14px 38px rgba(0, 0, 0, .38) !important;
|
| 2074 |
}
|
| 2075 |
|
| 2076 |
.login-card {
|
| 2077 |
max-width: 500px !important;
|
| 2078 |
margin: 34px auto !important;
|
| 2079 |
padding: 32px !important;
|
| 2080 |
+
border-top: 4px solid var(--purple) !important;
|
| 2081 |
}
|
| 2082 |
|
| 2083 |
+
.section-title { margin-bottom: 16px; }
|
|
|
|
|
|
|
| 2084 |
|
| 2085 |
.section-title h2 {
|
| 2086 |
margin: 0 0 7px;
|
| 2087 |
+
color: #e9e7ff !important;
|
| 2088 |
font-size: 20px;
|
| 2089 |
font-weight: 900;
|
| 2090 |
letter-spacing: -.15px;
|
|
|
|
| 2102 |
position: relative;
|
| 2103 |
overflow: hidden;
|
| 2104 |
min-height: 116px;
|
| 2105 |
+
border: 1px solid rgba(124, 92, 255, .20) !important;
|
| 2106 |
border-radius: 20px !important;
|
| 2107 |
+
background: linear-gradient(145deg, rgba(18,29,51,.98), rgba(11,18,34,.98)) !important;
|
|
|
|
| 2108 |
padding: 15px 18px !important;
|
| 2109 |
+
box-shadow: 0 10px 28px rgba(0,0,0,.26) !important;
|
| 2110 |
}
|
| 2111 |
|
| 2112 |
.stat-card::before {
|
|
|
|
| 2116 |
left: 0;
|
| 2117 |
width: 100%;
|
| 2118 |
height: 4px;
|
| 2119 |
+
background: linear-gradient(90deg, var(--purple), var(--cyan));
|
| 2120 |
}
|
| 2121 |
|
| 2122 |
.stat-card label,
|
|
|
|
| 2126 |
}
|
| 2127 |
|
| 2128 |
.stat-card input {
|
| 2129 |
+
color: #c9c2ff !important;
|
| 2130 |
background: transparent !important;
|
| 2131 |
border: 0 !important;
|
| 2132 |
font-size: 28px !important;
|
|
|
|
| 2136 |
box-shadow: none !important;
|
| 2137 |
}
|
| 2138 |
|
| 2139 |
+
.amount-card::before { background: linear-gradient(90deg, var(--gold), var(--cyan)); }
|
| 2140 |
+
.amount-card input { color: #ffd97a !important; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2141 |
|
| 2142 |
/* ---------- Inputs ---------- */
|
| 2143 |
.gradio-container input:not([type="range"]),
|
| 2144 |
.gradio-container textarea,
|
| 2145 |
.gradio-container select {
|
| 2146 |
color: var(--ink) !important;
|
| 2147 |
+
background: #0a1221 !important;
|
| 2148 |
+
border: 1px solid rgba(148, 163, 184, .20) !important;
|
| 2149 |
border-radius: 13px !important;
|
| 2150 |
+
box-shadow: inset 0 1px 0 rgba(255,255,255,.025) !important;
|
| 2151 |
}
|
| 2152 |
|
| 2153 |
.gradio-container input::placeholder,
|
| 2154 |
+
.gradio-container textarea::placeholder { color: #65758f !important; }
|
|
|
|
|
|
|
| 2155 |
|
| 2156 |
.gradio-container input:focus,
|
| 2157 |
.gradio-container textarea:focus,
|
| 2158 |
.gradio-container select:focus {
|
| 2159 |
+
border-color: rgba(124, 92, 255, .72) !important;
|
| 2160 |
+
box-shadow: 0 0 0 4px rgba(124, 92, 255, .12) !important;
|
| 2161 |
outline: none !important;
|
| 2162 |
}
|
| 2163 |
|
| 2164 |
/* ---------- Buttons ---------- */
|
| 2165 |
.primary-action, .admin-action {
|
| 2166 |
min-height: 49px !important;
|
| 2167 |
+
border: 1px solid rgba(124, 92, 255, .36) !important;
|
| 2168 |
border-radius: 14px !important;
|
| 2169 |
padding: 10px 20px !important;
|
| 2170 |
+
color: #f4f2ff !important;
|
| 2171 |
+
background: linear-gradient(110deg, #5b46d8, var(--purple) 55%, var(--purple-2)) !important;
|
| 2172 |
+
box-shadow: 0 10px 26px rgba(124, 92, 255, .22) !important;
|
| 2173 |
font-size: 14px !important;
|
| 2174 |
font-weight: 900 !important;
|
| 2175 |
transition: transform .18s ease, box-shadow .18s ease, filter .18s ease !important;
|
|
|
|
| 2177 |
|
| 2178 |
.primary-action:hover, .admin-action:hover {
|
| 2179 |
transform: translateY(-2px);
|
| 2180 |
+
filter: saturate(1.08) brightness(1.06);
|
| 2181 |
+
box-shadow: 0 14px 32px rgba(124, 92, 255, .32) !important;
|
| 2182 |
}
|
| 2183 |
|
| 2184 |
button.secondary,
|
| 2185 |
button[aria-label="secondary"] {
|
| 2186 |
+
color: #b9c5dc !important;
|
| 2187 |
+
background: #111b2f !important;
|
| 2188 |
+
border-color: rgba(148, 163, 184, .22) !important;
|
| 2189 |
border-radius: 12px !important;
|
| 2190 |
}
|
| 2191 |
|
| 2192 |
button.secondary:hover,
|
| 2193 |
button[aria-label="secondary"]:hover {
|
| 2194 |
+
color: #8be9f7 !important;
|
| 2195 |
+
background: #16243d !important;
|
| 2196 |
+
border-color: rgba(34, 211, 238, .28) !important;
|
| 2197 |
}
|
| 2198 |
|
| 2199 |
/* ---------- Tabs ---------- */
|
| 2200 |
+
.tabs { gap: 15px !important; }
|
|
|
|
|
|
|
| 2201 |
|
| 2202 |
.tab-nav {
|
| 2203 |
padding: 7px !important;
|
| 2204 |
margin-bottom: 16px !important;
|
| 2205 |
border: 1px solid var(--line) !important;
|
| 2206 |
border-radius: 16px !important;
|
| 2207 |
+
background: rgba(9, 16, 29, .90) !important;
|
| 2208 |
+
box-shadow: 0 7px 20px rgba(0,0,0,.22) !important;
|
| 2209 |
}
|
| 2210 |
|
| 2211 |
.tab-nav button {
|
|
|
|
| 2215 |
}
|
| 2216 |
|
| 2217 |
.tab-nav button.selected {
|
| 2218 |
+
color: #f2f0ff !important;
|
| 2219 |
+
background: linear-gradient(110deg, #4f3bc5, var(--purple)) !important;
|
| 2220 |
+
box-shadow: 0 7px 18px rgba(124, 92, 255, .24) !important;
|
| 2221 |
}
|
| 2222 |
|
| 2223 |
/* ---------- Tables ---------- */
|
|
|
|
| 2225 |
border: 1px solid var(--line) !important;
|
| 2226 |
border-radius: 16px !important;
|
| 2227 |
overflow: hidden !important;
|
| 2228 |
+
background: #0b1323 !important;
|
| 2229 |
+
box-shadow: 0 7px 22px rgba(0,0,0,.24) !important;
|
| 2230 |
}
|
| 2231 |
|
| 2232 |
+
.dataframe table { background: #0b1323 !important; }
|
|
|
|
|
|
|
| 2233 |
|
| 2234 |
.dataframe th {
|
| 2235 |
+
color: #dff9ff !important;
|
| 2236 |
+
background: linear-gradient(180deg, #183555, #10233a) !important;
|
| 2237 |
+
border-color: rgba(148,163,184,.10) !important;
|
| 2238 |
font-size: 12px !important;
|
| 2239 |
font-weight: 900 !important;
|
| 2240 |
}
|
| 2241 |
|
| 2242 |
.dataframe td {
|
| 2243 |
+
color: #cbd5e6 !important;
|
| 2244 |
+
background: #0b1323 !important;
|
| 2245 |
+
border-color: rgba(148,163,184,.08) !important;
|
| 2246 |
font-size: 12px !important;
|
| 2247 |
}
|
| 2248 |
|
| 2249 |
+
.dataframe tbody tr:nth-child(even) td { background: #0e182a !important; }
|
| 2250 |
+
.dataframe tbody tr:hover td { background: #15223a !important; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2251 |
|
| 2252 |
/* ---------- Gradio service monitor ---------- */
|
| 2253 |
+
.gradio-monitor-wrap { padding: 16px 18px !important; }
|
|
|
|
|
|
|
| 2254 |
|
| 2255 |
.gradio-monitor-head {
|
| 2256 |
display: flex;
|
|
|
|
| 2262 |
|
| 2263 |
.gradio-monitor-head h3 {
|
| 2264 |
margin: 0;
|
| 2265 |
+
color: #d8d4ff;
|
| 2266 |
font-size: 17px;
|
| 2267 |
font-weight: 900;
|
| 2268 |
}
|
| 2269 |
|
| 2270 |
+
.gradio-monitor-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2271 |
|
| 2272 |
.gradio-service-card {
|
| 2273 |
display: flex;
|
|
|
|
| 2277 |
padding: 15px 17px;
|
| 2278 |
border: 1px solid var(--line);
|
| 2279 |
border-radius: 15px;
|
| 2280 |
+
background: #0b1425;
|
| 2281 |
}
|
| 2282 |
|
| 2283 |
.gradio-service-title {
|
|
|
|
| 2299 |
font-size: 10px;
|
| 2300 |
font-weight: 900;
|
| 2301 |
letter-spacing: .35px;
|
| 2302 |
+
background: rgba(255,255,255,.025);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2303 |
}
|
| 2304 |
|
| 2305 |
+
.gradio-service-detail { margin-top: 5px; color: var(--muted); font-size: 12px; }
|
| 2306 |
+
.gradio-service-meta { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px 12px; color: var(--muted-2); font-size: 11px; }
|
| 2307 |
.gradio-service-meta b { color: var(--ink); }
|
| 2308 |
+
.gradio-service-meta a { color: var(--cyan) !important; text-decoration: none; font-weight: 850; }
|
| 2309 |
|
| 2310 |
+
.service-ok { border-color: rgba(45, 212, 167, .25); background: rgba(45, 212, 167, .055); }
|
| 2311 |
+
.service-ok .service-dot, .service-ok .service-pill { color: var(--green); }
|
| 2312 |
+
.service-warn { border-color: rgba(245, 158, 11, .25); background: rgba(245, 158, 11, .055); }
|
| 2313 |
+
.service-warn .service-dot, .service-warn .service-pill { color: var(--amber); }
|
| 2314 |
+
.service-down { border-color: rgba(251, 113, 133, .25); background: rgba(251, 113, 133, .055); }
|
| 2315 |
+
.service-down .service-dot, .service-down .service-pill { color: var(--red); }
|
| 2316 |
+
.service-idle .service-dot, .service-idle .service-pill { color: var(--muted); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2317 |
|
| 2318 |
/* ---------- Generated key ---------- */
|
| 2319 |
.key-output textarea {
|
| 2320 |
min-height: 60px !important;
|
| 2321 |
+
color: #8be9f7 !important;
|
| 2322 |
+
background: linear-gradient(180deg, #0a1728, #0a1221) !important;
|
| 2323 |
+
border: 1px dashed rgba(34, 211, 238, .50) !important;
|
| 2324 |
font-family: 'SFMono-Regular', Consolas, 'Myanmar Text', monospace !important;
|
| 2325 |
font-size: 18px !important;
|
| 2326 |
font-weight: 900 !important;
|
|
|
|
| 2332 |
display: inline-block;
|
| 2333 |
padding: 4px 9px;
|
| 2334 |
border-radius: 999px;
|
| 2335 |
+
color: #63e6c7;
|
| 2336 |
+
background: rgba(45, 212, 167, .08);
|
| 2337 |
+
border: 1px solid rgba(45, 212, 167, .20);
|
| 2338 |
font-size: 11px;
|
| 2339 |
font-weight: 900;
|
| 2340 |
}
|
| 2341 |
|
| 2342 |
.permission-badge.restricted {
|
| 2343 |
+
color: #ffd166;
|
| 2344 |
+
background: rgba(246, 196, 83, .08);
|
| 2345 |
+
border-color: rgba(246, 196, 83, .22);
|
| 2346 |
}
|
| 2347 |
|
| 2348 |
/* ---------- Markdown / alerts ---------- */
|
| 2349 |
+
.gradio-container .prose { color: var(--text) !important; }
|
| 2350 |
+
.gradio-container .prose strong { color: #bcb5ff !important; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2351 |
|
| 2352 |
.login-error-alert {
|
| 2353 |
padding: 12px 14px;
|
| 2354 |
+
border: 1px solid rgba(251,113,133,.28);
|
| 2355 |
border-radius: 13px;
|
| 2356 |
+
color: #ff9aae;
|
| 2357 |
+
background: rgba(251,113,133,.07);
|
| 2358 |
}
|
| 2359 |
|
| 2360 |
/* ---------- Footer ---------- */
|
|
|
|
| 2369 |
}
|
| 2370 |
|
| 2371 |
@media (max-width: 760px) {
|
| 2372 |
+
.gradio-container { padding: 12px 10px 30px !important; }
|
| 2373 |
+
.hero { min-height: 155px; padding: 25px 21px; border-radius: 20px; }
|
| 2374 |
+
.hero::before { right: 11px; top: -18px; font-size: 125px; }
|
| 2375 |
+
.hero::after { left: 20px; width: 110px; }
|
| 2376 |
+
.glass-card, .login-card { padding: 16px !important; border-radius: 16px !important; }
|
| 2377 |
+
.stat-card { min-height: 102px; }
|
| 2378 |
+
.stat-card input { font-size: 23px !important; }
|
| 2379 |
+
.gradio-service-card { align-items: flex-start; flex-direction: column; }
|
| 2380 |
+
.gradio-service-meta { justify-content: flex-start; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2381 |
}
|
| 2382 |
"""
|
| 2383 |
|
| 2384 |
|
| 2385 |
theme = gr.themes.Soft(
|
| 2386 |
+
primary_hue="indigo",
|
| 2387 |
+
secondary_hue="cyan",
|
| 2388 |
+
neutral_hue="slate",
|
| 2389 |
radius_size="lg",
|
| 2390 |
).set(
|
| 2391 |
+
body_background_fill="#070b14",
|
| 2392 |
+
body_text_color="#d7deed",
|
| 2393 |
+
block_background_fill="#0e1628",
|
| 2394 |
+
block_border_color="rgba(148, 163, 184, 0.16)",
|
| 2395 |
)
|
| 2396 |
|
| 2397 |
|