RAG6_AgenticAI / app /static /css /device-style.css
jeongsoo's picture
init
d93e680
raw
history blame
5.89 kB
/**
* μž₯치 관리 μ „μš© 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;
}
}