body {
  background: linear-gradient(180deg, #f4f7fb 0%, #e9eef6 100%);
  color: #1f2937;
}

.app-nav {
  background: linear-gradient(90deg, #0f172a 0%, #1d4ed8 100%);
}

.app-nav .nav-link.active {
  color: #fff;
  font-weight: 700;
  border-bottom: 2px solid rgba(255, 255, 255, 0.85);
}

.app-nav-fixed {
  position: sticky;
  top: 0;
  z-index: 1030;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
}

.app-main {
  padding-top: 1.5rem;
  padding-bottom: 2rem;
}

.summary-card {
  background: white;
  border-radius: 1rem;
  padding: 1rem 1.1rem;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-height: 92px;
}

.summary-card span {
  color: #64748b;
  font-size: 0.95rem;
}

.summary-card strong {
  font-size: 1.6rem;
  line-height: 1;
}

.task-side {
  min-width: 280px;
}

.task-board {
  display: grid;
  grid-template-columns: repeat(6, minmax(210px, 1fr));
  gap: 1rem;
}

.task-board > div,
.task-board > .col,
.task-board > .col-lg-3,
.task-board > .col-lg-2 {
  width: auto;
  max-width: none;
  padding: 0;
}

.task-column .card-body {
  min-height: 360px;
  max-height: 360px;
  overflow-y: auto;
}

.task-card {
  cursor: pointer;
  background: #fff;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.task-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

.task-card-self {
  border-left: 5px solid #2563eb !important;
  background: linear-gradient(90deg, rgba(37, 99, 235, 0.08), #fff 38%);
}

.task-card-requested {
  border-left: 5px solid #f97316 !important;
  background: linear-gradient(90deg, rgba(249, 115, 22, 0.10), #fff 38%);
}

.task-assignment-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.18rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
}

.task-assignment-self {
  color: #1d4ed8;
  background: #dbeafe;
}

.task-assignment-requested {
  color: #9a3412;
  background: #ffedd5;
}

.all-task-layout {
  min-height: calc(100vh - 360px);
}

.all-task-layout .card {
  min-height: calc(100vh - 390px);
}

.all-task-layout .card-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.all-task-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  flex: 1 1 auto;
  min-height: 340px;
  max-height: calc(100vh - 460px);
  overflow-y: auto;
  padding-right: 0.25rem;
}

.all-task-card {
  width: 100%;
  border: 1px solid #e2e8f0;
  border-radius: 0.9rem;
  padding: 0.9rem;
  text-align: left;
}

.all-task-card.is-selected {
  outline: 3px solid rgba(37, 99, 235, 0.18);
  border-color: #2563eb;
}

.all-task-detail {
  min-height: 180px;
}

.panel-header-blue {
  color: #fff;
  background: linear-gradient(90deg, #1d4ed8, #0f766e);
  font-weight: 700;
}

.panel-header-orange {
  color: #fff;
  background: linear-gradient(90deg, #ea580c, #b45309);
  font-weight: 700;
}

#task-info-panel {
  min-height: 260px;
}

#sent-task-info-panel {
  min-height: 240px;
}

.dashboard-counts .summary-card {
  min-height: 88px;
}

.dashboard-mini-counts {
  display: grid;
  grid-template-columns: repeat(6, minmax(82px, 1fr));
  gap: 0.5rem;
}

.dashboard-count-tile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  min-height: 46px;
  padding: 0.55rem 0.7rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 0.5rem;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06);
}

.dashboard-count-tile span {
  color: #64748b;
  font-size: 0.82rem;
  white-space: nowrap;
}

.dashboard-count-tile strong {
  font-size: 1.1rem;
}

.dashboard-filter {
  min-width: 130px;
}

.project-filter-dropdown .dropdown-menu {
  max-height: 280px;
  min-width: 220px;
  overflow-y: auto;
  z-index: 1080;
}

.project-filter-dropdown .dropdown-toggle {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-filter-card {
  position: relative;
  z-index: 60;
  overflow: visible !important;
}

.project-filter-card .row,
.project-filter-card .dropdown {
  overflow: visible;
}

.product-select-search {
  border-color: #cbd5e1;
  font-size: 0.82rem;
}

.product-select-search::placeholder {
  color: #94a3b8;
}

.product-hidden-select {
  display: none;
}

.production-item-row td:first-child,
#detail-production-form .col-md-4 {
  position: relative;
}

.product-autocomplete-list {
  display: none;
  position: absolute;
  z-index: 1040;
  width: min(420px, 92vw);
  max-height: 260px;
  overflow-y: auto;
  border: 1px solid #cbd5e1;
  border-radius: 0.65rem;
  background: #fff;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.16);
}

.product-autocomplete-list.is-open {
  display: block;
}

.product-autocomplete-item {
  display: flex;
  width: 100%;
  gap: 0.65rem;
  align-items: center;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  padding: 0.55rem 0.7rem;
  color: #1f2937;
  background: #fff;
  text-align: left;
}

.product-autocomplete-item:hover {
  background: #eff6ff;
}

.product-autocomplete-item strong {
  min-width: 7rem;
  color: #1d4ed8;
  font-size: 0.82rem;
}

.product-autocomplete-item span {
  font-size: 0.82rem;
}

.dashboard-task-card {
  min-height: 330px;
}

.dashboard-sortable th.sortable {
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}

.dashboard-sortable th.sortable::after {
  content: " ↕";
  color: #94a3b8;
  font-weight: 400;
}

.dashboard-sortable th.sorted-asc::after {
  content: " ↑";
  color: #1d4ed8;
}

.dashboard-sortable th.sorted-desc::after {
  content: " ↓";
  color: #1d4ed8;
}

.dashboard-click-row {
  cursor: pointer;
}

.received-page-layout {
  min-height: calc(100vh - 150px);
  display: flex;
  flex-direction: column;
}

.sent-page-layout {
  min-height: calc(100vh - 150px);
  display: flex;
  flex-direction: column;
}

.sent-page-layout .task-board {
  flex: 1 1 auto;
  margin-bottom: 1rem !important;
  grid-template-columns: repeat(7, minmax(170px, 1fr));
}

.received-page-layout .task-board {
  flex: 1 1 auto;
  margin-bottom: 1rem !important;
}

.received-page-layout .task-column .card-body {
  min-height: 0;
  max-height: 360px;
  overflow-y: auto;
}

.received-page-layout #task-info-panel {
  flex: 0 0 auto;
  min-height: 240px;
  max-height: 240px;
  overflow: hidden;
}

