.app-container{max-width:1200px;margin:0 auto;padding:1.5rem 1rem 3rem;display:flex;flex-direction:column;min-height:100vh;gap:1.5rem}.app-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.header-brand{display:flex;align-items:center;gap:.75rem}.brand-icon{width:2rem;height:2rem;color:var(--color-primary)}.header-brand h1{font-size:1.5rem;font-weight:700;line-height:1.2}.header-subtitle{font-size:.875rem;color:var(--color-text-muted)}.header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.admin-menu{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600}.badge-admin{background-color:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.app-main{display:flex;flex-direction:column;gap:1.5rem;flex:1}.app-footer{text-align:center;font-size:.875rem;color:var(--color-text-muted);padding-top:2rem;border-top:1px solid var(--color-border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s ease-in-out;white-space:nowrap}.btn svg{width:1rem;height:1rem}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-fg)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-secondary-fg);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-hover)}.btn-ghost{background-color:transparent;color:var(--color-text);border-color:var(--color-border)}.btn-ghost:hover:not(:disabled){background-color:var(--color-secondary)}.btn-danger{background-color:var(--color-danger);color:var(--color-danger-fg)}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-hover)}.btn-sm{padding:.35rem .65rem;font-size:.8125rem}.btn-xs{padding:.2rem .45rem;font-size:.75rem}.btn:disabled{opacity:.6;cursor:not-allowed}.filter-card,.table-card,.chart-section,.form-card,.list-card{background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.25rem;box-shadow:var(--shadow-sm)}.filter-header,.table-header,.section-header,.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:.75rem;flex-wrap:wrap}.filter-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}@media (min-width: 768px){.filter-grid{grid-template-columns:1fr 1fr}}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-label{font-size:.8125rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.025em}.series-pills{display:flex;flex-wrap:wrap;gap:.5rem}.pill-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;border-radius:9999px;font-size:.8125rem;font-weight:500;border:1.5px solid var(--color-border);background-color:transparent;color:var(--color-text);cursor:pointer;transition:all .15s ease}.pill-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.series-shape{font-size:.875rem}.unit-tag{opacity:.85}.preset-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.date-inputs{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.25rem}.input-field{display:flex;flex-direction:column;gap:.25rem}.input-field label{font-size:.75rem;color:var(--color-text-muted)}.input-field input,.form-group input,.form-group select{padding:.45rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:#fff;color:var(--color-text);font-size:.875rem;width:100%}.chart-wrapper{display:flex;flex-direction:column;gap:1rem}.chart-legend{display:flex;flex-wrap:wrap;gap:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.legend-item{display:flex;align-items:center;gap:.4rem;font-size:.8125rem;font-weight:500}.chart-svg-container{width:100%;aspect-ratio:800 / 360;position:relative}.chart-svg{width:100%;height:100%;display:block;overflow:visible}.chart-empty{padding:3rem 1rem;text-align:center;color:var(--color-text-muted)}.pulse-ring{animation:pulse 1.5s infinite}@keyframes pulse{0%{r:8px;opacity:1}to{r:18px;opacity:0}}.table-responsive{overflow-x:auto}.data-table,.compact-table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}.data-table th,.compact-table th{padding:.65rem .75rem;background-color:var(--color-secondary);color:var(--color-text-muted);font-weight:600;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table td,.compact-table td{padding:.65rem .75rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.clickable-row{cursor:pointer;transition:background-color .15s ease}.clickable-row:hover{background-color:#f1f5f9}.clickable-row.row-selected{background-color:#eff6ff!important;outline:2px solid var(--color-primary);outline-offset:-2px}.series-tag{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-sm);border:1px solid;font-size:.75rem;font-weight:600}.id-badge{color:var(--color-text-muted);font-family:monospace}.value-cell{font-variant-numeric:tabular-nums}.table-empty{text-align:center;padding:2rem 1rem;color:var(--color-text-muted)}.table-pagination{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;margin-top:1rem}.page-indicator{font-size:.8125rem;color:var(--color-text-muted)}.admin-panel{display:flex;flex-direction:column;gap:1.25rem;border:2px solid #bfdbfe;background-color:#f8fafc;border-radius:var(--radius-md);padding:1.25rem}.tab-buttons{display:flex;gap:.5rem}.tab-btn{padding:.4rem .85rem;border-radius:var(--radius-sm);background-color:#fff;border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;font-weight:500;font-size:.875rem}.tab-btn.active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.admin-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}@media (min-width: 900px){.admin-grid{grid-template-columns:360px 1fr}}.form-group{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.85rem}.form-group label{font-size:.8125rem;font-weight:600}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.color-picker-row{display:flex;align-items:center;gap:.5rem}.color-picker-row input[type=color]{width:2.5rem;height:2.25rem;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.form-actions{display:flex;gap:.5rem;margin-top:.5rem}.color-dot{display:inline-block;width:.875rem;height:.875rem;border-radius:50%;border:1px solid rgba(0,0,0,.1)}.row-actions{display:flex;gap:.35rem}.api-key-box{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.api-key-header{display:flex;justify-content:space-between;align-items:center}.api-key-code{font-family:monospace;font-size:.875rem;padding:.5rem;background-color:#fff;border:1px dashed #16a34a;border-radius:var(--radius-sm);word-break:break-all;-webkit-user-select:all;user-select:all}.api-key-warn{font-size:.75rem;color:#15803d}.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;display:flex;justify-content:space-between;align-items:center}.alert-error{background-color:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-danger)}.alert-success{background-color:var(--color-success-bg);border:1px solid #bbf7d0;color:#15803d}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a99;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card{background-color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);width:100%;max-width:440px;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:1.125rem;font-weight:600}.btn-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--color-text-muted);cursor:pointer;padding:.25rem}.modal-form{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem}.print-summary{display:none}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media print{body{background-color:#fff;color:#000}.print-summary{display:block!important;margin-bottom:1.5rem;border-bottom:2px solid #000000;padding-bottom:.5rem}.app-container{max-width:100%;padding:0;margin:0;gap:1.5rem}.no-print,button,input,select,.modal-backdrop,.table-pagination,.tab-buttons,.admin-panel,.pulse-ring{display:none!important}.filter-card,.table-card,.chart-section{border:none;box-shadow:none;padding:0;break-inside:avoid}.data-table th,.data-table td{border-color:#cbd5e1}.chart-svg-container{max-height:380px}}@media (max-width: 480px){.date-inputs{grid-template-columns:1fr}.header-actions{width:100%;justify-content:flex-start}.btn{width:100%}.table-header{flex-direction:column;align-items:flex-start}}:root{--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--color-bg: #f8fafc;--color-card: #ffffff;--color-text: #0f172a;--color-text-muted: #475569;--color-border: #e2e8f0;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-fg: #ffffff;--color-secondary: #f1f5f9;--color-secondary-hover: #e2e8f0;--color-secondary-fg: #1e293b;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-danger-fg: #ffffff;--color-success: #16a34a;--color-success-bg: #f0fdf4;--color-error-bg: #fef2f2;--color-error-border: #fecaca;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
