.access-pending .app-shell,.access-pending .skip-link{visibility:hidden}
.access-gate{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;overflow:auto;padding:28px;background:var(--canvas)}
.access-login{width:min(440px,100%);border:1px solid var(--border);border-top:4px solid var(--magenta);border-radius:var(--radius-lg);padding:38px;background:var(--white);box-shadow:0 18px 50px #17171c0a}
.access-brand{display:flex;align-items:center;gap:14px;margin-bottom:34px}
.access-brand img{width:100px;height:auto}
.access-brand span{border-left:1px solid var(--border);padding-left:14px;color:var(--ink-soft);font-size:12px}
.access-login h1{font-size:28px;letter-spacing:-.035em;margin-bottom:10px}
.access-subtitle{color:var(--ink-soft);line-height:1.8;margin-bottom:26px}
.access-login form{display:grid;gap:18px}
.access-login .field{gap:8px}.access-login input{width:100%}
.access-note{font-size:12px;line-height:1.8;color:var(--ink-faint)}
.access-error{padding:11px 13px;background:var(--red-pale);color:var(--red);border-radius:var(--radius-xs);font-size:12px;line-height:1.7}
.access-profile{display:flex;align-items:center;gap:7px;margin-left:4px}
.access-profile-button{display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:3px 5px;cursor:pointer;font-size:12px;border-radius:var(--radius-xs)}
.access-avatar{display:grid;place-items:center;width:29px;height:29px;background:var(--magenta-pale);color:var(--magenta-dark);border-radius:50%;font-size:12px;font-weight:700}
.access-profile-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.4}.access-profile-copy small{font-size:10px;color:var(--ink-faint)}
.access-profile .text-button{font-size:11px}
.access-modal{border:1px solid var(--border);padding:0;border-radius:var(--radius-lg);box-shadow:var(--shadow-float);color:var(--ink);background:var(--white);max-height:calc(100dvh - 32px)}
.access-modal::backdrop{background:#17171c66;backdrop-filter:blur(3px)}
.access-admin{width:min(1120px,calc(100vw - 32px));height:min(800px,calc(100dvh - 32px))}
.access-admin-layout{display:flex;flex-direction:column;height:100%}
.access-admin-head{padding:23px 26px 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border)}
.access-admin-head h2{font-size:23px}.access-admin-head p{color:var(--ink-soft);font-size:12px;margin-top:7px}
.access-admin-tabs{display:flex;gap:23px;padding:0 26px;border-bottom:1px solid var(--border)}
.access-admin-tabs button{border:0;border-bottom:3px solid transparent;background:transparent;padding:15px 0 12px;color:var(--ink-soft);font-size:13px}
.access-admin-tabs button[aria-selected=true]{color:var(--magenta-dark);border-color:var(--magenta);font-weight:600}
.access-admin-content{overflow:auto;flex:1;padding:22px 26px 28px;min-height:0}
.access-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.access-toolbar p{font-size:12px;color:var(--ink-soft)}
.access-toolbar input[type=search]{width:260px}
.access-toolbar input[type=search],.access-filter-row input,.access-filter-row select{min-height:38px;border:1px solid var(--border-strong);border-radius:var(--radius-xs);padding:7px 10px;background:var(--white);font-size:12px;color:var(--ink)}
.access-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}
.access-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;line-height:1.65}
.access-table th{background:var(--canvas);color:var(--ink-soft);font-weight:500;white-space:nowrap}
.access-table th,.access-table td{padding:13px 15px;border-bottom:1px solid var(--border);vertical-align:top}
.access-table tr:last-child td{border-bottom:0}.access-table td small{display:block;color:var(--ink-faint);font-size:11px;margin-top:2px}
.access-table td .text-button{font-size:12px;white-space:nowrap}.access-table td strong{font-weight:600}
.access-row-actions{display:flex;gap:12px;flex-wrap:wrap}
.access-badge{display:inline-flex;padding:2px 7px;border-radius:5px;font-size:11px;white-space:nowrap;background:var(--canvas);color:var(--ink-soft)}
.access-badge.is-active{background:var(--green-pale);color:var(--green)}.access-badge.is-pending{background:var(--amber-pale);color:var(--amber)}
.access-empty{padding:38px 20px;text-align:center;color:var(--ink-faint);font-size:13px}
.access-form-modal{width:min(490px,calc(100vw - 32px))}
.access-form-modal .dialog-body{display:grid;gap:18px}.access-form-modal .field{gap:7px}
.access-form-modal input:not([type=checkbox]),.access-form-modal select{width:100%}
.access-form-modal .dialog-footer{display:flex;justify-content:flex-end;gap:9px}
.access-choice-list{display:grid;gap:8px;max-height:180px;overflow:auto;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-xs)}
.access-choice-list label{display:flex;align-items:center;gap:8px;font-size:12px}.access-choice-list input{accent-color:var(--magenta)}
.access-choice-list label small{color:var(--ink-faint);margin-left:auto}
.access-secret{font-family:var(--font-data);font-size:18px;letter-spacing:.035em;border:1px solid var(--border);background:var(--canvas);padding:18px;border-radius:var(--radius-xs);overflow-wrap:anywhere;user-select:all}
.access-secret-actions{display:flex;align-items:center;gap:12px}.access-secret-actions span{font-size:12px;color:var(--green)}
.access-filter-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:18px}
.access-filter-row label{display:grid;gap:5px;font-size:11px;color:var(--ink-soft)}
.access-filter-row select,.access-filter-row input{min-width:150px;max-width:240px}
.access-pagination{display:flex;justify-content:flex-end;align-items:center;gap:13px;margin-top:18px;font-size:12px;color:var(--ink-soft)}
.access-log-summary{max-width:320px;overflow-wrap:anywhere}.access-bulk{display:flex;gap:10px;align-items:center;padding:12px 15px;background:var(--magenta-pale);border-radius:var(--radius-xs);margin-bottom:12px;font-size:12px}
html[data-access-role=operator] #open-client-dialog,html[data-access-role=operator] #portfolio-create,html[data-access-role=operator] [data-portfolio-mode=trash],html[data-access-role=operator] [data-portfolio-trash],html[data-access-role=operator] [data-portfolio-restore],html[data-access-role=operator] [data-portfolio-period],html[data-access-role=operator] #tab-settings,html[data-access-role=operator] [data-go-tab=settings],html[data-access-role=operator] #panel-settings,html[data-access-role=operator] #art-login,html[data-access-role=operator] #art-login-link{display:none!important}
html[data-access-role=operator] #art-cms-settings,html[data-access-role=operator] #cmp-settings,html[data-access-role=operator] #schedule-settings{display:none!important}
html[data-access-role=operator] #portfolio-refresh,html[data-access-role=operator] [data-portfolio-refresh]{display:none!important}
@media(max-width:700px){.access-login{padding:28px 24px}.access-profile-copy{display:none}.access-profile{gap:4px}.access-profile .text-button{font-size:10px}.access-admin-head{padding:18px}.access-admin-tabs{padding:0 18px}.access-admin-content{padding:18px}.access-admin-head h2{font-size:20px}.access-toolbar input[type=search]{width:100%}.access-toolbar{align-items:stretch}.access-table th,.access-table td{padding:11px}.access-filter-row label{flex:1}.access-filter-row select,.access-filter-row input{min-width:100%;max-width:100%}.access-profile-button{padding:2px}}
