/* Shared visual rhythm and the search / shortlist interaction layer. */
:root{--blue-600:#0766ce;--blue-700:#064e9e;--canvas:#f5f7fb;--slate-500:#52677c;--focus:#b25c00}
[hidden]{display:none!important}
body{background:var(--canvas);color:#21374d}
:is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus);outline-offset:3px}
input::placeholder,textarea::placeholder{color:#62758a;opacity:1}
.btn-primary{background:#0766ce;border-color:#0766ce;color:#fff}
.btn-primary:hover{background:#054fa5;border-color:#054fa5}
.btn[disabled]{cursor:default}
.topbar{border-bottom:1px solid #dce4ee}
.topbar .eyebrow{color:#38617f}
.nav-item.active{font-weight:700;box-shadow:inset -3px 0 #0766ce}
.sidebar summary{min-height:44px;display:flex;align-items:center;gap:10px}
.sidebar summary:after{content:'⌄';margin-inline-start:auto}
.sidebar nav{scroll-padding:12px}
.panel,.metric-card{box-shadow:0 2px 9px #17345205}
.section-intro p,.context-person small,.context-chips span,.cell-subtitle,.track-shortcut small{color:#50677d}
.selection-context{padding:15px 18px;margin-bottom:16px;gap:12px}
.context-avatar{width:42px;height:42px;background:#0766ce}
.selection-context .portal-track-bar{padding-top:12px;margin-top:0}
.selection-context .portal-track-bar select{min-height:42px}
.selection-context .portal-track-bar #portal-track-note{font-size:.75rem}

/* Search is always visible. Secondary controls are disclosed in place. */
#filter-form{padding:18px;background:#fff;gap:12px;border-color:#d5e1ee;border-radius:14px}
#filter-options,#filter-form .filter-footer{width:100%}
#filter-form .search-command{display:flex;align-items:flex-end;justify-content:flex-start;flex-wrap:nowrap;gap:10px;margin:0}
#filter-form .search-command .search-wide{display:block;flex:1;min-width:0}
#filter-form .search-command>.btn{min-width:100px;border-radius:9px;margin:0;height:46px;padding:9px 16px}
#filter-form .search-command input{height:46px;background:#f8fafd;border-color:#becfe2;font-size:.88rem}
#filter-form #filter-options .selection-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
#filter-form .filter-secondary{margin-top:14px}
#filter-form .filter-secondary>summary{padding:6px 0;min-height:32px;font-size:.8rem;color:#285c8c}
#filter-form .filter-secondary .form-grid{gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}
#filter-form .picker-label,#filter-form label{font-size:.8rem;color:#445e77}
#filter-form select,#filter-form input:not([type=checkbox]),.picker-trigger{border-color:#bdcddd}
#filter-form .filter-footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#active-filter-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1;min-width:0}
#filter-form .selected-filters-heading{flex-basis:100%;font-size:.8rem;color:#244563}
dialog.filter-dialog{width:min(760px,calc(100vw - 24px));max-width:none;max-height:88dvh;border:1px solid #bfd3e7;border-radius:18px;padding:0;color:#244563;background:#fff;box-shadow:0 20px 80px #132b4b45;direction:rtl}
dialog.filter-dialog::backdrop{background:#122b4b80;backdrop-filter:blur(3px)}
#filter-form .filter-dialog .picker-popup{position:static;inset:auto;box-sizing:border-box;width:100%;max-width:none;min-width:0;max-height:none;border:0;box-shadow:none;margin:0;padding:22px;overflow:visible}
.filter-dialog h2{font-size:1.1rem;margin:0 0 14px;padding-inline-end:85px}
.filter-dialog-close{position:absolute;top:12px;left:14px;border:0;border-radius:8px;padding:8px 12px;min-height:44px;background:#edf4fb;color:#244563;cursor:pointer}
#filter-form .filter-dialog .picker-options{max-height:58dvh;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;overflow:auto}
#filter-form .filter-dialog .picker-option{position:relative;border:1px solid #d8e4ef;align-items:center;padding:3px 6px;min-height:34px;gap:0;margin:0}
#filter-form .filter-dialog .picker-option input{position:absolute;width:1px;min-width:0;height:1px;margin:0;padding:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
#filter-form .filter-dialog .picker-option:has(input:checked){background:#176db4;border-color:#176db4;color:white!important}
#filter-form .filter-dialog .picker-option:focus-within{outline:2px solid #14558b;outline-offset:-2px}
#filter-form .filter-dialog .picker-option span{font-size:.78rem;line-height:1.6}
.major-categories{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0;max-height:23dvh;overflow:auto}
.major-categories button,.field-dialog-choice{font:inherit;border:1px solid #c9dbea;border-radius:9px;background:#f7faff;color:#294d70;padding:9px 12px;min-height:44px;cursor:pointer;text-align:right}
.major-categories button[aria-pressed=true],.field-dialog-choice[aria-pressed=true]{background:#176db4;color:white;border-color:#176db4}
.field-dialog-content{padding:22px}.field-dialog-choices{display:grid;gap:3px;margin:8px 0;max-height:55dvh;overflow:auto}.field-dialog-choice{padding:3px 6px;min-height:34px}
#filter-form .filter-dialog .picker-footer{position:static;background:white;padding-top:12px}
#filter-form .picker-trigger{white-space:normal!important;text-align:right;min-height:48px}
@media(max-width:620px){#filter-form .filter-dialog .picker-popup,.field-dialog-content{padding:12px}#filter-form .filter-dialog .picker-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
#active-filter-chips:empty:after{content:'هنوز فیلتری انتخاب نشده است.';font-size:.75rem;color:#536a80}
#filter-form .picker-inline{grid-column:1/-1}
#filter-form .picker-inline>small{display:block;font-size:.75rem;color:#536a80;margin-top:4px}
#filter-form .picker-inline .picker-popup{position:static;width:100%;max-width:none;min-width:0;max-height:none;overflow:visible;box-sizing:border-box;box-shadow:none;margin-top:8px;padding:12px}
#filter-form .picker-inline .picker-options{display:flex;flex-wrap:wrap;gap:6px;max-height:none;overflow:visible}
#filter-form .picker-inline .picker-option{align-items:center;border:1px solid #c8d9e8;padding:7px 10px;min-height:44px;background:#fff}
#filter-form .picker-inline .picker-option:has(input:checked){background:#e5f2ff;border-color:#1673c4;color:#124f87!important}
#filter-form .picker-inline .picker-option:focus-within{outline:2px solid #1673c4;outline-offset:2px}
#filter-form .picker-inline .picker-option input{margin:0;flex-shrink:0}
#filter-form .picker-inline .picker-footer{position:static;padding:4px 0 0;margin-top:4px}
.filter-chip{display:flex;align-items:center;gap:10px;min-height:34px;border:1px solid #bdd7ee;border-radius:8px;background:#eef6ff;color:#245787;padding:5px 9px;font-size:.75rem;cursor:pointer;max-width:100%;text-align:right}
.filter-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}
.filter-chip b{font-size:1rem;color:#43647f}
#filter-form #filter-draft-note{display:block;width:100%;font-size:.75rem;color:#536a80}
#filter-form.filters-dirty #filter-draft-note{color:#805009;background:#fff6e5;padding:7px 10px;border-radius:7px}
#filter-form .filter-footer>.btn{font-size:.75rem;padding:5px 9px;min-height:34px}
#portal-filter-preview{display:none}
.picker-options{scrollbar-width:thin}
.picker-popup{padding:14px;border-color:#b7cce0}
.picker-popup .picker-option{font-size:.85rem!important;min-height:44px}
.picker-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #e0e8f0;padding-top:10px;margin-top:8px}
.picker-footer button{min-height:40px;font-size:.8rem}
.picker-popup small{color:#536a80}

/* Bulk actions sit beside results and remain reachable while scrolling. */
.catalog-actionbar{position:sticky;top:8px;z-index:5;display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:#fff;border:1px solid #d5e1ee;border-radius:12px;padding:10px 14px;margin:12px 0;box-shadow:0 4px 15px #18344e0b}
.catalog-actionbar.has-marks{background:#edf6ff;border-color:#88b9e7}
.catalog-actionbar .btn{min-height:42px;font-size:.8rem;white-space:nowrap}
.catalog-actionbar #add-marked{order:-1}
.catalog-actionbar #marked-note{flex-basis:100%;order:5;text-align:start;font-size:.73rem;color:#365675}
.catalog-actionbar [data-clear-marks]{background:transparent;border-color:transparent;color:#52677c}
.portal-catalog-tools .btn{min-height:40px}
.portal-catalog-tools .btn[aria-pressed=true]{background:#eaf3ff;border-color:#a6c9eb;color:#074e98}
.portal-catalog-tools #portal-compare-count{display:none}
.result-meta{align-items:center;gap:10px;flex-wrap:wrap}
.result-meta .portal-catalog-tools{margin:0;gap:6px}
.result-meta #result-count{font-weight:600;color:#34546f;font-size:.82rem}
.result-meta .legend{font-size:.69rem;flex-wrap:wrap}
.catalog-sort-note{font-size:.72rem;margin:8px 2px;color:#566c80}
#program-results .portal-table{min-width:820px;font-size:.81rem}
#program-results th{background:#edf3fa;color:#284967;border-bottom:1px solid #bcd1e4}
#program-results th .btn{min-height:36px;font-size:.78rem;color:#284967;text-align:right}
#program-results td{padding:12px 9px;line-height:1.9}
#program-results .catalog-major{min-width:140px;max-width:240px}
#program-results .catalog-institution{min-width:140px;max-width:230px}
#program-results .catalog-major strong{font-size:.9rem;line-height:1.9}
#program-results tr.catalog-saved{background:#f0f8f4}
#program-results tr.catalog-marked{background:#edf5ff}
#program-results .saved-label,.saved-label{display:block;color:#246747;font-size:.67rem;white-space:nowrap}
#program-results td:last-child .btn{min-height:36px;white-space:nowrap;font-size:.75rem;margin:3px 0}
.catalog-conditions summary,.selection-conditions summary{color:#386183;cursor:pointer;font-size:.73rem;min-height:30px;line-height:2.1;padding:2px 0}
.catalog-conditions .program-note{font-size:.8rem!important;color:#465d70!important}
.selection-conditions{margin-top:4px}
.selection-conditions .selection-handbook{font-size:.8rem;color:#465d70;line-height:2}
.catalog-saved.program-card{border-color:#bdd7c8;background:#f8fcfa}
.catalog-empty h3{font-size:1.05rem}
.catalog-empty p{max-width:550px;margin:10px auto 20px;line-height:2}
.comparison-tray{background:#f5f8fd;border:1px solid #bcd0e4;padding:14px;border-radius:12px;margin:12px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.comparison-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap;width:100%}
.comparison-heading strong{font-size:.88rem;color:#274e73}
.comparison-heading>span{font-size:.74rem;color:#536a80}
.comparison-items{display:flex;gap:8px;flex-wrap:wrap;width:100%}
.compare-chip{border:1px solid #d1deeb;background:#fff;padding:8px 10px;border-radius:9px;display:flex;align-items:center;gap:12px;max-width:260px;text-align:right;cursor:pointer;color:#274d70;font-size:.8rem}
.compare-chip small{display:block;font-size:.68rem;color:#536a80;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.comparison-tray .btn{font-size:.8rem}

/* The shortlist is the main working area; scoring tools can be opened as needed. */
.selection-layout{grid-template-columns:minmax(0,1fr)!important;gap:14px}
.optimizer-disclosure{width:100%}
.optimizer-disclosure>summary{border-radius:10px;padding:13px 16px;min-height:46px}
.optimizer-disclosure[open] #optimizer-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;margin-top:12px}
.optimizer-disclosure #optimizer-form>.panel-head,.optimizer-disclosure #optimizer-form>.field-help,.optimizer-disclosure #optimizer-form>.fine-print{grid-column:1/-1}
.optimizer-disclosure #optimizer-form>.panel-head{margin-bottom:0}
.optimizer-disclosure #optimizer-form>.weight-row{margin:0}
.selection-tools{margin-bottom:14px}
.selection-source-note{padding:12px 16px;margin:0 0 14px}
.selection-source-note p{font-size:.79rem}
.selection-search-tools{padding:15px;background:#fff;border:1px solid #d2e0ed;border-radius:12px;margin:12px 0}
.selection-search-row{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px}
.selection-search-row label{flex:1;min-width:210px;color:#345675;font-size:.83rem}
.selection-search-row input{margin-top:5px;background:#f8fafd;min-height:44px}
.selection-search-row button{font-size:.79rem;min-height:44px}
#selection-search-status{font-size:.75rem;color:#50677d;margin:10px 0 0}
#selection-load-status{background:#f0f5fc;padding:14px;border-radius:10px;color:#315d86}
.sortable-list[aria-busy=true]{opacity:.5;pointer-events:none}
.sort-item{border-color:#d5e1ec;grid-template-columns:24px 54px 22px minmax(0,1fr) auto auto 36px;gap:12px;padding:14px}
.sort-title strong{font-size:.95rem;line-height:1.9}
.sort-title>span{font-size:.81rem;color:#52677c;line-height:1.9}
.sort-item .position-input{width:54px;min-height:42px;border-color:#aec4dc;background:#f5f9ff;font-weight:700;color:#174d80}
.sort-item .sort-check{width:21px;height:21px}
.sort-item .criteria-toggle{min-height:38px;padding:5px 10px;color:#285f8e;border:1px solid #cfdfec;border-radius:8px;background:#f8fbff}
.sort-item .remove-choice{min-height:38px;min-width:36px;border-radius:8px}
.criteria-editor{border-top:1px solid #d8e4ef;padding-top:14px;margin-top:4px;gap:12px}
.criteria-editor input[aria-invalid=true]{border-color:#b42318;background:#fff5f4}
.criteria-save-note{grid-column:1/-1;margin:0;color:#41627b;font-size:.77rem}
.criteria-retry{grid-column:1/-1;justify-self:start}
.password-field{position:relative}
.password-field input{width:100%;padding-inline-end:76px}
.password-reveal{position:absolute;inset-inline-end:6px;top:50%;transform:translateY(-50%);border:0;border-radius:6px;min-height:36px;background:#edf4ff;color:#174f87;padding:5px 10px;cursor:pointer;font-size:.8rem}
.preview-notice{background:#fff7e8;border:1px solid #ead5a5;border-radius:9px;padding:8px 12px;color:#785115;font-size:.77rem;margin:8px 0 14px;line-height:1.9}

@media(min-width:901px) and (max-width:1150px){#filter-form #filter-options .selection-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){
  .workspace{padding-inline:14px}.topbar{margin-bottom:16px}
  #filter-form #filter-options .selection-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  #filter-form .filter-secondary .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sort-item{grid-template-columns:48px 24px minmax(0,1fr) auto;gap:9px}
  .sort-item>.drag-handle{display:none}.sort-item>.position-input{grid-column:1;grid-row:1;width:48px}
  .sort-item>.sort-check{grid-column:2;grid-row:1}.sort-item>.sort-title{grid-column:3;grid-row:1 / span 3}
  .sort-item>.chance-badge,.sort-item>.source-chip{grid-column:1 / span 2;grid-row:2}
  .sort-item>.criteria-toggle{grid-column:4;grid-row:2;justify-self:stretch}.sort-item>.remove-choice{grid-column:4;grid-row:1}
  .sort-item>.criteria-editor{grid-column:1/-1;grid-row:4}
}
@media(max-width:620px){
  .workspace{padding-inline:12px;padding-bottom:30px}.topbar{height:68px}
  .user-chip strong{max-width:110px;font-size:.78rem}.user-chip>span{width:30px;height:30px}
  .selection-context{padding:12px;gap:9px;border-radius:12px}.context-chips{gap:5px}
  .selection-context .portal-track-bar{padding-top:10px;gap:8px}
  .selection-context #portal-track-note{display:none}
  .selection-context .portal-track-bar>label{flex:1;min-width:0;flex-wrap:nowrap;font-size:.75rem}
  .selection-context .portal-track-bar select{min-width:0;flex:1;width:100%;max-width:190px}
  .selection-context .portal-track-bar>.btn{min-width:0;padding:8px;font-size:.69rem}
  #filter-form{padding:13px;gap:10px}
  #filter-form .search-command{flex-wrap:wrap;gap:8px}
  #filter-form .search-command>.search-wide{flex-basis:100%}
  #filter-form .search-command>.btn{flex:1;min-width:0;height:43px}
  #filter-form #filter-options .selection-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 9px}
  #filter-form .filter-secondary .form-grid{grid-template-columns:1fr}
  #filter-form input,#filter-form select,.picker-popup input{font-size:16px!important}
  .filter-chip{max-width:100%;font-size:.72rem}.filter-chip span{max-width:225px}
  .picker-popup{position:fixed;inset:auto 12px 12px;width:auto;max-width:none;min-width:0;max-height:75dvh;overflow:auto;border:1px solid #92b4d5;box-shadow:0 -5px 45px #18334e35;z-index:45;border-radius:16px;padding:16px}
  .picker-options{max-height:38dvh}.picker-footer{position:sticky;bottom:-16px;background:#fff;padding-block:12px}
  .catalog-actionbar{top:4px;padding:9px;gap:6px;border-radius:10px}
  .catalog-actionbar #marked-note{flex-basis:100%;order:-2;min-width:0;font-size:.73rem}
  .catalog-actionbar [data-portal-action="select-page"],.catalog-actionbar [data-portal-action="compare-show"]{flex:1 1 40%;font-size:.69rem}
  .catalog-actionbar .btn{font-size:.73rem;min-height:40px;padding:7px 9px;flex:1}
  .catalog-actionbar [data-clear-marks]{flex:0 0 auto}
  .portal-catalog-tools{gap:6px}.portal-catalog-tools .btn{font-size:.72rem;padding:7px 9px}
  .result-meta .legend{display:none}
  #program-results .portal-table{min-width:0}
  #program-results .catalog-major,#program-results .catalog-institution{max-width:none;min-width:0}
  #program-results td:last-child .btn{display:inline-flex;margin:0 4px 4px 0;min-height:40px}
  #program-results td[data-label]:before{color:#50677d}
  #program-results .catalog-conditions{width:100%}
  .comparison-items{display:grid;grid-template-columns:1fr}.compare-chip{max-width:none}.compare-chip>span{flex:1}
  .compare-chip small{max-width:230px}
  .selection-layout{gap:10px}.selection-search-tools{padding:12px}.selection-search-row{gap:8px}
  .selection-search-row>label{flex-basis:100%;min-width:0}.selection-search-row>.btn{flex:1;font-size:.74rem}
  .selection-search-row input{font-size:16px}.sort-item{padding:12px;grid-template-columns:44px 22px minmax(0,1fr) 36px;gap:8px}
  .sort-item>.sort-title{grid-column:3 / span 2;grid-row:1 / span 2;padding-inline-end:0}
  .sort-item>.chance-badge,.sort-item>.source-chip{grid-column:1 / span 3;grid-row:3;justify-self:start}
  .sort-item>.criteria-toggle{grid-column:1 / span 2;grid-row:2;font-size:.71rem}
  .sort-item>.remove-choice{grid-column:4;grid-row:3}.sort-item>.position-input{width:44px}
  .sort-item>.criteria-editor{grid-row:4;grid-template-columns:repeat(2,minmax(0,1fr))}
  .sort-title strong{font-size:.88rem}.sort-title>span{font-size:.75rem}
  .optimizer-disclosure[open] #optimizer-form{grid-template-columns:1fr 1fr;padding:14px}
  .selection-source-note{margin-bottom:10px}.selection-source-note p{font-size:.75rem}
  .selection-tray{position:static;margin-top:15px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{
  .catalog-actionbar,.comparison-tray,.selection-search-tools,#selection-search-empty,.catalog-sort-note,.selection-source-note{display:none!important}
  body.printing-selection #selection-list .sort-item[hidden]{display:block!important}
  .selection-conditions>summary{display:none}.selection-conditions>.selection-handbook{display:block!important}
  .sort-item{box-shadow:none}.selection-conditions{display:block}
}
