/* App UI polish */
:root{
  --pt-brand-indigo: #6d28d9; /* indigo-700 */
  --pt-brand-cyan: #06b6d4;   /* cyan-500 */
  --pt-accent: var(--pt-brand-cyan);
  --pt-muted: #6b7280;        /* gray-500 */
}

body{ font-feature-settings: "cv02","cv03","cv04","cv11"; background: linear-gradient(180deg, rgba(6,182,212,.06) 0%, rgba(109,40,217,.04) 100%), #0b0f14; background-attachment: fixed; background-repeat: no-repeat; }

/* Brand: ptracker */
.navbar-brand{
  font-family: 'Space Grotesk', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, 'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
  font-weight: 700;
  letter-spacing: .4px;
}
.navbar-brand .brand-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width: 1.8rem; height: 1.8rem; border-radius: .4rem; margin-right: .35rem;
  background: linear-gradient(135deg, #7C3AED 0%, #22D3EE 100%);
  color: #0b0f14;
  box-shadow: 0 2px 8px rgba(124,58,237,.35);
}
.navbar-brand .brand-text{
  background: linear-gradient(135deg, #E5E7EB 0%, #A5B4FC 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}


/* Kanban layout: full-height on desktop, normal on mobile */
.kanban-column{ display:flex; flex-direction:column; }
.kanban-column .card{ display:flex; flex-direction:column; height: 100%; }
.kanban-list{ min-height: 16rem; flex: 1 1 auto; overflow:auto; }
/* Wrap row should stretch to viewport height minus header/breadcrumb space */
@media (min-width: 576px){
  .kanban-area{ min-height: calc(100vh - 8rem); }
}
@media (max-width: 576px){
  .kanban-area{ min-height: 0; }
  .kanban-column .card{ height: auto; }
  .kanban-list{ overflow: visible; }
}

/* Inline editor/inputs in collapses */
.notes-pane input.form-control,
.attachments-pane input.form-control{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.15); }

/* Accent palette */
:root{
  --pt-accent: #22d3ee; /* cyan-400 */
  --pt-muted: #6b7280; /* gray-500 */
  --pt-brand-indigo: #7c3aed;
  --pt-brand-cyan: #22d3ee;
}

.btn-outline-info{ --bs-btn-color: var(--pt-accent); --bs-btn-border-color: var(--pt-accent); --bs-btn-hover-bg: var(--pt-accent); --bs-btn-hover-border-color: var(--pt-accent); }


.navbar{ box-shadow: 0 2px 0 rgba(255,255,255,0.06) inset, 0 1px 12px rgba(0,0,0,0.3); }

.container .page-actions .btn{ white-space: nowrap; }

/* Cards and lists */
.card{ border-radius: .5rem; }
.card-header{ font-weight: 600; letter-spacing: .2px; }
.list-group-item{ border-radius: .5rem; }
.list-group-item:hover{ background: rgba(255,255,255,.04); }

/* Kanban */
.kanban-column .card-header{ position: sticky; top: 0; z-index: 2; display:flex; justify-content:space-between; align-items:center; background: linear-gradient(180deg, rgba(255,255,255,.05) 0%, rgba(255,255,255,.02) 100%); border-bottom-color: rgba(255,255,255,.08); backdrop-filter: saturate(120%) blur(2px); }
.kanban-list{ min-height: 6rem; }
/* Kanban due-date highlighting: limit color to the title bar */
/* moved to .task-card-header rules below to avoid tinting whole cards */

/* Allow semantic bg-* badge colors on kanban card badges */
/* .kanban-column .badge{ background: rgba(255,255,255,.15) !important; } */

/* Collapse toggles */
.btn-outline-info{ --bs-btn-color: var(--pt-accent); --bs-btn-border-color: var(--pt-accent); --bs-btn-hover-bg: var(--pt-accent); --bs-btn-hover-border-color: var(--pt-accent); }

/* Typography spacing */
h1,h2,h3,h4{ margin-bottom: .25rem; }
.small, .text-secondary{ letter-spacing: .2px; }

/* Breadcrumbs */
.breadcrumb{ --bs-breadcrumb-divider-color: var(--pt-muted); --bs-breadcrumb-item-active-color: #fff; }
.breadcrumb .breadcrumb-item + .breadcrumb-item::before{ color: var(--pt-muted); }

/* Forms */
.form-control-sm, .form-select-sm{ padding-top: .35rem; padding-bottom: .35rem; }

/* Badges */
.badge.bg-secondary{ background-color: rgba(255,255,255,.15) !important; }

/* Inputs focus ring */
.form-control:focus, .form-select:focus{ border-color: rgba(6,182,212,.6); box-shadow: 0 0 0 .2rem rgba(6,182,212,.15); }

/* Buttons */
.btn-primary{ background: linear-gradient(135deg, var(--pt-brand-indigo), var(--pt-brand-cyan)); border-color: transparent; }
.btn-primary:hover{ filter: brightness(1.05); }
.btn-outline-light:hover{ color: #0b0f14; background: #fff; }

/* Elevations */
.card{ box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.card .list-group-item{ background: rgba(255,255,255,.02); border-color: rgba(255,255,255,.08); }

/* Sortable cues */
.kanban-list .list-group-item{ transition: transform .12s ease, background-color .12s ease; }
.kanban-list .list-group-item:active{ transform: scale(.998); }


/* Ensure task-card stacking context: header and dropdown above footer */
.task-card{ position: relative; }
.task-card .task-card-header{ position: relative; z-index: 10; }
.task-card .task-card-footer{ position: relative; z-index: 1; }

/* Task card layout */
/* Header: colored bar only, with gray fallback when no highlight */
.task-card .task-card-header{ border-bottom: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.04); border-left: 4px solid rgba(255,255,255,.28); border-top-left-radius: .5rem; }
.task-card[data-due="done"] .task-card-header{ border-left: 4px solid #22c55e; background-color: rgba(34,197,94,.20); border-top-left-radius: .5rem; }
.task-card[data-due="overdue"] .task-card-header{ border-left: 4px solid #ef4444; background-color: rgba(239,68,68,.30); border-top-left-radius: .5rem; }
.task-card[data-due="soon"] .task-card-header{ border-left: 4px solid #f59e0b; background-color: rgba(245,158,11,.28); border-top-left-radius: .5rem; }
.task-card[data-due="later"] .task-card-header{ border-left: 4px solid rgba(255,255,255,.28); border-top-left-radius: .5rem; }

/* Body: lighter than column background for contrast */
.task-card .task-card-body{ background: rgba(255,255,255,.06); }

/* Footer: darker gray, near-black to stand out */
.task-card .task-card-footer{ background: rgba(0,0,0,.5); }
.task-card .task-card-footer .btn{ --bs-btn-color: var(--pt-muted); --bs-btn-border-color: rgba(255,255,255,.15); }
.task-card .task-card-footer .btn:hover{ background: rgba(255,255,255,.10); }


/* Drag affordance: use a nested grab handle so dropdowns and links remain clickable */
.task-card .drag-handle{ cursor: grab; }
.task-card .drag-handle:active{ cursor: grabbing; }


/* Dashboard tile coloring */
.tile-item{ border-left: 4px solid transparent; cursor: pointer; }
.tile-item:hover{ background-color: rgba(255,255,255,.02); }

/* Ensure dropdowns are fully opaque over kanban columns */
.dropdown-menu.dropdown-menu-dark{ background-color: rgba(33, 37, 41, 1) !important; }



/* Disable text selection during drag operations only */
.dragging, .dragging *{ user-select: none !important; -webkit-user-select: none !important; -ms-user-select: none !important; }
/* Also guard against selection on body/html; sometimes UA applies selection to <body> */
html.dragging, body.dragging{ user-select: none !important; -webkit-user-select: none !important; -ms-user-select: none !important; }


/* Remove whole-card tints; color is now limited to header */

.tile-item.tile-danger{ border-left-color: #ef4444; background: linear-gradient(90deg, rgba(239,68,68,.16), transparent 40%); }
.tile-item.tile-warning{ border-left-color: #f59e0b; background: linear-gradient(90deg, rgba(245,158,11,.16), transparent 40%); }

/* Ensure dropdowns on task cards appear above card footer/header and are clickable */
.task-card .dropdown-menu{ z-index: 2000; }

.tile-item.tile-neutral{ border-left-color: rgba(255,255,255,.2); }


/* Links */
.link-light.text-decoration-underline:hover{ text-decoration: underline wavy; }
