Spaces:
No application file
No application file
/** | |
* μ₯μΉ κ΄λ¦¬ μ μ© CSS μ€νμΌ | |
*/ | |
/* μ₯μΉ κ΄λ¦¬ μΉμ */ | |
.device-container { | |
background-color: var(--card-bg); | |
border-radius: 8px; | |
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); | |
overflow: hidden; | |
padding: 20px; | |
} | |
/* μλ² μν νμ */ | |
.server-status { | |
padding: 12px 15px; | |
border-radius: 6px; | |
margin-bottom: 15px; | |
display: flex; | |
align-items: center; | |
} | |
.server-status i { | |
margin-right: 10px; | |
font-size: 18px; | |
} | |
.server-status.success { | |
background-color: rgba(16, 185, 129, 0.1); | |
color: var(--success-color); | |
border-left: 4px solid var(--success-color); | |
} | |
.server-status.error { | |
background-color: rgba(239, 68, 68, 0.1); | |
color: var(--error-color); | |
border-left: 4px solid var(--error-color); | |
} | |
.server-status.warning { | |
background-color: rgba(245, 158, 11, 0.1); | |
color: var(--secondary-color); | |
border-left: 4px solid var(--secondary-color); | |
} | |
/* μλ² μμ μλ΄ */ | |
.server-guide { | |
background-color: #f8f9fa; | |
border-radius: 6px; | |
padding: 15px; | |
margin: 15px 0; | |
font-size: 14px; | |
} | |
.server-guide code { | |
background-color: #e9ecef; | |
padding: 2px 6px; | |
border-radius: 4px; | |
font-family: monospace; | |
} | |
.server-guide ol { | |
margin-left: 20px; | |
margin-top: 10px; | |
margin-bottom: 0; | |
} | |
.server-guide li { | |
margin-bottom: 5px; | |
} | |
/* μ¬μλ λ²νΌ */ | |
.retry-button { | |
background-color: var(--primary-color); | |
color: white; | |
border: none; | |
border-radius: 4px; | |
padding: 8px 15px; | |
margin-top: 10px; | |
cursor: pointer; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
font-size: 14px; | |
transition: var(--transition); | |
} | |
.retry-button:hover { | |
background-color: var(--primary-dark); | |
} | |
.retry-button i { | |
margin-right: 5px; | |
} | |
/* μ₯μΉ λͺ©λ‘ */ | |
.device-section, .programs-section { | |
margin-top: 25px; | |
} | |
.device-section h2, .programs-section h2 { | |
margin-bottom: 15px; | |
color: var(--primary-color); | |
display: flex; | |
justify-content: space-between; | |
align-items: center; | |
} | |
.device-count { | |
font-size: 14px; | |
color: var(--light-text); | |
margin-bottom: 10px; | |
} | |
.device-item { | |
background-color: #f8f9fa; | |
border-radius: 8px; | |
padding: 15px; | |
margin-bottom: 10px; | |
border: 1px solid var(--border-color); | |
transition: var(--transition); | |
} | |
.device-item:hover { | |
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08); | |
} | |
.device-item h3 { | |
margin-bottom: 10px; | |
color: var(--primary-color); | |
font-size: 16px; | |
} | |
.device-details { | |
display: grid; | |
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); | |
gap: 10px; | |
font-size: 14px; | |
} | |
.device-details p { | |
margin: 0; | |
} | |
.status-connected, .status-online { | |
color: var(--success-color); | |
font-weight: 500; | |
} | |
.status-disconnected, .status-offline { | |
color: var(--error-color); | |
font-weight: 500; | |
} | |
.status-idle { | |
color: var(--secondary-color); | |
font-weight: 500; | |
} | |
.no-devices, .no-programs { | |
padding: 15px; | |
text-align: center; | |
background-color: #f8f9fa; | |
border-radius: 8px; | |
color: var(--light-text); | |
border: 1px dashed var(--border-color); | |
} | |
.no-devices i, .no-programs i { | |
margin-right: 5px; | |
} | |
/* λ‘λ© νμ */ | |
.loading-device, .loading-device-list, .loading-programs { | |
display: flex; | |
flex-direction: column; | |
align-items: center; | |
justify-content: center; | |
padding: 20px; | |
text-align: center; | |
} | |
.spinner.small { | |
width: 20px; | |
height: 20px; | |
margin-right: 8px; | |
} | |
/* νλ‘κ·Έλ¨ λͺ©λ‘ μΉμ */ | |
.programs-container { | |
background-color: #f8f9fa; | |
border-radius: 8px; | |
padding: 15px; | |
margin-top: 20px; | |
border: 1px solid var(--border-color); | |
} | |
.program-item { | |
background-color: white; | |
border-radius: 6px; | |
padding: 15px; | |
margin-bottom: 10px; | |
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); | |
position: relative; | |
} | |
.program-item h3 { | |
margin-bottom: 8px; | |
color: var(--primary-color); | |
font-size: 16px; | |
} | |
.program-description { | |
font-size: 14px; | |
color: var(--light-text); | |
margin-bottom: 15px; | |
} | |
.execute-btn { | |
background-color: var(--primary-color); | |
color: white; | |
border: none; | |
border-radius: 4px; | |
padding: 8px 15px; | |
cursor: pointer; | |
display: flex; | |
align-items: center; | |
font-size: 14px; | |
transition: var(--transition); | |
} | |
.execute-btn:hover { | |
background-color: var(--primary-dark); | |
} | |
.execute-btn i { | |
margin-right: 5px; | |
} | |
.execute-loading, .execute-success, .execute-error { | |
display: flex; | |
align-items: center; | |
padding: 5px 10px; | |
border-radius: 4px; | |
margin-top: 10px; | |
font-size: 14px; | |
} | |
.execute-loading { | |
background-color: #f1f5f9; | |
color: var(--light-text); | |
} | |
.execute-success { | |
background-color: rgba(16, 185, 129, 0.1); | |
color: var(--success-color); | |
} | |
.execute-error { | |
background-color: rgba(239, 68, 68, 0.1); | |
color: var(--error-color); | |
} | |
.execute-loading span, .execute-success span, .execute-error span { | |
margin-left: 5px; | |
} | |
/* μ₯μΉ κ΄λ¦¬ μΉμ μλ¨ λ²νΌ */ | |
.device-toolbar { | |
display: flex; | |
justify-content: space-between; | |
margin-bottom: 15px; | |
} | |
.load-programs-btn, .refresh-device-btn { | |
padding: 8px 15px; | |
background-color: var(--primary-color); | |
color: white; | |
border: none; | |
border-radius: 4px; | |
cursor: pointer; | |
display: flex; | |
align-items: center; | |
font-size: 14px; | |
transition: var(--transition); | |
} | |
.load-programs-btn:hover, .refresh-device-btn:hover { | |
background-color: var(--primary-dark); | |
} | |
.load-programs-btn i, .refresh-device-btn i { | |
margin-right: 5px; | |
} | |
/* λ°μν */ | |
@media (max-width: 768px) { | |
.device-details { | |
grid-template-columns: 1fr; | |
} | |
.device-toolbar { | |
flex-direction: column; | |
gap: 10px; | |
} | |
} | |