.sent-page-layout #sent-task-info-panel {
  flex: 0 0 auto;
  min-height: 220px;
  max-height: 220px;
  overflow: hidden;
}

.sent-page-layout .task-column .card-body {
  min-height: 0;
  max-height: 330px;
  overflow-y: auto;
}

.sent-page-layout .task-column {
  min-height: 390px;
}

.list-scroll-card .list-scroll-body {
  max-height: calc(100vh - 335px);
  overflow: auto;
}

.list-scroll-card thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f8fafc;
  box-shadow: inset 0 -1px 0 #dbe3ef;
}

.product-list-card .list-scroll-body {
  max-height: calc(100vh - 430px);
}

.production-sticky-title {
  position: relative;
  z-index: 1;
  background: linear-gradient(135deg, #e0ecff 0%, #f1f6ff 100%);
  box-shadow: inset 0 -1px 0 #cbd5e1;
}

.production-table-scroll {
  max-height: min(620px, calc(100vh - 360px));
  min-height: 360px;
  overflow: auto;
}

.production-table-scroll thead th {
  position: sticky;
  top: 0;
  z-index: 10;
  background: #f8fafc;
  box-shadow: inset 0 -1px 0 #dbe3ef;
}

.dashboard-project-link .border,
.project-summary-card {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.dashboard-project-link:hover .border,
.project-summary-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.10);
}

.login-page {
  background:
    radial-gradient(circle at top left, rgba(59, 130, 246, 0.25), transparent 30%),
    radial-gradient(circle at bottom right, rgba(14, 165, 233, 0.2), transparent 25%),
    #e2e8f0;
}

