*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--primary:#0077cc;--primary-dark:#005fa3;--primary-light:#3399dd;--accent:#e8f4fd;--accent-hover:#d0eafb;--bg:#f5f9fc;--white:#ffffff;--text:#1a1a2e;--text-secondary:#555;--text-muted:#888;--border:#dde5ed;--success:#28a745;--danger:#dc3545;--warning:#ffc107;--gold:#d4a017;--radius:8px;--shadow:0 2px 8px rgba(0,0,0,0.08);--shadow-lg:0 4px 16px rgba(0,0,0,0.12)}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark)}.nav{background:var(--white);border-bottom:2px solid var(--primary);padding:0 1.5rem;justify-content:space-between;height:60px;position:-webkit-sticky;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}.nav,.nav-brand a{display:flex;align-items:center}.nav-brand a{font-size:1.25rem;font-weight:700;color:var(--primary);gap:.5rem}.nav-links{display:flex;align-items:center;gap:1rem}.nav-links a{font-size:.95rem;font-weight:500;padding:.4rem .8rem;border-radius:var(--radius);transition:background .2s}.nav-links a.active,.nav-links a:hover{background:var(--accent)}.nav-links a.active{color:var(--primary-dark);font-weight:600}.container{max-width:1100px;margin:0 auto;padding:1.5rem}.page-header{margin-bottom:1.5rem}.page-header h1{font-size:1.5rem;color:var(--primary-dark);margin-bottom:.25rem}.page-header p{color:var(--text-secondary);font-size:.9rem}.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;margin-bottom:1.5rem}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.card-header h2{font-size:1.1rem;color:var(--text)}.btn-primary{display:inline-flex;align-items:center;gap:.3rem;background:var(--primary);color:var(--white)!important;padding:.5rem 1rem;border:none;border-radius:var(--radius);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-primary:hover{background:var(--primary-dark);color:var(--white)!important}.btn-secondary{display:inline-flex;align-items:center;gap:.3rem;background:var(--accent);color:var(--primary);padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:var(--accent-hover)}.btn-danger{display:inline-flex;align-items:center;gap:.3rem;background:var(--white);color:var(--danger);padding:.5rem 1rem;border:1px solid var(--danger);border-radius:var(--radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-danger:hover{background:#fdf0f0}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.btn-group{display:flex;gap:.5rem}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:.9rem}thead{background:var(--accent)}th{text-align:left;padding:.75rem .6rem;font-weight:600;color:var(--primary-dark);white-space:nowrap;border-bottom:2px solid var(--primary)}td{padding:.65rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:hover{background:var(--accent)}.time-cell{font-family:SF Mono,Fira Code,monospace;font-weight:600;font-size:.95rem}.diff-faster{color:var(--success);font-weight:600}.diff-slower{color:var(--danger);font-weight:600}.filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.filters,.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.3rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem;font-family:inherit;transition:border-color .2s;background:var(--white)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,119,204,.15)}.form-group textarea{min-height:80px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem}select{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem;background:var(--white);cursor:pointer}select:focus{outline:none;border-color:var(--primary)}.graph-container{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem}.graph-controls{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;align-items:center}.graph-empty{text-align:center;padding:3rem 1rem;color:var(--text-muted);font-size:1rem}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.5rem;gap:1.5rem}.stat-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;text-align:center;border-top:3px solid var(--primary)}.stat-card .stat-value{font-size:2rem;font-weight:700;color:var(--primary)}.stat-card .stat-label{font-size:.85rem;color:var(--text-secondary);margin-top:.25rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge-heat{background:#e3f2fd;color:#1565c0}.badge-final{background:#fff8e1;color:#f57f17}.badge-relay{background:#e8f5e9;color:#2e7d32}.message-info{background:var(--accent);color:var(--primary-dark)}.message-error,.message-info{padding:1rem;border-radius:var(--radius);text-align:center;margin:1rem 0}.message-error{background:#fdf0f0;color:var(--danger)}.message-success{background:#e8f5e9;color:var(--success);padding:1rem;border-radius:var(--radius);text-align:center;margin:1rem 0}.loading{text-align:center;padding:2rem;color:var(--text-muted)}@media (max-width:768px){.nav{padding:0 1rem}.nav-brand a{font-size:1rem}.nav-links{gap:.5rem}.nav-links a{font-size:.8rem;padding:.3rem .5rem}.container{padding:1rem}.dashboard-grid,.form-row{grid-template-columns:1fr}table{font-size:.8rem}td,th{padding:.5rem .4rem}.btn-group{flex-direction:column}.filters,.graph-controls{flex-direction:column;align-items:stretch}}@media (max-width:480px){.nav{flex-direction:column;height:auto;padding:.75rem 1rem;gap:.5rem}.nav-links{flex-wrap:wrap;justify-content:center}}