/* Shared controls: loaded last by every portal entry page, including modules. */
:root{--ui-radius:10px;--ui-accent:#c49aff;--ui-focus:#8affda;--ui-card-bg:#161228;--ui-card-text:#faf7ff;--ui-motion:220ms}
/* Preserve semantic action colors and sizes; normalize shape and interaction. */
:is(button,[role=button],input[type=button],input[type=submit],input[type=reset],a.btn,a.button,a.text-btn,a.tv-link-btn,a.fin-portal,.account-nav a,.tv-toolbar a,.nav a,.cards a,a.event-link){border-radius:var(--ui-radius)!important;transition:background-color var(--ui-motion) ease,border-color var(--ui-motion) ease,box-shadow var(--ui-motion) ease,filter var(--ui-motion) ease,opacity var(--ui-motion) ease,transform var(--ui-motion) ease!important}
@media(hover:hover){
 :is(button,[role=button],input[type=button],input[type=submit],input[type=reset],a.btn,a.button,a.text-btn,a.tv-link-btn,a.fin-portal,.account-nav a,.tv-toolbar a,.nav a,.cards a,a.event-link):not(:disabled):not([aria-disabled=true]):hover{filter:brightness(1.13);box-shadow:0 0 0 1px var(--ui-accent),0 0 14px #a76cff30}
}
:is(button,[role=button],input[type=button],input[type=submit],input[type=reset],a.btn,a.button,a.text-btn,a.tv-link-btn,a.fin-portal,.account-nav a,.tv-toolbar a,.nav a,.cards a,a.event-link):focus-visible{outline:3px solid var(--ui-focus)!important;outline-offset:3px!important;box-shadow:0 0 14px #8affda30}
:is(button,[role=button],input[type=button],input[type=submit],input[type=reset]):is(:disabled,[aria-disabled=true]){opacity:.5;cursor:not-allowed;filter:none;box-shadow:none}
@media(prefers-reduced-motion:reduce){:is(button,[role=button],input,a,.cards a){transition:none!important;transform:none!important}}
/* Task status stays on the border/badge; task surfaces always remain dark. */
body.board .task-card,.display-tv .task-display-card{background:var(--ui-card-bg);color:var(--ui-card-text);border-top:1px solid #3d3658;border-right:1px solid #3d3658;border-bottom:1px solid #3d3658}
body.board .task-card .task-desc{margin:4px 0 10px;white-space:pre-wrap;color:#e7def0}
body.tv-board .task-assignee{font-size:clamp(22px,1.7vw,36px)}
.display-tv .task-display-card{overflow:visible;min-height:min-content}
.display-tv .task-display-card .task-assignee{font-size:clamp(22px,1.7vw,64px);margin-bottom:.3em;flex-shrink:0}
.display-tv .task-display-card h2{flex-shrink:0;display:block;overflow:visible;white-space:normal}
.display-tv .task-display-card .detail{display:block;overflow:visible;white-space:pre-wrap;color:#e7def0;flex-shrink:0}
.display-tv .task-display-card .card-top{margin-top:auto;padding-top:.4em;color:#d1c8e4}
@media print{.task-assignee-name{box-shadow:none!important}}

.display-tv #cards.task-grid{grid-template-rows:none;grid-auto-rows:minmax(min-content,1fr)}
