/* FACILINEX AI営業システム MVP 共通スタイル */

:root {
  --facilinex-navy: #0f2742;
  --facilinex-blue: #1d4e89;
  --facilinex-accent: #0ea5a4;
}

body {
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", "Segoe UI", sans-serif;
  color: #1f2937;
  background-color: #f6f8fb;
}

.site-nav a.nav-link { position: relative; transition: color .15s ease; }
.site-nav a.nav-link:hover { color: var(--facilinex-accent); }
.site-nav a.nav-link.active { color: var(--facilinex-accent); font-weight: 700; }
.site-nav a.nav-link.active::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -6px;
  height: 2px; background: var(--facilinex-accent); border-radius: 2px;
}
#mobile-menu.open { display: block; }

.badge {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .15rem .6rem; border-radius: 999px; font-size: .75rem;
  font-weight: 700; white-space: nowrap;
}
.badge-verified   { background:#dcfce7; color:#166534; }
.badge-ai         { background:#fef9c3; color:#854d0e; }
.badge-unconfirmed{ background:#f1f5f9; color:#475569; }
.badge-prohibited { background:#fee2e2; color:#991b1b; }
.badge-review     { background:#ffedd5; color:#9a3412; }
.badge-allowed    { background:#dcfce7; color:#166534; }
.badge-demo       { background:#fde68a; color:#78350f; }
.badge-notimpl    { background:#e2e8f0; color:#334155; }
.badge-mvp        { background:#dbeafe; color:#1e40af; }
.badge-customer   { background:#ede9fe; color:#5b21b6; }
.badge-partner    { background:#cffafe; color:#0e7490; }
.badge-hint       { background:#fef9c3; color:#854d0e; }
.badge-review-flag{ background:#fff7ed; color:#c2410c; border:1px solid #fdba74; }
.badge-excluded-flow{ background:#f1f5f9; color:#475569; border:1px solid #cbd5e1; }

.notice-box { border: 1px solid #fbbf24; background: #fffbeb; border-radius: .5rem; padding: 1rem 1.25rem; }
.assumption-box { border: 1px dashed #94a3b8; background: #f8fafc; border-radius: .5rem; padding: 1rem 1.25rem; }
.danger-box { border: 1px solid #fca5a5; background: #fef2f2; border-radius: .5rem; padding: 1rem 1.25rem; }
.success-box { border: 1px solid #86efac; background: #f0fdf4; border-radius: .5rem; padding: 1rem 1.25rem; }

table.spec-table { width: 100%; border-collapse: collapse; font-size: .825rem; }
table.spec-table th {
  background: var(--facilinex-navy); color: #fff; padding: .55rem .7rem;
  text-align: left; white-space: nowrap; position: sticky; top: 0; z-index: 1;
}
table.spec-table td { padding: .55rem .7rem; border-bottom: 1px solid #e2e8f0; vertical-align: top; }
table.spec-table tr:nth-child(even) td { background: #f8fafc; }
table.spec-table tr:hover td { background: #eff6ff; }
.table-wrap { overflow-x: auto; max-height: 70vh; overflow-y: auto; }

.spinner {
  width: 1.1rem; height: 1.1rem; border: 2px solid rgba(255,255,255,.4);
  border-top-color: #fff; border-radius: 50%; animation: fx-spin .7s linear infinite;
  display: inline-block;
}
@keyframes fx-spin { to { transform: rotate(360deg); } }

.kpi-card { background:#fff; border:1px solid #e2e8f0; border-radius:.75rem; padding:1rem; text-align:center; }
.kpi-value { font-size:1.75rem; font-weight:800; }

input[type=text], input[type=password], input[type=number], select, textarea {
  border: 1px solid #cbd5e1; border-radius: .5rem; padding: .5rem .75rem; font-size: .875rem;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--facilinex-accent); outline-offset: 1px; }

.btn {
  display: inline-flex; align-items: center; gap: .4rem; font-weight: 700;
  padding: .55rem 1.1rem; border-radius: .5rem; font-size: .875rem; cursor: pointer;
  transition: filter .15s ease, opacity .15s ease; border: none;
}
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn-primary { background: var(--facilinex-blue); color: #fff; }
.btn-primary:hover:not(:disabled) { filter: brightness(1.1); }
.btn-accent { background: var(--facilinex-accent); color: #06282a; }
.btn-accent:hover:not(:disabled) { filter: brightness(1.08); }
.btn-outline { background: #fff; border: 1px solid #cbd5e1; color: #334155; }
.btn-outline:hover:not(:disabled) { background: #f1f5f9; }
.btn-danger { background: #dc2626; color: #fff; }
.btn-danger:hover:not(:disabled) { filter: brightness(1.1); }
.btn-sm { padding: .35rem .7rem; font-size: .75rem; }

.modal-backdrop {
  position: fixed; inset: 0; background: rgba(15,23,42,.6); z-index: 100;
  display: flex; align-items: center; justify-content: center; padding: 1rem;
}
.modal-box { background: #fff; border-radius: .75rem; max-width: 640px; width: 100%; max-height: 90vh; overflow-y: auto; }

footer a { color: #93c5fd; }
