/* データ経路を変えない表示・配置の上書き。 */
:root{
  --bg-primary:#fff; --bg-secondary:#f8f9fb; --bg-card:#fff; --bg-hover:#eef1f5; --bg-active:#eaf0f8;
  --text-primary:#262b33; --text-secondary:#586170; --text-tertiary:#667080;
  --border-light:#e6e9ee; --border-medium:#d2d8e1; --accent-blue-deep:#355d92;
  --font-body:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  --font-heading:var(--font-body); --font-mono:ui-monospace,SFMono-Regular,Menlo,monospace; --font-number:var(--font-body);
  --sidebar-w:236px; --radius-sm:6px; --radius-md:8px; --radius-lg:10px; --ui-offset:0px;
}
[hidden]{display:none!important;}
body{font-size:13px;overflow:hidden;}
button,input,select,textarea{font-family:var(--font-body);}
button,a,input,select,textarea,[tabindex="0"]{scroll-margin:12px;}
:is(button,a,input,select,textarea,[tabindex="0"]):focus-visible{outline:2px solid #355d92;outline-offset:3px;}
#app{height:calc(100dvh - var(--ui-offset));}
#sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:#f8f9fb;}
.sidebar-header{padding:22px 20px 18px;}
.logo{font-size:19px;font-weight:750;letter-spacing:-.6px;}
.logo-accent{color:#a68718;}
.sidebar-nav{padding:0 12px 18px;gap:3px;}
.nav-group-label{font-size:10px;font-weight:650;letter-spacing:.04em;color:#626c79;padding:0 10px 8px;}
.nav-btn,.workspace-home{display:flex;align-items:center;gap:10px;min-height:36px;border:0;border-radius:6px;padding:7px 10px;text-align:left;background:transparent;color:#586170;font-size:12px;font-weight:500;width:100%;cursor:pointer;}
.nav-btn:hover,.workspace-home:hover{background:#eef1f5;}
.nav-btn.active,.workspace-home.active{background:#e9eef7;color:#315d92;box-shadow:none;font-weight:650;}
.nav-icon,.workspace-home>span{font-size:15px;width:18px;text-align:center;color:#687789;}
.sidebar-section{padding:12px;border-top:1px solid #e6e9ee;}
.section-title{font-size:11px;padding:0 10px 8px;margin:0;color:#586170;text-transform:none;letter-spacing:0;}
.project-list{max-height:none;overflow:visible;}
.project-row{min-width:0;}
.project-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.project-btn{min-height:34px;padding:7px 8px;}
.project-edit{min-width:30px;min-height:30px;opacity:1;}
.project-section-title{padding:12px 8px 5px;font-size:10px;color:#626c79;}
.project-active{background:#eaf0f8;border-radius:5px;}
.project-dot{width:7px;height:7px;}
.project-count{font-size:10px;}
.filter-group{padding:0 8px;margin-top:8px;}
.filter-group label{font-size:10px;}
.filter-group select{font-size:11px;min-height:32px;border-color:#d8dfe8;}
.sidebar-user{padding:12px 16px;background:#f8f9fb;border-top:1px solid #e2e6ec;flex-shrink:0;}
.user-name{font-size:12px;}
.user-dept{font-size:11px;}
.gcal-section{margin:10px 0;padding-top:10px;}
.gcal-section-label{font-size:10px;letter-spacing:0;}
.gcal-connected{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.gcal-badge-connected{font-size:10px;padding:2px 4px;}
.gcal-cal-id{font-size:10px;margin:0;}
.gcal-mode-btn{min-height:32px;padding:6px 3px;font-size:10px;}
.gcal-mode-note{font-size:9px;line-height:1.6;color:#586170;}
.gcal-sync-mode-label{font-size:9px;}
.gcal-btn-disconnect{min-height:30px;font-size:10px;padding:5px;}
.admin-switch-link{min-height:44px;font-size:11px;padding:6px 8px;gap:6px;}
.btn-logout{min-height:30px;font-size:10px;padding:5px;}
#mainContent{padding:0;min-width:0;background:#fff;}
.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:88px;padding:18px 26px 12px;border-bottom:1px solid #e6e9ee;flex-shrink:0;}
.workspace-heading{min-width:0;}
.context-eyebrow{display:block;color:#667080;font-size:10px;margin-bottom:6px;}
#workspaceContext{font-size:19px;font-weight:650;line-height:1.4;letter-spacing:-.4px;overflow-wrap:anywhere;}
.context-hint{font-size:10px;color:#626c79;display:block;margin-top:3px;}
.btn-primary{background:#365f94;border:1px solid #365f94;color:#fff;border-radius:6px;font-size:12px;min-height:36px;padding:8px 13px;box-shadow:none;white-space:nowrap;}
.btn-primary:hover{background:#2d5180;}
.btn-secondary,.btn-danger-outline{font-size:12px;min-height:36px;padding:7px 12px;border-radius:6px;}
.btn-icon{min-width:34px;min-height:34px;}
.display-tabs{display:flex;gap:22px;padding:0 26px;min-height:47px;border-bottom:1px solid #e6e9ee;align-items:stretch;flex-shrink:0;}
.display-tab{min-height:47px;width:auto;border-radius:0;position:relative;padding:9px 0;background:transparent!important;font-size:12px;}
.display-tab.active{color:#315d92;}
.display-tab.active:after{content:'';height:2px;background:#365f94;position:absolute;left:0;right:0;bottom:-1px;}
.view{min-height:0;padding:0;}
.view-header{padding:18px 24px 12px;min-height:60px;flex-wrap:wrap;gap:10px;}
.view-title{font-size:15px;font-weight:650;letter-spacing:0;margin:0 auto 0 0;}
#mainContent[data-view="kanban"] #kanbanView>.view-header,#mainContent[data-view="list"] #listView>.view-header{display:none;}
#mainContent[data-view="calendar"] #calendarView .view-title,#mainContent[data-view="gantt"] #ganttView .view-title{font-size:12px;}
.kanban-board{display:grid;grid-template-columns:minmax(140px,.9fr) repeat(5,minmax(150px,1fr)) minmax(120px,.8fr);grid-template-rows:minmax(0,1fr);grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:12px;padding:20px 24px 18px;overflow-x:auto;overflow-y:hidden;min-height:0;align-items:stretch;}
.kanban-col{min-width:0;min-height:0;background:#f8f9fb;border:0;border-radius:7px;display:flex;flex-direction:column;padding:0 8px 8px;}
.kanban-col-head{min-height:42px;padding:10px 3px;gap:7px;flex-shrink:0;}
.kanban-col-name{font-size:11px;font-weight:600;color:#4f5968;}
.kanban-col-count{font-size:10px;background:#eceff3;color:#586170;border-radius:4px;padding:2px 5px;}
.kanban-col-body{flex:1;min-height:90px;max-height:none;overflow-y:auto;padding:0;gap:7px;border-radius:5px;}
.kanban-col-schedule{background:#f3f7fc;}
.kanban-col-archived{background:transparent;border:1px dashed #c8d0dc;padding:0 8px 8px;}
.kanban-col-archived .kanban-col-head{border:0;}
.kanban-empty{font-size:11px;color:#667080;padding:22px 4px;}
.kanban-col-archived .kanban-empty{font-size:10px;color:#626c79;line-height:1.7;padding:18px 6px;}
.kanban-archived-hint{font-size:9px;color:#667080;}
.task-card{padding:10px;border:1px solid #dfe4ec;border-radius:6px;background:#fff;flex-shrink:0;transition:border-color .12s ease;}
.task-card:hover{border-color:#7b94b6;box-shadow:none;transform:none;}
.task-name{font-size:12px;font-weight:550;line-height:1.65;overflow-wrap:anywhere;word-break:normal;}
.task-head{gap:7px;align-items:flex-start;}
.task-avatar{width:19px;height:19px;font-size:9px;margin-top:1px;}
.task-score{font-size:9px;line-height:16px;padding:0 4px;}
.task-score.score-mid{color:#805717;background:#fbf4e5;}
.task-score.score-high{color:#ab3f3f;}
.task-project-chip{font-size:9px;max-width:100%;overflow-wrap:anywhere;margin-top:6px;line-height:1.5;padding:2px 5px;}
.task-meta{font-size:10px;margin-top:5px;gap:5px;}
.task-req{font-size:10px;color:#626c79;}
.task-owner{font-size:10px;padding-left:26px;color:#586170;}
.date-chip{font-size:9px;line-height:1.5;padding:2px 4px;}
.date-chip.date-overdue{color:#a83b3b;background:#fff0ee;}
.date-abs{font-size:9px;}
.task-subtask-chip{font-size:9px;margin-top:6px;color:#586170;}
.recur-badge{font-size:9px;margin-right:3px;}
.schedule-card-label{font-size:9px;color:#4c6b92;}
.schedule-card-period{font-size:10px;color:#586170;margin-top:5px;}
.list-content,.report-content,.routine-content{padding:18px 24px;min-height:0;overflow:auto;}
.task-table{width:100%;font-size:12px;}
.task-table th{font-size:10px;padding:10px 12px;background:#f8f9fb;}
.task-table td{padding:11px 12px;border-color:#e6e9ee;}
.task-name-cell{min-width:180px;max-width:560px;overflow-wrap:anywhere;}
.archived-toggle{min-height:42px;}
.archived-unarchive-btn{min-height:30px;}
.calendar-grid{margin:0 24px 20px;min-height:0;overflow:auto;flex:1;}
.cal-cell{min-height:90px;}
.cal-task{font-size:10px;line-height:1.6;}
.cal-controls{gap:12px;flex-wrap:wrap;}
.cal-timegrid{margin:0 24px 18px;min-height:0;flex:1;}
.cal-label{font-size:11px;}
.cal-nav{gap:6px;}
.seg-btn{font-size:11px;min-height:32px;}
.ctg-event{font-size:11px;}
.gantt-container{margin:0 24px 20px;min-height:0;flex:1;}
.gantt-scroll{height:100%;}
.gantt-name-col{font-size:11px;}
.gantt-bar-label{font-size:10px;}
.report-stats{margin-bottom:20px;gap:12px;}
.stat-num{font-size:26px;}
.stat{padding:16px;}
.report-controls{flex-wrap:wrap;gap:8px;}
.history-search{min-width:0;max-width:190px;}
.month-select{font-size:11px;}
.report-name{font-size:12px;overflow-wrap:anywhere;}
.report-section{margin-top:16px;}
.map-content{padding:20px 24px;min-height:0;overflow:auto;}
.map-node{border-radius:6px;}
.map-node-name{font-size:12px;}
.map-node-count{font-size:10px;}
.team-controls{gap:8px;flex-wrap:wrap;}
.team-content{padding:16px 24px;min-height:0;overflow:auto;}
.team-table{font-size:12px;}
.team-cell-name{overflow-wrap:anywhere;}
.team-kanban{display:flex;overflow-x:auto;gap:12px;}
.team-kanban-col{min-width:200px;flex:1;}
.team-kanban-card-name{overflow-wrap:anywhere;}
.routine-content{display:flex;flex-direction:column;gap:20px;}
.routine-section{padding:0;border:0;border-radius:0;background:transparent;}
.routine-section:nth-child(2){order:-1;}
.routine-section-title{font-size:13px;font-weight:650;}
.routine-tpl-list{display:flex;flex-direction:column;gap:7px;}
.routine-tpl-card{padding:12px;border:1px solid #e3e7ed;border-radius:6px;}
.routine-tpl-name{font-size:12px;}
.routine-tpl-meta{font-size:10px;}
.routine-check-row{min-height:44px;font-size:12px;}
.routine-progress-done{font-size:30px;}
.routine-tpl-actions{flex-shrink:0;}
.routine-form-wrap{border-radius:6px;}
.modal-overlay{top:var(--ui-offset);padding:20px;}
.modal{padding:22px;width:min(560px,calc(100vw - 40px));max-height:calc(100dvh - var(--ui-offset) - 40px);overflow-y:auto;border-radius:10px;box-shadow:0 20px 80px #18223433;}
.modal-header{padding:0 0 16px;}
.modal-header h3{font-size:16px;}
.form-row{gap:14px;margin-bottom:14px;}
.form-group label{font-size:11px;}
.form-group input,.form-group select,.form-group textarea{font-size:12px;min-height:38px;border-color:#d4dbe5;border-radius:5px;}
.form-hint{font-size:10px;line-height:1.6;}
.modal-footer{margin-top:18px;padding-top:14px;gap:8px;flex-wrap:wrap;}
.modal-footer-right{gap:8px;}
.readonlyNote{font-size:10px;}
.modal-sm{max-width:480px;}
.subtask-name{font-size:12px;overflow-wrap:anywhere;}
.login-gate{height:calc(100dvh - var(--ui-offset));}
.login-title{font-size:24px;}
.login-sub{font-size:12px;line-height:1.8;}
.toast{bottom:18px;max-width:calc(100vw - 32px);font-size:12px;line-height:1.6;}
@media(max-width:1200px){.kanban-board{display:grid;grid-template-columns:168px repeat(5,186px) 150px;gap:12px;}
#mainContent{padding:0;}
.kanban-col{flex:initial;}
}
@media(max-width:900px){.kanban-board{display:grid;grid-template-columns:168px repeat(5,186px) 150px;}
#mainContent{padding:0;}
.kanban-col{flex:initial;}
}
@media(max-width:768px){:root{--ui-offset:0px;}
#sidebar{top:var(--ui-offset);width:260px;min-width:260px;}
.sidebar-toggle{top:calc(var(--ui-offset) + 17px);left:12px;width:36px;height:36px;}
.sidebar-backdrop{top:var(--ui-offset);}
#mainContent{padding:0;width:100%;}
.workspace-toolbar{min-height:94px;padding:14px 14px 12px 58px;align-items:center;gap:10px;}
#workspaceContext{font-size:16px;}
.context-eyebrow{font-size:9px;}
.context-hint{font-size:9px;}
.workspace-toolbar .btn-primary{font-size:10px;padding:7px 9px;min-height:34px;}
.display-tabs{padding:0 16px;gap:22px;min-height:44px;}
.display-tab{font-size:11px;min-height:44px;}
.view-header{padding:12px 16px;flex-direction:row;align-items:center;min-height:50px;}
.view-title{font-size:13px;}
.kanban-board{padding:14px 16px;gap:10px;grid-template-columns:168px repeat(5,186px) 150px;}
.kanban-col{flex:initial;}
.list-content,.report-content,.routine-content,.map-content,.team-content{padding:14px 16px;}
.task-table{min-width:590px;}
.calendar-grid,.cal-timegrid,.gantt-container{margin:0 16px 14px;}
.cal-controls{width:100%;gap:8px;}
.cal-nav{flex:1;justify-content:flex-end;}
.cal-cell{min-height:76px;}
.cal-day{font-size:10px;}
.cal-task{font-size:9px;padding:1px 3px;}
.cal-timegrid{--ctg-gutter:38px;}
.seg-toggle{width:auto;}
.seg-btn{font-size:10px;min-height:32px;}
.cal-label{font-size:10px;}
.btn-secondary{font-size:11px;padding:6px 9px;}
.btn-icon{min-width:32px;min-height:32px;}
.report-controls{width:100%;}
.history-search{max-width:none;flex:1;}
.report-stats{grid-template-columns:repeat(3,1fr);gap:8px;}
.stat{padding:12px;}
.stat-num{font-size:23px;}
.stat-meta{grid-column:1/-1;}
.team-controls{width:100%;}
.team-filter{max-width:100%;font-size:10px;}
.routine-tpl-card{align-items:flex-start;gap:10px;}
.routine-tpl-actions{gap:4px;}
.routine-tpl-actions button{font-size:10px;padding:5px;min-width:36px;}
.routine-progress-count{margin-top:4px;}
.modal-overlay{padding:10px;}
.modal,.modal.modal-sm{width:calc(100vw - 20px);max-width:560px;max-height:calc(100dvh - var(--ui-offset) - 20px);padding:18px;}
.form-row{display:block;}
.form-row>.form-group{margin-bottom:12px;}
.modal-footer-right{margin-left:auto;}
}
@media(max-width:480px){.cal-task{display:block;}
.cal-cell{padding:4px 3px;min-height:82px;}
.cal-tasks{overflow:hidden;}
.cal-task{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cal-cell.has-tasks::after{display:none;}
.cal-time{display:none;}
.workspace-toolbar{padding-left:56px;}
.workspace-toolbar .btn-primary{max-width:98px;}
.task-table{min-width:540px;}
.routine-tpl-card{flex-direction:column;}
.routine-tpl-actions{align-self:flex-end;}
.report-stats{grid-template-columns:repeat(3,1fr);}
.stat-num{font-size:22px;}
.stat-label{font-size:10px;}
.seg-toggle{width:auto;}
.form-group input,.form-group select,.form-group textarea{font-size:16px;}
.gcal-mode-btn,.admin-switch-link,.btn-logout{min-height:34px;}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;}
}
.routine-section{margin-bottom:12px;}
.kanban-col-archived .kanban-empty{opacity:1;}
.project-count{color:#586170;}
@media(max-width:768px){button:not(.task-score),.admin-switch-link,.project-btn,.gcal-mode-btn,.gcal-btn-disconnect,.btn-logout,.workspace-toolbar .btn-primary,.seg-btn,.btn-icon{min-height:44px;}
.btn-icon,.sidebar-toggle{min-width:44px;}
.sidebar-toggle{height:44px;top:calc(var(--ui-offset) + 14px);}
:root{--ui-offset:0px;}
.gcal-mode-btn{font-size:10px;}
.modal-footer-right{flex-wrap:wrap;}
.display-tabs{gap:20px;}
.display-tab{min-width:44px;}
.routine-tpl-actions button{min-height:44px;min-width:44px;}
}
