/* 課題共有ツール スタイル（BlitzWorks: ダークネイビー×シアン） */
:root{
  --navy:#0f1b2d; --navy2:#16263d; --ink:#1f2937; --line:#e3e8ef;
  --cyan:#0ea5b7; --cyan-d:#0b8696; --bg:#f4f6f9; --card:#fff; --muted:#6b7280;
  --high:#e5484d; --mid:#f5a623; --low:#3aa675;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"Segoe UI",Meiryo,system-ui,sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.6;font-size:14px}
a{color:var(--cyan-d);text-decoration:none}
a:hover{text-decoration:underline}

/* topbar */
.topbar{display:flex;align-items:center;gap:16px;background:var(--navy);color:#fff;
  padding:10px 18px;flex-wrap:wrap}
.brand{font-weight:700;letter-spacing:.5px}
.proj-nav{display:flex;gap:6px;flex:1;flex-wrap:wrap}
.proj-tab{color:#cdd7e3;padding:5px 12px;border-radius:999px;font-size:13px;border:1px solid transparent}
.proj-tab:hover{text-decoration:none;background:var(--navy2)}
.proj-tab.is-active{background:var(--pc,var(--cyan));color:#04121a;font-weight:700}
.user{display:flex;align-items:center;gap:12px;font-size:13px}
.uname{color:#cdd7e3}
.btn-link{color:#9fb3c8}

.wrap{max-width:1180px;margin:18px auto;padding:0 16px}
.wrap-narrow{max-width:420px;margin:8vh auto;padding:0 16px}
.foot{text-align:center;color:var(--muted);font-size:12px;padding:24px}

/* flash */
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:13px}
.flash-ok{background:#e6f7f1;color:#0b6b4f;border:1px solid #b7e6d4}
.flash-error{background:#fdecec;color:#a3262a;border:1px solid #f3c3c4}

/* buttons */
.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);
  padding:8px 14px;border-radius:8px;cursor:pointer;font-size:13px}
.btn:hover{background:#f0f3f7}
.btn-primary{background:var(--cyan);border-color:var(--cyan);color:#04121a;font-weight:700}
.btn-primary:hover{background:var(--cyan-d);color:#fff}
.btn-danger{background:#fff;border-color:#f0b4b6;color:var(--high)}
.btn-danger:hover{background:#fdecec}
.btn-sm{padding:4px 10px;font-size:12px}

/* login */
.login-card{background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:28px;box-shadow:0 8px 30px rgba(15,27,45,.08)}
.login-card h1{margin:0 0 2px;font-size:22px}
.login-card .sub{margin:0 0 18px;color:var(--muted)}
.login-card label{display:block;margin-bottom:12px;font-size:13px;color:#374151}
.login-card input{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;margin-top:4px;font-size:14px}
.login-card .btn{width:100%}

/* board */
.board-head{display:flex;align-items:center;gap:14px;margin-bottom:14px;border-left:5px solid var(--pc,var(--cyan));padding-left:12px}
.board-head h1{font-size:20px;margin:0;flex:1}
.muted{color:var(--muted);font-weight:400;font-size:14px}
.poll-banner{background:#fff7e6;border:1px solid #f3d79b;color:#8a5a00;padding:8px 12px;border-radius:8px;margin-bottom:12px}

.new-form{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:16px}
.new-form .row{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.new-form .row.right{justify-content:flex-end;margin-bottom:0}
.new-form .grow{flex:1;min-width:200px}
.new-form input,.new-form select,.new-form textarea{padding:8px;border:1px solid var(--line);border-radius:8px;font-size:13px;font-family:inherit}
.new-form textarea{width:100%}

.columns{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.columns-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1040px){.columns,.columns-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.columns,.columns-4{grid-template-columns:1fr}}
.col{background:#eef1f5;border-radius:12px;padding:10px;min-height:120px}
.col h2{font-size:14px;margin:4px 6px 10px;display:flex;align-items:center;gap:8px}
.col .count{background:#fff;border-radius:999px;padding:0 8px;font-size:12px;color:var(--muted)}
.col-open h2{color:#3b4757}
.col-doing h2{color:#0b6b8a}
.col-done h2{color:#0b6b4f}
.col-hold h2{color:#8a5a00}
.cards{display:flex;flex-direction:column;gap:8px;min-height:60px}
.cards.drop-target{outline:2px dashed var(--cyan);outline-offset:2px;border-radius:10px;background:#e3f2f4}
.col-empty{color:#9aa6b2;font-size:12px;text-align:center;padding:10px}

.card{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line);
  border-radius:10px;padding:10px 12px;box-shadow:0 1px 2px rgba(15,27,45,.04);
  cursor:pointer;transition:box-shadow .12s,transform .12s}
.card:hover{box-shadow:0 3px 10px rgba(15,27,45,.10)}
.card:active{cursor:grabbing}
.card.dragging{opacity:.5;box-shadow:0 6px 18px rgba(15,27,45,.18)}
.card.prio-high{border-left-color:var(--high)}
.card.prio-mid{border-left-color:var(--mid)}
.card.prio-low{border-left-color:var(--low)}
.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.badge{font-size:11px;padding:1px 8px;border-radius:999px;color:#fff}
.badge-high{background:var(--high)}.badge-mid{background:var(--mid)}.badge-low{background:var(--low)}
.cc{font-size:12px;color:var(--muted)}
.card-title{display:block;font-weight:600;color:var(--ink);margin:2px 0 6px}
.card-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:8px;gap:8px}
.status-select{width:100%;padding:5px;border:1px solid var(--line);border-radius:7px;font-size:12px;cursor:pointer}

/* 期限バッジ */
.due{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;
  padding:2px 8px;border-radius:999px;margin-bottom:8px}
.due-normal{background:#eef2f7;color:#3b4757}
.due-soon{background:#fff4e0;color:#9a6400;border:1px solid #f3d79b}
.due-overdue{background:#fdecec;color:#a3262a;border:1px solid #f3c3c4}
.due-note{padding:8px 12px;border-radius:8px;font-size:13px;margin-bottom:12px}
.due-note.due-soon{background:#fff7e6;color:#8a5a00;border:1px solid #f3d79b}
.due-note.due-overdue{background:#fdecec;color:#a3262a;border:1px solid #f3c3c4}
.new-form .due-field{display:flex;align-items:center;gap:6px;font-size:13px;color:#374151}

/* detail */
.crumb{margin:0 0 12px}
.detail{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;max-width:760px}
.edit-form label{display:block;margin-bottom:12px;font-size:13px;color:#374151}
.edit-form input,.edit-form select,.edit-form textarea{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;margin-top:4px;font-size:14px;font-family:inherit}
.edit-form .row{display:flex;gap:12px}
.edit-form .row label{flex:1}
.edit-form .row.between{align-items:center}
.del-form{margin-top:8px}
.comments{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}
.comments h2{font-size:15px}
.comment{background:#f7f9fb;border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px}
.comment-head{display:flex;gap:10px;align-items:center;margin-bottom:4px;font-size:13px}
.comment-del{margin:0 0 0 auto;flex-shrink:0}
.comment-form textarea{width:100%;padding:9px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px;font-family:inherit;font-size:14px}
.empty{background:#fff;border:1px dashed var(--line);border-radius:12px;padding:40px;text-align:center;color:var(--muted)}

/* 添付ファイル */
.attachments{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}
.attachments h2{font-size:15px}
.dropzone{border:2px dashed var(--line);border-radius:10px;padding:18px;text-align:center;
  background:#fbfcfe;transition:border-color .12s,background .12s;margin-bottom:12px}
.dropzone.dz-over{border-color:var(--cyan);background:#e3f2f4}
.dz-text{margin:0 0 4px}
.dz-hint{font-size:12px;margin:0}
.dz-status{margin-top:10px;font-size:13px;color:#0b6b4f}
.dz-status.dz-error{color:var(--high);white-space:pre-line}
.dz-warn{font-size:12px;margin:4px 0 0;color:var(--high)}
.dz-bar{margin-top:8px;height:6px;border-radius:3px;background:#dfe6ee;overflow:hidden}
.dz-bar > span{display:block;height:100%;width:0;background:var(--cyan);transition:width .15s}
.attach-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.attach-item{display:flex;flex-direction:column;gap:8px;background:#f7f9fb;border:1px solid var(--line);
  border-radius:8px;padding:8px 10px}
.attach-row{display:flex;align-items:center;gap:10px}
.attach-audio{width:100%;height:36px}
.attach-link{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.attach-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attach-size{font-size:12px;flex-shrink:0}
.attach-del{margin:0;flex-shrink:0}
.attach-check{flex-shrink:0;width:17px;height:17px;margin:0;cursor:pointer}
.attach-bulk{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.attach-all{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.attach-all input{width:17px;height:17px;margin:0;cursor:pointer}
.zip-info{font-size:12px}
.zip-info.zip-over{color:var(--high)}
@media (max-width:640px){
  .attach-bulk button{width:100%}
}

/* リンクコピー */
.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.detail-head .crumb{margin:0 0 12px}
.btn-copy{white-space:nowrap}
.btn.btn-copy.is-copied{background:#e6f7f1;border-color:#b7e6d4;color:#0b6b4f}
.card-top-right{display:flex;align-items:center;gap:6px}
.card-copy{border:1px solid transparent;background:transparent;color:var(--muted);
  padding:2px 5px;border-radius:6px;cursor:pointer;font-size:13px;line-height:1;opacity:.65}
.card-copy:hover{background:#f0f3f7;border-color:var(--line);opacity:1}
.card-copy:focus-visible{outline:2px solid var(--cyan);outline-offset:1px;opacity:1}
.card-copy.is-copied{color:#0b6b4f;background:#e6f7f1;border-color:#b7e6d4;opacity:1}


/* ============================================================
   管理画面・AI分析（2026-08-27 追加）
   ============================================================ */

.admin-nav { display:flex; gap:.6rem; margin:.4rem 0 1rem; flex-wrap:wrap; }
.admin-nav a {
  padding:.35rem .8rem; border:1px solid #d7dbe0; border-radius:999px;
  text-decoration:none; color:#334; background:#fff; font-size:.92rem;
}
.admin-nav a:hover { background:#f2f6f8; }

.admin-sec { margin:1.6rem 0 2.2rem; }
.admin-sec > h2 {
  font-size:1.08rem; margin:0 0 .5rem; padding-bottom:.35rem;
  border-bottom:2px solid #e7ebef;
}
.admin-sec > h3 { font-size:1rem; margin:0 0 .7rem; }

.hint { color:#667; font-size:.88rem; margin:.2rem 0 .8rem; line-height:1.6; }
.hint.right { text-align:right; }
.warn {
  background:#fff5f5; border:1px solid #f3c2c2; color:#8a2b2b;
  padding:.7rem .9rem; border-radius:8px; font-size:.9rem; line-height:1.7;
}
.warn-soft {
  background:#fbfaf3; border:1px solid #e6e0c2; color:#6b5f2e;
  padding:.7rem .9rem; border-radius:8px; font-size:.86rem; line-height:1.7;
  margin:1rem 0;
}
.note-box {
  background:#f6f9fb; border-left:3px solid #0ea5b7; padding:.7rem .9rem;
  border-radius:0 6px 6px 0; font-size:.9rem; line-height:1.7; margin:.8rem 0;
}

/* --- 表 --- */
.admin-table { width:100%; border-collapse:collapse; font-size:.92rem; background:#fff; }
.admin-table th, .admin-table td {
  border-bottom:1px solid #e7ebef; padding:.5rem .6rem; text-align:left; vertical-align:middle;
}
.admin-table thead th { background:#f7f9fa; font-weight:600; font-size:.86rem; color:#445; }
.admin-table td.right, .admin-table th.right { text-align:right; white-space:nowrap; }
.admin-table td.center { text-align:center; }
.admin-table tr.is-archived { opacity:.5; }
.table-scroll { overflow-x:auto; }
.matrix .mcol { min-width:9rem; font-size:.82rem; line-height:1.4; }
.matrix .rowhead { background:#fbfcfd; white-space:nowrap; font-weight:600; }
.matrix .rowhead code { font-weight:400; color:#889; font-size:.78rem; }
.matrix input[type=checkbox] { width:1.15rem; height:1.15rem; }

.dot { display:inline-block; width:.7rem; height:.7rem; border-radius:50%; margin-right:.35rem; vertical-align:-1px; }
.kind { display:inline-block; font-size:.74rem; padding:.1rem .45rem; border-radius:999px; border:1px solid; }
.kind-issue    { color:#2563eb; border-color:#bfd4f7; background:#f2f7ff; }
.kind-feedback { color:#7c3aed; border-color:#ddd0f7; background:#f8f4ff; }
.role { font-size:.78rem; padding:.1rem .45rem; border-radius:999px; }
.role-admin  { color:#8a4b00; background:#fff2df; border:1px solid #f0d5ab; }
.role-member { color:#456; background:#f1f4f6; border:1px solid #dde3e8; }
.you { font-size:.72rem; color:#0ea5b7; margin-left:.35rem; }

/* --- フォーム --- */
.admin-form {
  margin-top:1rem; padding:1rem; border:1px solid #e2e7eb; border-radius:10px; background:#fbfcfd;
}
.admin-form label { display:block; font-size:.86rem; color:#445; margin-bottom:.6rem; }
.admin-form label.check { display:flex; align-items:center; gap:.35rem; margin-top:1.3rem; }
.admin-form input[type=text], .admin-form input[type=number], .admin-form select, .admin-form textarea {
  display:block; width:100%; margin-top:.2rem; padding:.42rem .55rem;
  border:1px solid #cfd6dc; border-radius:6px; font:inherit; font-size:.92rem; background:#fff;
}
.admin-form input[type=color] { margin-top:.2rem; width:3.4rem; height:2.1rem; padding:.1rem; }
.admin-form input:disabled { background:#eef1f3; color:#889; }
.admin-form .hint { margin:.2rem 0 0; font-size:.78rem; }
.admin-form .row { display:flex; gap:.8rem; align-items:flex-start; flex-wrap:wrap; }
.admin-form .row > label { flex:0 0 auto; }
.admin-form .row > label.grow { flex:1 1 14rem; }
.admin-form .row.right { justify-content:flex-end; align-items:center; }
form.inline { display:inline; }
.btn-danger { color:#a33; border-color:#e6bcbc; }
.btn-danger:hover { background:#fdf0f0; }
.plain { list-style:none; padding:0; margin:.4rem 0; }
.plain li { padding:.2rem 0; }

/* --- ボードの説明文 --- */
.board-desc {
  background:#f6f9fb; border:1px solid #dbe6ec; border-radius:8px;
  padding:.7rem .9rem; margin:.2rem 0 1rem; font-size:.9rem; line-height:1.75; color:#3a4a55;
}

/* --- 改善要望ボードの列の色分け --- */
.col-new       h2 { border-bottom-color:#94a3b8; }
.col-reviewing h2 { border-bottom-color:#f59e0b; }
.col-accepted  h2 { border-bottom-color:#10b981; }
.col-declined  h2 { border-bottom-color:#cbd5e1; }
.col-declined .card { opacity:.62; }

/* --- AI 分析：対象選択 --- */
.pick-cols { display:grid; grid-template-columns:repeat(4, 1fr); gap:.8rem; }
.pick-col h3 {
  font-size:.92rem; margin:0 0 .5rem; display:flex; align-items:center; gap:.4rem;
  border-bottom:2px solid #e7ebef; padding-bottom:.3rem;
}
.pick-col h3 .count { color:#889; font-weight:400; font-size:.82rem; }
.pick-col h3 .pick-all { margin-left:auto; font-size:.74rem; padding:.1rem .4rem; }
.pick-list { display:flex; flex-direction:column; gap:.35rem; }
.pick-item {
  display:flex; gap:.45rem; align-items:flex-start; padding:.45rem .5rem;
  border:1px solid #e2e7eb; border-radius:7px; background:#fff; cursor:pointer; font-size:.85rem;
}
.pick-item:hover { background:#f7fafb; }
.pick-item input { margin-top:.15rem; width:1.05rem; height:1.05rem; flex:0 0 auto; }
.pick-item.is-on { border-color:#0ea5b7; background:#f2fbfc; }
.pick-body { display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.pick-title { line-height:1.45; word-break:break-word; }
.pick-meta { color:#889; font-size:.76rem; }
.pick-count { margin-right:.6rem; }

/* --- AI 分析：結果 --- */
.ai-result {
  background:#fff; border:1px solid #e2e7eb; border-radius:10px;
  padding:1.1rem 1.3rem; line-height:1.85; font-size:.94rem;
}
.ai-result h2 { font-size:1.05rem; margin:1.4rem 0 .5rem; padding-bottom:.3rem; border-bottom:2px solid #e7ebef; }
.ai-result h2:first-child { margin-top:0; }
.ai-result h3 { font-size:.98rem; margin:1.1rem 0 .4rem; }
.ai-result h4, .ai-result h5 { font-size:.92rem; margin:.9rem 0 .3rem; }
.ai-result p { margin:.5rem 0; }
.ai-result ul { margin:.4rem 0 .8rem; padding-left:1.3rem; }
.ai-result li { margin:.28rem 0; }
.ai-result code { background:#f2f5f7; padding:.05rem .3rem; border-radius:4px; font-size:.88em; }
.ai-result strong { color:#0d3b45; }

@media (max-width: 860px) {
  .pick-cols { grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .pick-cols { grid-template-columns:1fr; }
  .admin-form .row > label.grow { flex-basis:100%; }
}
