/* Shared controls: all visible surfaces use the authorization center theme. */
:root{--control-focus:0 0 0 3px #4c73e817;--control-radius:7px}
button,input,textarea,select{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,[role=scrollbar]:focus-visible{outline:2px solid #85a3f2;outline-offset:3px}
input,textarea,select{appearance:none;-webkit-appearance:none;border-radius:var(--control-radius);transition:border-color .16s,box-shadow .16s}
input:focus,textarea:focus{outline:0;border-color:#93adee;box-shadow:var(--control-focus)}
input[readonly],textarea[readonly]{background:#f8fafd;color:#8090a7}
input[aria-invalid=true],textarea[aria-invalid=true],.ui-select[aria-invalid=true] .ui-select-button{border-color:#df939b;box-shadow:0 0 0 3px #df939b12}
input::-ms-reveal,input::-ms-clear{display:none}
input[type=number]{appearance:textfield;-moz-appearance:textfield}
input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{appearance:none;-webkit-appearance:none;margin:0}
textarea{resize:none;width:100%;display:block;line-height:1.8}
.field-label{font-size:12px;color:#647189}
.ui-input{display:block;position:relative;width:100%;min-width:0}
.ui-input>input{width:100%;padding-right:40px}
.ui-input-button{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#8b9bb4;width:30px;height:30px;display:grid;place-items:center;border-radius:5px}
.ui-input-button:hover{background:#edf3ff;color:#557bd9}
.ui-glyph{width:18px;height:18px;display:block;flex-shrink:0}
.ui-number>input{padding-right:38px}
.ui-number-actions{position:absolute;right:1px;top:1px;bottom:1px;width:29px;border-left:1px solid #edf0f5;display:grid;grid-template-rows:1fr 1fr;overflow:hidden;border-radius:0 6px 6px 0}
.ui-number-actions button{padding:0;min-height:0;border:0;background:#fafbfd;color:#91a0b6;display:grid;place-items:center}
.ui-number-actions button+button{border-top:1px solid #edf0f5}
.ui-number-actions button:hover{color:#537bd9;background:#edf3ff}
.ui-number-actions svg{width:11px;height:11px}
.check-label{gap:10px;min-height:37px;cursor:pointer;color:#65748c}
.check-label input{appearance:none;-webkit-appearance:none;position:relative;flex:none;margin:0;padding:0;width:18px;height:18px;border:1.5px solid #ccd5e3;background:#fff;border-radius:5px;cursor:pointer;display:grid;place-items:center;transition:background .16s,border-color .16s,box-shadow .16s}
.check-label input:checked{background:#567ce1;border-color:#567ce1}
.check-label input:checked:after{content:"";width:7px;height:4px;border-left:1.7px solid #fff;border-bottom:1.7px solid #fff;transform:translateY(-1px) rotate(-45deg)}
.check-label input:focus-visible{outline:0;box-shadow:0 0 0 4px #557ce11c}
.check-label input[role=switch]{width:34px;height:20px;border-radius:20px;border:0;background:#d6deea}
.check-label input[role=switch]:before{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #52688c25;transition:transform .18s}
.check-label input[role=switch]:checked{background:#567ce1}
.check-label input[role=switch]:checked:before{transform:translateX(14px)}
.check-label input[role=switch]:after{display:none}
.check-label input:disabled{opacity:.5;cursor:default}
.ui-select{display:block;min-width:130px;position:relative}
.ui-select>select{display:none!important}
.ui-select-button{width:100%;min-height:38px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid #e1e6ef;border-radius:var(--control-radius);background:#fff;color:#52627b;font-size:12px;line-height:1.5;text-align:left}
.ui-select-button:hover{border-color:#becded;background:#fcfdff}
.ui-select-button[aria-expanded=true]{border-color:#93adee;box-shadow:var(--control-focus)}
.ui-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ui-select-button svg{width:12px;height:12px;color:#97a7be;transition:transform .16s}
.ui-select-button[aria-expanded=true] svg{transform:rotate(180deg);color:#6286da}
.ui-popover{position:fixed;inset:auto;margin:0;padding:6px;border:1px solid #e5ebf5;border-radius:9px;background:#fff;color:#52627b;box-shadow:0 12px 40px #2d43671c,0 3px 9px #2d436708;font:12px/1.55 Inter,"Segoe UI","Microsoft YaHei",sans-serif;z-index:150;overflow:auto}
.ui-select-option{width:100%;border:0;border-radius:5px;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#63728a;min-height:35px;padding:8px 10px;text-align:left;font-size:12px}
.ui-select-option:hover,.ui-select-option.is-active{background:#f3f6fc;color:#4a67a6}
.ui-select-option[aria-selected=true]{color:#5379d6;background:#edf3ff;font-weight:500}
.ui-select-option svg{width:14px;height:14px;opacity:0}
.ui-select-option[aria-selected=true] svg{opacity:1}
.ui-select-option:disabled{opacity:.4;cursor:default}
.ui-calendar{width:284px;padding:12px;overflow:auto}
.ui-calendar-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px;gap:4px}
.ui-calendar-head button{border:0;background:transparent;color:#8e9cb2;display:grid;place-items:center;border-radius:5px;width:29px;height:29px;padding:0}
.ui-calendar-head button:hover{background:#f0f4fd;color:#587ed9}
.ui-calendar-head .ui-calendar-heading{width:auto;padding:0 13px;color:#51647f;font-size:12px;font-weight:600}
.ui-calendar-week,.ui-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.ui-calendar-week{color:#a4afc0;text-align:center;font-size:10px;margin-bottom:7px}
.ui-calendar-week span{padding:4px 0}
.ui-calendar-days button{width:31px;height:31px;justify-self:center;border:0;border-radius:6px;color:#5c6c84;background:transparent;font-size:11px;padding:0;position:relative}
.ui-calendar-days button:hover{background:#edf3ff;color:#547bd8}
.ui-calendar-days button.outside{color:#bac3d1}
.ui-calendar-days button.today:after{content:"";position:absolute;bottom:3px;left:calc(50% - 1.5px);width:3px;height:3px;background:#6487df;border-radius:50%}
.ui-calendar-days button[aria-pressed=true]{background:#577de0;color:#fff}
.ui-calendar-days button[aria-pressed=true]:after{background:#fff}
.ui-calendar-months{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:4px 0}
.ui-calendar-months button{border:0;background:#f7f9fd;color:#7787a1;padding:12px 4px;border-radius:6px;font-size:11px}
.ui-calendar-months button:hover,.ui-calendar-months button.selected{background:#edf3ff;color:#557bd7}
.ui-calendar-actions{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eff2f7;padding-top:10px;margin-top:11px}
.ui-calendar-actions button{border:0;background:transparent;color:#6b89ce;padding:2px 5px;font-size:11px}
.ui-calendar-actions span{font-size:10px;color:#a9b3c2}
.ui-upload{min-width:0}
.ui-upload input[type=file]{display:none}
.ui-upload-drop{width:100%;padding:28px 22px 25px;min-height:191px;border:1.5px dashed #ccd8ec;border-radius:9px;background:#fafcff;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:8px;color:#627797;transition:background .16s,border-color .16s,box-shadow .16s}
.ui-upload-drop:hover,.ui-upload.is-dragging .ui-upload-drop{background:#f2f6ff;border-color:#89a7ee;box-shadow:inset 0 0 0 1px #e4edff}
.ui-upload-symbol{width:48px;height:48px;display:grid;place-items:center;background:#edf3ff;border-radius:13px;color:#6d8fdd;margin-bottom:6px}
.ui-upload-symbol svg{width:24px;height:24px}
.ui-upload-drop strong{font-size:13px;font-weight:500;color:#607ba9}
.ui-upload-drop strong span{color:#547cdd}
.ui-upload-drop small{color:#a0adc1;font-size:10px}
.ui-upload-selection{display:flex;align-items:center;gap:12px;padding:14px;margin-top:12px;background:#f6f9ff;border:1px solid #e4ecf9;border-radius:7px}
.ui-file-icon{width:35px;height:40px;background:#e8effe;color:#7293df;display:grid;place-items:center;border-radius:6px;flex-shrink:0}
.ui-file-icon svg{width:20px;height:20px}
.ui-file-description{min-width:0;flex:1}
.ui-file-description strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#566e94;font-weight:500;font-size:12px}
.ui-file-description small{display:block;font-size:10px;color:#97a6bc;margin-top:3px}
.ui-upload-remove{border:0;background:transparent;color:#93a3bb;font-size:11px;padding:6px 8px;border-radius:5px}
.ui-upload-remove:hover{background:#edf2fa;color:#cc7581}
.ui-upload-error{color:#d57d86;font-size:11px;margin-top:9px}
.ui-upload-status{margin-top:17px}
.ui-upload-status-line{display:flex;justify-content:space-between;gap:12px;font-size:11px;color:#8194b5;margin-bottom:8px}
.ui-progress-track{height:5px;border-radius:5px;background:#eaf0fa;overflow:hidden}
.ui-progress-fill{display:block;width:0;height:100%;background:#7899e9;border-radius:5px;transition:width .18s linear}
.ui-upload.is-uploading .ui-upload-drop{min-height:142px;padding:20px;opacity:.7}
.ui-upload.is-uploading .ui-upload-symbol{width:36px;height:36px;margin-bottom:0}
.ui-upload[aria-invalid=true] .ui-upload-drop{border-color:#dda1a8;background:#fffafb}
.ui-upload-note{display:flex;gap:10px;align-items:flex-start;color:#98a6bb;font-size:11px;line-height:1.8;margin-top:17px}
.ui-upload-note svg{width:14px;height:14px;margin-top:3px;color:#8ca1c2}
dialog{position:fixed;overflow:hidden;max-height:calc(100dvh - 48px);border:1px solid #e4eaf3;border-radius:12px;box-shadow:0 28px 90px #21345133}
dialog[open]{display:flex;flex-direction:column}
dialog::backdrop{background:#24355057;backdrop-filter:blur(3px)}
.modal-head{flex-shrink:0;background:#fff;padding:21px 25px}
.modal-head h2{font-weight:600;color:#455772;font-size:16px}
.modal-head .icon-button{width:29px;height:29px;display:grid;place-items:center;padding:0;font-size:21px;color:#9aa8bd}
#modal-body{padding:24px 25px;min-height:0}
#modal-body .callout{margin-bottom:0}
html:has(dialog[open]){overflow:hidden}
.form-actions .button{border-radius:6px;padding-left:17px;padding-right:17px}
.form-error:not(:empty){padding:10px 12px;background:#fff6f7;border:1px solid #f5e1e4;border-radius:6px;margin-top:14px;font-size:11px}
.login-form .form-error:not(:empty){margin-top:-10px;margin-bottom:0}
.button.is-loading:before{content:"";width:12px;height:12px;border:1.5px solid #ffffff70;border-top-color:#fff;border-radius:50%;animation:ui-spin .7s linear infinite}
@keyframes ui-spin{to{transform:rotate(360deg)}}
/* Native tracks are removed. The overlay thumbs retain wheel/touch/keyboard scrolling. */
.ui-scroll-viewport,.ui-page-scroll{scrollbar-width:none;-ms-overflow-style:none}
.ui-scroll-viewport::-webkit-scrollbar,.ui-page-scroll::-webkit-scrollbar{width:0;height:0;display:none}
.ui-scroll-shell{position:relative;min-width:0;min-height:0}
.ui-scroll-shell.rail-scroll-shell{flex:1;display:flex;flex-direction:column}
.rail-scroll-shell>.rail-scroll{min-height:0;flex:1;padding-right:18px}
.ui-scroll-shell.modal-scroll-shell{min-height:0;flex:1;display:flex;flex-direction:column;overflow:hidden}
.modal-scroll-shell>#modal-body{flex:1;min-height:0;overflow:auto}
.ui-scroll-shell.textarea-scroll-shell{width:100%}
.textarea-scroll-shell>textarea{padding-right:17px}
.ui-scrollbars{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}
.ui-scrollbars.page-scrollbars{position:fixed;z-index:25}
.ui-scrollbar{position:absolute;pointer-events:auto;touch-action:none;user-select:none;border-radius:20px}
.ui-scrollbar.y{top:4px;bottom:4px;right:1px;width:12px}
.ui-scrollbar.x{left:4px;right:4px;bottom:1px;height:12px}
.ui-scroll-thumb{position:absolute;border-radius:20px;background:#c5cede;opacity:.65;transition:background .16s,opacity .16s}
.ui-scrollbar.y>.ui-scroll-thumb{width:4px;left:4px;top:0}
.ui-scrollbar.x>.ui-scroll-thumb{height:4px;top:4px;left:0}
.ui-scroll-shell:hover>.ui-scrollbars .ui-scroll-thumb,.ui-scrollbar:hover .ui-scroll-thumb,.ui-scrollbar:focus-visible .ui-scroll-thumb,.ui-scrollbar.is-dragging .ui-scroll-thumb{opacity:1;background:#acbdd6}
.ui-scrollbars.dark .ui-scroll-thumb{background:#7c91b6;opacity:.35}
.rail-scroll-shell:hover>.ui-scrollbars.dark .ui-scroll-thumb,.ui-scrollbars.dark .ui-scrollbar:hover .ui-scroll-thumb,.ui-scrollbars.dark .ui-scrollbar.is-dragging .ui-scroll-thumb{opacity:.75;background:#9aafd0}
.ui-scrollbar:focus-visible{outline-offset:-2px}
.ui-dragging-scroll,.ui-dragging-scroll *{user-select:none!important;cursor:grabbing!important}
.ui-popover{scrollbar-width:thin;scrollbar-color:#cad5e6 transparent}
.ui-popover::-webkit-scrollbar{width:5px;height:5px}
.ui-popover::-webkit-scrollbar-thumb{border-radius:5px;background:#cad5e6}
.ui-popover::-webkit-scrollbar-track{background:transparent}
.ui-popover::-webkit-scrollbar-button{display:none}
@media(max-width:800px){dialog{width:calc(100vw - 28px);max-height:calc(100dvh - 28px)}.modal-head{padding:18px 20px}#modal-body{padding:20px}.ui-upload-drop{padding:22px 14px;min-height:175px}}
@media(prefers-reduced-motion:reduce){.ui-progress-fill,.ui-scroll-thumb,.check-label input:before{transition:none}.button.is-loading:before{animation:none}}
