:root{--color-bg: #f7f7f8;--color-surface: #ffffff;--color-border: #e4e4e7;--color-text: #1f2328;--color-text-muted: #6b7280;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-success: #16a34a;--color-success-bg: #ecfdf3;--color-error-bg: #fef2f2;--color-error-border: #fecaca;--color-warning-bg: #fffbeb;--color-warning-border: #fde68a;--radius: 10px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 8px rgba(0, 0, 0, .06)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}.app-main{max-width:1080px;margin:0 auto;padding:24px 16px 48px}.page-title{margin:0 0 4px;font-size:1.6rem;font-weight:700}.page-subtitle{margin:0 0 24px;color:var(--color-text-muted);font-size:.95rem}.page-header-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between}.navbar{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.navbar-inner{max-width:1080px;margin:0 auto;padding:14px 16px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.navbar-brand{font-weight:700;font-size:1.05rem}.navbar-links{display:flex;gap:8px}.nav-link{text-decoration:none;color:var(--color-text-muted);font-weight:600;font-size:.9rem;padding:8px 12px;border-radius:8px}.nav-link:hover{background-color:var(--color-bg)}.nav-link--active{color:var(--color-primary);background-color:#eef2ff}.stat-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:24px}@media (min-width: 640px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 900px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.stat-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm)}.stat-card-title{margin:0 0 6px;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);font-weight:600}.stat-card-value{margin:0;font-size:1.6rem;font-weight:700}.status-panel{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}.status-panel-title{margin:0 0 14px;font-size:1.05rem}.status-badge-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--color-border)}.status-badge-row:last-of-type{border-bottom:none}.status-badge-label{font-weight:600}.status-pill{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.03em}.status-pill--online{background-color:var(--color-success-bg);color:var(--color-success)}.status-pill--offline{background-color:var(--color-error-bg);color:var(--color-danger)}.status-pill--checking{background-color:#f3f4f6;color:var(--color-text-muted)}.status-hint{margin:14px 0 0;font-size:.88rem;color:var(--color-text-muted);line-height:1.5}.status-hint--success{color:var(--color-success)}.status-hint code{background-color:var(--color-bg);padding:1px 5px;border-radius:4px;font-size:.85em}.banner{padding:12px 14px;border-radius:8px;margin-bottom:16px;font-size:.9rem;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.banner--error{background-color:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-danger)}.banner--warning{background-color:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:#92400e}.btn{border:none;border-radius:8px;padding:10px 16px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-small{padding:6px 10px;font-size:.8rem}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg)}.btn-danger{background-color:#fff;color:var(--color-danger);border:1px solid var(--color-error-border)}.btn-danger:hover:not(:disabled){background-color:var(--color-danger);color:#fff}.product-form{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;margin-bottom:20px;box-shadow:var(--shadow-sm);max-width:420px}.product-form-title{margin:0 0 14px;font-size:1.05rem}.form-row{margin-bottom:14px;display:flex;flex-direction:column;gap:6px}.form-row label{font-size:.85rem;font-weight:600;color:var(--color-text-muted)}.form-row input{padding:9px 11px;border:1px solid var(--color-border);border-radius:8px;font-size:.95rem;font-family:inherit}.form-row input:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.form-actions{display:flex;gap:10px;margin-top:4px}.form-error{background-color:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-danger);padding:8px 10px;border-radius:6px;font-size:.85rem;margin:0 0 14px}.product-table{width:100%;border-collapse:collapse;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);display:none}.product-table th,.product-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--color-border);font-size:.9rem}.product-table th{background-color:var(--color-bg);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.product-table tr:last-child td{border-bottom:none}@media (min-width: 720px){.product-table{display:table}.product-card-list{display:none}}.product-card-list{display:grid;gap:12px}.product-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm)}.product-card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.product-card-name{font-weight:700;font-size:1rem}.product-card-price{font-weight:700;color:var(--color-primary)}.product-card-meta{margin:0 0 6px;font-size:.85rem;color:var(--color-text-muted)}.product-card button{margin-top:10px}.empty-state{color:var(--color-text-muted);padding:24px;text-align:center;background-color:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius)}
