/* IRORI — 大正浪漫 / 和モダン（生成りの紙地・炭色・囲炉裏の朱） */
:root {
  --paper:#f6f0e2; --page:#eae2d0; --ink:#2c2a25; --soft:#6c6458; --faint:#a09884;
  --green:#42604a; --green-bg:#e6ece0; --line:#ddd4c1; --vermilion:#b0472e; --card:#fbf7ee;
  --amber:#8a6d2f; --amber-bg:#f2ead4; --ember:#c9552f;
}
* { box-sizing:border-box; }
html, body { margin:0; padding:0; }
body {
  background:var(--page); color:var(--ink);
  font-family:"Zen Kaku Gothic New", system-ui, sans-serif;
  line-height:1.75; -webkit-font-smoothing:antialiased;
  font-size:15px;
}
.hidden { display:none !important; }
button { font-family:inherit; cursor:pointer; }

/* ---------- ブランド ---------- */
.brand { display:flex; align-items:baseline; gap:10px; }
.brand .hi { font-family:"Shippori Mincho", serif; font-weight:600; font-size:30px; letter-spacing:.06em; color:var(--ink); white-space:nowrap; }
.brand.small { flex-shrink:0; }
.topbar .today { text-align:right; }
.brand .en { font-family:"Shippori Mincho", serif; font-size:14px; letter-spacing:.35em; color:var(--vermilion); }
.brand.small .hi { font-size:22px; }
.brand.small .en { font-size:11px; }

/* ---------- ログイン ---------- */
.login { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.login-card {
  background:var(--paper); border:1px solid var(--line); border-radius:10px;
  padding:44px 40px; max-width:380px; width:100%; text-align:center;
  box-shadow:0 10px 40px rgba(44,42,37,.08);
}
.login-card .brand { justify-content:center; margin-bottom:20px; }
.login-lead { font-family:"Shippori Mincho", serif; color:var(--soft); font-size:15px; line-height:2; margin:0 0 26px; }
#login-form { display:flex; flex-direction:column; gap:12px; }
#passphrase {
  font-family:inherit; font-size:16px; padding:12px 14px; text-align:center;
  border:1px solid var(--line); border-radius:8px; background:var(--card); color:var(--ink);
}
#passphrase:focus { outline:2px solid var(--vermilion); outline-offset:1px; }
#login-form button {
  font-family:"Shippori Mincho", serif; font-size:16px; letter-spacing:.1em;
  padding:11px; border:0; border-radius:8px; background:var(--vermilion); color:var(--paper);
}
#login-form button:hover { background:var(--ember); }
.login-error { color:var(--vermilion); font-size:13.5px; min-height:20px; margin:14px 0 0; }

/* ---------- トップバー ---------- */
.topbar { position:sticky; top:0; z-index:5; background:rgba(234,226,208,.9); backdrop-filter:blur(6px); border-bottom:1px solid var(--line); }
.topbar-inner { max-width:1040px; margin:0 auto; padding:12px 20px; display:flex; align-items:center; justify-content:space-between; }
.topbar-right { display:flex; align-items:center; gap:12px; }
.today { font-size:13px; color:var(--soft); font-family:"Shippori Mincho", serif; white-space:nowrap; }
@media (max-width:400px) { .today { font-size:11.5px; } }
.ghost { background:transparent; border:1px solid var(--line); border-radius:7px; padding:6px 12px; font-size:13px; color:var(--soft); }
.ghost:hover { border-color:var(--vermilion); color:var(--vermilion); }

/* ---------- レイアウト ---------- */
.wrap { max-width:1040px; margin:0 auto; padding:24px 20px 40px; }
.loading { text-align:center; color:var(--faint); font-family:"Shippori Mincho", serif; padding:80px 0; }
section { margin:34px 0; }
.sec-h { font-family:"Shippori Mincho", serif; font-weight:600; font-size:19px; color:var(--ink); display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; margin:0 0 4px; letter-spacing:.03em; }
.sec-h .mk { font-size:16px; }
.sec-h .note { font-size:12.5px; color:var(--faint); font-family:"Zen Kaku Gothic New", sans-serif; font-weight:400; letter-spacing:0; }
.sec-sub { color:var(--soft); font-size:13px; margin:2px 0 16px; }

