/* Shared meaning and appearance for controls across the service. Loaded last. */
:root{--ui-priority:#fbebec;--ui-question:#faf6e5;--ui-done:#edf0f3;--ui-done-text:#626b77;--ui-question-text:#74621f;--ui-red:#d6232e;--ui-line:#aab0b9;--ui-paper:#fff;--ui-divider:#aab3c1}
@media(prefers-color-scheme:dark){:root{--ui-priority:#3a2224;--ui-question:#3b3420;--ui-done:#252a31;--ui-done-text:#a7afb9;--ui-question-text:#d8c68b;--ui-red:#e64b55;--ui-line:#69717c;--ui-paper:#1e2126;--ui-divider:#69717c}}
[data-ui-priority="high"]:not([data-ui-done="true"]),[data-ui-priority="urgent"]:not([data-ui-done="true"]),.manual-priority,tr[data-row-item].manual-priority>td{background:var(--ui-priority)!important;background-image:none!important}
[data-ui-questions="true"]:not([data-ui-done="true"]):not([data-ui-priority="high"]):not([data-ui-priority="urgent"]),.manual-questions,tr[data-row-item].manual-questions>td{background:var(--ui-question)!important}
.manual-priority-control input:checked+span{color:var(--ui-red)!important}
.manual-questions-control input:checked+span{color:var(--ui-question-text)!important}
.managed-task[data-task-attention="high"],.managed-task[data-task-attention="urgent"]{--task-fill:var(--ui-priority);--task-border:var(--line)}
.managed-task[data-task-attention="overdue"]{--task-fill:var(--ui-priority);--task-border:var(--ui-red)}
.visit-task-row[data-task-attention="overdue"]{background:var(--ui-priority)!important;border-left:2px solid var(--ui-red)}
.visit-task-row{padding:12px;border-radius:8px;margin:8px 0}
.checklist-priority:is(.high,.urgent),.checklist-priority-quick:is(.high,.urgent){background:var(--ui-priority)!important;color:var(--ui-red)!important}
.checklist-priority.medium,.checklist-priority-quick.medium{background:var(--ui-question)!important;color:var(--ink)!important}
/* A checkbox always toggles one binary value. Workflow transitions use arrows. */
body input[type="checkbox"]{appearance:none!important;-webkit-appearance:none!important;flex:none;box-sizing:border-box;width:21px!important;height:21px!important;min-width:21px;min-height:21px;padding:0!important;margin:0;vertical-align:middle;border:1.5px solid var(--ui-line)!important;border-radius:5px!important;background:transparent!important;cursor:pointer}
body input[type="checkbox"]:checked{border-color:var(--ui-red)!important;background:var(--ui-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 10 4 4 8-8' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px 15px no-repeat!important}
body input[type="checkbox"]::before,body input[type="checkbox"]::after{content:none!important}
body input[type="checkbox"]:disabled{cursor:default;opacity:.55}
body input[type="checkbox"]:focus-visible,[role="checkbox"]:focus-visible{outline:2px solid var(--ui-red);outline-offset:3px}
.task-row .task-complete .task-check,.calendar-check{display:inline-grid;place-items:center;flex:none;box-sizing:border-box;width:21px;height:21px;min-width:21px;padding:0;margin:0;border:1.5px solid var(--ui-line);border-radius:5px;background:transparent;color:transparent}
.task-complete[aria-checked="true"] .task-check,.calendar-complete[aria-checked="true"] .calendar-check{background:var(--ui-red);border-color:var(--ui-red);color:#fff}
.task-row-footer .task-complete,.calendar-event-actions .calendar-complete{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:4px 0;background:transparent;color:var(--ink);font-size:12px;border:0}
.task-transition-icon{font-size:18px;color:var(--ink);line-height:21px}
.card .acts button.mark .box{box-sizing:border-box;width:21px;height:21px;border:1.5px solid var(--ui-line);border-radius:5px;background:transparent}
.card.completing .mark .box{background:var(--ui-red);border-color:var(--ui-red);color:#fff}
.card .acts button.mark.board-transition .box{border:0;border-radius:0;background:transparent;color:var(--ink)}
.board-transition .box::after{content:'→';font-size:18px;line-height:21px}
.ui-form-error,.document-analysis-error{color:var(--ui-red);font-size:12px;line-height:1.5;white-space:pre-wrap}
.document-analysis-error{margin:8px 0 0}
.document-analysis-error button{margin-top:8px}
.ui-form-error[hidden]{display:none}
@media(max-width:760px){.task-row-footer .task-complete,.calendar-event-actions .calendar-complete{min-height:44px}body label:has(>input[type="checkbox"]){min-height:32px;align-items:center}}

/* Low-priority tasks recede while deadlines and completed states keep their meaning. */
:root{--ui-low-fill:#edf0f3;--ui-low-text:#626b77;--ui-low-line:#dbe0e6}
@media(prefers-color-scheme:dark){:root{--ui-low-fill:#252a31;--ui-low-text:#a7afb9;--ui-low-line:#363d47}}
:is(.managed-task,.visit-task-row,.checklist-view-row,.calendar-event,.calendar-detail-event)[data-ui-priority="low"]:not([data-ui-done="true"]):not([data-task-attention="overdue"]):not(.overdue){
 --ink:var(--ui-low-text);--muted:var(--ui-low-text);--task-fill:var(--ui-low-fill);--task-border:var(--ui-low-line);
 background:var(--ui-low-fill)!important;background-image:none!important;color:var(--ui-low-text);border-color:var(--ui-low-line);box-shadow:none;
}

/* Medium-priority tasks use a soft yellow; overdue and done states take precedence. */
:root{--ui-medium-fill:#faf6e5;--ui-medium-text:#1a1d21;--ui-medium-muted:#626b77;--ui-medium-line:#d8c991}
@media(prefers-color-scheme:dark){:root{--ui-medium-fill:#3b3420;--ui-medium-text:#ede7cf;--ui-medium-muted:#c7bea2;--ui-medium-line:#645839}}
:is(.managed-task,.visit-task-row,.checklist-view-row,.calendar-event,.calendar-detail-event)[data-ui-priority="medium"]:not([data-ui-done="true"]):not([data-task-attention="overdue"]):not(.overdue){
 --ink:var(--ui-medium-text);--muted:var(--ui-medium-muted);--task-fill:var(--ui-medium-fill);--task-border:var(--ui-medium-line);
 background:var(--ui-medium-fill)!important;background-image:none!important;color:var(--ui-medium-text);border-color:var(--ui-medium-line);
}

/* Procurement markers: delivered > priority > questions. Completed tasks retain their own calendar marker. */
:is([data-row-item],.card[data-id],.calendar-event,.calendar-detail-event)[data-ui-kind="delivery"][data-ui-done="true"],
tr[data-row-item][data-ui-kind="delivery"][data-ui-done="true"]>td{
 background:var(--ui-done)!important;background-image:none!important;box-shadow:none!important;border-color:var(--ui-line)!important;color:var(--ui-done-text)!important;
}
[data-ui-kind="delivery"][data-ui-done="true"] :is(.name-text,.nm,.meta,.note-text,.card-price,.order-dates,.calendar-event-main strong),
.calendar-event[data-ui-kind="delivery"][data-ui-done="true"] strong{color:var(--ui-done-text)!important}
[data-ui-kind="delivery"][data-ui-done="true"] .calendar-state-dot,.calendar-state-dot.delivery-done{background:var(--ui-done-text)!important}
.calendar-detail-event[data-ui-kind="delivery"][data-ui-done="false"][data-ui-questions="true"]{border-radius:8px;padding:12px}

tr[data-row-item][data-ui-kind="delivery"][data-ui-done="true"]>td{border-top:0!important;border-bottom:1px solid var(--ui-line)!important}

/* Completed task cards recede consistently, even when their priority remains set. */
:is(.managed-task,.visit-task-row,.checklist-view-row)[data-ui-done="true"]{
 --ink:var(--ui-done-text);--muted:var(--ui-done-text);--task-fill:var(--ui-done);--task-border:var(--ui-divider);
 background:var(--ui-done)!important;background-image:none!important;box-shadow:none!important;border-color:var(--ui-divider)!important;color:var(--ui-done-text);
}
.managed-task:not([data-task-attention="overdue"]){--task-border:var(--ui-divider)!important}

/* Completed checklist priorities recede while preserving the selected value. */
[data-ui-done="true"] :is(.checklist-priority,.checklist-priority-quick){
 background:var(--ui-done)!important;background-image:none!important;color:var(--ui-done-text)!important;border-color:var(--ui-line)!important;box-shadow:none!important;
}

/* One legend and the same priority tokens in tasks, journal, checklist and calendar. */
.ui-task-legend{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin:8px 0 12px;color:var(--muted,var(--mut));font-size:var(--text,13px);line-height:1.5}
.ui-task-legend>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ui-legend-dot{display:inline-grid;place-items:center;box-sizing:border-box;width:12px;height:12px;flex:none;border:1px solid var(--ui-line);border-radius:3px;font-style:normal;font-size:10px;line-height:1;color:var(--ui-done-text);background:var(--ui-paper)}
.ui-legend-dot[data-legend="ordinary"]{border-color:var(--ink,#1a1d21)}
.ui-legend-dot[data-legend="low"],.ui-legend-dot[data-legend="done"],.ui-legend-dot[data-legend="delivery"]{background:var(--ui-done)}
.ui-legend-dot[data-legend="medium"]{background:var(--ui-question)}
.ui-legend-dot[data-legend="high"],.ui-legend-dot[data-legend="overdue"]{background:var(--ui-priority)}
.ui-legend-dot[data-legend="overdue"]{border-color:var(--ui-red)}
.calendar-task-legend .ui-legend-dot[data-legend="done"]{color:white;background:#4a865f;border-color:#4a865f}
.calendar-task-legend .ui-legend-dot[data-legend="delivery"]{background:var(--ui-done-text);border-color:var(--ui-done-text)}
.checklist-view-row{border-radius:6px}

/* A red outline always means an overdue active task. Legacy urgent is high. */
:is(.managed-task,.visit-task-row,.calendar-event,.calendar-detail-event)[data-task-attention="overdue"]:not([data-ui-done="true"]),:is(.calendar-event,.calendar-detail-event).overdue:not([data-ui-done="true"]){background:var(--ui-priority)!important;border:1px solid var(--ui-red)!important;box-shadow:inset 0 0 0 1px var(--ui-red)!important}

/* The main task text has one size in the linked checklist and calendar details. */
:root{--ui-task-text:13px}
.checklist-view-row .checklist-copy,.checklist-view-row .checklist-copy small,.checklist-view-row .checklist-priority-quick,.calendar-event,.calendar-event strong,.calendar-detail-event .calendar-event-main :is(strong,span,.small),.calendar-detail-event .task-comment,.calendar-detail-event .calendar-event-actions :is(button,label){font-size:var(--ui-task-text);line-height:1.5}
@media(max-width:760px){:root{--ui-task-text:16px}}

/* Calendar details own the state; their inner edit button stays visually plain. */
.calendar-detail-event .calendar-event.calendar-event-button{background:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important}
/* A completed task is neutral; the calendar completion dot remains green. */
:is(.calendar-event,.calendar-detail-event):is([data-ui-kind="task"],[data-ui-kind="issue"])[data-ui-done="true"]{background:var(--ui-done)!important;background-image:none!important;border-color:var(--ui-divider)!important;box-shadow:none!important;color:var(--ui-done-text)!important}
.calendar-detail-event:is([data-ui-kind="task"],[data-ui-kind="issue"])[data-ui-done="true"] strong{color:var(--ui-done-text)!important}

/* Questions have a mustard check across every procurement view. */
:root{--ui-question-check:#e1b83f;--ui-complete-check:#348759}
body .manual-questions-control input[type="checkbox"]:checked{border-color:var(--ui-question-check)!important;background:var(--ui-question-check) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m4 10 4 4 8-8' fill='none' stroke='%23524716' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px 15px no-repeat!important}
body .manual-questions-control input[type="checkbox"]:focus-visible{outline-color:var(--ui-question-check)}

/* Completion and delivery share a green mark; completed surfaces remain grey. */
body :is(.delcb:not(.manual-questions-control):not(.manual-priority-control),.checklist-view,.visit-task-row,.task-row-footer) input[type="checkbox"]:checked{background-color:var(--ui-complete-check)!important;border-color:var(--ui-complete-check)!important}
body .delcb:not(.manual-questions-control):not(.manual-priority-control) input:checked+span{color:var(--ui-complete-check)!important}
.task-complete[aria-checked="true"] .task-check,.calendar-complete[aria-checked="true"] .calendar-check{background:var(--ui-complete-check);border-color:var(--ui-complete-check);color:#fff}
body :is(.delcb:not(.manual-questions-control):not(.manual-priority-control),.checklist-view,.visit-task-row,.task-row-footer) input[type="checkbox"]:focus-visible{outline-color:var(--ui-complete-check)}
body .task-row-footer label:has(>input[type="checkbox"]:checked){color:var(--ui-complete-check)!important}

.ui-task-legend .ui-legend-dot[data-legend="done"],.calendar-state-dot.done{color:#fff;background:var(--ui-complete-check);border-color:var(--ui-complete-check)}
body .card[data-ui-kind="delivery"][data-ui-done="true"] .board-column{color:var(--ui-complete-check)!important}
