/* ===== USERS / ROLES ===== */
.card{background:#fff;border-radius:10px;border:1px solid var(--c-border);overflow:hidden}
.user-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.perm-item{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--c-border);border-radius:6px;cursor:pointer;transition:all .15s;font-size:12px}
.perm-item:hover{border-color:var(--c-blue);background:#eff6ff}
.perm-item input[type=checkbox]{accent-color:var(--c-blue)}
.access-denied{text-align:center;padding:60px 20px;color:var(--c-subtle)}
.access-denied-icon{font-size:32px;margin-bottom:12px;opacity:.4}
.access-denied-title{font-size:14px;font-weight:600;color:var(--c-text4);margin-bottom:4px}
.access-denied-text{font-size:12px}
.section-title{font-size:13px;font-weight:700;margin-bottom:10px;color:var(--c-dark);display:flex;align-items:center;gap:8px}
.empty{text-align:center;padding:40px;color:var(--c-subtle);font-size:12px}

/* ===== TOAST ===== */
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--c-dark);color:#fff;padding:10px 20px;border-radius:8px;font-size:12px;white-space:nowrap;z-index:999;opacity:0;transition:all .3s;pointer-events:none}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ===== RESPONSIVE (スマホファースト) ===== */
/* タブレット以上（min-width: 768px） */
@media (min-width: 768px){
  body.wbs-neo-theme{font-size:13px}
  #appScreen.visible{display:flex;height:100vh;overflow:hidden;min-height:auto}
  .sidebar{width:168px;position:static;top:auto;left:auto;bottom:auto;height:auto;z-index:auto;align-items:normal;overflow-y:visible;overflow-x:visible;transform:none;box-shadow:none;transition:none}
  .sidebar-nav{display:block;min-width:auto}
  .mobile-nav-toggle{display:none}
  .mobile-nav-backdrop{display:none}
  .main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:auto}
  .topbar{position:static;top:auto;z-index:auto;height:52px;padding:0 20px;flex-wrap:nowrap;gap:0}
  .topbar-right{width:auto;justify-content:flex-end}
  .content{flex:1;overflow:hidden;display:flex;flex-direction:column;padding:0}
  .page.active{display:flex;flex-direction:column;flex:1;overflow:hidden}
  #page-wbs{padding:18px 20px;overflow-y:auto;overflow-x:hidden}
  #page-users,#page-roles,#page-issue-create,#page-meetings,#page-meeting-minutes{padding:18px 20px;overflow-y:auto;overflow-x:hidden}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stat-card{padding:14px 16px}
  .stat-val{font-size:22px}
  .toolbar{display:flex;flex-wrap:wrap;align-items:center;grid-template-columns:unset}
  .toolbar input[type=text]{flex:1;min-width:140px;width:auto;grid-column:auto}
  .toolbar .search-wrap input[type=text]{min-width:0;padding-right:28px;}
  .tabs{width:fit-content}
  .tab{flex:none;text-align:left}

  #tabList{flex:1;display:flex;flex-direction:column;min-height:0}
  #tabList .card{flex:1;display:flex;flex-direction:column;min-height:0;overflow:visible}
  .tbl-scroll{flex:1;min-height:0;max-height:unset}
  .card table{width:max-content;table-layout:fixed;min-width:100%}
  #tabGantt{flex:1;display:flex;flex-direction:column;min-height:0}
  .gantt-nav{flex-wrap:nowrap}
  .gantt-nav-label{min-width:160px;width:auto}
  .gantt-wrap{flex:1;max-height:none;min-height:0}
  .gantt-bar{height:14px}
  .field-row{grid-template-columns:1fr 1fr}
  .status-grid{grid-template-columns:110px 1fr}
  .phase-chart-head{flex-direction:row}
  .phase-chart-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
  .issue-form-grid{grid-template-columns:1fr 1fr}
  .modal-bg{align-items:center}
  .modal-stack{display:flex;gap:12px;width:min(98vw,1200px);padding:0 8px}
  .modal,.child-stack-slot{width:auto}
  .modal{max-height:90vh;border-radius:12px;padding:24px;width:min(520px,94vw)}
  .child-task-panels{display:flex;gap:16px}
  .child-stack-slot{position:relative;width:min(520px,94vw)}
  .child-stack-slot .child-task-panel{position:absolute;top:0;left:0;width:100%;height:auto;margin-top:0}
  .login-box{padding:40px 36px}
}
/* PC以上（min-width: 992px） */
@media (min-width: 992px){
  .sidebar{width:200px}
  .stats{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
  .modal-stack{gap:18px;width:min(1200px,96vw)}
  .child-task-panels{gap:50px}
  .card table{width:100%;min-width:0}
}

.gantt-wrap,.gantt-bar{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}

html {
  margin: 0;
  padding: 0;
}

body.mobile-nav-open {
  overflow: hidden;
}

/* WP管理バー高さはCSS変数で管理し、値はJSで同期する */
body.wbs-neo-theme.admin-bar #appScreen.visible {
  height: calc(100vh - var(--wp-admin-bar-offset,46px));
}