/* ---------- 外部期限の帯 ---------- */
.deadline-band { display:flex; flex-direction:column; gap:8px; }
.deadline-item {
  background:var(--amber-bg); border:1px solid #e0d2ab; border-left:4px solid var(--amber);
  border-radius:7px; padding:10px 14px; font-size:14px; display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline;
}
.deadline-item b { font-family:"Shippori Mincho", serif; color:var(--amber); font-weight:600; line-height:1.7; }
.deadline-item .dl-name { color:var(--soft); font-size:12.5px; white-space:nowrap; }

/* ---------- カード ---------- */
.cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:16px; margin-top:16px; }
.cards.compact { grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); }
.card {
  background:var(--card); border:1px solid var(--line); border-radius:10px; padding:18px 20px;
  display:flex; flex-direction:column; gap:10px;
}
.card-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.card h3 { font-family:"Shippori Mincho", serif; font-weight:600; font-size:17px; margin:0; line-height:1.4; }
.chips { display:flex; flex-wrap:wrap; gap:6px; }
.chip { font-size:11px; letter-spacing:.04em; border-radius:99px; padding:2px 9px; border:1px solid var(--line); color:var(--soft); white-space:nowrap; }
.chip.genre-暮らし { color:#5a6b4a; border-color:#cad6bd; background:#eef1e6; }
.chip.genre-創作 { color:#8a5a2f; border-color:#e0ccae; background:#f4ead9; }
.chip.genre-事業 { color:#3f5a6b; border-color:#bcd0d8; background:#e8eef1; }
.chip.genre-基盤 { color:#6c5a72; border-color:#d2c6d8; background:#efe8f1; }
.chip.temp { color:var(--vermilion); border-color:#e0b7a9; background:#f6e7e1; }
.chip.temp::before { content:"◍ "; }
.card .ball { font-size:12.5px; color:var(--soft); }
.card .ball b { color:var(--ink); font-weight:500; }
.card .current { font-size:13.5px; color:var(--ink); line-height:1.7; }
.card .release { font-size:12.5px; color:var(--green); background:var(--green-bg); border-radius:7px; padding:8px 11px; line-height:1.6; }
.card .release .lbl { color:var(--faint); display:block; font-size:11px; letter-spacing:.06em; margin-bottom:2px; }

/* 次の一手 */
.actions { list-style:none; margin:2px 0 0; padding:0; display:flex; flex-direction:column; gap:2px; }
.actions li { display:flex; gap:8px; align-items:flex-start; font-size:13px; padding:3px 0; color:var(--ink); }
.actions li.done { color:var(--faint); text-decoration:line-through; }
.actions .box { width:15px; height:15px; border:1.5px solid var(--faint); border-radius:4px; flex-shrink:0; margin-top:3px; cursor:pointer; background:transparent; padding:0; line-height:1; }
.actions li.done .box { background:var(--green); border-color:var(--green); color:var(--paper); font-size:11px; text-align:center; }
.actions .more { color:var(--faint); font-size:12px; padding-top:2px; }

/* ---------- 待ち（compact） ---------- */
.card.wait { padding:14px 16px; gap:6px; }
.card.wait h3 { font-size:15px; }
.card.wait .current { font-size:12.5px; color:var(--soft); }

/* ---------- アイデア / 手離れ / 売上 ---------- */
.two-col { display:grid; grid-template-columns:1.3fr 1fr; gap:28px; }
.ideas { display:flex; flex-direction:column; gap:9px; }
.idea { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:11px 14px; }
.idea .it { font-size:14px; }
.idea .meta { display:flex; gap:8px; align-items:center; margin-top:5px; }
.idea .st { font-size:11px; padding:1px 8px; border-radius:99px; border:1px solid var(--line); color:var(--soft); }
.idea .st.昇格 { color:var(--green); border-color:#c9d6c3; background:var(--green-bg); }
.idea .st.温め { color:var(--amber); border-color:#e0d2ab; background:var(--amber-bg); }
.idea .st.見送り { color:var(--faint); }
.idea .dt { font-size:11px; color:var(--faint); }
.idea .cn { font-size:12px; color:var(--soft); margin-top:5px; line-height:1.6; border-top:1px dashed var(--line); padding-top:5px; }
.released { display:flex; flex-direction:column; gap:6px; }
.rel-item { font-size:13px; color:var(--soft); display:flex; gap:8px; align-items:center; }
.rel-item .ck { color:var(--green); }
.rel-item .rel-name { flex:1; }
.revenue-box { background:var(--card); border:1px dashed var(--line); border-radius:8px; padding:14px; font-size:13px; color:var(--faint); text-align:center; }

/* ---------- 今日のひとつ ---------- */
.pick { margin:24px 0; }
#pick {
  background:linear-gradient(180deg, var(--card), #f5efe1);
  border:1px solid var(--line); border-left:4px solid var(--vermilion); border-radius:10px;
  padding:16px 20px; display:flex; flex-direction:column; gap:8px;
}
.pick-lead { font-size:12px; color:var(--faint); letter-spacing:.08em; }
.pick-body { font-family:"Shippori Mincho", serif; font-size:17px; line-height:1.6; color:var(--ink); }
.pick-pj { color:var(--vermilion); font-weight:600; }
.pick-arrow { color:var(--faint); margin:0 8px; font-size:13px; }
.pick-shuffle {
  align-self:flex-start; font-size:12px; color:var(--soft); background:transparent;
  border:1px solid var(--line); border-radius:99px; padding:3px 12px; margin-top:2px;
}
.pick-shuffle:hover { border-color:var(--vermilion); color:var(--vermilion); }

/* ---------- 編集コントロール ---------- */
.act-del {
  background:transparent; border:0; color:var(--line); font-size:12px; cursor:pointer;
  padding:0 2px; margin-left:2px; line-height:1; opacity:.5; transition:opacity .12s,color .12s;
}
.actions li:hover .act-del { opacity:1; }
.act-del:hover { color:var(--vermilion); }
.release.editable { cursor:text; }
.release.editable:hover { border-color:#c9d6c3; box-shadow:0 0 0 1px #c9d6c3 inset; }
.release .rel-txt.empty { color:var(--faint); font-style:italic; }
.current.editable { cursor:text; border-radius:6px; padding:2px 4px; margin:-2px -4px; transition:background .12s; }
.current.editable:hover { background:rgba(176,71,46,.05); }
.current.editable.empty { color:var(--faint); font-style:italic; }
.current-edit {
  width:100%; font-family:inherit; font-size:13.5px; line-height:1.7; color:var(--ink);
  border:1px solid var(--vermilion); border-radius:7px; padding:8px 10px; background:#fff; resize:vertical; min-height:64px;
}
.actions .add-row { align-items:center; }
.actions .ghostbox { border-style:dashed; color:var(--faint); display:flex; align-items:center; justify-content:center; cursor:default; }
.mini-input {
  font-family:inherit; font-size:13px; padding:4px 8px; border:1px solid var(--line); border-radius:6px;
  background:#fff; color:var(--ink); flex:1; min-width:0;
}
.mini-input:focus { outline:none; border-color:var(--vermilion); }
.actions .atxt { flex:1; }
.card-foot { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:4px; padding-top:10px; border-top:1px dashed var(--line); }
.card-foot .foot-lbl { font-size:11px; color:var(--faint); letter-spacing:.06em; }
.foot-dl { font-size:12px; color:var(--amber); background:var(--amber-bg); border:1px solid #e0d2ab; border-radius:99px; padding:2px 9px; cursor:pointer; }
.foot-dl:hover { border-color:var(--amber); }
.foot-dl.empty { color:var(--faint); background:transparent; border-style:dashed; border-color:var(--line); }
.status-sel {
  font-family:inherit; font-size:12.5px; padding:3px 8px; border:1px solid var(--line); border-radius:99px;
  background:var(--card); color:var(--soft); cursor:pointer;
}
.status-sel:focus { outline:none; border-color:var(--vermilion); }
.idea-add { display:flex; gap:8px; margin-bottom:4px; }
.idea-add .mini-input { padding:9px 12px; font-size:14px; }
.idea-add button {
  font-family:"Shippori Mincho", serif; font-size:13px; letter-spacing:.04em; white-space:nowrap;
  padding:6px 14px; border:0; border-radius:7px; background:var(--vermilion); color:var(--paper); cursor:pointer;
}
.idea-add button:hover { background:var(--ember); }

.board-error { color:var(--vermilion); text-align:center; padding:40px; }
.foot { text-align:center; color:var(--faint); font-size:12px; letter-spacing:.06em; padding:20px 0 40px; }

/* ---------- レスポンシブ ---------- */
@media (max-width:720px) {
  .two-col { grid-template-columns:1fr; gap:24px; }
  .cards, .cards.compact { grid-template-columns:1fr; }
  .brand .hi { font-size:26px; }
}
