:root{
  --navy:#1A3A5C; --teal:#0E9F8E; --blue:#2563EB; --cream:#F7F4EE; --ink:#23303A;
  --muted:#6B7785; --line:#E3DDD2; --ok:#16A34A; --doing:#D97706; --todo:#9CA3AF; --warn:#DC2626;
  --card:#fff; --chip:#EEF4F8;
}
*{box-sizing:border-box;}
body{margin:0;font-family:"Hiragino Maru Gothic ProN","Hiragino Sans","Yu Gothic UI","Meiryo",sans-serif;color:var(--ink);background:var(--cream);line-height:1.6;}
a{color:var(--blue);}
.wrap{max-width:1000px;margin:0 auto;padding:0 16px 60px;}
header.top{background:linear-gradient(135deg,var(--navy),var(--teal));color:#fff;padding:20px 16px;}
.top-inner{max-width:1000px;margin:0 auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.top h1{font-size:18px;margin:0;font-weight:800;}
.top .sub{font-size:12px;opacity:.9;}
.badge-issue{margin-left:auto;background:rgba(255,255,255,.18);padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;}

.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:18px 0;}
.meta .m{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;}
.meta .k{font-size:11px;color:var(--muted);font-weight:700;margin-bottom:3px;}
.meta input{width:100%;border:none;font-size:14px;font-weight:700;color:var(--ink);background:transparent;border-bottom:1px dashed var(--line);padding:2px 0;}
.meta input:focus{outline:none;border-bottom-color:var(--blue);}

.progress{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:18px;}
.pbar{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
.pstep{flex:1;min-width:78px;text-align:center;font-size:10.5px;color:var(--muted);}
.pdot{height:8px;border-radius:999px;background:#E5E7EB;margin-bottom:4px;}
.pstep.done .pdot{background:var(--ok);} .pstep.done{color:var(--ok);font-weight:700;}
.pstep.now .pdot{background:var(--doing);} .pstep.now{color:var(--doing);font-weight:800;}

.legend{font-size:11.5px;color:var(--muted);margin:0 0 14px;}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;}
.t-ok{background:#DCFCE7;color:var(--ok);} .t-doing{background:#FEF3C7;color:var(--doing);}
.t-todo{background:#F1F5F9;color:var(--todo);} .t-warn{background:#FEE2E2;color:var(--warn);}
.who-niji{background:#E0ECFF;color:var(--blue);} .who-comp{background:#FFE9D6;color:#B45309;}

.stage{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--teal);border-radius:12px;padding:14px 16px;margin-bottom:12px;}
.stage.now{border-left-color:var(--doing);box-shadow:0 2px 12px rgba(217,119,6,.12);}
.stage.done{border-left-color:var(--ok);}
.stage h3{margin:0 0 4px;font-size:15px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.stage .num{display:inline-block;width:24px;height:24px;line-height:24px;text-align:center;background:var(--navy);color:#fff;border-radius:50%;font-size:12px;flex:0 0 auto;}
.stage.done .num{background:var(--ok);} .stage.now .num{background:var(--doing);}
.stage .lead{font-size:12.5px;color:var(--muted);margin:2px 0 8px;}
.statussel{margin-left:auto;font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:8px;padding:4px 8px;background:#fff;}
.checks{font-size:13px;margin:6px 0;}
.ci{display:flex;gap:9px;padding:6px 0;border-bottom:1px dashed var(--line);align-items:flex-start;}
.ci:last-child{border-bottom:none;}
.ci input[type=checkbox]{width:18px;height:18px;margin-top:2px;flex:0 0 auto;}
.ci .desc{font-size:11.5px;color:var(--muted);}
.field-label{font-size:11px;font-weight:700;color:var(--muted);margin:10px 0 4px;}
textarea,.txt{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;background:#fff;resize:vertical;}
textarea:focus,.txt:focus{outline:none;border-color:var(--blue);}
.files{margin-top:8px;}
.filechip{display:inline-flex;align-items:center;gap:6px;background:#F1F5F9;border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-size:12px;margin:4px 6px 0 0;}
.filechip a{font-weight:700;text-decoration:none;}
.filechip .del{color:var(--warn);cursor:pointer;font-weight:700;}
.uploadbtn{display:inline-block;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--blue);background:#EAF2FF;border:1px dashed #9BC0F5;border-radius:8px;padding:7px 12px;cursor:pointer;}
.goal{background:linear-gradient(135deg,#0E9F8E,#16A34A);color:#fff;text-align:center;border-radius:12px;padding:18px;font-weight:800;font-size:16px;margin-top:6px;}
.savebar{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;font-size:12.5px;font-weight:700;padding:8px 16px;border-radius:999px;box-shadow:0 4px 16px rgba(0,0,0,.2);opacity:0;transition:opacity .2s;z-index:50;}
.savebar.show{opacity:1;}

/* 管理画面・ログイン */
.box{max-width:520px;margin:40px auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;}
.btn{display:inline-block;background:linear-gradient(135deg,var(--navy),var(--teal));color:#fff;font-weight:800;border:none;border-radius:10px;padding:11px 18px;font-size:14px;cursor:pointer;}
.btn:active{transform:scale(.99);}
.btn.sm{padding:7px 12px;font-size:12.5px;}
.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--line);}
.btn.danger{background:#fff;color:var(--warn);border:1px solid #f1c4c4;}
.frow{margin-bottom:12px;}
.frow label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:5px;}
.frow input{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:9px;font-size:15px;}
.frow input:focus{outline:none;border-color:var(--teal);}
.clist{margin-top:18px;}
.crow{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px;}
.crow .cname{font-size:15px;font-weight:800;}
.crow .cmeta{font-size:12px;color:var(--muted);}
.crow .urlrow{display:flex;gap:8px;align-items:center;margin-top:8px;flex-wrap:wrap;}
.crow .url{flex:1;min-width:200px;font-size:12px;background:#F1F5F9;border:1px solid var(--line);border-radius:8px;padding:6px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.muted{color:var(--muted);font-size:12.5px;}
.err{background:#FEE2E2;color:#B91C1C;font-size:12.5px;padding:9px 12px;border-radius:8px;margin-bottom:12px;}
