/* 見守り Mimamori — 藍墨 × 山吹 和紙テーマ（report と系列一致） */
:root{
  --paper:#F4F0E6;
  --paper-2:#ECE6D6;
  --panel:#FBF9F3;
  --ink:#1B2A45;          /* 藍墨 indigo ink, dominant */
  --ink-2:#3C4A66;
  --ink-soft:#5B6880;
  --gold:#B0832F;          /* 山吹 antique gold, restraint accent */
  --gold-soft:#CBA75A;
  --line:rgba(27,42,69,.16);
  --line-2:rgba(27,42,69,.08);
  --ok:#3F6B4E;
  --attention:#9A5A2A;
  --alert:#B23A3A;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"Noto Sans JP","Zen Kaku Gothic New",system-ui,sans-serif;
  line-height:1.7;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 1;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(circle at 16% 10%, rgba(176,131,47,.05), transparent 38%),
    radial-gradient(circle at 86% 84%, rgba(27,42,69,.05), transparent 42%);
}

/* ---------- header ---------- */
header.bar{
  position:relative;z-index:2;display:flex;align-items:center;gap:18px;
  padding:16px 26px;border-bottom:1px solid var(--line);background:var(--panel);
}
.brand{font-family:"Shippori Mincho",serif;font-weight:800;font-size:1.2rem;letter-spacing:.04em;}
.brand .en{font-family:"Noto Sans JP";font-weight:400;font-size:.72rem;color:var(--ink-soft);letter-spacing:.18em;margin-left:8px;text-transform:uppercase;}
.tagline{font-size:.8rem;color:var(--ink-soft);}
.spacer{flex:1;}
.conn{display:flex;align-items:center;gap:7px;font-size:.74rem;color:var(--ink-soft);}
.conn .pulse{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(63,107,78,.5);}
.conn.live .pulse{animation:pulse 2s infinite;}
.conn.down .pulse{background:var(--alert);animation:none;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(63,107,78,.5);}70%{box-shadow:0 0 0 7px rgba(63,107,78,0);}100%{box-shadow:0 0 0 0 rgba(63,107,78,0);}}
select#lang{
  font-family:inherit;font-size:.8rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:4px;padding:5px 9px;cursor:pointer;
}

/* ---------- layout ---------- */
.layout{
  position:relative;z-index:1;display:grid;
  grid-template-columns:268px 1fr 312px;gap:0;min-height:calc(100vh - 59px);
}
@media(max-width:1000px){.layout{grid-template-columns:1fr;}}
.col{padding:20px 22px;}
.col-left{border-right:1px solid var(--line);}
.col-right{border-left:1px solid var(--line);background:var(--panel);}
.col-title{
  font-family:"Shippori Mincho",serif;font-weight:700;font-size:.82rem;
  letter-spacing:.16em;color:var(--gold);text-transform:uppercase;margin:0 0 14px;
}

