/* Shared control language for the team workspace and the administrative archive. */
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) {
  --control-ink: #403447;
  --control-accent: #4b326e;
  --control-line: #d6cedb;
  --control-soft: #f5f1f7;
  --control-focus: #9872b0;
}
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input,textarea)::placeholder { color:#82788b; opacity:1; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(.field,.assignment-field,.note-editor) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea) {
  border-color:var(--control-line); border-radius:12px; background:#fff; color:var(--control-ink);
  transition:border-color .16s,box-shadow .16s,background-color .16s;
}
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(.field,.assignment-field,.note-editor) :is(input,textarea):hover:not(:disabled):not(:focus) { border-color:#b5a5bf; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(.field,.assignment-field,.note-editor) :is(input,textarea):focus-visible {
  border-color:var(--control-focus); outline:2px solid var(--control-focus); outline-offset:2px; box-shadow:0 0 0 4px #f4eff8;
}
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input,textarea):disabled { color:#82788b; background-color:#f2f0f3; cursor:not-allowed; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input,textarea)[aria-invalid=true] { border-color:#b85646; outline-color:#b85646; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=date] { min-height:46px; color-scheme:light; font-variant-numeric:tabular-nums; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=date]::-webkit-calendar-picker-indicator { width:20px; height:20px; margin:0; padding:3px; cursor:pointer; opacity:.65; }

/* The whole label is the touch target; the mark stays compact and deliberate. */
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input[type=checkbox],input[type=radio]) {
  appearance:none; -webkit-appearance:none; display:inline-grid; place-content:center; flex:0 0 20px;
  width:20px; height:20px; min-width:20px; min-height:20px; margin:0; padding:0;
  border:1.5px solid #b8acbf; border-radius:6px; background:#fff; color:#fff; vertical-align:middle;
  cursor:pointer; transition:border-color .14s,background-color .14s,box-shadow .14s;
}
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=radio] { border-radius:50%; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=checkbox]::before {
  content:''; width:9px; height:5px; margin-top:-2px; border:solid currentColor; border-width:0 0 2px 2px;
  transform:rotate(-45deg) scale(0); transform-origin:center;
}
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=radio]::before { content:''; width:8px; height:8px; border-radius:50%; background:currentColor; transform:scale(0); }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input[type=checkbox],input[type=radio]):checked { border-color:var(--control-accent); background:var(--control-accent); }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=checkbox]:checked::before { transform:rotate(-45deg) scale(1); }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=radio]:checked::before { transform:scale(1); }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=checkbox]:indeterminate { border-color:var(--control-accent); background:var(--control-accent); }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=checkbox]:indeterminate::before { width:9px; height:0; margin:0; border-width:0 0 2px; transform:none; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input[type=checkbox],input[type=radio]):focus-visible { outline:2px solid var(--control-focus); outline-offset:3px; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input[type=checkbox],input[type=radio]):disabled { opacity:.45; cursor:not-allowed; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(.checkbox-row,.progress-audience-options>label,.progress-person-picker>label) {
  min-height:48px; cursor:pointer; transition:background-color .14s,border-color .14s;
}
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) .checkbox-row { margin-inline:-7px; padding-inline:7px; border-radius:8px; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(.checkbox-row,.progress-audience-options>label,.progress-person-picker>label):has(input:checked) { background:#f5f0f8; color:#493458; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(.checkbox-row,.progress-audience-options>label,.progress-person-picker>label):has(input:focus-visible) { background:#f1ebf6; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(.checkbox-row,.progress-audience-options>label,.progress-person-picker>label):has(input:disabled) { cursor:not-allowed; }

:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=file] { max-width:100%; min-height:46px; color:#73637c; font-family:inherit; font-size:12px; line-height:1.7; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=file]::file-selector-button {
  min-height:44px; margin:0 12px 0 0; padding:10px 14px; border:1px solid #cbbbd5; border-radius:11px;
  background:#fff; color:#4b326e; font:inherit; font-weight:500; cursor:pointer; transition:background-color .16s,border-color .16s;
}
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=file]:hover:not(:disabled)::file-selector-button { border-color:#9f83b2; background:#f5f0f8; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=file]:focus-visible { outline:2px solid var(--control-focus); outline-offset:4px; border-radius:11px; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) input[type=file]:disabled::file-selector-button { cursor:not-allowed; background:#eeebf0; color:#887c91; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) progress { overflow:hidden; border:0; border-radius:20px; background:#e9e0ee; color:#4b326e; accent-color:#4b326e; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) progress::-webkit-progress-bar { border-radius:20px; background:#e9e0ee; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) progress::-webkit-progress-value { border-radius:20px; background:#4b326e; }
:where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) progress::-moz-progress-bar { border-radius:20px; background:#4b326e; }
body[data-portal-controls] :is(.search-field,.assignment-field textarea,.note-editor textarea) { border-radius:12px; }
body[data-portal-controls] .search-field:focus-within { border-color:#9872b0; outline:2px solid #9872b0; outline-offset:2px; }
body[data-portal-controls] :is(.filters,.people-filters,.assignment-editor,.panorama-scope-field)>.portal-select-control { min-width:0; }
body[data-portal-controls] :is(.text-link,.quiet.small,.footer-tools button,.board-card-actions button) { min-height:44px; }
body[data-portal-controls] .icon-button { width:44px; height:44px; min-width:44px; }
body[data-portal-controls] .global-search { min-height:44px; }
body[data-portal-controls] .archive-return-compact { display:none; }
.upload-box .portal-file-picker { position:relative; display:flex; align-items:center; flex-wrap:wrap; gap:12px; width:100%; min-height:96px; padding:16px; border:1px solid #d7c9e0; border-radius:13px; background:#fff; cursor:pointer; transition:border-color .16s,background-color .16s; }
.upload-box .portal-file-picker:hover { border-color:#a58ab7; background:#fdfbff; }
.upload-box .portal-file-picker:focus-within { outline:2px solid #9872b0; outline-offset:3px; }
.upload-box .portal-file-picker.has-file { border-color:#ae96bd; background:#fdfbff; }
.upload-box .portal-file-picker:has(input:disabled) { background:#f2eef5; cursor:wait; }
.portal-file-symbol { display:inline-flex; align-items:center; justify-content:center; width:36px; height:42px; flex:0 0 36px; border:1px solid #e5daeb; border-radius:10px; background:#f7f3fa; color:#725189; }
.portal-file-copy { display:flex; flex:1 1 160px; flex-direction:column; gap:5px; min-width:0; }
.portal-file-name { color:#4b375b; font-size:13px; font-weight:500; overflow-wrap:anywhere; }
.portal-file-meta { color:#7b6a85; font-size:12px; font-weight:400; line-height:1.6; }
.portal-file-action { display:inline-flex; align-items:center; min-height:36px; padding:7px 11px; border:1px solid #e1d6e8; border-radius:9px; background:#f6f1f9; color:#64447c; font-size:12px; font-weight:500; }
.upload-box .portal-file-picker input[type=file] { position:absolute; inset:0; width:100%; height:100%; min-height:100%; opacity:0; cursor:pointer; }
.upload-box .portal-file-picker input[type=file]:disabled { cursor:wait; }
@media(hover:hover) {
  :where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(.checkbox-row,.progress-audience-options>label,.progress-person-picker>label):hover:not(:has(input:disabled)) { background:#f5f1f7; }
}
@media(max-width:700px) {
  :where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea) { font-size:16px; }
  body[data-portal-controls] .topbar { gap:8px; }
  body[data-portal-controls] .breadcrumb { flex:0 0 44px; width:44px; }
  body[data-portal-controls] .breadcrumb strong { display:none; }
  body[data-portal-controls] .topbar-actions { flex:1; min-width:0; gap:6px; justify-content:flex-end; }
  body[data-portal-controls] .archive-return { min-width:0; min-height:44px; padding:9px 10px; font-size:12px; }
  body[data-portal-controls] .archive-return-wide { display:none; }
  body[data-portal-controls] .archive-return-compact { display:inline; }
  body[data-portal-controls] .global-search { flex:0 0 44px; width:44px; }
}
@media(max-width:500px) {
  body[data-portal-controls] :is(.filters,.people-filters)>label:has(select) { grid-column:1 / -1; width:100%; }
  body[data-portal-controls] .luma-button { flex:0 0 44px; width:44px; padding:0; }
  body[data-portal-controls] .luma-button>span { display:none; }
  .upload-box .portal-file-picker { gap:10px; padding:14px; }
  .portal-file-copy { flex-basis:140px; }
  .portal-file-action { margin-left:46px; }
}
@media(prefers-reduced-motion:reduce) {
  :where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input,textarea,label,.portal-file-picker) { transition:none!important; }
}
@media(forced-colors:active) {
  :where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input[type=checkbox],input[type=radio]) { appearance:auto; -webkit-appearance:auto; forced-color-adjust:auto; }
  :where(#portal-shell,dialog.portal-dialog,body[data-portal-controls]) :is(input[type=checkbox],input[type=radio])::before { content:none; }
}
