/* v14 */:root{--blue:#1769e0;--line:#e4e8f0;--muted:#667085;--red:#f04438;--green:#12b76a;--orange:#f79009;--yellow:#f79009}*{box-sizing:border-box}body{margin:0;background:#f6f8fc;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans JP',sans-serif;color:#152033;font-size:13px}button,input,select{font:inherit}.hidden{display:none!important}.app-shell{display:grid;grid-template-columns:210px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#071a32,#09284d);color:#fff;padding:12px 10px}.brand{display:flex;gap:9px;align-items:center;margin-bottom:12px}.logo{width:30px;height:30px;border-radius:10px;background:var(--blue);display:grid;place-items:center}.brand span{display:block;color:#b9c7d8;font-size:11px}.nav{display:block;width:100%;border:0;background:transparent;color:#d9e7fb;text-align:left;padding:8px 10px;border-radius:9px}.nav.active,.nav:hover{background:var(--blue)}.nav em{float:right;background:var(--red);border-radius:99px;padding:1px 7px;font-style:normal;font-size:11px}.main{padding:11px 14px}.topbar{display:flex;gap:9px;align-items:center}.topbar input{flex:1;max-width:560px;border:1px solid var(--line);border-radius:11px;padding:9px 12px;background:#fff}.primary{border:0;background:var(--blue);color:#fff;border-radius:11px;padding:8px 12px;font-weight:800}.small{font-size:12px}.ghost{border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 10px}.view-toggle{display:flex;background:#eaf0fb;padding:3px;border-radius:11px}.view-toggle button{border:0;background:transparent;padding:7px 10px;border-radius:9px;font-size:12px}.view-toggle .active{background:var(--blue);color:#fff}.page-head{display:flex;justify-content:space-between;gap:14px;margin:12px 0 8px}.page-head h1{font-size:21px;margin:0}.page-head p{font-size:11px;color:var(--muted);margin:4px 0}.mini-summary{display:flex;gap:6px;justify-content:flex-end;min-width:300px}.mini-summary div{width:64px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:5px 7px}.mini-summary span{font-size:10px;color:var(--muted)}.mini-summary b{float:right;font-size:15px}.danger{background:#fff4f3!important}.today{background:#fff8e7!important}.filters{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.filters label{background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 8px;font-size:12px}.filters select{border:0;background:transparent}.task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:7px}.column-board{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;overflow-x:auto;padding:2px 0 10px}.kanban-column{flex:0 0 248px;background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:8px;min-height:360px}.kanban-column>header{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:11px;padding:7px 9px;margin-bottom:8px}.kanban-column small{color:var(--muted);font-size:10.5px}.kanban-cards{display:grid;gap:7px}.task-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;padding:7px 9px 7px 12px;min-height:98px;box-shadow:0 5px 14px rgba(31,50,93,.05);cursor:pointer;display:flex;flex-direction:column;overflow:hidden}.task-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#94a3b8}.task-card.blue:before{background:#1769e0}.task-card.orange:before{background:#f79009}.task-card.red:before{background:#f04438}.task-card.yellow:before{background:#f79009}.task-card.green:before{background:#12b76a}.task-card h3{font-size:13px;line-height:1.22;margin:3px 0 4px;min-height:28px}.badges{display:flex;gap:4px;flex-wrap:wrap}.badge{border-radius:99px;padding:1px 6px;font-size:9.5px;font-weight:800;background:#eef4ff;color:#175cd3}.overdue{background:#fee4e2;color:#b42318}.todayBadge{background:#fef0c7;color:#b54708}.todo{background:#f2f4f7;color:#475467}.important{background:#ffe4e8;color:#c01048}.urgent{background:#fff1f3;color:#e31b54}.submitted{background:#e0f2fe;color:#026aa2}.label-pill{border-radius:99px;padding:1px 6px;font-size:9.5px;font-weight:800;white-space:nowrap}.lb-quality{background:#fee4e2;color:#b42318}.lb-customer{background:#fff1c2;color:#b54708}.lb-inspection{background:#e0f2fe;color:#026aa2}.lb-equipment{background:#eef4ff;color:#3538cd}.lb-improve{background:#dcfae6;color:#067647}.lb-default{background:#f2f4f7;color:#475467}.meta{font-size:11px;color:#475467;line-height:1.35}.bucket-line,.due-line{display:flex;justify-content:space-between;gap:6px;align-items:center}.due-info{font-weight:700}.due-ok{color:#344054}.due-today{color:#d97706}.due-over{color:#d92d20}.due-soon{color:#b54708}.card-foot{margin-top:auto;border-top:1px solid var(--line);padding-top:5px;display:flex;justify-content:space-between;align-items:center;font-size:10.5px;color:#667085}.avatars{display:flex;align-items:center;gap:2px}.avatar{width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#fedf89,#84caff);display:grid;place-items:center;font-size:8px;border:1px solid #fff}.assignee-underbar{display:flex;gap:3px;align-items:center;border-bottom:2px solid #ccd4df;padding-bottom:2px}.card-icons{display:flex;gap:7px}.grid-view{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:860px}th,td{padding:8px;border-bottom:1px solid var(--line);text-align:left;font-size:12px}th{background:#f8fafc;color:#475467}.calendar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-head{font-weight:800;color:#475467;text-align:center}.cal-cell{min-height:94px;border:1px solid var(--line);border-radius:10px;padding:6px;background:#fbfcff}.cal-day{font-size:11px;color:#667085}.cal-task{margin-top:4px;border-radius:7px;padding:3px 5px;font-size:10px;background:#eef4ff;color:#175cd3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.48);display:grid;place-items:center;z-index:30;padding:20px}.task-modal{width:min(1220px,96vw);max-height:92vh;background:#fff;border-radius:20px;box-shadow:0 24px 70px rgba(20,35,70,.25);overflow:hidden;display:flex;flex-direction:column}.task-modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:14px 17px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#f8fbff)}.task-modal-head h2{font-size:19px;margin:2px 0}.task-modal-head small{color:var(--muted)}.close{border:0;background:#f2f4f7;border-radius:10px;padding:7px 11px}.task-modal-body{display:grid;grid-template-columns:53% 23% 24%;min-height:590px;overflow:hidden}.panel{min-width:0;overflow:auto;padding:13px}.panel-detail{border-right:1px solid var(--line)}.panel-workflow{border-right:1px solid var(--line);background:#fbfcff;padding-left:30px;overflow:visible}.panel-chat{display:flex;flex-direction:column;background:#fcfdff}.panel-title{font-weight:800;font-size:13px;margin-bottom:8px}.detail-grid{display:grid;grid-template-columns:68px 1fr 68px 1fr;gap:7px 12px;align-items:center;font-size:12.5px}.detail-grid b{white-space:nowrap;color:#475467}.detail-grid span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-section{border:1px solid var(--line);border-radius:12px;background:#fbfcff;padding:8px 9px;margin-top:8px}.detail-section h3{font-size:15px;margin:0 0 6px}.memo-editor{min-height:225px;border:1px solid var(--line);border-radius:11px;background:#fff;padding:9px 10px;margin-top:4px;font-family:Consolas,'Yu Gothic UI','Meiryo',monospace;font-size:12.5px;line-height:1.55;outline:none;white-space:pre-wrap;overflow:auto}.memo-editor a{color:var(--blue);text-decoration:underline;cursor:pointer}.note{display:block;margin-top:4px;color:var(--muted);font-size:10.8px}.chat-item{display:flex;gap:8px;border-bottom:1px solid #eef1f6;padding:8px 0}.bubble{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:8px 9px;flex:1}.bubble b{font-size:12px}.bubble time{float:right;color:#98a2b3;font-size:10px}.bubble p{font-size:11.5px;margin:4px 0}.modal-comments{overflow:auto;flex:1}.comment-input{display:flex;gap:8px;padding-top:10px;border-top:1px solid var(--line)}.comment-input input{flex:1;border:1px solid var(--line);border-radius:11px;padding:8px 10px}.workflow-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.workflow-title b{font-size:13px}.workflow-title small{font-size:10px;color:var(--muted)}.flow-timeline{display:grid;gap:0;overflow:visible;max-height:442px;padding-left:10px}.flow-item{display:grid;grid-template-columns:34px 1fr;gap:7px;position:relative;min-height:74px;cursor:pointer;overflow:visible}.flow-item:not(:last-child):after{content:'';position:absolute;left:14px;top:31px;bottom:0;width:2px;background:#d2d9e5;border-radius:99px}.flow-item.current:not(:last-child):after,.flow-item.done:not(:last-child):after{left:13.5px;width:3px;background:#2f7ff0;box-shadow:0 0 6px rgba(47,127,240,.32)}.flow-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f1f5fb;border:2px solid #d3dae5;font-size:14px;z-index:3}.flow-item.done .flow-icon{width:33px;height:33px;margin-left:-1.5px;background:#eef6ff;border:2.5px solid #62adff;color:#1769e0;box-shadow:0 0 9px rgba(23,105,224,.26)}.flow-item.current .flow-icon{width:36px;height:36px;margin-left:-3px;background:#1769e0;color:#fff;border:2.5px solid #9ed0ff;box-shadow:0 0 0 5px rgba(23,105,224,.18),0 0 22px rgba(23,105,224,.72);animation:pulse 1.55s infinite}.flow-item.next .flow-icon{background:#fff9ed;border:2px solid #ffd89b}.flow-top{display:flex;justify-content:space-between;gap:6px}.flow-top b{font-size:12.2px}.flow-top span{font-size:9.5px;color:#98a2b3}.flow-meta{font-size:10.4px;color:#667085}.flow-comment{font-size:10.7px;line-height:1.32;margin:2px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.flow-comment.expanded{display:block;-webkit-line-clamp:unset;background:#fff;border:1px solid var(--line);border-radius:9px;padding:7px}.workflow-actions{margin-top:10px;border-top:1px dashed #d0d5dd;padding-top:9px;display:grid;gap:8px}.wf-btn{border:0;border-radius:11px;padding:9px 10px;font-size:11.8px;font-weight:800;color:#fff}.complete,.approve{background:var(--green)}.due{background:var(--blue)}.reject{background:var(--red)}@keyframes pulse{0%,100%{box-shadow:0 0 0 5px rgba(23,105,224,.15),0 0 20px rgba(23,105,224,.60)}50%{box-shadow:0 0 0 7px rgba(23,105,224,.08),0 0 29px rgba(23,105,224,.84)}}@media(max-width:1060px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.task-modal-body{grid-template-columns:1fr}.panel-detail,.panel-workflow{border-right:0;border-bottom:1px solid var(--line)}.panel-workflow{padding-left:24px}.column-board{display:grid;grid-template-columns:1fr;overflow-x:visible}.kanban-column{min-width:0;width:100%}.detail-grid{grid-template-columns:72px 1fr 72px 1fr}}


/* ===== v15 card layout true right-side spec ===== */
/* Preserve v14 features; replace only card internal layout and remove possible connector artifacts. */
.task-card{padding:6px 8px 6px 12px;min-height:92px;gap:0;}
.task-card h3{font-size:13px;line-height:1.22;margin:5px 0 6px;min-height:0;}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:6px;min-height:18px;}
.top-left{display:flex;align-items:center;gap:5px;min-width:0;overflow:hidden;}
.top-right{display:flex;align-items:center;gap:4px;white-space:nowrap;}
.bucket-pill{display:inline-flex;align-items:center;border-radius:999px;padding:1px 6px;font-size:9.5px;font-weight:800;background:#eef4ff;color:#175cd3;white-space:nowrap;max-width:86px;overflow:hidden;text-overflow:ellipsis;}
.card-due-row{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:5px;margin-top:2px;}
.status-chip{border-radius:999px;padding:1px 6px;font-size:9.5px;font-weight:800;background:#eef4ff;color:#175cd3;white-space:nowrap;}
.status-chip.overdue{background:#fee4e2;color:#b42318}.status-chip.todayBadge{background:#fef0c7;color:#b54708}.status-chip.todo{background:#f2f4f7;color:#475467}.status-chip.submitted{background:#e0f2fe;color:#026aa2}
.card-due-row .due-info{font-size:10.5px;white-space:nowrap;text-align:right;}
.card-foot{padding-top:5px;margin-top:5px;}
.kanban-column .task-card{min-height:92px;}
/* Hide legacy internal rows if any remain */
.task-card>.badges,.task-card>.meta{display:none!important;}
/* Remove any short connector artifact in the center of workflow */
.flow-icon:after{display:none!important;content:none!important;}
.flow-item:not(:last-child):after{width:2px;left:14px;top:31px;bottom:0;background:#d2d9e5;box-shadow:none;}
.flow-item.current:not(:last-child):after,.flow-item.done:not(:last-child):after{width:3px;left:13.5px;background:#2f7ff0;box-shadow:0 0 6px rgba(47,127,240,.32);}


/* ===== v16 card + calendar polish ===== */
/* Preserve v15 features; refine visual density and calendar design. */
/* Card: remove upper divider, keep lower divider, move deadline row close to lower line */
.card-due-row{border-top:0!important;padding-top:0!important;margin-top:0!important;margin-bottom:2px;min-height:16px;}
.card-due-row .status-chip{font-size:9.3px;padding:1px 5px;}
.card-due-row .due-info{font-size:10.3px;line-height:1.2;}
.card-foot{border-top:1px solid var(--line);margin-top:2px!important;padding-top:4px!important;}
/* Bucket name: make it subtle text, not a blue badge */
.bucket-pill{background:transparent!important;color:#09284d!important;padding:0!important;border-radius:0!important;font-weight:800;font-size:10.5px;max-width:96px;}
.top-left .label-pill{font-size:9.3px;padding:1px 5px;}
.top-right .badge{font-size:9.3px;padding:1px 5px;}
/* Remove gray underline below assignee icons */
.assignee-underbar{border-bottom:0!important;padding-bottom:0!important;}
.task-card{min-height:88px!important;padding-top:6px!important;padding-bottom:5px!important;}
.task-card h3{margin:4px 0 5px!important;line-height:1.2!important;}
/* Modern calendar */
.calendar{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:8px;background:linear-gradient(180deg,#ffffff,#f8fbff);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 12px 32px rgba(20,35,70,.08);overflow:auto;max-height:calc(100vh - 155px);}
.calendar-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;font-weight:900;font-size:18px;color:#0b1f3a;padding:2px 4px 10px;border-bottom:1px solid #edf1f7;margin-bottom:2px;}
.calendar-head:after{content:'本日の期限へ自動フォーカス';font-size:11px;font-weight:700;color:#667085;background:#f2f6ff;border:1px solid #dbe7ff;border-radius:999px;padding:4px 9px;}
.cal-head{text-align:center;font-size:11px;font-weight:800;color:#667085;padding:6px 0;background:#f8fafc;border-radius:10px;border:1px solid #edf1f7;}
.cal-blank{min-height:90px;}
.cal-cell{min-height:112px;background:#fff;border:1px solid #e5ebf3;border-radius:14px;padding:8px;box-shadow:0 5px 16px rgba(20,35,70,.04);transition:.15s;}
.cal-cell:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(20,35,70,.10);}
.cal-today{border:2px solid #1769e0;background:linear-gradient(180deg,#f5f9ff,#ffffff);box-shadow:0 0 0 5px rgba(23,105,224,.10),0 14px 30px rgba(23,105,224,.16);}
.cal-day{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.cal-day span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;color:#344054;background:#f2f4f7;}
.cal-today .cal-day span{background:#1769e0;color:#fff;box-shadow:0 0 0 4px rgba(23,105,224,.12);}
.cal-day b{font-size:9px;color:#1769e0;background:#eaf2ff;border-radius:999px;padding:2px 6px;}
.cal-task{margin-top:5px;border-radius:8px;padding:4px 6px;font-size:10.5px;font-weight:700;background:#eef4ff;color:#175cd3;border-left:3px solid #1769e0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
.cal-task.red{background:#fff4f3;color:#b42318;border-left-color:#f04438}.cal-task.orange,.cal-task.yellow{background:#fff8e7;color:#b54708;border-left-color:#f79009}.cal-task.green{background:#ecfdf3;color:#067647;border-left-color:#12b76a}.cal-task.blue{background:#eef4ff;color:#175cd3;border-left-color:#1769e0}
@media(max-width:1060px){.calendar{grid-template-columns:repeat(7,minmax(92px,1fr));}.cal-cell{min-height:98px}.calendar-head:after{display:none}}

/* ===== ログイン画面 ===== */
.login-screen{min-height:100vh;display:grid;place-items:center;background:linear-gradient(180deg,#071a32,#09284d)}
.login-card{background:#fff;border-radius:20px;padding:36px 44px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.35);min-width:280px}
.login-card .logo{width:44px;height:44px;border-radius:14px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:20px;font-weight:900}
.login-card h1{margin:8px 0 2px;font-size:22px;color:#09284d}
.login-card p{margin:0 0 20px;color:var(--muted);font-size:12.5px}
.login-card .primary{width:100%;padding:11px;border-radius:12px;font-size:13px}
.login-card .primary:disabled{opacity:.6}

/* ===== 新規タスクフォーム ===== */
.form-modal{width:min(480px,92vw)}
.form-modal .panel{padding:16px;display:flex;flex-direction:column;gap:12px;max-height:78vh;overflow:auto}
.form-field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:700;color:#344054}
.form-field input[type=text],.form-field input[type=date],.form-field select,.form-field textarea{border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px;font-weight:400;color:#152033;font-family:inherit}
.form-field textarea{resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.checkbox-row{display:flex;flex-wrap:wrap;gap:10px;font-weight:400}
.checkbox-row label{display:flex;align-items:center;gap:4px;font-size:12.5px;background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:4px 8px}
.form-check{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:#344054}
.form-actions{display:flex;justify-content:flex-end;padding-top:4px;border-top:1px solid var(--line)}
.form-actions .primary{padding:9px 22px;border-radius:10px}
