:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-tertiary: #e8e8e8;--text-primary: #1a1a1a;--text-secondary: #555555;--text-dim: #888888;--accent-primary: #bc002d;--accent-red: #bc002d;--accent-gold: #e8b84b;--accent-green: #22c55e;--flag-red: #bc002d;--border-color: #dddddd;--border-bright: #999999;--font-body: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--font-mono: "JetBrains Mono", "IBM Plex Mono", "Fira Code", "Courier New", monospace;--spacing-xs: 3px;--spacing-sm: 6px;--spacing-md: 12px;--spacing-lg: 20px;--spacing-xl: 28px}@media(max-width:600px){:root{--spacing-md: 10px;--spacing-lg: 14px;--spacing-xl: 20px}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent-primary);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--accent-primary);color:#fff}.mono,code,pre,.data-value,.results__summary-value,.results__bar-label,.failure-list__cost-range,.data-table td,.nav__list,.nav__mobile-list{font-family:var(--font-mono)}input,select,textarea,button{font-family:var(--font-body);font-size:14px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);padding:var(--spacing-sm) var(--spacing-md);outline:none;border-radius:2px;-webkit-appearance:none;appearance:none}input:focus,select:focus,textarea:focus{border-color:var(--accent-primary)}button{cursor:pointer;border-color:var(--accent-primary);color:var(--accent-primary);background:transparent;letter-spacing:.03em;font-weight:500}button:hover{background:var(--accent-primary);color:#fff}.app{max-width:840px;margin:0 auto;padding:var(--spacing-md);min-height:100vh}.app__main{padding:var(--spacing-md) 0}@media(max-width:600px){body{font-size:13px}.app{padding:var(--spacing-sm)}.app__main{padding:var(--spacing-sm) 0}button,select,input{min-height:44px}}.header{background:var(--bg-primary);border-bottom:1px solid var(--border-color)}.header__hinomaru-line{height:3px;background:var(--flag-red)}.header__inner{max-width:1200px;margin:0 auto;padding:var(--spacing-md) var(--spacing-lg)}.header__logo-link{display:flex;flex-direction:column;gap:var(--spacing-xs);text-decoration:none;color:inherit}.header__logo-link:hover .header__title{color:var(--accent-primary)}.header__title{font-family:var(--font-body);font-size:1.5rem;font-weight:700;color:var(--text-primary);letter-spacing:.05em;transition:color .15s ease}.header__subtitle{font-family:var(--font-body);font-size:.72rem;color:var(--text-secondary);letter-spacing:.08em}@media(max-width:600px){.header__inner{padding:var(--spacing-sm) var(--spacing-md)}.header__title{font-size:1.25rem}}.nav{background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.nav__inner{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;align-items:center;justify-content:space-between}.nav__list{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:0}.nav__item{display:flex;align-items:center}.nav__sep{color:var(--border-bright);padding:0 var(--spacing-sm);font-family:var(--font-mono);font-size:.8rem;-webkit-user-select:none;user-select:none}.nav__link{display:block;padding:var(--spacing-sm) var(--spacing-sm);font-family:var(--font-mono);font-size:.8rem;color:var(--text-secondary);text-decoration:none;white-space:nowrap;min-height:44px;display:flex;align-items:center;transition:color .15s ease}.nav__link:hover{color:var(--accent-primary)}.nav__link--active{color:var(--accent-primary);font-weight:700}.nav__hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:var(--spacing-sm)}.nav__hamburger-line{display:block;width:22px;height:2px;background:var(--text-primary);transition:all .2s ease}.nav__hamburger--open .nav__hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav__hamburger--open .nav__hamburger-line:nth-child(2){opacity:0}.nav__hamburger--open .nav__hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav__mobile-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border-color);background:var(--bg-primary)}.nav__mobile-item{border-bottom:1px solid var(--border-color)}.nav__mobile-link{display:flex;align-items:center;padding:0 var(--spacing-lg);min-height:44px;font-family:var(--font-mono);font-size:.85rem;color:var(--text-primary);text-decoration:none}.nav__mobile-link:hover{background:var(--bg-secondary);color:var(--accent-primary)}.nav__mobile-link--active{color:var(--accent-primary);font-weight:700;border-left:3px solid var(--accent-primary)}@media(max-width:700px){.nav__list{display:none}.nav__hamburger{display:flex}.nav__inner{padding:0 var(--spacing-md)}}@media(min-width:701px){.nav__mobile-list{display:none}}.ad-slot{min-height:90px;border:1px dashed var(--border-bright);background:var(--bg-secondary)}.vehicle-form{background:var(--bg-primary);border:1px solid var(--border-color);padding:var(--spacing-lg)}.vehicle-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.vehicle-form__field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.vehicle-form__label{font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.vehicle-form__select,.vehicle-form__input{font-family:var(--font-mono);font-size:.9rem;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);padding:var(--spacing-sm) var(--spacing-md);min-height:44px;outline:none;transition:border-color .15s ease;appearance:none;-webkit-appearance:none;border-radius:0}.vehicle-form__select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23555' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:var(--spacing-xl);cursor:pointer}.vehicle-form__select:focus,.vehicle-form__input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #0066cc26}.vehicle-form__select:disabled{background-color:var(--bg-secondary);color:var(--text-dim);cursor:not-allowed}.vehicle-form__actions{margin-top:var(--spacing-lg);display:flex;justify-content:flex-start}.vehicle-form__submit{font-family:var(--font-mono);font-size:.9rem;font-weight:700;color:#fff;background:var(--accent-primary);border:none;padding:var(--spacing-sm) var(--spacing-xl);min-height:44px;cursor:pointer;letter-spacing:.03em;transition:background .15s ease,opacity .15s ease}.vehicle-form__submit:hover:not(:disabled){background:#05a}.vehicle-form__submit:disabled{opacity:.45;cursor:not-allowed}@media(max-width:600px){.vehicle-form__grid{grid-template-columns:1fr}.vehicle-form{padding:var(--spacing-md)}.vehicle-form__submit{width:100%;justify-content:center}}.results{background:var(--bg-primary);border:1px solid var(--border-color);padding:var(--spacing-lg)}.results--error{border-color:var(--accent-red);background:#fff5f5}.results__error-msg{font-family:var(--font-mono);font-size:.9rem;color:var(--accent-red);margin:0}.results__title{font-family:var(--font-mono);font-size:1rem;font-weight:700;color:var(--text-primary);margin:0 0 var(--spacing-xs) 0}.results__meta{font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim);margin:0 0 var(--spacing-lg) 0}.results__summary{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.results__summary-card{background:var(--bg-secondary);border:1px solid var(--border-color);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-xs)}.results__summary-card--highlight{border-color:var(--accent-primary);background:#f0f7ff}.results__summary-label{font-family:var(--font-mono);font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.results__summary-value{font-family:var(--font-mono);font-size:1.15rem;font-weight:700;color:var(--text-primary)}.results__summary-card--highlight .results__summary-value{color:var(--accent-primary)}.results__section-title{font-family:var(--font-mono);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0}.results__histogram{margin-bottom:var(--spacing-lg)}.results__bars{display:flex;flex-direction:column;gap:4px}.results__bar-row{display:flex;align-items:center;gap:var(--spacing-sm)}.results__bar-label{font-family:var(--font-mono);font-size:.7rem;color:var(--text-secondary);min-width:70px;text-align:right}.results__bar-track{flex:1;height:16px;background:var(--bg-tertiary)}.results__bar-fill{height:100%;background:var(--accent-primary);transition:width .3s ease;min-width:2px}.results__bar-count{font-family:var(--font-mono);font-size:.7rem;color:var(--text-dim);min-width:36px}.results__risks{margin-bottom:0}.results__table-wrap{overflow-x:auto}.results__table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.8rem}.results__table th{text-align:left;padding:var(--spacing-sm) var(--spacing-sm);border-bottom:2px solid var(--border-color);color:var(--text-secondary);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;white-space:nowrap}.results__table td{padding:var(--spacing-sm) var(--spacing-sm);border-bottom:1px solid var(--border-color);vertical-align:middle}.results__table tr:last-child td{border-bottom:none}.results__table tr:hover td{background:var(--bg-secondary)}.results__td-name{color:var(--text-primary);font-weight:600}.results__td-mono{color:var(--text-secondary);font-variant-numeric:tabular-nums}.results__severity{display:inline-block;padding:2px 8px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-width:1px;border-style:solid}.results__severity--hoch{color:var(--accent-red);border-color:var(--accent-red);background:#fff5f5}.results__severity--mittel{color:#a07800;border-color:var(--accent-gold);background:#fffbe6}.results__severity--niedrig{color:#157a3a;border-color:var(--accent-green);background:#f0faf4}@media(max-width:600px){.results{padding:var(--spacing-md)}.results__summary{grid-template-columns:1fr}}
