:root {
--bg-primary: #ffffff;
--bg-secondary: #f8f9fa;
--bg-tertiary: #e9ecef;
--text-primary: #212529;
--text-secondary: #6c757d;
--border-color: #dee2e6;
--shadow: rgba(0,0,0,0.1);
}
[data-theme="dark"] {
--bg-primary: #212529;
--bg-secondary: #343a40;
--bg-tertiary: #495057;
--text-primary: #f8f9fa;
--text-secondary: #adb5bd;
--border-color: #495057;
--shadow: rgba(0,0,0,0.3);
}
body {
padding: 0.5rem;
background: var(--bg-tertiary);
color: var(--text-primary);
transition: background-color 0.3s ease;
}
.widget-container {
max-width: 600px;
margin: 0 auto;
background: var(--bg-primary);
border-radius: 8px;
box-shadow: 0 2px 8px var(--shadow);
overflow: hidden;
transition: background-color 0.3s ease;
}
.widget-header {
background: var(--bg-secondary);
padding: 1rem;
border-bottom: 1px solid var(--border-color);
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
transition: background-color 0.3s ease;
}
.widget-body {
padding: 1.5rem;
}
.timer-display, .stopwatch-display {
font-size: 3rem;
font-weight: bold;
text-align: center;
padding: 0.9rem;
background: var(--bg-tertiary);
border-radius: 8px;
margin: 1rem 0;
font-family: 'Courier New', monospace;
color: var(--text-primary);
transition: background-color 0.3s ease;
}
.lap-item {
padding: 0.5rem;
border-bottom: 1px solid var(--border-color);
}
.alarm-item {
background: var(--bg-secondary);
padding: 1rem;
margin-bottom: 0.5rem;
border-radius: 4px;
display: flex;
justify-content: space-between;
align-items: center;
transition: background-color 0.3s ease;
}
.theme-toggle {
background: none;
border: none;
font-size: 1.5rem;
cursor: pointer;
padding: 0.25rem 0.5rem;
transition: transform 0.2s ease;
}
.theme-toggle:hover {
transform: scale(1.1);
}
.completed-time {
font-size: 0.75rem;
color: var(--text-secondary);
margin-top: 0.25rem;
}
.speak-element {
cursor: pointer;
position: relative;
}
.speak-element:hover::after {
content: '๐';
position: absolute;
right: -20px;
font-size: 0.8em;
}
[data-theme="dark"] .nav-tabs {
border-bottom-color: var(--border-color);
}
[data-theme="dark"] .nav-tabs .nav-link {
color: var(--text-secondary);
}
[data-theme="dark"] .nav-tabs .nav-link.active {
background-color: var(--bg-primary);
border-color: var(--border-color) var(--border-color) var(--bg-primary);
color: var(--text-primary);
}
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
background-color: var(--bg-secondary);
border-color: var(--border-color);
color: var(--text-primary);
}
[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
background-color: var(--bg-secondary);
border-color: #6ea8fe;
color: var(--text-primary);
}
[data-theme="dark"] .modal-content {
background-color: var(--bg-primary);
color: var(--text-primary);
}
[data-theme="dark"] .modal-header {
border-bottom-color: var(--border-color);
}
[data-theme="dark"] .btn-close {
filter: invert(1);
}
/* ์ ์ฅ ๋ฒํผ ํฌ๊ธฐ ํค์ฐ๊ธฐ */
.btn-save-large {
padding: 12px 24px;
font-size: 1.2rem;
font-weight: 600;
width: 100%;
border-radius: 50px;
}
.remaining-time {
font-size: 0.85rem;
margin-top: 4px;
padding: 2px 0;
}
.alarm-item {
transition: all 0.3s ease;
}
.alarm-item.border-danger {
animation: pulse 1s infinite;
}
@keyframes pulse {
0% {
border-color: #dc3545;
}
50% {
border-color: #ff6b7a;
}
100% {
border-color: #dc3545;
}
}
/* ์ก์
๋ฒํผ ์คํ์ผ */
.alarm-item .btn-outline-primary {
border-color: #0d6efd;
color: #0d6efd;
padding: 0.25rem 0.5rem;
font-size: 1rem;
}
.alarm-item .btn-outline-primary:hover {
background-color: #0d6efd;
color: white;
}
.alarm-item .btn-outline-secondary {
border-color: #6c757d;
color: #6c757d;
padding: 0.25rem 0.5rem;
font-size: 1rem;
}
/* ๋ฏธ๋์ด ํ๋ ์ด์ด */
.media-player {
position: fixed;
bottom: 20px;
right: 20px;
background: white;
border-radius: 10px;
box-shadow: 0 5px 20px rgba(0,0,0,0.2);
padding: 15px;
z-index: 10000;
max-width: 350px;
animation: slideIn 0.3s ease;
}
@keyframes slideIn {
from {
transform: translateY(100px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
.local-media-player {
position: fixed;
bottom: 20px;
right: 20px;
background: white;
border-radius: 12px;
box-shadow: 0 5px 20px rgba(0,0,0,0.2);
padding: 15px;
z-index: 10000;
min-width: 280px;
animation: slideIn 0.3s ease;
}
.local-media-player .player-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
}
@keyframes slideIn {
from {
transform: translateY(100px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
/* OS๋ณ ํ๋ ์ด์ด ์คํ์ผ */
.os-player {
animation: slideIn 0.3s ease;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
.pc-player {
border-top: 4px solid #0078d7;
}
.android-player {
border-top: 4px solid #3DDC84;
}
.ios-player {
border-top: 4px solid #000000;
}
@keyframes slideIn {
from {
transform: translateY(100px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
/* embed ํ๊ทธ ์คํ์ผ */
.pc-player embed {
background: #000;
border-radius: 4px;
}
Warning: require_once(/mnt/d/_St/y/_inc_LANG.php): Failed to open stream: No such file or directory in /mnt/d/_St/y/yy_aw_v28_panel.php on line 10
Fatal error: Uncaught Error: Failed opening required '/mnt/d/_St/y/_inc_LANG.php' (include_path='.:/usr/share/php') in /mnt/d/_St/y/yy_aw_v28_panel.php:10
Stack trace:
#0 {main}
thrown in /mnt/d/_St/y/yy_aw_v28_panel.php on line 10