/* ---------- senior list ---------- */
.s-item{
  display:flex;align-items:center;gap:12px;padding:13px 14px;margin-bottom:9px;
  background:var(--panel);border:1px solid var(--line);border-radius:5px;cursor:pointer;
  transition:transform .25s,border-color .25s,box-shadow .25s;
}
.s-item:hover{transform:translateY(-2px);box-shadow:0 10px 24px -18px rgba(27,42,69,.5);}
.s-item.active{border-color:var(--gold);background:#fff;}
.dot{width:11px;height:11px;border-radius:50%;flex:none;}
.dot.ok{background:var(--ok);}
.dot.attention{background:var(--attention);}
.dot.alert{background:var(--alert);animation:blink 1.1s infinite;}
@keyframes blink{50%{opacity:.3;}}
.s-meta{flex:1;min-width:0;}
.s-name{font-weight:700;font-size:.95rem;color:var(--ink);}
.s-sub{font-size:.72rem;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.s-badge{font-size:.7rem;font-weight:700;color:var(--alert);}

/* ---------- center dashboard ---------- */
.banner{
  display:flex;align-items:center;gap:18px;border-radius:7px;padding:22px 26px;
  color:#fff;margin-bottom:22px;background:var(--ink);
}
.banner.ok{background:linear-gradient(120deg,#26412f,#3F6B4E);}
.banner.attention{background:linear-gradient(120deg,#6e3f1c,#9A5A2A);}
.banner.alert{background:linear-gradient(120deg,#7d2424,#B23A3A);}
.banner .b-name{font-family:"Shippori Mincho",serif;font-weight:800;font-size:1.5rem;}
.banner .b-sub{font-size:.82rem;opacity:.9;margin-top:3px;}
.banner .b-state{margin-left:auto;text-align:right;}
.banner .b-state .big{font-family:"Shippori Mincho",serif;font-weight:700;font-size:1.2rem;}
.banner .b-state .small{font-size:.74rem;opacity:.85;}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:14px;margin-bottom:24px;}
.card{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:16px 18px;}
.card .ct{font-size:.7rem;letter-spacing:.12em;color:var(--gold);text-transform:uppercase;font-weight:600;margin-bottom:8px;}
.card .cv{font-family:"Shippori Mincho",serif;font-weight:700;font-size:1.45rem;color:var(--ink);line-height:1.2;}
.card .cv small{font-size:.85rem;color:var(--ink-soft);font-weight:400;}
.card .cnote{font-size:.72rem;color:var(--ink-soft);margin-top:5px;}
.card.warn{border-color:rgba(178,58,58,.5);background:#fbeeee;}

.section-h{font-family:"Shippori Mincho",serif;font-weight:700;font-size:1rem;color:var(--ink);margin:0 0 12px;letter-spacing:.04em;}
.timeline{border-left:2px solid var(--line);padding-left:18px;}
.tl{position:relative;padding:7px 0;font-size:.84rem;color:var(--ink-2);}
.tl::before{content:"";position:absolute;left:-25px;top:13px;width:8px;height:8px;border-radius:50%;background:var(--gold-soft);}
.tl.alert::before{background:var(--alert);}
.tl .tlt{color:var(--ink-soft);font-size:.74rem;margin-right:8px;font-variant-numeric:tabular-nums;}

.empty{color:var(--ink-soft);font-size:.86rem;padding:30px 0;text-align:center;}

/* ---------- alerts ---------- */
.alert-item{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--attention);border-radius:5px;padding:13px 15px;margin-bottom:11px;}
.alert-item.alert{border-left-color:var(--alert);}
.alert-item .ah{display:flex;align-items:baseline;gap:8px;}
.alert-item .alvl{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:1px 7px;border-radius:999px;}
.alert-item .alvl.alert{background:var(--alert);color:#fff;}
.alert-item .alvl.attention{background:var(--attention);color:#fff;}
.alert-item .awho{font-weight:700;font-size:.86rem;color:var(--ink);}
.alert-item .amsg{font-size:.82rem;color:var(--ink-2);margin:6px 0 9px;}
.alert-item .atime{font-size:.7rem;color:var(--ink-soft);font-variant-numeric:tabular-nums;}
.alert-item.acked{opacity:.5;}
.ack-btn{font-family:inherit;font-size:.74rem;color:var(--gold);background:transparent;border:1px solid var(--line);border-radius:4px;padding:4px 11px;cursor:pointer;}
.ack-btn:hover{color:var(--ink);border-color:var(--gold);}

/* ---------- demo console ---------- */
.demo{margin-top:26px;padding-top:18px;border-top:1px dashed var(--line);}
.demo p{font-size:.74rem;color:var(--ink-soft);margin:0 0 10px;}
.demo .btns{display:flex;flex-wrap:wrap;gap:7px;}
.demo button{
  font-family:inherit;font-size:.76rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:4px;padding:6px 11px;cursor:pointer;transition:.2s;
}
.demo button:hover{border-color:var(--gold);background:#fff;}
.demo button.recover{color:var(--ok);}

/* share button (banner) */
.share-btn{margin-top:10px;font-family:inherit;font-size:.78rem;color:#fff;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.3);border-radius:5px;padding:5px 12px;cursor:pointer;transition:.2s;}
.share-btn:hover{background:rgba(255,255,255,.28);}

/* alert why + forward */
.alert-item .awhy{font-size:.78rem;color:var(--ink-soft);background:var(--paper-2);border-radius:4px;
  padding:6px 9px;margin:0 0 8px;line-height:1.5;}
.alert-item .awhy b{color:var(--gold);}
.fwd-btn{font-family:inherit;font-size:.74rem;color:var(--ink-2);background:transparent;
  border:1px solid var(--line);border-radius:4px;padding:4px 10px;cursor:pointer;}
.fwd-btn:hover{border-color:var(--gold);color:var(--ink);}
.fwd-menu{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;}
.fwd-menu .route-opt{font-family:inherit;font-size:.72rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:4px;padding:4px 9px;cursor:pointer;}
.fwd-menu .route-opt:hover{border-color:var(--gold);background:#fff;}

/* notifications feed */
.notify-item{display:flex;align-items:center;gap:8px;padding:8px 10px;margin-bottom:7px;
  background:var(--paper);border:1px solid var(--line-2);border-radius:5px;font-size:.78rem;}
.notify-item .nlvl{font-size:.7rem;}
.notify-item .nlvl.alert{color:var(--alert);}
.notify-item .nlvl.attention{color:var(--attention);}
.notify-item .nwho{font-weight:700;color:var(--ink);}
.notify-item .nch{color:var(--ink-soft);font-size:.7rem;}
.notify-item .atime{margin-left:auto;}

/* trend sparklines (D5 history) */
.trends{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px;}
@media(max-width:620px){.trends{grid-template-columns:1fr;}}
.trend{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:14px 16px 8px;}
.trend-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px;}
.trend-h span{font-size:.7rem;letter-spacing:.12em;color:var(--gold);text-transform:uppercase;font-weight:600;}
.trend-h b{font-family:"Shippori Mincho",serif;font-size:1.05rem;color:var(--ink);}
.trend svg{display:block;}

/* 移动端触点（D2 报告「移动端弱」改善）*/
@media(max-width:1000px){
  header.bar{flex-wrap:wrap;gap:10px 14px;padding:12px 16px;}
  header.bar .tagline{display:none;}
  .col{padding:16px;}
  .col-left,.col-right{border:none;border-top:1px solid var(--line);}
  .banner{flex-direction:column;align-items:flex-start;gap:10px;}
  .banner .b-state{margin-left:0;text-align:left;}
  .cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));}
}
@media(max-width:560px){
  .cards{grid-template-columns:1fr 1fr;}
  .brand{font-size:1.05rem;}
}

/* POC 横幅（寻求投资人）*/
.poc-banner{
  position:relative;z-index:2;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:9px 22px;font-size:.8rem;color:var(--ink-2);
  background:linear-gradient(90deg,rgba(176,131,47,.14),rgba(176,131,47,.04));
  border-bottom:1px solid var(--gold);
}
.poc-banner .poc-tag{
  font-family:"Shippori Mincho",serif;font-weight:800;font-size:.66rem;letter-spacing:.16em;
  color:#fff;background:var(--gold);border-radius:3px;padding:2px 8px;flex:none;
}
.poc-banner a{color:var(--gold);font-weight:700;text-decoration:none;border-bottom:1px solid var(--gold);white-space:nowrap;}
.poc-banner a:hover{color:var(--ink);}
@media(max-width:560px){.poc-banner{font-size:.74rem;padding:8px 14px;}}

/* 投资洽谈弹出表单 modal（contact.js） */
.mmc-overlay{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;
  background:rgba(27,42,69,.42);padding:20px;backdrop-filter:blur(2px);}
.mmc-overlay.show{display:flex;}
.mmc-modal{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:10px;
  width:100%;max-width:440px;max-height:90vh;overflow:auto;padding:30px 32px 26px;
  box-shadow:0 30px 80px -40px rgba(27,42,69,.7);font-family:"Noto Sans JP",system-ui,sans-serif;}
.mmc-x{position:absolute;top:12px;right:14px;border:none;background:none;font-size:1.5rem;line-height:1;
  color:var(--ink-soft);cursor:pointer;}
.mmc-x:hover{color:var(--ink);}
.mmc-title{font-family:"Shippori Mincho",serif;font-weight:700;font-size:1.3rem;color:var(--ink);margin:0 0 8px;}
.mmc-lead{font-size:.84rem;color:var(--ink-soft);margin:0 0 18px;line-height:1.6;}
.mmc-l{display:block;font-size:.74rem;letter-spacing:.06em;color:var(--gold);font-weight:600;margin:12px 0 5px;}
.mmc-req{color:var(--alert);font-weight:400;font-size:.68rem;}
.mmc-i{width:100%;font-family:inherit;font-size:.9rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:5px;padding:9px 11px;}
.mmc-i:focus{outline:none;border-color:var(--gold);}
textarea.mmc-i{resize:vertical;}
.mmc-send{margin-top:18px;width:100%;font-family:inherit;font-weight:700;font-size:.95rem;color:#fff;
  background:var(--ink);border:none;border-radius:5px;padding:11px;cursor:pointer;transition:.2s;}
.mmc-send:hover{background:var(--gold);}
.mmc-send:disabled{opacity:.6;cursor:default;}
.mmc-status{margin-top:12px;font-size:.84rem;text-align:center;min-height:1.2em;}
.mmc-status.ok{color:var(--ok);}
.mmc-status.err{color:var(--alert);}

a{color:var(--gold);}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
@media(prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;}
  html{scroll-behavior:auto;}
}