.card,
.report-card {
  border: 0;
  border-radius: 1rem;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}

.card-header {
  border-bottom: 1px solid #cbd5e1;
  background: linear-gradient(135deg, #e0ecff 0%, #f1f6ff 100%);
  color: #173b72;
  font-weight: 800;
}

.task-column[data-status="등록됨"] .card-header { background: linear-gradient(135deg, #e2e8f0, #f8fafc); color: #334155; }
.task-column[data-status="확인함"] .card-header { background: linear-gradient(135deg, #cffafe, #ecfeff); color: #155e75; }
.task-column[data-status="진행중"] .card-header { background: linear-gradient(135deg, #dbeafe, #eff6ff); color: #1d4ed8; }
.task-column[data-status="완료요청"] .card-header { background: linear-gradient(135deg, #fef3c7, #fffbeb); color: #92400e; }
.task-column[data-status="완료확인"] .card-header { background: linear-gradient(135deg, #dcfce7, #f0fdf4); color: #166534; }
.task-column[data-status="보류"] .card-header { background: linear-gradient(135deg, #f3e8ff, #faf5ff); color: #6b21a8; }
.task-column[data-status="지연"] .card-header { background: linear-gradient(135deg, #fee2e2, #fff1f2); color: #b91c1c; }

.card > h2:first-child,
.card > .panel-title:first-child {
  margin: -1rem -1rem 1rem;
  padding: 0.75rem 1rem;
  background: linear-gradient(135deg, #e0ecff 0%, #f4f7ff 100%);
  color: #173b72;
  border-bottom: 1px solid #cbd5e1;
  font-weight: 800;
}

.table thead th {
  white-space: nowrap;
  background: #edf3fb;
  color: #243b5a;
  border-bottom-color: #b9c8dc;
}

.app-sortable-table th.sortable {
  cursor: pointer;
  user-select: none;
}

.app-sortable-table th.sortable::after {
  content: " ↕";
  color: #94a3b8;
  font-weight: 500;
}

.app-sortable-table th.sorted-asc::after { content: " ↑"; color: #1d4ed8; }
.app-sortable-table th.sorted-desc::after { content: " ↓"; color: #1d4ed8; }

.app-sortable-table th.sortable:hover {
  background: #dbeafe;
  color: #1d4ed8;
}

.card-sort-control {
  width: 122px;
  min-height: 28px;
  padding-top: 0.1rem;
  padding-bottom: 0.1rem;
  font-size: 0.72rem;
  font-weight: 600;
}

.priority-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 76px;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #fff;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.16);
}

.priority-p1 {
  background: linear-gradient(135deg, #7f1d1d, #dc2626);
}

.priority-p2 {
  background: linear-gradient(135deg, #b91c1c, #f97316);
}

.priority-p3 {
  background: linear-gradient(135deg, #c2410c, #f59e0b);
}

.priority-p4 {
  background: linear-gradient(135deg, #2563eb, #38bdf8);
}

.priority-p5 {
  background: linear-gradient(135deg, #15803d, #22c55e);
}

.priority-p6 {
  background: linear-gradient(135deg, #475569, #94a3b8);
}

.workflow-form .form-label {
  margin-bottom: 0.3rem;
  font-size: 0.88rem;
  font-weight: 600;
  white-space: nowrap;
}

.workflow-form .form-control,
.workflow-form .form-select {
  min-height: 40px;
}

.workflow-form textarea.form-control {
  min-height: auto;
}

.workflow-form textarea[name="description"],
.workflow-form textarea[name="notes"],
.workflow-form textarea[name="recent_memo"],
.workflow-form textarea[name="memo"],
.workflow-form textarea[name="next_week_plan"],
.workflow-form textarea[name="issue_notes"],
.workflow-form textarea[name="worker_weekly_notes"],
.workflow-form textarea[name="worker_next_plan_notes"] {
  min-height: 76px;
  resize: vertical;
}

.workflow-form input[type="date"],
.workflow-form input[type="number"],
.workflow-form select[name="status"],
.workflow-form select[name="priority"],
.workflow-form select[name="plan"] {
  font-variant-numeric: tabular-nums;
}

input[name="name"],
input[name="title"],
input[name="product_name"],
input[name="client_name"],
textarea[name="description"],
textarea[name="notes"],
textarea[name="recent_memo"],
textarea[name="memo"] {
  letter-spacing: -0.01em;
}

.compact-control {
  max-width: 190px;
}

.long-control {
  min-width: 280px;
}

#project-form {
  padding: 1.25rem !important;
}

.project-form-grid {
  display: grid;
  grid-template-columns: repeat(16, minmax(0, 1fr));
  gap: 0.8rem 0.9rem;
}

.project-field { min-width: 0; }
.project-form-section-title {
  grid-column: 1 / -1;
  grid-row: 1;
  margin: -1.25rem -1.25rem 0.15rem;
  padding: 0.7rem 1.25rem;
  color: #173b72;
  background: linear-gradient(135deg, #e0ecff 0%, #f4f7ff 100%);
  border-bottom: 1px solid #cbd5e1;
  font-weight: 800;
}

.project-field-no { grid-column: 1 / 3; grid-row: 2; }
.project-field-type { grid-column: 3 / 5; grid-row: 2; }
.project-field-priority { grid-column: 5 / 7; grid-row: 2; }
.project-field-registered { grid-column: 7 / 9; grid-row: 2; }
.project-field-start { grid-column: 9 / 11; grid-row: 2; }
.project-field-due { grid-column: 11 / 13; grid-row: 2; }
.project-field-status { grid-column: 13 / 15; grid-row: 2; }
.project-field-report { grid-column: 15 / 17; grid-row: 2; }
.project-field-name { grid-column: 1 / 9; grid-row: 3; }
.project-field-customer { grid-column: 9 / 14; grid-row: 3; }
.project-field-manager { grid-column: 14 / 17; grid-row: 3; }
.project-field-description { grid-column: 1 / 9; grid-row: 4; }
.project-field-notes { grid-column: 9 / 17; grid-row: 4; }
.project-field-production,
.project-field-weekly { grid-column: 1 / -1; }
.project-field-production { grid-row: 5; }
.project-field-weekly { grid-row: 7; }
.project-field-prev-progress,
.project-field-current-progress { grid-row: 6; }
.project-field-prev-progress { grid-column: 1 / 3; }
.project-field-current-progress { grid-column: 3 / 5; }

.project-field-no input,
.project-field-priority select,
.project-field-status select,
.project-field-registered input,
.project-field-start input,
.project-field-due input,
.project-field-prev-progress input,
.project-field-current-progress input {
  font-variant-numeric: tabular-nums;
}

.project-field-no .form-text,
.project-field-type .form-text {
  font-size: 0.72rem;
  line-height: 1.25;
}

.project-report-check {
  min-height: 40px;
  margin: 0;
  padding: 0.55rem 0.7rem 0.55rem 2.15rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.375rem;
  background: #f8fafc;
  white-space: nowrap;
}

.project-field-description textarea,
.project-field-notes textarea {
  min-height: 70px !important;
}

#production-items-section > div {
  background: #f8fafc !important;
  border-color: #cbd5e1 !important;
}

#production-items-section table {
  table-layout: fixed;
  min-width: 1120px;
}

.production-col-product { width: 28%; }
.production-col-name { width: 22%; }
.production-col-qty { width: 9%; }
.production-col-unit { width: 7%; }
.production-col-date { width: 13%; }
.production-col-notes { width: 17%; }
.production-col-action { width: 4%; }

#production-items-section th,
#production-items-section td {
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

@media (max-width: 1199px) {
  .project-form-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .project-field-no,
  .project-field-type,
  .project-field-priority,
  .project-field-registered,
  .project-field-start,
  .project-field-due,
  .project-field-status,
  .project-field-manager { grid-column: span 3; }
  .project-field-name,
  .project-field-customer { grid-column: span 6; }
  .project-field-report { grid-column: span 3; }
  .project-field,
  .project-form-section-title {
    grid-row: auto;
  }
}

@media (max-width: 767px) {
  .project-form-grid { grid-template-columns: 1fr; }
  .project-field { grid-column: 1 / -1 !important; }
}

.btn {
  white-space: nowrap;
}

.report-detail-panel {
  border: 1px solid #dce3ec;
  border-radius: 0.65rem;
  background: #f8fafc;
  padding: 0.8rem 1rem;
}

.report-detail-panel summary {
  cursor: pointer;
  font-weight: 700;
  color: #334155;
}

.deadline-comparison {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.deadline-comparison > div {
  padding: 0.8rem;
  border-radius: 0.6rem;
  background: #f1f5f9;
}

.deadline-comparison span,
.deadline-comparison strong {
  display: block;
}

.deadline-comparison span {
  color: #64748b;
  font-size: 0.8rem;
}

.calendar-month-label {
  min-width: 120px;
  text-align: center;
  font-size: 1.1rem;
}

.calendar-month-input {
  width: 150px;
}

.calendar-range-select {
  width: 105px;
}

.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  color: #475569;
  font-size: 0.9rem;
}

.calendar-legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.calendar-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.calendar-dot.project,
.calendar-event-marker.project {
  background: #2563eb;
}

.calendar-dot.production,
.calendar-event-marker.production {
  background: #f97316;
}

.calendar-today-sample {
  width: 3px;
  height: 18px;
  background: #dc2626;
}

.calendar-card {
  overflow: hidden;
}

.calendar-scroll {
  overflow-x: auto;
}

.calendar-grid {
  position: relative;
  display: grid;
  grid-template-columns: 260px minmax(1100px, 1fr);
  min-width: 1360px;
}

.calendar-header-label,
.calendar-days-header,
.calendar-event-label,
.calendar-event-track {
  border-bottom: 1px solid #e2e8f0;
}

.calendar-header-label {
  padding: 0.85rem 1rem;
  font-weight: 700;
  background: #f8fafc;
}

.calendar-days-header,
.calendar-event-track {
  display: grid;
  grid-template-columns: repeat(var(--calendar-days), minmax(36px, 1fr));
  position: relative;
}

.calendar-week-grid .calendar-days-header,
.calendar-week-grid .calendar-event-track {
  grid-template-columns: repeat(var(--calendar-weeks), minmax(110px, 1fr));
}

.calendar-day {
  padding: 0.45rem 0;
  text-align: center;
  border-left: 1px solid #e2e8f0;
  background: #f8fafc;
}

.calendar-day span {
  display: block;
  color: #64748b;
  font-size: 0.7rem;
}

.calendar-day.today {
  color: #dc2626;
  background: #fef2f2;
}

.calendar-event-label {
  min-height: 58px;
  padding: 0.7rem 1rem;
  background: #fff;
}

.calendar-event-label small {
  display: block;
  margin-top: 0.2rem;
  color: #64748b;
}

.calendar-event-track {
  min-height: 58px;
  background: #fff;
}

.calendar-status-planned {
  background: #eff6ff !important;
}

.calendar-status-active {
  background: #ecfdf5 !important;
}

.calendar-status-done {
  background: #f1f5f9 !important;
}

.calendar-status-hold {
  background: #fffbeb !important;
}

.calendar-status-delayed {
  background: #fef2f2 !important;
}

.calendar-track-day {
  border-left: 1px solid #eef2f7;
}

.calendar-event-marker {
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 0.75rem;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 5px 12px rgba(15, 23, 42, 0.2);
  z-index: 2;
}

.calendar-week-grid .calendar-event-marker {
  width: 46px;
  height: 28px;
  border-radius: 999px;
  font-size: 0.68rem;
}

.calendar-today-line {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #dc2626;
  z-index: 3;
  pointer-events: none;
}

.calendar-today-line span {
  position: sticky;
  top: 0;
  display: inline-block;
  transform: translateX(-50%);
  padding: 0.15rem 0.35rem;
  border-radius: 0.3rem;
  color: #fff;
  background: #dc2626;
  font-size: 0.68rem;
}

.calendar-empty {
  grid-column: 1 / -1;
  padding: 3rem;
  text-align: center;
  color: #64748b;
}

.task-entry-layout > div > .card {
  min-height: 100%;
}

.task-entry-layout > .col-xl-3 {
  width: 22%;
}

.task-entry-layout > .col-xl-9 {
  width: 78%;
}

.import-duplicate-group-1 > * {
  background-color: #fff1f2 !important;
}

.import-duplicate-group-2 > * {
  background-color: #eff6ff !important;
}

.import-duplicate-group-3 > * {
  background-color: #ecfdf5 !important;
}

.import-duplicate-group-4 > * {
  background-color: #fffbeb !important;
}

.import-duplicate-group-5 > * {
  background-color: #f5f3ff !important;
}

.import-duplicate-group-6 > * {
  background-color: #ecfeff !important;
}

.task-form-card {
  padding: 1.25rem !important;
}

.task-form-grid {
  display: grid;
  grid-template-columns: repeat(16, minmax(0, 1fr));
  gap: 0.8rem 0.9rem;
}

.task-form-field { min-width: 0; }

.task-form-section-title {
  grid-column: 1 / -1;
  grid-row: 1;
  margin: -1.25rem -1.25rem 0.15rem;
  padding: 0.7rem 1.25rem;
  color: #173b72;
  background: linear-gradient(135deg, #e0ecff 0%, #f4f7ff 100%);
  border-bottom: 1px solid #cbd5e1;
  font-weight: 800;
}

.task-field-project { grid-column: 1 / 9; grid-row: 2; }
.task-field-production { grid-column: 9 / 17; grid-row: 2; }
.task-field-title { grid-column: 1 / 9; grid-row: 3; }
.task-field-assignee { grid-column: 9 / 12; grid-row: 3; }
.task-field-requester { grid-column: 12 / 15; grid-row: 3; }
.task-field-priority { grid-column: 15 / 17; grid-row: 3; }
.task-field-description { grid-column: 1 / 17; grid-row: 4; }
.task-field-start { grid-column: 1 / 4; grid-row: 5; }
.task-field-due { grid-column: 4 / 7; grid-row: 5; }
.task-field-status { grid-column: 7 / 10; grid-row: 5; }
.task-field-progress { grid-column: 10 / 12; grid-row: 5; }
.task-field-weight { grid-column: 12 / 14; grid-row: 5; }
.task-field-memo { grid-column: 1 / 17; grid-row: 6; }

.task-field-production {
  padding: 0.55rem 0.7rem;
  border: 1px solid #bfdbfe;
  border-radius: 0.55rem;
  background: #eff6ff;
}

.task-field-production.is-disabled {
  border-color: #dbe2ea;
  background: #f8fafc;
}

.task-field-production.is-disabled label,
.task-field-production.is-disabled .form-text {
  color: #64748b;
}

.task-field-description textarea {
  min-height: 82px !important;
}

.task-field-memo textarea {
  min-height: 64px !important;
}

.task-form-grid .form-text {
  font-size: 0.74rem;
  line-height: 1.25;
}

@media (min-width: 1200px) {
  .task-entry-layout {
    align-items: stretch;
  }
}

@media (max-width: 991px) {
  .task-entry-layout > .col-xl-3,
  .task-entry-layout > .col-xl-9 {
    width: 100%;
  }

  .task-form-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  .task-form-field {
    grid-column: span 6;
    grid-row: auto;
  }

  .task-form-section-title,
  .task-field-description,
  .task-field-memo {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .task-side {
    min-width: 100%;
  }

  .task-board {
    grid-template-columns: repeat(3, minmax(220px, 1fr));
  }

  .dashboard-mini-counts {
    grid-template-columns: repeat(3, minmax(82px, 1fr));
  }

  .received-page-layout {
    min-height: auto;
  }

  .received-page-layout .task-column .card-body,
  .received-page-layout #task-info-panel {
    max-height: none;
  }
}

@media (max-width: 767px) {
  .task-form-grid { grid-template-columns: 1fr; }
  .task-form-field,
  .task-form-section-title { grid-column: 1 / -1; }

  .task-board {
    grid-template-columns: 1fr;
  }

  .dashboard-mini-counts {
    grid-template-columns: repeat(2, minmax(82px, 1fr));
  }
}
