:root{--bg:#f3f7fb;--panel:#fff;--panel2:#f6f9fc;--ink:#173b63;--muted:#60758b;--line:#dce6ef;--primary:#173b63;--primary2:#214d78;--accent:#2563eb;--danger:#b42318;--danger-bg:#fff1f0;--ok:#087443;--warn:#a15c00;--shadow:0 18px 55px rgba(17,55,91,.10)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:radial-gradient(circle at 15% -10%,#e8eefb 0,transparent 30%),var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:12px}.inline-form{display:inline}.modal-open{overflow:hidden}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#edf4fa;border-radius:7px;padding:2px 6px;font-size:.9em}
.app-shell{max-width:1320px;margin:0 auto;padding:30px 24px 52px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.brand-row{display:flex;align-items:center;gap:var(--space-5)}.brand-row h1{margin:4px 0 4px;font-size:28px;letter-spacing:-.6px}.brand-mark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--primary);color:var(--primary-contrast,#fff);font-weight:900;letter-spacing:-1px;box-shadow:0 9px 25px rgba(17,55,91,.18)}.brand-mark.small{width:46px;height:46px;border-radius:14px}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:800;color:#486783}.top-actions,.button-row,.modal-actions,.toolbar-line,.checkbox-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-chip{display:flex;flex-direction:column;min-width:120px;padding:8px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}.user-chip strong{font-size:13px}.user-chip span{font-size:11px;color:var(--muted)}
.btn,.icon-btn,.pill{border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;transition:.15s ease}.btn{min-height:38px;padding:8px var(--space-5);border-radius:11px;font-weight:700;font-size:13px}.btn:hover,.icon-btn:hover,.pill:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(17,55,91,.08)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.ghost{background:#fff}.btn.danger{background:var(--danger-bg);border-color:#fecaca;color:var(--danger)}.btn.compact{min-height:32px;padding:6px 9px;font-size:12px}.btn.wide{width:100%}.icon-btn{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-weight:800}.icon-btn.text-btn{width:auto;padding:0 11px;font-size:12px}.icon-btn.text-btn.active{background:var(--primary);color:var(--primary-contrast,#fff);border-color:var(--primary)}.spacer{flex:1}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.metric{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:15px;padding:16px var(--space-5);box-shadow:0 8px 24px rgba(17,55,91,.04)}.metric span{display:block;font-size:12px;color:var(--muted)}.metric strong{display:block;margin-top:4px;font-size:22px}.toolbar-card{background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:17px;padding:var(--space-5);margin-bottom:24px;box-shadow:0 8px 24px rgba(17,55,91,.04)}.search-box{display:flex;align-items:center;gap:8px;flex:1;min-width:220px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:0 12px}.search-box input{width:100%;border:0;outline:0;padding:10px 0;background:transparent}.small-search{max-width:520px}.view-switch{display:flex;gap:8px}.category-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.pill{border-radius:999px;padding:6px 11px;font-size:12px}.pill.active{background:var(--primary);color:var(--primary-contrast,#fff);border-color:var(--primary)}
.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:24px 0 12px}.section-title-row h2,.section-title-row h3{margin:0;font-size:18px}.section-title-row p{margin:4px 0 0;font-size:12px}.site-section{margin-bottom:32px}.site-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-5)}.site-card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:16px;min-height:142px;overflow:hidden;box-shadow:0 7px 20px rgba(17,55,91,.045);transition:.16s ease}.site-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(17,55,91,.09);border-color:#d6dbe3}.site-link{display:flex;gap:var(--space-5);padding:17px 43px 16px 16px;color:inherit;text-decoration:none;height:100%}.site-icon{width:44px;height:44px;border-radius:13px;background:#edf4fa;display:grid;place-items:center;flex:0 0 44px;font-weight:900;overflow:hidden}.site-icon-img,.manage-icon img{width:100%;height:100%;object-fit:cover}.site-copy{min-width:0;flex:1}.site-title-line{display:flex;align-items:center;gap:8px;min-width:0}.site-title-line strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-copy p{margin:8px 0 8px;font-size:12px;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.site-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:#7a8494}.tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.tag,.featured-badge,.privacy-badge{font-size:10px;border-radius:999px;padding:2px 6px}.tag{background:#edf3f8;color:#596170}.featured-badge{background:var(--primary-soft,#e7f1ff);color:var(--primary)}.privacy-badge{background:#fff7ed;color:#9a4f00}.favorite,.edit-shortcut{position:absolute;z-index:3;border:0;background:transparent;cursor:pointer;color:#c4c9d1}.favorite{top:10px;right:10px;font-size:19px}.favorite.active{color:#e2a10b}.edit-shortcut{right:8px;bottom:8px;font-weight:900}.site-status{display:inline-flex;align-items:center;gap:4px}.site-status i{width:7px;height:7px;border-radius:50%;background:#aeb5bf}.site-status.up i{background:#13a066}.site-status.down i{background:#d92d20}.site-status.unknown i{background:#98a2b3}.compact-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.site-card.mini{min-height:92px}.site-card.mini .site-link{padding:var(--space-5) 38px 12px 13px}.site-card.mini .site-icon{width:34px;height:34px;flex-basis:34px;border-radius:10px}.site-card.mini .site-copy p,.site-card.mini .tags{display:none}.compact-mode .site-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.compact-mode .site-card{min-height:82px}.compact-mode .site-link{padding:var(--space-5) 42px 12px 13px;align-items:center}.compact-mode .site-icon{width:36px;height:36px;flex-basis:36px;border-radius:10px}.compact-mode .site-copy p,.compact-mode .tags{display:none}.empty-state,.empty-mini{border:1px dashed #cbd5e1;border-radius:16px;padding:34px;text-align:center;color:var(--muted)}.empty-state{display:grid;place-items:center;gap:8px;background:rgba(255,255,255,.6)}footer{padding:24px 0 0;text-align:center;color:#98a2b3;font-size:12px}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--shadow)}.wide-auth{width:min(620px,100%)}.auth-card h1{margin:16px 0 4px}.auth-card .brand-mark{margin-bottom:16px}.stack{display:grid;gap:var(--space-5)}.auth-card form{margin-top:20px}label{display:grid;gap:8px;font-size:12px;font-weight:700;color:#385a78}input,select,textarea{width:100%;border:1px solid #cfdae5;border-radius:10px;padding:9px 10px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#60758b;box-shadow:0 0 0 3px rgba(42,103,165,.12)}textarea{resize:vertical}.alert{padding:10px 12px;border-radius:10px;font-size:13px;margin:var(--space-5) 0}.alert.success{background:#ecfdf3;border:1px solid #a7e6bb;color:#176b37}.alert.danger{background:#fff1f0;border:1px solid #fecaca;color:#9f1c13}.field-help{font-size:11px;font-weight:400;color:var(--muted)}
.auth-card .alert{display:grid;gap:4px;line-height:1.55}.auth-card .alert strong{font-size:13px}.alert.info{background:#eef6ff;border:1px solid #bfdcff;color:#245c91}
[data-panel="toreyauth"] .alert{display:grid;gap:4px;line-height:1.55}
.modal-backdrop{position:fixed;inset:0;z-index:50;background:rgba(17,55,91,.45);display:grid;place-items:center;padding:20px;backdrop-filter:blur(5px)}.modal-card{width:min(720px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;box-shadow:0 28px 80px rgba(17,55,91,.28);padding:20px}.modal-card.small-card{width:min(430px,96vw)}.modal-card.medium{width:min(760px,96vw)}.modal-card.large{width:min(920px,96vw)}.modal-card.xlarge{width:min(1120px,97vw)}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin-bottom:16px}.modal-head h2{margin:0;font-size:20px}.modal-head p{margin:4px 0 0}.modal-actions{margin-top:4px}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.checkbox-row label,.checkbox-inline,.checkbox-label{display:flex;align-items:center;gap:8px}.checkbox-row input,.checkbox-inline input,.checkbox-label input{width:auto}.inline-inputs{display:flex;align-items:center;gap:8px}.panel-block{border:1px solid var(--line);border-radius:14px;padding:var(--space-5);margin:12px 0}.panel-block.soft{background:var(--panel2)}.panel-block h3{margin:0 0 8px;font-size:14px}.panel-block p{font-size:12px}.tabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--line);margin:0 -20px var(--space-5);padding:0 20px}.tab{border:0;background:transparent;padding:11px 12px;cursor:pointer;font-weight:700;color:#60758b;border-bottom:2px solid transparent;white-space:nowrap}.tab.active{color:var(--primary);border-color:var(--primary)}.manage-list{display:grid;gap:8px}.manage-row{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px 11px;background:#fff}.manage-row.dragging{opacity:.55}.drag-handle{cursor:grab;color:#98a2b3;font-weight:900}.manage-icon{width:32px;height:32px;border-radius:9px;background:#edf3f8;display:grid;place-items:center;overflow:hidden;flex:0 0 32px;font-size:11px;font-weight:900}.manage-main{min-width:0;flex:1}.manage-main strong{display:block;font-size:13px}.manage-sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.status{font-size:10px;padding:3px 7px;border-radius:999px;background:#edf3f8;color:#60758b;white-space:nowrap}.status.on{background:#ecfdf3;color:#087443}.status.off{background:#fff1f0;color:#b42318}.bulk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 12px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f6f9fc}.bulk-bar label{display:flex;align-items:center;gap:8px}.bulk-bar input[type=checkbox]{width:auto}.bulk-bar select,.bulk-bar input{width:auto;min-width:130px}.backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.audit-list{display:grid;gap:8px;margin-top:12px}.audit-row{display:flex;justify-content:space-between;gap:var(--space-5);border-bottom:1px solid var(--line);padding:9px 2px}.audit-row strong,.audit-row span{display:block}.audit-row strong{font-size:12px}.audit-row span{font-size:11px;color:var(--muted);margin-top:4px}.audit-row code{white-space:nowrap;font-size:11px}.mini-list{display:grid;gap:8px;margin-top:12px}.mini-list .manage-row{background:#f6f9fc}
.toast{position:fixed;z-index:90;left:50%;bottom:28px;transform:translateX(-50%);min-width:220px;max-width:min(540px,90vw);padding:10px var(--space-5);border-radius:12px;background:var(--primary);color:var(--primary-contrast,#fff);box-shadow:0 14px 40px rgba(var(--primary-rgb,13,110,253),.22);text-align:center;font-size:13px}.toast.danger{background:#b42318}.toast.ok{background:var(--primary)}
@media(max-width:1100px){.site-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.compact-mode .site-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{align-items:flex-start}.top-actions{justify-content:flex-end}}
@media(max-width:820px){.app-shell{padding:20px var(--space-5) 40px}.topbar{display:grid}.top-actions{justify-content:flex-start}.metrics{grid-template-columns:repeat(2,1fr)}.site-grid,.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-mode .site-grid{grid-template-columns:1fr}.form-grid.two,.form-grid.three,.backup-grid{grid-template-columns:1fr}.modal-backdrop{padding:8px}.modal-card{padding:16px;border-radius:16px;max-height:96vh}.tabs{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}}
@media(max-width:520px){.brand-row h1{font-size:23px}.brand-mark.small{width:42px;height:42px}.user-chip{display:none}.top-actions{gap:8px}.btn{min-height:36px;padding:7px 10px}.metrics{gap:8px}.metric{padding:12px}.metric strong{font-size:18px}.toolbar-line{align-items:stretch}.view-switch{width:100%}.view-switch .icon-btn{flex:1}.site-grid,.compact-grid{grid-template-columns:1fr}.site-card{min-height:112px}.site-link{padding:var(--space-5) 40px 13px 13px}.compact-mode .site-card{min-height:76px}.section-title-row{align-items:flex-start}.manage-row{align-items:flex-start;flex-wrap:wrap}.manage-main{min-width:180px}.audit-row{display:grid}.auth-card{padding:22px}.modal-actions .spacer{display:none}.modal-actions{justify-content:flex-end}.bulk-bar select,.bulk-bar input{width:100%}}
.section-toggle{width:32px;height:32px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#60758b;cursor:pointer;font-weight:900;line-height:1}.section-toggle:hover{background:var(--primary-soft,#e7f1ff);color:var(--primary)}.site-section.collapsed{margin-bottom:16px}.site-section.collapsed .site-grid{display:none}.button-row.align-end{align-items:flex-end;justify-content:flex-end;height:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.restore-preview{border:1px solid #cfdae5;border-radius:12px;background:#f6f9fc;padding:12px}.restore-preview>strong{display:block;margin-bottom:8px;font-size:13px}.preview-stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.preview-stats span{font-size:11px;padding:4px 7px;border:1px solid var(--line);background:#fff;border-radius:999px;color:#486783}.preview-warnings{display:grid;gap:4px;font-size:11px;color:#9a4f00}.preview-warnings div{padding:7px 8px;border-radius:8px;background:#fff7ed;border:1px solid #fed7aa}

/* ToreyOne 1.4.3 UI layering and deep-blue visual system */
:root{--bg:#f3f7fb;--panel:#fff;--panel2:#f6f9fc;--ink:#173b63;--muted:#60758b;--line:#dce6ef;--primary:#173b63;--primary2:#214d78;--accent:var(--primary);--focus:var(--primary);--shadow:0 18px 55px rgba(17,55,91,.12)}
body{background:radial-gradient(circle at 15% -10%,#dceafa 0,transparent 32%),var(--bg)}
.brand-mark{background:linear-gradient(145deg,var(--primary2),var(--primary));box-shadow:0 9px 25px rgba(17,55,91,.22)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast,#fff)}.btn.primary:hover{background:var(--primary2);border-color:var(--primary2)}
.icon-btn.text-btn.active,.pill.active{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast,#fff)}.tab.active{color:var(--primary);border-color:var(--primary)}.section-toggle:hover{color:var(--primary);background:var(--primary-soft,#e7f1ff)}
input[type=checkbox],input[type=radio]{accent-color:var(--primary)}input:focus,select:focus,textarea:focus{border-color:var(--control-focus,var(--primary));box-shadow:0 0 0 3px var(--control-focus-ring)}
.modal-backdrop{z-index:100;background:rgba(8,38,68,.46);backdrop-filter:blur(6px);isolation:isolate}
.modal-backdrop.modal-nested{background:rgba(8,38,68,.34)}
.modal-card{padding:0;border:1px solid rgba(94,136,174,.22);box-shadow:0 30px 90px rgba(7,39,70,.30);overflow:auto}
.modal-head{position:sticky;top:0;z-index:4;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin:0;padding:20px 22px 16px;background:linear-gradient(180deg,#f9fcff 0,#f3f8fd 100%);border-bottom:1px solid #d6e3ef}
.modal-head h2{color:#12395f;letter-spacing:-.2px}.modal-head p{margin:8px 0 0;color:#6a8094;line-height:1.5}
.modal-card> :not(.modal-head){margin-left:24px;margin-right:24px}.modal-card> :last-child:not(.modal-head){margin-bottom:24px}
.modal-card>.tabs{margin:12px 24px var(--space-5);padding:3px 0 0}.modal-card>.tab-panel{margin:0 24px 24px}.modal-card>form{margin-top:20px}.modal-card>.panel-block:first-of-type{margin-top:20px}
.modal-card>.modal-head+form,.modal-card>.modal-head+.panel-block,.modal-card>.modal-head+p{margin-top:20px}
.modal-card>.modal-head+p{line-height:1.6}
.modal-actions{padding-top:14px;margin-top:16px;border-top:1px solid #e0e9f1}
.modal-card>.modal-actions{margin-top:20px}
.modal-body-title,.modal-body>.section-title-row,.tab-panel>.section-title-row{padding-bottom:12px;margin-top:4px;border-bottom:1px solid #e0e9f1}
.tab-panel>.section-title-row:first-child{margin-top:4px}.section-title-row h2,.section-title-row h3,.panel-block h3{color:#173b63}
.panel-block{border-color:#dbe6f0;background:#fff}.panel-block.soft{background:#f5f9fd}.panel-block h3{margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid #e1eaf2;font-size:14px}.panel-block>p:first-of-type{margin-top:0;line-height:1.55}
.tabs{border-bottom-color:#d7e3ee}.tab{color:#687f94}.tab:hover{color:#173b63;background:#f4f8fc}
.manage-row{border-color:#dce6ef}.manage-row:hover{border-color:#bfd2e3;background:#fbfdff}.bulk-bar,.restore-preview{border-color:#d8e4ef;background:#f5f9fd}
.toast{z-index:1000;background:var(--primary);color:var(--primary-contrast,#fff);box-shadow:0 14px 40px rgba(var(--primary-rgb,13,110,253),.22)}.toast.ok{background:var(--primary)}
@media(max-width:820px){.modal-head{padding:17px 17px var(--space-5)}.modal-card> :not(.modal-head){margin-left:16px;margin-right:16px}.modal-card>.tabs{margin-left:16px;margin-right:16px}.modal-card>.tab-panel{margin-left:16px;margin-right:16px;margin-bottom:16px}.modal-card> :last-child:not(.modal-head){margin-bottom:16px}}

.auth-card h1{color:#12395f}.auth-card h1+p{margin-top:8px;line-height:1.55}

/* ToreyOne 1.4.3 — spacing, management grid and status system */
:root{
  --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;
  --line-strong:#c8d8e6;
}
body{line-height:1.5;color:#173b63}.muted{line-height:1.55}.small{line-height:1.55}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;padding:9px var(--space-5);border-radius:10px;white-space:nowrap}
.btn.compact{min-height:34px;padding:6px 11px}.btn.secondary{background:var(--primary-soft,#e7f1ff);border-color:color-mix(in srgb,var(--primary) 28%,var(--line));color:var(--primary)}.btn.secondary:hover{background:color-mix(in srgb,var(--primary-soft,#e7f1ff) 78%,var(--primary));border-color:var(--primary)}
.button-row,.section-actions{gap:var(--space-2)}
.section-title-row{align-items:center;margin:var(--space-8) 0 var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--line)}
.section-title-row h2,.section-title-row h3{line-height:1.3}.section-title-row p{margin-top:var(--space-2);line-height:1.5}
.stack{gap:var(--space-4)}label{gap:var(--space-2);line-height:1.4}input,select,textarea{min-height:40px;padding:9px 11px;border-radius:10px}.field-help{display:block;margin-top:0;line-height:1.55}
.checkbox-row{gap:var(--space-4);padding:2px 0}.checkbox-row label,.checkbox-inline,.checkbox-label{gap:var(--space-2);min-height:32px}
.form-grid{gap:var(--space-4)}.inline-inputs{gap:var(--space-2)}

.modal-card{border-radius:18px}.modal-head{padding:var(--space-6);gap:var(--space-4)}.modal-head h2{font-size:20px;line-height:1.3}.modal-head p{margin-top:var(--space-2)}
.modal-card> :not(.modal-head){margin-left:var(--space-6);margin-right:var(--space-6)}.modal-card> :last-child:not(.modal-head){margin-bottom:var(--space-6)}
.modal-card>.tabs{margin:var(--space-4) var(--space-6) var(--space-5);padding-top:0}.modal-card>.tab-panel{margin:0 var(--space-6) var(--space-6)}
.modal-card>form{margin-top:var(--space-6)}.modal-actions{gap:var(--space-2);padding-top:var(--space-4);margin-top:var(--space-5);border-top:1px solid var(--line)}
.panel-block{padding:var(--space-5);margin:var(--space-4) 0;border-radius:14px}.panel-block h3{margin:0 0 var(--space-4);padding-bottom:var(--space-3);line-height:1.35}.panel-block p{margin:0 0 var(--space-4);line-height:1.6}.panel-block p:last-child{margin-bottom:0}
.tabs{gap:var(--space-1)}.tab{padding:12px var(--space-5);border-radius:8px 8px 0 0}.tab-panel{min-width:0;overflow-x:hidden}

.admin-section{display:block}.admin-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);margin:0 0 var(--space-5);padding:0 0 var(--space-4);border-bottom:1px solid var(--line)}
.admin-section-copy{min-width:0}.admin-section-head h3{margin:0;color:#12395f;font-size:17px;line-height:1.35}.admin-section-head p{margin:var(--space-2) 0 0;max-width:720px}.section-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;flex:0 0 auto}

.manage-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-4);margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid #d5e2ed;border-radius:12px;background:#f5f9fc}
.select-control{display:inline-flex;align-items:center;grid-template:none;gap:var(--space-2);min-height:36px;white-space:nowrap}.select-control input{width:16px;height:16px;min-height:0;margin:0}
.manage-toolbar-fields{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);min-width:0}.manage-toolbar-fields select{width:190px}.manage-toolbar-fields input{width:min(220px,30vw)}

.site-manage-columns,.site-manage-row{display:grid;grid-template-columns:28px 32px 42px minmax(240px,1fr) 112px 88px 72px;gap:var(--space-3);align-items:center}
.site-manage-columns{padding:0 12px var(--space-2);color:#7890a5;font-size:11px;font-weight:700;letter-spacing:.02em}
.site-manage-list{gap:var(--space-2)}
.manage-row.site-manage-row{padding:11px 12px;border-radius:12px;min-height:64px}
.manage-cell{min-width:0}.manage-select,.manage-drag,.manage-icon-cell,.manage-health,.manage-enabled,.manage-action{display:flex;align-items:center}.manage-select,.manage-drag,.manage-icon-cell{justify-content:center}.manage-health,.manage-enabled{justify-content:flex-start}.manage-action{justify-content:flex-end}
.manage-select input{width:16px;height:16px;min-height:0;margin:0}.drag-handle{display:inline-grid;place-items:center;width:28px;height:34px;border-radius:8px;color:#7890a5;cursor:grab;user-select:none}.drag-handle:hover{background:var(--primary-soft,#e7f1ff);color:var(--primary)}.draggable-row.dragging{opacity:.55;box-shadow:0 10px 26px rgba(12,54,91,.12)}
.manage-icon{width:36px;height:36px;flex-basis:36px;border-radius:10px}.manage-main strong{font-size:13px;line-height:1.35;color:#173b63}.manage-sub{display:flex;align-items:center;gap:4px 8px;flex-wrap:wrap;margin-top:4px;white-space:normal;overflow:visible;line-height:1.35}.manage-sub span{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-sub span+span:before{content:'·';position:absolute;left:-7px;color:#a0b0bf}.manage-sub .admin-note{color:#54728e}
.status{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:700;line-height:1.3}.status.neutral{background:#eef3f7;color:#6b8093}
.site-status{display:inline-flex;align-items:center;gap:8px;min-height:24px;color:#6b8093;font-size:11px;font-weight:700;white-space:nowrap}.site-status i{width:8px;height:8px;flex:0 0 8px}.site-status.up{color:#087443}.site-status.down{color:#b42318}.site-status.error{color:#9a5b00}.site-status.error i{background:#e59a13}.site-status.disabled{color:#7c8c9b}.site-status.disabled i{background:#c4d0da}

.toolbar-card{padding:var(--space-4);margin-bottom:var(--space-8)}.toolbar-line{gap:var(--space-3)}.category-pills{margin-top:var(--space-3)}
.site-section{margin-bottom:var(--space-8)}.site-grid{gap:var(--space-4)}.site-card{border-radius:14px}.site-link{padding:var(--space-4) 44px var(--space-4) var(--space-4)}
.empty-state,.empty-mini{padding:var(--space-8);line-height:1.6}.empty-mini{border:1px dashed #cbd8e4;border-radius:12px;background:#fafcff;text-align:center}
.audit-list{gap:0;margin-top:var(--space-4)}.audit-row{padding:var(--space-3) 2px}.backup-grid{gap:var(--space-4)}

@media(max-width:960px){
  .site-manage-columns{display:none}
  .site-manage-row{grid-template-columns:28px 30px 40px minmax(0,1fr) auto;grid-template-areas:'select drag icon main action' '. . . health enabled';gap:8px 8px}
  .site-manage-row .manage-select{grid-area:select}.site-manage-row .manage-drag{grid-area:drag}.site-manage-row .manage-icon-cell{grid-area:icon}.site-manage-row .manage-main{grid-area:main}.site-manage-row .manage-health{grid-area:health;justify-content:flex-start;padding-top:3px}.site-manage-row .manage-enabled{grid-area:enabled;justify-content:flex-end;padding-top:3px}.site-manage-row .manage-action{grid-area:action}
  .manage-toolbar{grid-template-columns:1fr}.manage-toolbar-fields{justify-content:flex-start;flex-wrap:wrap}.manage-toolbar-fields input{width:220px}
}
@media(max-width:820px){
  .modal-head{padding:var(--space-5)}.modal-card> :not(.modal-head){margin-left:var(--space-4);margin-right:var(--space-4)}.modal-card>.tabs{margin:var(--space-3) var(--space-4) var(--space-4)}.modal-card>.tab-panel{margin:0 var(--space-4) var(--space-5)}.modal-card> :last-child:not(.modal-head){margin-bottom:var(--space-5)}
  .admin-section-head,.section-title-row{align-items:flex-start;gap:var(--space-4)}.section-actions{width:100%;justify-content:flex-start}.admin-section-head{flex-direction:column}.section-actions .btn{flex:1 1 auto}
}
@media(max-width:600px){
  .modal-backdrop{padding:6px}.modal-card{max-height:97vh;border-radius:14px}.modal-head{padding:16px}.modal-card> :not(.modal-head){margin-left:16px;margin-right:16px}.modal-card>.tabs{margin:12px var(--space-5) 16px}.modal-card>.tab-panel{margin:0 var(--space-5) 20px}.modal-card> :last-child:not(.modal-head){margin-bottom:20px}
  .manage-toolbar{padding:12px}.manage-toolbar-fields{display:grid;grid-template-columns:1fr}.manage-toolbar-fields select,.manage-toolbar-fields input,.manage-toolbar-fields .btn{width:100%;max-width:none}
  .site-manage-row{grid-template-columns:24px 26px 36px minmax(0,1fr);grid-template-areas:'select drag icon main' '. health health health' '. enabled enabled action';padding:12px 10px;gap:8px}.site-manage-row .manage-action{justify-content:flex-end}.site-manage-row .manage-enabled{justify-content:flex-start}.manage-sub .admin-note{flex-basis:100%}
  .modal-actions{display:grid;grid-template-columns:1fr 1fr}.modal-actions .spacer{display:none}.modal-actions .btn{width:100%}.modal-actions .danger{grid-column:auto}
}
.form-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-1);padding-top:var(--space-4);border-top:1px solid var(--line)}
.maintenance-actions{margin:0 0 var(--space-5);padding:0 0 var(--space-4);border-bottom:1px solid var(--line)}
.tab-panel>.admin-section-head:first-child{margin-top:0}
.tab-panel>.toolbar-line{margin-bottom:var(--space-4)}
@media(max-width:600px){.form-actions .btn,.maintenance-actions .btn{width:100%}.maintenance-actions{display:grid;grid-template-columns:1fr}.form-actions{display:grid;grid-template-columns:1fr}}

/* ToreyOne 1.4.3 — tag manager, tag combobox and emoji picker */
.field{display:grid;gap:var(--space-2);min-width:0;font-size:12px;font-weight:700;color:#385a78}
.field>label{display:block;font-size:12px;font-weight:700;color:#385a78}
.tag-combobox{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:42px;padding:6px 9px;border:1px solid #cfdae5;border-radius:10px;background:#fff;transition:.15s ease}
.tag-combobox:focus-within{border-color:var(--control-focus,var(--primary));box-shadow:0 0 0 3px var(--control-focus-ring)}
.tag-combobox>input[type="text"]{flex:1 1 130px;width:auto;min-width:110px;min-height:28px;padding:3px 2px;border:0;border-radius:0;box-shadow:none;background:transparent}
.tag-combobox>input[type="text"]:focus{border:0;box-shadow:none}
.tag-editor-chips{display:contents}
.tag-editor-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:4px 6px 4px 9px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));border-radius:999px;background:var(--primary-soft,#e7f1ff);color:var(--primary);font-size:11px;font-weight:700;line-height:1.2}
.tag-editor-chip button{display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:#dbe8f2;color:#446884;cursor:pointer;font-size:13px;line-height:1}
.tag-editor-chip button:hover{background:#c8dce9;color:#0f365d}
.tag-suggestions{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;max-height:245px;overflow:auto;padding:6px;border:1px solid #cbdce9;border-radius:12px;background:#fff;box-shadow:0 18px 42px rgba(8,43,76,.17)}
.tag-suggestion{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}
.tag-suggestion:hover,.tag-suggestion:focus{outline:none;background:var(--primary-soft,#e7f1ff);color:var(--primary)}.tag-suggestion small{color:#7a90a4;font-size:10px;white-space:nowrap}.tag-suggestion.create{color:#0f5797;font-weight:700}
.tag-create-form{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}.tag-create-form input{width:220px}
.tag-library-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid #d8e4ef;border-radius:12px;background:#f6fafe}
.tag-library-summary>span:first-child{font-size:12px;font-weight:800;color:var(--primary)}
.tag-manage-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.tag-manage-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-width:0;padding:12px var(--space-5);border:1px solid #dce6ef;border-radius:12px;background:#fff}
.tag-manage-row:hover{border-color:#bfd2e3;background:#fbfdff}.tag-manage-main{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.tag-library-pill{display:inline-flex;align-items:center;max-width:220px;padding:5px 9px;border-radius:999px;background:var(--primary-soft,#e7f1ff);color:var(--primary);font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-manage-actions{display:flex;gap:8px;flex:0 0 auto}
.emoji-field{position:relative}.emoji-input-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px}.emoji-picker-toggle{width:42px;min-height:40px;border:1px solid #cfdae5;border-radius:10px;background:#fff;cursor:pointer;font-size:19px}.emoji-picker-toggle:hover,.emoji-picker-toggle[aria-expanded="true"]{border-color:var(--primary);background:var(--primary-soft,#e7f1ff);color:var(--primary)}
.emoji-picker{position:absolute;z-index:32;top:calc(100% + 7px);left:0;width:min(360px,80vw);padding:12px;border:1px solid #c9dbe9;border-radius:14px;background:#fff;box-shadow:0 20px 48px rgba(8,43,76,.20)}
.emoji-picker-head{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid #e1eaf2}.emoji-picker-head strong{color:var(--ink);font-size:12px}.emoji-picker-head span{color:#7a90a4;font-size:10px;font-weight:400}
.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-height:230px;overflow:auto}.emoji-choice{display:grid;place-items:center;aspect-ratio:1;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer;font-size:20px}.emoji-choice:hover,.emoji-choice:focus{outline:none;border-color:var(--primary);background:var(--primary-soft,#e7f1ff);color:var(--primary);transform:scale(1.04)}
@media(max-width:820px){.tag-create-form{width:100%}.tag-create-form input{flex:1;width:auto}.tag-manage-list{grid-template-columns:1fr}}
@media(max-width:600px){.tag-library-summary{align-items:flex-start;flex-direction:column}.tag-manage-row{align-items:flex-start;flex-direction:column}.tag-manage-actions{width:100%}.tag-manage-actions .btn{flex:1}.emoji-picker{left:auto;right:0;width:min(330px,calc(100vw - 48px))}.emoji-grid{grid-template-columns:repeat(7,1fr)}}
@media(max-width:600px){
  .tag-create-form{display:grid;grid-template-columns:1fr;width:100%;min-width:0}
  .tag-create-form input,.tag-create-form .btn{width:100%;min-width:0;max-width:none}
}

/* ToreyOne 1.4.4 — category library, filters, colored tags, mobile actions and polish */
mark{padding:0 2px;border-radius:4px;background:#fff0b8;color:inherit;font-weight:800}
.tag-blue,.tag-editor-chip.tag-blue,.tag-library-pill.tag-blue{background:#e8f1fb!important;border-color:#c8dcef!important;color:#164d7b!important}
.tag-cyan,.tag-editor-chip.tag-cyan,.tag-library-pill.tag-cyan{background:#e7f8fb!important;border-color:#bee8ef!important;color:#126073!important}
.tag-green,.tag-editor-chip.tag-green,.tag-library-pill.tag-green{background:#eaf7ef!important;border-color:#c7e7d2!important;color:#17623d!important}
.tag-amber,.tag-editor-chip.tag-amber,.tag-library-pill.tag-amber{background:#fff5db!important;border-color:#f0d99c!important;color:#815700!important}
.tag-red,.tag-editor-chip.tag-red,.tag-library-pill.tag-red{background:#fff0ef!important;border-color:#f2cbc7!important;color:#9d332c!important}
.tag-purple,.tag-editor-chip.tag-purple,.tag-library-pill.tag-purple{background:#f3edff!important;border-color:#ded0f5!important;color:#6841a6!important}
.tag-slate,.tag-editor-chip.tag-slate,.tag-library-pill.tag-slate{background:#eef3f7!important;border-color:#d4dee7!important;color:#4d6477!important}
.tag-rose,.tag-editor-chip.tag-rose,.tag-library-pill.tag-rose{background:#fff0f5!important;border-color:#f2cbd9!important;color:#99405f!important}

.panel-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin:0 0 var(--space-4);padding:0 0 var(--space-4);border-bottom:1px solid var(--line)}
.panel-title-row>div:first-child{min-width:0}.panel-title-row h3{margin:0;padding:0;border:0}.panel-title-row p{margin:var(--space-2) 0 0}.panel-title-row>.btn,.panel-title-row>.button-row{flex:0 0 auto}
.button-row.align-end{justify-content:flex-end}.icon-action{display:inline-grid;place-items:center;width:28px;height:28px;min-height:28px;padding:0;border:1px solid #d6e2ec;border-radius:8px;background:#fff;color:var(--primary);cursor:pointer;font-size:16px;font-weight:800}.icon-action:hover{background:#edf5fb;border-color:#b8cedf}

.manage-filters{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(4,minmax(130px,.75fr)) auto;gap:var(--space-2);align-items:center;margin:0 0 var(--space-4);padding:var(--space-4);border:1px solid #d5e2ed;border-radius:13px;background:#f8fbfe}
.manage-filters .small-search{max-width:none;min-width:0;height:40px}.manage-filters select,.manage-filters .btn{min-width:0;height:40px}
.manage-toolbar{margin-bottom:var(--space-5)}.drag-disabled .drag-handle{cursor:not-allowed;opacity:.35}.drag-disabled{background:#fbfcfd}
.manage-health{display:flex;align-items:center;gap:8px;min-width:0}.manage-health .site-status{min-width:0}.manage-health .site-status span{overflow:hidden;text-overflow:ellipsis}

.library-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid #d8e4ef;border-radius:12px;background:#f6fafe}.library-summary>span:first-child{font-size:12px;font-weight:800;color:var(--primary)}
.inline-create-form{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}.inline-create-form input{width:220px}.library-manage-list{display:grid;gap:var(--space-2)}
.library-row{display:grid;grid-template-columns:32px minmax(180px,1fr) 120px auto;align-items:center;gap:var(--space-3);min-height:56px;padding:10px 12px;border:1px solid #dce6ef;border-radius:12px;background:#fff}.library-row:hover{border-color:#bfd2e3;background:#fbfdff}.library-row .library-main{min-width:0}.library-row .library-main strong{display:block;color:#173b63;font-size:13px}.library-row .library-main span{display:block;margin-top:4px;color:#71889d;font-size:11px}.library-row .library-count{color:#60758b;font-size:11px;text-align:right}.library-row .library-actions{display:flex;justify-content:flex-end;gap:8px}
.tag-manage-row{min-height:58px}.tag-manage-main .tag-library-pill{border:1px solid transparent}.tag-manage-actions{align-items:center}

.site-icon-meta-row,.site-status-detail-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.restore-preview{padding:var(--space-4);border:1px solid #d8e4ef;border-radius:12px;background:#f8fbfe;line-height:1.55}.restore-preview strong{color:#173b63}.restore-preview ul{margin:8px 0 0;padding-left:20px}
.integrity-summary{display:flex;align-items:center;gap:8px;padding:12px var(--space-5);border:1px solid #d8e4ef;border-radius:11px;background:#f8fbfe;font-size:12px}.integrity-summary.ok{border-color:#c9e7d7;background:#f0faf4;color:#17623d}.integrity-summary.warn{border-color:#eed8a6;background:#fff9eb;color:#795300}.integrity-issues{display:grid;gap:8px;margin-top:12px}.integrity-issue{padding:9px 11px;border:1px solid #e1e8ef;border-radius:9px;background:#fff;color:#536e86;font-size:11px}

#site-icon-meta,#site-status-detail{line-height:1.55}
.mobile-sticky-actions{background:#fff}

@media (hover:none),(pointer:coarse){.site-card:active{transform:scale(.985);border-color:#bfd2e3;box-shadow:0 5px 14px rgba(17,55,91,.08)}.btn:active,.icon-btn:active{transform:scale(.98)}}

@media(max-width:1120px){
  .manage-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.manage-filters .small-search{grid-column:span 2}
}
@media(max-width:960px){
  .manage-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.manage-filters .small-search{grid-column:1/-1}
  .library-row{grid-template-columns:32px minmax(0,1fr) auto;grid-template-areas:'drag main actions' '. count actions'}.library-row .drag-handle{grid-area:drag}.library-row .library-main{grid-area:main}.library-row .library-count{grid-area:count;text-align:left}.library-row .library-actions{grid-area:actions}
}
@media(max-width:820px){
  .inline-create-form{width:100%}.inline-create-form input{flex:1;width:auto}.library-summary{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
  .manage-filters{grid-template-columns:1fr;padding:12px}.manage-filters .small-search{grid-column:auto}.manage-filters select,.manage-filters .btn{width:100%}
  .inline-create-form{display:grid;grid-template-columns:1fr}.inline-create-form input,.inline-create-form .btn{width:100%;max-width:none}
  .library-row{grid-template-columns:26px minmax(0,1fr);grid-template-areas:'drag main' '. count' '. actions';gap:8px 8px;padding:11px}.library-row .library-actions{justify-content:flex-start;width:100%}.library-row .library-actions .btn{flex:1}
  .site-manage-row .admin-tag-mini,.site-manage-row .manage-extra{display:none}.site-manage-row .manage-sub{gap:4px 8px}.site-manage-row .manage-sub span:nth-child(n+3){display:none}
  .mobile-sticky-actions{position:sticky;z-index:6;bottom:-1px;margin-left:-14px!important;margin-right:-14px!important;margin-bottom:-18px!important;padding:12px var(--space-5) 14px!important;border-top:1px solid #dce6ef!important;box-shadow:0 -10px 28px rgba(17,55,91,.08)}
  .modal-card form.stack{padding-bottom:0}.panel-title-row{flex-direction:column;gap:var(--space-3)}.panel-title-row>.btn,.panel-title-row>.button-row{width:100%}.panel-title-row>.button-row .btn{flex:1}
}

/* 1.4.5: notifications stay above the complete modal stack. */
:root{--layer-toast:1000}
#toast.toast{z-index:var(--layer-toast);pointer-events:none;overflow-wrap:anywhere;line-height:1.5;bottom:max(24px,env(safe-area-inset-bottom));max-width:min(600px,calc(100vw - 32px))}
button:focus-visible,a:focus-visible{outline:3px solid var(--control-focus,var(--primary));outline-offset:3px}
.modal-backdrop[inert]{pointer-events:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* ToreyOne 1.5.0: dashboard, health, themes and personal layout */
.dashboard-panel{margin:0 0 24px;padding:20px;border:1px solid #cfe0ee;border-radius:18px;background:linear-gradient(145deg,#f8fbff,#eef5fb);box-shadow:0 12px 30px rgba(17,55,91,.07)}
.dashboard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid #d7e4ef}.dashboard-head h2{margin:4px 0 0}.dashboard-head p{margin:4px 0 0}
.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}.dashboard-metric{padding:var(--space-5) 14px;border:1px solid #d7e4ef;border-radius:13px;background:#fff}.dashboard-metric span{display:block;font-size:11px;color:#6c8195}.dashboard-metric strong{display:block;margin-top:4px;font-size:23px;color:var(--primary)}
.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.dashboard-block{min-width:0;padding:var(--space-5);border:1px solid #d7e4ef;border-radius:13px;background:rgba(255,255,255,.8)}.dashboard-block h3{margin:0;color:#173b63;font-size:14px}.dashboard-block p{margin:4px 0 0}.dashboard-chart-block{grid-column:1/-1}.dashboard-list{display:grid;gap:0}.dashboard-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #e6eef5;font-size:12px}.dashboard-row:last-child{border-bottom:0}.dashboard-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-row span{color:#71889d;font-size:11px;white-space:nowrap}
.usage-chart{display:grid;gap:8px}.usage-bar-row{display:grid;grid-template-columns:45px minmax(0,1fr) 34px;align-items:center;gap:8px;font-size:10px;color:#71889d}.usage-bar-row strong{text-align:right;color:var(--primary)}.usage-bar{height:8px;border-radius:999px;background:#e5eef5;overflow:hidden}.usage-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--primary2))}
.status-overview{margin:0 0 24px}.status-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.status-summary-card{display:grid;gap:4px;padding:var(--space-5) 14px;border:1px solid #d7e4ef;border-radius:13px;background:#fff;text-align:left;cursor:pointer;color:#173b63;transition:.15s ease}.status-summary-card:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(17,55,91,.08)}.status-summary-card strong{font-size:23px}.status-summary-card span{font-size:11px;color:#71889d}.status-summary-card.up strong{color:#087443}.status-summary-card.down strong{color:#b42318}.status-summary-card.error strong{color:#a15c00}.status-summary-card.unknown strong{color:#71889d}.status-issue-preview{display:grid;gap:8px;margin-top:12px}.status-issue{display:flex;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid #f3cfca;border-radius:10px;background:#fff8f7;color:#8f2c22;text-align:left;cursor:pointer}.status-issue span{font-size:11px;color:#9c6b64}
.status-detail-list{display:grid;gap:8px;margin:20px 24px 0}.status-detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #dce6ef;border-radius:12px;background:#fbfdff}.status-detail-main{min-width:0}.status-detail-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.status-detail-title strong{font-size:13px}.status-detail-row .muted{margin-top:4px}.status-history-list{display:grid;gap:8px}.history-row{display:grid;grid-template-columns:145px 80px 70px 50px minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #e7eef5;font-size:11px;color:#71889d}.history-row:last-child{border-bottom:0}.history-state{font-size:11px}.history-state.up{color:#087443}.history-state.down{color:#b42318}.history-state.error{color:#a15c00}.history-state.unknown{color:#71889d}
.site-last-opened{color:#8295a5}.favorite-pop{animation:favorite-pop .46s ease}.toast-action{margin-left:12px;padding:3px 8px;border:1px solid rgba(255,255,255,.45);border-radius:7px;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;font-size:11px;font-weight:700}.toast-action:hover{background:rgba(255,255,255,.24)}
.trash-row{gap:8px}.trash-row .btn{flex:0 0 auto}.import-preview-list{display:grid;gap:4px;margin-top:8px;max-height:260px;overflow:auto}.import-preview-list>div{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(180px,1.6fr) minmax(80px,.5fr);gap:8px;align-items:center;padding:7px 8px;border-bottom:1px solid #e2eaf1;font-size:11px}.import-preview-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#60758b}.import-preview-list em{font-style:normal;color:#71889d}
@keyframes favorite-pop{0%{transform:scale(1)}38%{transform:scale(1.45) rotate(-8deg)}72%{transform:scale(.92) rotate(4deg)}100%{transform:scale(1)}}
:root[data-theme="slate"]{--bg:#eef2f6;--panel:#fff;--panel2:#f2f5f8;--ink:#273c50;--muted:#687b8c;--line:#d6e0e8;--shadow:0 18px 55px rgba(40,58,75,.12)}:root[data-theme="slate"] body{background:radial-gradient(circle at 15% -10%,#dfe8f0 0,transparent 32%),var(--bg)}:root[data-theme="slate"] .brand-mark{background:linear-gradient(145deg,#263f55,#46677f)}
:root[data-theme="white"]{--bg:#fff;--panel:#fff;--panel2:#fafafa;--ink:#243447;--muted:#6a7785;--line:#e2e6ea;--shadow:0 12px 35px rgba(35,52,71,.08)}:root[data-theme="white"] body{background:#fff}:root[data-theme="white"] .toolbar-card,:root[data-theme="white"] .metric{box-shadow:0 4px 16px rgba(35,52,71,.04)}
@media(prefers-color-scheme:dark){:root[data-theme="auto"]{--bg:#111c27;--panel:#1a2a39;--panel2:#162532;--ink:#e6eef5;--muted:#9db1c0;--line:#304657;--shadow:0 18px 55px rgba(0,0,0,.28)}:root[data-theme="auto"] body{background:radial-gradient(circle at 15% -10%,#1c364c 0,transparent 32%),var(--bg)}:root[data-theme="auto"] .toolbar-card,:root[data-theme="auto"] .metric,:root[data-theme="auto"] .site-card,:root[data-theme="auto"] .panel-block,:root[data-theme="auto"] .manage-row,:root[data-theme="auto"] .dashboard-block,:root[data-theme="auto"] .dashboard-metric,:root[data-theme="auto"] .status-summary-card,:root[data-theme="auto"] .status-detail-row{background:var(--panel);color:var(--ink)}:root[data-theme="auto"] input,:root[data-theme="auto"] select,:root[data-theme="auto"] textarea{background:#162532;color:var(--ink);border-color:#405666}:root[data-theme="auto"] .modal-card{background:var(--panel)}:root[data-theme="auto"] .modal-head{background:linear-gradient(180deg,#1e3446,#172b3a);border-color:#304657}:root[data-theme="auto"] .dashboard-panel{background:linear-gradient(145deg,#1a3042,#142633);border-color:#304657}}
:root[data-card-size="small"] .site-grid{grid-template-columns:repeat(5,minmax(0,1fr))}:root[data-card-size="small"] .site-card{min-height:118px}:root[data-card-size="small"] .site-link{padding:var(--space-5) 40px 12px 13px}:root[data-card-size="large"] .site-grid{grid-template-columns:repeat(3,minmax(0,1fr))}:root[data-card-size="large"] .site-card{min-height:174px}:root[data-card-size="large"] .site-link{padding:20px 46px 19px 20px}.compact-mode .site-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
#toast.toast{pointer-events:auto}
@media(max-width:960px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.dashboard-chart-block{grid-column:auto}:root[data-card-size="small"] .site-grid,:root[data-card-size="large"] .site-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.dashboard-panel{padding:var(--space-5)}.dashboard-head{display:grid}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.status-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-row{display:grid;gap:4px}.history-row{grid-template-columns:1fr 70px 65px 45px}.history-row span:last-child{grid-column:1/-1}.status-detail-row{align-items:flex-start;flex-direction:column}.status-detail-row .btn{width:100%}.import-preview-list>div{grid-template-columns:1fr;gap:4px}.import-preview-list span{white-space:normal}.import-preview-list em{font-size:10px}}
@media(max-width:520px){:root[data-card-size="small"] .site-grid,:root[data-card-size="large"] .site-grid{grid-template-columns:1fr}}

.dashboard-subtitle{margin:16px 0 4px;color:var(--primary);font-size:12px}
:root[data-background="none"] body{background:var(--bg)!important}
:root[data-background="image"] body{background-image:var(--portal-background-image);background-size:cover;background-position:center;background-attachment:fixed}

/* ToreyOne 1.5.1 — consistent geometry, responsive layout and touch polish */
:root{
  --control-height:42px;
  --control-height-compact:36px;
  --touch-target:44px;
  --layout-gap:16px;
  --card-height:146px;
  --content-width:1320px;
  --radius-control:10px;
  --radius-card:16px;
}
html,body{min-width:320px;min-height:100%;overflow-x:hidden}
body{line-height:1.5;-webkit-text-size-adjust:100%}
button,input,select,textarea{max-width:100%}
button{-webkit-tap-highlight-color:transparent}
.app-shell{width:100%;max-width:var(--content-width);padding:28px 24px 52px}
.topbar,.brand-row,.top-actions,.toolbar-line,.dashboard-head,.panel-title-row,.admin-section-head{min-width:0}
.brand-row>div:last-child,.admin-section-copy,.dashboard-head>div:first-child,.panel-title-row>div:first-child{min-width:0}
.brand-row h1,.brand-row p,.admin-section-head h3,.admin-section-head p{overflow-wrap:anywhere}

/* One control system: every control in a row shares the same visual height. */
input:not([type="checkbox"]):not([type="radio"]),select{height:var(--control-height);min-height:var(--control-height)}
textarea{min-height:78px;padding:10px 11px;line-height:1.5}
input[type="file"]{padding:4px 6px;line-height:32px}
input[type="file"]::file-selector-button{height:32px;margin-right:8px;padding:0 10px;border:0;border-radius:7px;background:var(--primary-soft,#e7f1ff);color:var(--primary);font-weight:700;cursor:pointer}
.btn{height:var(--control-height);min-height:var(--control-height);padding:0 var(--space-5);border-radius:var(--radius-control);line-height:1.2}
.btn.compact{height:var(--control-height-compact);min-height:var(--control-height-compact);padding:0 11px}
.icon-btn{width:var(--control-height);height:var(--control-height);min-width:var(--control-height);min-height:var(--control-height)}
.icon-btn.text-btn{width:auto;min-width:72px;padding:0 var(--space-5)}
.search-box{height:var(--touch-target);min-height:var(--touch-target);padding:0 12px}
.search-box input{height:auto!important;min-height:0!important;padding:0;border:0}
.pill{min-height:34px;display:inline-flex;align-items:center;justify-content:center}
.form-grid{gap:var(--layout-gap);align-items:start}
.form-grid>label,.form-grid>.field{width:100%;min-width:0;margin:0}
.form-grid .checkbox-label{align-self:end;height:var(--control-height);min-height:var(--control-height);padding:0 11px;border:1px solid #d6e2ec;border-radius:var(--radius-control);background:#f8fbfe}
.checkbox-row{min-height:var(--control-height);gap:8px 20px}
.checkbox-row label,.checkbox-inline{min-height:36px}
.inline-inputs{height:var(--control-height);align-items:center}
.inline-inputs input{height:var(--control-height)!important;min-height:var(--control-height)!important}
.inline-create-form{align-items:stretch}
.inline-create-form input,.inline-create-form select,.inline-create-form .btn{height:var(--control-height)}
.button-row{align-items:center;gap:8px}
.modal-actions,.form-actions{min-height:calc(var(--control-height) + 17px);align-items:flex-end}

/* Equal-width columns and equal-height summary tiles. */
.metrics,.dashboard-metrics,.status-summary-grid,.dashboard-grid,.backup-grid,.tag-manage-list{grid-auto-rows:1fr}
.metric,.dashboard-metric,.status-summary-card,.dashboard-block,.backup-grid>.backup-card,.tag-manage-row{height:100%}
.metric,.dashboard-metric,.status-summary-card{display:flex;min-height:86px;flex-direction:column;justify-content:center}
.dashboard-panel,.toolbar-card,.status-overview{width:100%}
.dashboard-grid{align-items:stretch}
.dashboard-block{display:flex;flex-direction:column}
.dashboard-list{min-width:0}
.dashboard-row{min-height:40px;align-items:center}
.status-issue{min-height:44px;align-items:center}

/* Homepage cards use a fixed rhythm so every row and column aligns. */
.site-grid{gap:var(--layout-gap);grid-auto-rows:1fr;align-items:stretch}
.site-card{width:100%;height:var(--card-height);min-height:var(--card-height);border-radius:var(--radius-card)}
.site-link{height:100%;min-width:0;align-items:flex-start;gap:var(--space-5);padding:17px 44px 16px 16px}
.site-icon{width:52px;height:52px;flex:0 0 52px;border-radius:14px;font-size:15px;line-height:1}
.site-icon-glyph{display:block;max-width:100%;overflow:hidden;line-height:1;text-align:center;white-space:nowrap}
.site-icon-glyph.emoji{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:31px;font-weight:400}
.site-icon-glyph.text{font-size:15px;font-weight:900;letter-spacing:-.02em}
.site-copy{display:flex;height:100%;min-width:0;flex:1;flex-direction:column;overflow:hidden}
.site-title-line{height:22px;min-height:22px;flex-wrap:nowrap;overflow:hidden}
.site-title-line strong{min-width:0;flex:1;font-size:14px;line-height:22px}
.featured-badge,.privacy-badge{flex:0 0 auto;white-space:nowrap}
.site-copy .site-description{display:-webkit-box;height:36px;min-height:36px;margin:8px 0 4px;line-height:18px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.site-copy .site-description.is-empty{visibility:hidden}
.site-meta{min-height:18px;flex-wrap:nowrap;overflow:hidden;line-height:18px;white-space:nowrap}
.site-meta>span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tags{height:20px;min-height:20px;margin-top:auto;flex-wrap:nowrap;overflow:hidden}
.tag{flex:0 0 auto;white-space:nowrap}
.favorite,.edit-shortcut{display:grid;width:34px;height:34px;padding:0;place-items:center;border-radius:10px;line-height:1}
.favorite{top:7px;right:7px;font-size:21px}
.favorite:hover,.favorite:focus-visible{background:#f6f9fc}
.edit-shortcut{right:7px;bottom:7px;font-size:15px}
.edit-shortcut:hover,.edit-shortcut:focus-visible{background:var(--primary-soft,#e7f1ff);color:var(--primary)}
.site-card.mini{height:96px;min-height:96px}
.site-card.mini .site-link{align-items:center;padding:var(--space-5) 40px 13px 13px}
.site-card.mini .site-icon{width:42px;height:42px;flex-basis:42px;border-radius:12px}
.site-card.mini .site-icon-glyph.emoji{font-size:26px}
.site-card.mini .site-title-line{height:21px;min-height:21px}
.site-card.mini .site-copy p,.site-card.mini .tags{display:none}
.site-card.mini .site-meta{margin-top:4px}
.compact-mode .site-card{height:94px;min-height:94px}
.compact-mode .site-link{align-items:center;padding:var(--space-5) 42px 13px 13px}
.compact-mode .site-icon{width:42px;height:42px;flex-basis:42px;border-radius:12px}
.compact-mode .site-icon-glyph.emoji{font-size:26px}
.compact-mode .site-copy p,.compact-mode .tags{display:none}
.compact-mode .site-meta{margin-top:4px}
:root[data-card-size="small"]{--card-height:126px}
:root[data-card-size="small"] .site-icon{width:46px;height:46px;flex-basis:46px;border-radius:13px}
:root[data-card-size="small"] .site-icon-glyph.emoji{font-size:28px}
:root[data-card-size="large"]{--card-height:178px}
:root[data-card-size="large"] .site-icon{width:58px;height:58px;flex-basis:58px;border-radius:16px}
:root[data-card-size="large"] .site-icon-glyph.emoji{font-size:35px}
:root[data-card-size="small"] .site-card.mini,:root[data-card-size="large"] .site-card.mini{height:96px;min-height:96px}
:root[data-card-size="small"] .site-card.mini .site-icon,:root[data-card-size="large"] .site-card.mini .site-icon{width:42px;height:42px;flex-basis:42px;border-radius:12px}
:root[data-card-size="small"] .site-card.mini .site-icon-glyph.emoji,:root[data-card-size="large"] .site-card.mini .site-icon-glyph.emoji{font-size:26px}

/* Management rows keep predictable columns on desktop and named rows on tablets. */
.manage-row{min-width:0;min-height:60px}
.site-manage-columns,.site-manage-row{grid-template-columns:28px 32px 42px minmax(220px,1fr) 126px 86px 72px;column-gap:12px}
.manage-row.site-manage-row{min-height:70px}
.manage-icon{width:38px;height:38px;flex-basis:38px;font-size:12px}
.manage-icon .site-icon-glyph.emoji{font-size:23px}
.manage-icon .site-icon-glyph.text{font-size:12px}
.manage-health{gap:4px}
.library-manage-list,.manage-list{min-width:0}
.library-row{height:64px;min-height:64px}
.tag-manage-list{align-items:stretch}
.tag-manage-row{min-height:64px}
.manage-filters{align-items:stretch;gap:8px}
.manage-filters .search-box,.manage-filters select,.manage-filters .btn{height:var(--control-height);min-height:var(--control-height)}
.manage-toolbar{min-height:62px}
.manage-toolbar-fields select,.manage-toolbar-fields .btn{height:var(--control-height);min-height:var(--control-height)}

/* Dialog sizing and scroll boundaries. */
.modal-backdrop{padding:20px}
.modal-card{width:min(720px,calc(100vw - 40px));max-width:100%;max-height:calc(100dvh - 40px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:auto;border-radius:20px}
.modal-card.small-card{width:min(440px,calc(100vw - 40px))}
.modal-card.medium{width:min(760px,calc(100vw - 40px))}
.modal-card.large{width:min(940px,calc(100vw - 40px))}
.modal-card.xlarge{width:min(1200px,calc(100vw - 40px))}
.modal-head{align-items:center}
.modal-head>div{min-width:0}
.modal-head .icon-btn{flex:0 0 var(--control-height)}
.tabs{min-height:48px;align-items:flex-end;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-gutter:stable}
.tab{min-height:44px}

/* Emoji menu only scrolls vertically; glyph cells can never widen the grid. */
.emoji-input-row{grid-template-columns:minmax(0,1fr) var(--control-height);gap:8px}
.emoji-picker-toggle{width:var(--control-height);height:var(--control-height);min-width:var(--control-height);min-height:var(--control-height);padding:0;font-size:22px;line-height:1}
.emoji-picker{left:auto;right:0;width:min(372px,calc(100vw - 48px));max-width:calc(100vw - 48px);overflow:hidden;padding:12px}
.emoji-picker-head{min-width:0}
.emoji-picker-head span{min-width:0;text-align:right}
.emoji-grid{width:100%;min-width:0;max-height:248px;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}
.emoji-choice{width:100%;min-width:0;max-width:100%;padding:0;overflow:hidden;font-size:23px;line-height:1}

/* Notifications must remain above every nested dialog. */
#toast.toast{z-index:2147483000!important;display:flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:9px var(--space-5);pointer-events:auto}
#toast.toast.hidden{display:none!important}
.toast-action{height:30px;min-width:52px;flex:0 0 auto;margin-left:0}

@media (min-width:1200px){
  .site-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  :root[data-card-size="small"] .site-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
  :root[data-card-size="large"] .site-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .site-grid.compact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .compact-mode .site-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (min-width:900px) and (max-width:1199px){
  .site-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  :root[data-card-size="small"] .site-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  :root[data-card-size="large"] .site-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .site-grid.compact-grid,.compact-mode .site-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1023px){
  .site-manage-columns{display:none}
  .site-manage-row{grid-template-columns:28px 30px 40px minmax(0,1fr) auto;grid-template-areas:'select drag icon main action' '. . . health enabled';gap:8px 8px}
  .site-manage-row .manage-select{grid-area:select}.site-manage-row .manage-drag{grid-area:drag}.site-manage-row .manage-icon-cell{grid-area:icon}.site-manage-row .manage-main{grid-area:main}.site-manage-row .manage-health{grid-area:health}.site-manage-row .manage-enabled{grid-area:enabled;justify-content:flex-end}.site-manage-row .manage-action{grid-area:action}
  .manage-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .manage-filters .small-search{grid-column:1/-1}
}
@media (min-width:700px) and (max-width:899px){
  .app-shell{padding:22px var(--space-5) 44px}
  .topbar{display:grid;gap:16px}
  .top-actions{justify-content:flex-start}
  .site-grid,:root[data-card-size="small"] .site-grid,:root[data-card-size="large"] .site-grid,.site-grid.compact-grid,.compact-mode .site-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid.two,.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .backup-grid{grid-template-columns:1fr}
  .modal-card.xlarge{width:calc(100vw - 24px)}
}
@media (max-width:699px){
  :root{--layout-gap:12px;--control-height:44px;--control-height-compact:40px}
  .app-shell{padding:var(--space-5) 12px calc(36px + env(safe-area-inset-bottom))}
  .topbar{display:grid;gap:var(--space-5);margin-bottom:20px}
  .brand-row{align-items:flex-start}.brand-row h1{font-size:23px;line-height:1.25}.brand-row p{margin:4px 0 0}
  .top-actions{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .top-actions .user-chip{display:none}.top-actions>.btn,.top-actions>.inline-form,.top-actions>.inline-form .btn{width:100%}
  .metrics,.dashboard-metrics,.status-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .metric,.dashboard-metric,.status-summary-card{min-height:78px;padding:11px 12px}
  .toolbar-card{padding:12px;margin-bottom:24px}.toolbar-line{display:grid}.search-box{width:100%;min-width:0}.view-switch{width:100%}.view-switch .icon-btn{flex:1}
  .category-pills{margin-left:-2px;margin-right:-2px;padding:0 2px;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}.category-pills::-webkit-scrollbar{display:none}
  .site-grid,:root[data-card-size="small"] .site-grid,:root[data-card-size="large"] .site-grid,.site-grid.compact-grid,.compact-mode .site-grid{grid-template-columns:1fr}
  .site-card,:root[data-card-size="small"] .site-card,:root[data-card-size="large"] .site-card{height:132px;min-height:132px}
  .site-link{padding:var(--space-5) 42px 13px 13px}.site-icon,:root[data-card-size="small"] .site-icon,:root[data-card-size="large"] .site-icon{width:50px;height:50px;flex-basis:50px;border-radius:14px}.site-icon-glyph.emoji,:root[data-card-size="small"] .site-icon-glyph.emoji,:root[data-card-size="large"] .site-icon-glyph.emoji{font-size:31px}
  .site-card.mini,:root[data-card-size="small"] .site-card.mini,:root[data-card-size="large"] .site-card.mini,.compact-mode .site-card{height:92px;min-height:92px}
  .site-card.mini .site-icon,:root[data-card-size="small"] .site-card.mini .site-icon,:root[data-card-size="large"] .site-card.mini .site-icon,.compact-mode .site-icon{width:42px;height:42px;flex-basis:42px}
  .site-card.mini .site-icon-glyph.emoji,:root[data-card-size="small"] .site-card.mini .site-icon-glyph.emoji,:root[data-card-size="large"] .site-card.mini .site-icon-glyph.emoji,.compact-mode .site-icon-glyph.emoji{font-size:26px}
  .favorite,.edit-shortcut{width:40px;height:40px}.favorite{top:3px;right:3px}.edit-shortcut{right:3px;bottom:3px}
  .section-toggle{width:40px;height:40px;flex:0 0 40px}.icon-action{width:36px;height:36px;min-height:36px}
  .section-title-row{gap:8px;margin-top:24px}.section-title-row h2{font-size:17px}
  .dashboard-panel{padding:var(--space-5)}.dashboard-head{display:grid}.dashboard-grid{grid-template-columns:1fr}.dashboard-chart-block{grid-column:auto}
  .form-grid.two,.form-grid.three,.backup-grid{grid-template-columns:1fr}
  .form-grid .checkbox-label{align-self:auto}
  .checkbox-row{display:grid;grid-template-columns:1fr;gap:4px}
  .inline-inputs{display:grid;height:auto;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .modal-backdrop{padding:5px}
  .modal-card,.modal-card.small-card,.modal-card.medium,.modal-card.large,.modal-card.xlarge{width:calc(100vw - 10px);max-height:calc(100dvh - 10px);border-radius:14px;scrollbar-gutter:auto}
  .modal-head{padding:var(--space-5) 14px}.modal-head h2{font-size:18px}.modal-card> :not(.modal-head){margin-left:12px;margin-right:12px}.modal-card>.tabs{margin:8px var(--space-5) 16px}.modal-card>.tab-panel{margin:0 var(--space-5) 16px}.modal-card> :last-child:not(.modal-head){margin-bottom:16px}
  .modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.modal-actions .btn{min-width:0}
  .mobile-sticky-actions{margin-left:-13px!important;margin-right:-13px!important;margin-bottom:-17px!important;padding:11px var(--space-5) calc(13px + env(safe-area-inset-bottom))!important}
  .emoji-picker{left:0;right:0;width:100%;max-width:100%;padding:10px}.emoji-picker-head{align-items:flex-start}.emoji-picker-head span{max-width:145px}.emoji-grid{grid-template-columns:repeat(7,minmax(0,1fr));max-height:220px}.emoji-choice{font-size:22px}
  .manage-filters{grid-template-columns:1fr;padding:11px}.manage-filters .small-search{grid-column:auto}
  .manage-toolbar-fields{display:grid;grid-template-columns:1fr}.manage-toolbar-fields select,.manage-toolbar-fields .btn{width:100%;max-width:none}
  .site-manage-row{grid-template-columns:24px 26px 38px minmax(0,1fr);grid-template-areas:'select drag icon main' '. health health health' '. enabled enabled action';min-height:0;padding:11px 9px;gap:8px}.site-manage-row .manage-health{justify-content:flex-start}.site-manage-row .manage-enabled{justify-content:flex-start}
  .library-row{height:auto;min-height:64px}.tag-manage-row{height:auto;min-height:64px}
  .status-detail-row{align-items:stretch;flex-direction:column}.status-detail-row .btn{width:100%}
  .history-row{grid-template-columns:1fr 70px 62px 42px}.history-row span:last-child{grid-column:1/-1}
  .import-preview-list>div{grid-template-columns:1fr}
  #toast.toast{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 24px);max-width:none}
}
@media (max-width:420px){
  .emoji-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .modal-actions{grid-template-columns:1fr}.modal-actions .btn{width:100%}
  .top-actions{grid-template-columns:1fr 1fr}
  .status-detail-title{gap:8px}
}
@media (hover:hover){
  .emoji-choice:hover{transform:scale(1.06)}
}
@media (prefers-color-scheme:dark){
  :root[data-theme="auto"] .search-box,
  :root[data-theme="auto"] .checkbox-label,
  :root[data-theme="auto"] .manage-filters,
  :root[data-theme="auto"] .manage-toolbar,
  :root[data-theme="auto"] .library-summary,
  :root[data-theme="auto"] .library-row,
  :root[data-theme="auto"] .tag-manage-row,
  :root[data-theme="auto"] .tag-combobox,
  :root[data-theme="auto"] .tag-suggestions,
  :root[data-theme="auto"] .emoji-picker,
  :root[data-theme="auto"] .restore-preview,
  :root[data-theme="auto"] .empty-mini,
  :root[data-theme="auto"] .mobile-sticky-actions{background:#162532;border-color:#405666;color:var(--ink)}
  :root[data-theme="auto"] .site-icon,
  :root[data-theme="auto"] .manage-icon{background:#243949;color:#e6eef5}
  :root[data-theme="auto"] .modal-head,
  :root[data-theme="auto"] .tabs,
  :root[data-theme="auto"] .panel-title-row,
  :root[data-theme="auto"] .admin-section-head{border-color:#304657}
  :root[data-theme="auto"] .modal-head h2,
  :root[data-theme="auto"] .panel-title-row h2,
  :root[data-theme="auto"] .panel-title-row h3,
  :root[data-theme="auto"] .admin-section-head h3,
  :root[data-theme="auto"] .dashboard-block h3,
  :root[data-theme="auto"] .manage-main strong,
  :root[data-theme="auto"] .library-row .library-main strong,
  :root[data-theme="auto"] .emoji-picker-head strong{color:var(--ink)}
  :root[data-theme="auto"] .favorite:hover,
  :root[data-theme="auto"] .favorite:focus-visible,
  :root[data-theme="auto"] .edit-shortcut:hover,
  :root[data-theme="auto"] .edit-shortcut:focus-visible,
  :root[data-theme="auto"] .emoji-choice:hover,
  :root[data-theme="auto"] .emoji-choice:focus{background:#243949;color:var(--ink)}
  :root[data-theme="auto"] .status-issue{background:#382525;border-color:#67413e;color:#ffb4ab}
  :root[data-theme="auto"] .status-issue span{color:#d99a94}
  :root[data-theme="auto"] .usage-bar{background:#2b4050}
  :root[data-theme="auto"] .dashboard-row,
  :root[data-theme="auto"] .history-row{border-color:#304657}
}
@media (prefers-reduced-motion:reduce){
  .favorite-pop{animation:none}
}

/* ToreyOne 1.6.0 — base palette, explicit night mode, responsive
   form rhythm and bounded management lists.  These rules intentionally sit at
   the end of the stylesheet so the palette is consistent across every legacy
   component while each user's accent remains driven by --primary. */
:root{
  --primary:#0d6efd;
  --primary2:#0a58ca;
  --accent:var(--primary);
  --control-focus:var(--primary);
  --control-focus-ring:rgba(var(--primary-rgb,13,110,253),.22);
  --control-surface:#fff;
  --control-surface-hover:#f4f8ff;
  --control-border:#c8d4e2;
  --control-border-hover:#8db5e8;
  --scroll-track:#e7eef7;
  --scroll-thumb:#9bb8da;
  --scroll-thumb-hover:#6f9bd0;
  --font-ui:"Noto Sans SC","Source Han Sans SC","IBM Plex Sans","Segoe UI",sans-serif;
  --font-num:"IBM Plex Mono","Roboto Mono","Noto Sans Mono",ui-monospace,monospace;
}
:root[data-theme="dark"]{
  --bg:#0d1117;--panel:#161b22;--panel2:#21262d;--ink:#e6edf3;--muted:#8b949e;--line:#30363d;
  --danger-bg:#3b1d21;--danger:#ff7b72;--ok:#3fb950;--warn:#d29922;--shadow:0 22px 70px rgba(0,0,0,.42);
  --control-surface:#161b22;--control-surface-hover:#21262d;--control-border:#3b4653;--control-border-hover:#6e9bd4;
  --control-focus:#6ea8fe;--control-focus-ring:rgba(110,168,254,.28);--scroll-track:#161b22;--scroll-thumb:#4b5868;--scroll-thumb-hover:#6e8199;
}
@media (prefers-color-scheme:dark){
  :root[data-theme="auto"]{--bg:#0d1117;--panel:#161b22;--panel2:#21262d;--ink:#e6edf3;--muted:#8b949e;--line:#30363d;--danger-bg:#3b1d21;--danger:#ff7b72;--ok:#3fb950;--warn:#d29922;--shadow:0 22px 70px rgba(0,0,0,.42);--control-surface:#161b22;--control-surface-hover:#21262d;--control-border:#3b4653;--control-border-hover:#6e9bd4;--control-focus:#6ea8fe;--control-focus-ring:rgba(110,168,254,.28);--scroll-track:#161b22;--scroll-thumb:#4b5868;--scroll-thumb-hover:#6e8199}
}
html,body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-feature-settings:"kern" 1,"liga" 1}
body{background-image:radial-gradient(circle at 15% -10%,rgba(var(--primary-rgb,13,110,253),.12) 0,transparent 32%),var(--portal-background-image,none),linear-gradient(var(--bg),var(--bg));font-size:14px}
button,input,select,textarea{font-family:var(--font-ui)}
strong,.metric strong,.dashboard-metric strong,.status-summary-card strong,.library-count,.numeric,.number,.count{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"kern" 1}
code,time,.history-row,.usage-bar-row strong,.visit-log-row code{font-family:var(--font-num);font-variant-numeric:tabular-nums}
.brand-mark{background:linear-gradient(145deg,var(--primary2),var(--primary));color:#fff}
.brand-mark{font-size:0}.brand-mark::after{content:"One";font-size:21px;letter-spacing:-.6px}.brand-mark.small::after{font-size:18px}
.btn.primary,.icon-btn.text-btn.active,.pill.active{background:var(--primary);border-color:var(--primary);color:#fff}
.btn.primary:hover{background:var(--primary2);border-color:var(--primary2)}
.tab.active{color:var(--primary);border-color:var(--primary)}
input[type="checkbox"],input[type="radio"]{accent-color:var(--primary)}
input:not([type="checkbox"]):not([type="radio"]),select,textarea,.custom-select-trigger{background:var(--control-surface);color:var(--ink);border-color:var(--control-border)}
input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus,.custom-select-trigger:focus-visible,.custom-select.open .custom-select-trigger{border-color:var(--control-focus);box-shadow:0 0 0 4px var(--control-focus-ring)}
input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 82%,transparent)}
.btn.ghost,.icon-btn,.pill,.section-toggle,.custom-select-trigger{background:var(--control-surface);color:var(--ink)}
.panel-block,.toolbar-card,.metric,.site-card,.manage-row,.dashboard-block,.dashboard-metric,.status-summary-card,.status-detail-row,.auth-card{background:var(--panel);color:var(--ink);border-color:var(--line)}
.panel-block.soft,.bulk-bar,.restore-preview,.quick-create,.visit-log-toolbar,.empty-state{background:var(--panel2);border-color:var(--line)}
.manage-row:hover{background:var(--panel2);border-color:var(--control-border-hover)}
.site-icon,.manage-icon{background:var(--primary-soft,#e7f1ff);color:var(--primary)}
.tag{background:var(--primary-soft,#e7f1ff);color:var(--primary)}
.featured-badge{background:color-mix(in srgb,var(--primary) 14%,var(--panel));color:var(--primary)}
.privacy-badge{background:#fff4e5;color:#9a4f00}
.modal-backdrop{background:rgba(5,20,40,.48)}
.modal-card{background:var(--panel);border-color:var(--line)}
.modal-head{background:linear-gradient(180deg,var(--panel2),var(--panel));border-color:var(--line)}
.modal-head .icon-btn{background:var(--control-surface);color:var(--ink)}
.tabs{border-color:var(--line)}
.search-box{background:var(--control-surface);border-color:var(--control-border)}
.search-box:focus-within{border:2px solid var(--control-focus);padding-left:11px;padding-right:11px;box-shadow:0 0 0 4px var(--control-focus-ring)}
.status-top-button{position:relative;min-width:96px}
.status-alert-badge{position:absolute;top:-8px;right:-7px;display:grid;min-width:20px;height:20px;align-items:center;justify-content:center;padding:0 5px;border:2px solid var(--panel);border-radius:999px;background:#dc3545;color:#fff;font:700 10px/1 var(--font-num)}
.status-alert-badge.hidden{display:none}
#status-overview{display:none!important}
.site-copy{gap:0}.site-title-line{margin-bottom:8px}.site-copy .site-description{margin:0 0 8px}.site-meta{margin-top:0;min-height:20px;line-height:20px}.site-last-opened-row{display:flex;min-height:19px;align-items:center;margin-top:4px;color:var(--muted);font-size:10px;line-height:19px}.site-last-opened{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tags{height:auto;min-height:20px;max-height:42px;margin-top:4px;gap:4px;overflow:hidden;align-content:flex-start}.tag{display:inline-flex;max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-more{background:var(--primary-soft,#e7f1ff);color:var(--primary);font-family:var(--font-num)}
.site-icon-glyph.emoji{font-size:34px}.site-card.mini .site-icon-glyph.emoji{font-size:27px}
.form-grid>label,.form-grid>.field{align-content:start;min-height:var(--control-height)}
.form-grid>label>input,.form-grid>label>select,.form-grid>label>.custom-select,.form-grid>.field>input,.form-grid>.field>select,.form-grid>.field>.custom-select{width:100%;min-width:0}
.form-grid label>textarea{min-height:88px}.modal-actions{margin-top:20px;padding-top:16px;margin-bottom:8px}
.site-primary-grid{row-gap:var(--space-5)}.site-primary-grid+.site-tags-field,.site-primary-grid~label{margin-top:0}
.visibility-custom{display:grid;gap:8px;margin:0 0 4px;padding:var(--space-5);border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.visibility-custom-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.visibility-custom-head strong{font-size:12px}.visibility-custom-head span{color:var(--muted);font-size:11px}
.visibility-group-picker,.visibility-chips{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.visibility-group-chip,.visibility-chip,.user-group-option{border:1px solid var(--control-border);border-radius:999px;background:var(--control-surface);color:var(--ink);cursor:pointer;font-size:11px}
.visibility-group-chip{padding:6px 10px}.visibility-group-chip.selected,.user-group-option.selected{border-color:var(--primary);background:var(--primary-soft,#e7f1ff);color:var(--primary);font-weight:700}
.visibility-user-picker{position:relative}.visibility-user-picker input{height:var(--control-height-compact);min-height:var(--control-height-compact)}
.visibility-suggestions{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;display:grid;max-height:220px;overflow:auto;padding:5px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 16px 36px rgba(0,0,0,.16)}
.visibility-suggestions button{display:flex;justify-content:space-between;gap:8px;padding:8px 9px;border:0;border-radius:7px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.visibility-suggestions button:hover,.visibility-suggestions button:focus-visible{background:var(--primary-soft,#e7f1ff);outline:0}.visibility-suggestions small{color:var(--muted)}
.visibility-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 8px}.visibility-chip button{border:0;background:transparent;color:inherit;cursor:pointer;font-size:15px;line-height:1}
.user-groups-field{display:grid;gap:8px}.user-group-selection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.user-group-option{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;text-align:left}.user-group-option small{max-width:55%;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}
.group-manage-list{max-height:min(50vh,520px);overflow:auto;padding-right:4px}.group-row{align-items:center}.group-row .manage-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.group-row input{height:var(--control-height-compact);min-height:var(--control-height-compact)}
#portal-health-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:min(56vh,620px);overflow:auto;padding:2px 4px 4px 0}.health-check-row{min-width:0}
.manage-list,.library-manage-list,.audit-list,.visit-log-list,#session-list,#my-session-list,.status-detail-list{max-height:min(58vh,680px);overflow:auto;padding-right:4px}
.custom-select-menu,.visibility-suggestions{scrollbar-color:var(--scroll-thumb) var(--scroll-track)}
.custom-select-option:hover,.custom-select-option:focus-visible,.custom-select-option.selected{background:var(--primary-soft,#e7f1ff);color:var(--primary)}
.impersonation-banner{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;margin:0 0 var(--space-5);padding:8px 12px;border:1px solid #f0c36d;border-radius:12px;background:#fff8e1;color:#805b00}.impersonation-banner .btn{height:32px;min-height:32px;background:#805b00;border-color:#805b00;color:#fff}
@media (max-width:1100px){#portal-health-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:820px){.user-group-selection{grid-template-columns:1fr}.group-row .manage-main{grid-template-columns:1fr}.manage-list,.library-manage-list,.audit-list,.visit-log-list,#session-list,#my-session-list{max-height:52vh}}
@media (max-width:699px){#portal-health-list{grid-template-columns:1fr;max-height:48vh}.status-top-button{min-width:0}.top-actions .status-top-button{width:100%}.site-card{height:auto;min-height:144px}.site-copy .site-description{height:auto;min-height:36px}.tags{max-height:44px}.site-last-opened-row{min-height:20px}.visibility-custom{padding:11px}.visibility-custom-head{display:grid;gap:4px}.modal-actions{margin-bottom:12px;padding-bottom:4px}.impersonation-banner{align-items:stretch;flex-direction:column;text-align:center}.impersonation-banner .btn{width:100%}}
:root[data-theme="dark"] .privacy-badge,:root[data-theme="auto"] .privacy-badge{background:#3d2f1f;color:#f2cc8f}
:root[data-theme="dark"] .status-summary-card,:root[data-theme="auto"] .status-summary-card{background:var(--panel);border-color:var(--line)}
:root[data-theme="dark"] .status-issue,:root[data-theme="auto"] .status-issue{background:#321d20;border-color:#593638;color:#ffb4ab}
:root[data-theme="dark"] .status-issue span,:root[data-theme="auto"] .status-issue span{color:#d99a94}
:root[data-theme="dark"] .mobile-sticky-actions,:root[data-theme="auto"] .mobile-sticky-actions{background:rgba(22,27,34,.97);border-color:var(--line)!important}

/* ToreyOne 1.5.2 — custom controls, scroll system and dialog refinements */
:root{
  --control-surface:#fff;
  --control-surface-hover:#f5f9fc;
  --control-border:#c8d8e6;
  --control-border-hover:#9fb9ce;
  --control-focus:var(--primary);
  --control-focus-ring:rgba(var(--primary-rgb,13,110,253),.20);
  --scroll-track:#e9f0f6;
  --scroll-thumb:#9db4c7;
  --scroll-thumb-hover:#6f91aa;
}
:root[data-theme="slate"]{--control-border:#c7d3dd;--control-border-hover:#91a9ba;--scroll-track:#e4ebf1;--scroll-thumb:#93a8b8;--scroll-thumb-hover:#687f91}
:root[data-theme="white"]{--control-border:#d4dce3;--control-border-hover:#a5b6c4;--scroll-track:#eef1f4;--scroll-thumb:#a7b5c1;--scroll-thumb-hover:#778b9b}
*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:var(--scroll-track);border-radius:999px}
*::-webkit-scrollbar-thumb{min-height:38px;border:2px solid var(--scroll-track);border-radius:999px;background:var(--scroll-thumb)}
*::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}
*::-webkit-scrollbar-corner{background:var(--scroll-track)}
body::-webkit-scrollbar{width:12px}

button,input,textarea{border-radius:var(--radius-control)}
input:not([type="checkbox"]):not([type="radio"]),textarea{
  border:1px solid var(--control-border);background:var(--control-surface);color:var(--ink);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease
}
input:not([type="checkbox"]):not([type="radio"]):hover,textarea:hover{border-color:var(--control-border-hover)}
input:not([type="checkbox"]):not([type="radio"]):focus,textarea:focus{border-color:var(--control-focus);outline:0;box-shadow:0 0 0 4px var(--control-focus-ring)}
input::placeholder,textarea::placeholder{color:#8a9eb0;opacity:1}
input:disabled,textarea:disabled{cursor:not-allowed;background:#edf2f6;color:#8496a6;opacity:.8}
input[type="file"]{padding:4px 6px;background:var(--control-surface);line-height:32px}
input[type="file"]::file-selector-button{height:32px;margin-right:12px;padding:0 12px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));border-radius:8px;background:var(--primary-soft,#e7f1ff);color:var(--primary);font-weight:800;cursor:pointer;transition:.15s ease}
input[type="file"]::file-selector-button:hover{border-color:#9fb9ce;background:#dcebf5}

input[type="checkbox"],input[type="radio"]{
  appearance:none;-webkit-appearance:none;display:inline-grid;width:20px!important;height:20px!important;min-width:20px;min-height:20px;margin:0;place-content:center;border:1.5px solid #9fb5c7;background:var(--control-surface);cursor:pointer;transition:.15s ease
}
input[type="checkbox"]{border-radius:6px}
input[type="radio"]{border-radius:50%}
input[type="checkbox"]::before{width:9px;height:5px;content:"";transform:translateY(-1px) rotate(-45deg) scale(0);border-left:2px solid #fff;border-bottom:2px solid #fff;transition:transform .12s ease}
input[type="radio"]::before{width:8px;height:8px;content:"";transform:scale(0);border-radius:50%;background:#fff;transition:transform .12s ease}
input[type="checkbox"]:checked,input[type="radio"]:checked{border-color:var(--primary);background:var(--primary)}
input[type="checkbox"]:checked::before,input[type="radio"]:checked::before{transform:translateY(-1px) rotate(-45deg) scale(1)}
input[type="radio"]:checked::before{transform:scale(1)}
input[type="checkbox"]:focus-visible,input[type="radio"]:focus-visible{outline:0;box-shadow:0 0 0 4px var(--control-focus-ring)}
input[type="checkbox"]:disabled,input[type="radio"]:disabled{cursor:not-allowed;opacity:.5}
.checkbox-row label,.checkbox-inline,.checkbox-label{color:#385a78;cursor:pointer}

.btn,.icon-btn,.pill,.section-toggle,.icon-action,.emoji-picker-toggle{
  border-color:var(--control-border);box-shadow:0 1px 2px rgba(8,43,76,.03);transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease
}
.btn:hover,.icon-btn:hover,.pill:hover,.section-toggle:hover,.icon-action:hover,.emoji-picker-toggle:hover{border-color:var(--control-border-hover);box-shadow:0 6px 16px rgba(8,43,76,.09)}
.btn:focus-visible,.icon-btn:focus-visible,.pill:focus-visible,.section-toggle:focus-visible,.icon-action:focus-visible,.emoji-picker-toggle:focus-visible{outline:0;box-shadow:0 0 0 4px var(--control-focus-ring)}
.btn:active,.icon-btn:active,.pill:active{transform:translateY(0) scale(.985)}

/* The native select remains only as the form value; every visible dropdown is rendered here. */
.native-select-control{position:absolute!important;width:1px!important;height:1px!important;min-width:1px!important;min-height:1px!important;margin:-1px!important;padding:0!important;clip-path:inset(50%)!important;overflow:hidden!important;white-space:nowrap!important;opacity:0!important;pointer-events:none!important}
.native-select-control.hidden+.custom-select{display:none!important}
.custom-select{position:relative;width:100%;min-width:0;height:var(--control-height);color:var(--ink)}
.custom-select-trigger{display:flex;width:100%;height:var(--control-height);min-height:var(--control-height);align-items:center;justify-content:space-between;gap:8px;padding:0 12px;border:1px solid var(--control-border);border-radius:var(--radius-control);background:var(--control-surface);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.custom-select-trigger:hover{border-color:var(--control-border-hover);background:var(--control-surface-hover)}
.custom-select-trigger:focus-visible,.custom-select.open .custom-select-trigger{border-color:var(--control-focus);outline:0;box-shadow:0 0 0 4px var(--control-focus-ring)}
.custom-select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.custom-select-chevron{width:8px;height:8px;flex:0 0 8px;transform:translateY(-2px) rotate(45deg);border-right:2px solid #668096;border-bottom:2px solid #668096;transition:transform .16s ease}
.custom-select.open .custom-select-chevron{transform:translateY(2px) rotate(225deg)}
.custom-select-menu{position:absolute;z-index:140;top:calc(100% + 7px);left:0;width:100%;min-width:100%;max-width:min(420px,calc(100vw - 32px));max-height:264px;padding:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--control-border);border-radius:12px;background:var(--panel);box-shadow:0 18px 48px rgba(8,43,76,.20)}
.custom-select.drop-up .custom-select-menu{top:auto;bottom:calc(100% + 7px)}
.custom-select-option{position:relative;display:flex;width:100%;min-height:38px;align-items:center;padding:7px 36px 7px 10px;overflow:hidden;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.custom-select-option:hover,.custom-select-option:focus-visible{outline:0;background:var(--primary-soft,#e7f1ff);color:var(--primary)}
.custom-select-option.selected{background:var(--primary-soft,#e7f1ff);color:var(--primary);font-weight:800}
.custom-select-option.selected::after{position:absolute;right:12px;width:9px;height:5px;content:"";transform:translateY(-2px) rotate(-45deg);border-left:2px solid currentColor;border-bottom:2px solid currentColor}
.custom-select-option:disabled{cursor:not-allowed;opacity:.45}
.custom-select.is-disabled{opacity:.58}.custom-select.is-disabled .custom-select-trigger{cursor:not-allowed;background:#edf2f6}
.manage-filters .custom-select,.manage-toolbar-fields .custom-select,.inline-create-form .custom-select{height:var(--control-height)}
.manage-filters>.custom-select,.manage-toolbar-fields>.custom-select{min-width:0}

.search-box{height:var(--touch-target);min-height:var(--touch-target);border:1px solid var(--control-border);background:var(--control-surface);transition:border-color .16s ease,box-shadow .16s ease}
.search-box:hover{border-color:var(--control-border-hover)}
.search-box:focus-within{border:2px solid var(--control-focus);padding-right:11px;padding-left:11px;box-shadow:0 0 0 4px var(--control-focus-ring)}
.search-box input,.search-box input:hover,.search-box input:focus{height:auto!important;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;outline:0!important}
.search-box>span{display:grid;width:18px;flex:0 0 18px;place-items:center;color:#5d7890;font-size:18px;line-height:1}

/* Site editor layout. */
.site-primary-grid{align-items:start}
.site-primary-grid>label,.site-primary-grid>.field{display:grid;min-width:0;align-content:start;gap:8px}
.site-category-field{position:relative}
.site-tags-field{display:grid;gap:8px}
.inline-link-button{justify-self:start;margin:-1px 0 0;padding:2px 0;border:0;background:transparent;color:var(--primary);font-size:11px;font-weight:800;cursor:pointer}
.inline-link-button:hover,.inline-link-button:focus-visible{color:var(--primary2);text-decoration:underline;outline:0}
.quick-create{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px;border:1px solid #cfdeea;border-radius:11px;background:#f5f9fc}
.quick-create input{height:var(--control-height-compact)!important;min-height:var(--control-height-compact)!important}
.quick-create .btn{height:var(--control-height-compact);min-height:var(--control-height-compact)}
.status-auto-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:var(--space-5) 0 4px;padding-top:13px;border-top:1px solid var(--line)}
.status-auto-heading strong{font-size:12px;color:var(--ink)}.status-auto-heading span{color:var(--muted);font-size:10px}
.manual-status-result{display:flex;min-height:54px;align-items:center;gap:8px;margin:-2px 0 4px;padding:10px 12px;border:1px solid #cad9e5;border-radius:11px;background:#fff;color:#536e86}
.manual-status-result>div{display:grid;min-width:0;gap:4px}.manual-status-result strong{overflow-wrap:anywhere;font-size:12px}.manual-status-result small{color:var(--muted);font-size:10px;line-height:1.45}
.manual-status-dot{width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#98a2b3;box-shadow:0 0 0 4px rgba(152,162,179,.14)}
.manual-status-result.up{border-color:#b9dec9;background:#f2fbf6;color:#087443}.manual-status-result.up .manual-status-dot{background:#13a066;box-shadow:0 0 0 4px rgba(19,160,102,.14)}
.manual-status-result.down{border-color:#efc4bf;background:#fff7f6;color:#a52a20}.manual-status-result.down .manual-status-dot,.manual-status-result.error .manual-status-dot{background:#d92d20;box-shadow:0 0 0 4px rgba(217,45,32,.13)}
.manual-status-result.error{border-color:#f0c9b1;background:#fff8f2;color:#974b16}
.manual-status-result.loading{border-color:color-mix(in srgb,var(--primary) 24%,var(--line));background:var(--panel2);color:var(--primary)}
.manual-status-result.loading{color:var(--primary-text-light,var(--primary))}
.manual-status-spinner{width:18px;height:18px;flex:0 0 18px;border:2px solid color-mix(in srgb,var(--primary) 18%,var(--line));border-top-color:var(--primary);border-radius:50%;animation:status-spin .8s linear infinite}
@keyframes status-spin{to{transform:rotate(360deg)}}
.portal-loading-state{display:flex;align-items:center;justify-content:center;gap:var(--space-5);min-height:150px;margin:var(--space-5) 0 24px;padding:24px;border:1px solid var(--ui-border,var(--line));border-radius:16px;background:var(--ui-surface-soft,var(--panel2));color:var(--ui-text-muted,var(--muted));text-align:left}
.portal-loading-state>div{display:grid;gap:4px}.portal-loading-state strong{color:var(--ui-text-main,var(--ink));font-size:13px}.portal-loading-state span{font-size:11px;line-height:1.5}.portal-loading-spinner{width:22px;height:22px;flex:0 0 22px;border:3px solid color-mix(in srgb,var(--theme-accent-solid,var(--primary)) 20%,var(--ui-border,var(--line)));border-top-color:var(--theme-accent-solid,var(--primary));border-radius:50%;animation:status-spin .78s linear infinite}
.portal-loading-state.is-error{justify-content:flex-start;min-height:110px;border-color:color-mix(in srgb,var(--status-down-text,#b42318) 28%,var(--ui-border,var(--line)));background:color-mix(in srgb,var(--status-down-bg,#fff1f0) 60%,var(--ui-surface,var(--panel)))}
.portal-loading-error-mark{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;background:var(--status-down-text,#b42318);color:#fff!important;font-size:14px!important;font-weight:900}.portal-loading-state.is-error .btn{margin-left:auto}.dashboard-loading-state{margin:0;min-height:240px}
@media(max-width:600px){.portal-loading-state{min-height:130px;padding:20px 16px}.portal-loading-state.is-error{align-items:flex-start;flex-wrap:wrap}.portal-loading-state.is-error .btn{width:100%;margin-left:37px}.dashboard-loading-state{min-height:200px}}

/* The card itself owns the scrollbar, eliminating the reserved white strip by the close button. */
.modal-card{overflow-x:hidden;overflow-y:auto;scrollbar-gutter:auto;background:var(--panel)}
.modal-card::-webkit-scrollbar-track{background:var(--panel2);border-radius:0 20px 20px 0}
.modal-card::-webkit-scrollbar-thumb{border-color:var(--panel2)}
.modal-head{padding-right:22px;background-color:var(--panel2)}
.modal-head .icon-btn{overflow:hidden;background:var(--control-surface);color:var(--ink)}
.modal-card>form{padding-bottom:18px}
.modal-card>.tab-panel{padding-bottom:4px}
.modal-actions{margin-bottom:4px}

/* Access log keeps exact columns on wide screens and stacks without horizontal overflow. */
.visit-log-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(190px,280px);gap:8px;margin:0 0 var(--space-5);padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--panel2)}
.visit-log-toolbar .small-search{width:100%;max-width:none}
.visit-log-columns,.visit-log-row{display:grid;grid-template-columns:148px minmax(130px,1fr) 100px 120px minmax(190px,1.6fr);align-items:center;gap:12px}
.visit-log-columns{min-height:34px;padding:0 12px;color:#71889d;font-size:10px;font-weight:800}
.visit-log-list{display:grid;gap:8px}
.visit-log-row{min-height:58px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);font-size:11px}
.visit-log-row time{color:#60758b;white-space:nowrap}.visit-log-row strong,.visit-log-agent{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visit-log-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visit-log-agent{color:#71889d}

@media (min-width:700px) and (max-width:899px){
  .site-primary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-primary-grid>label:last-child{grid-column:auto}
  .visit-log-columns,.visit-log-row{grid-template-columns:135px minmax(120px,1fr) 90px 108px minmax(155px,1.3fr);gap:8px}
}
@media (max-width:699px){
  *::-webkit-scrollbar{width:8px;height:8px}
  .category-pills{padding-bottom:7px;scrollbar-width:thin}.category-pills::-webkit-scrollbar{display:block;height:6px}
  .custom-select-menu{min-width:100%;max-width:calc(100vw - 40px)}
  .quick-create{grid-template-columns:1fr 1fr}.quick-create input{grid-column:1/-1}.quick-create .btn{width:100%}
  .status-auto-heading{align-items:flex-start;flex-direction:column;gap:4px}
  .site-status-panel .panel-title-row{display:grid;grid-template-columns:1fr}.site-status-panel .panel-title-row>.btn{width:100%}
  .modal-card>form{padding-bottom:10px}
  .mobile-sticky-actions{position:sticky;z-index:6;bottom:8px;margin:20px 0 12px!important;padding:10px!important;border:1px solid #d3e0ea!important;border-radius:14px;background:rgba(255,255,255,.97);box-shadow:0 -8px 24px rgba(17,55,91,.09);backdrop-filter:blur(10px)}
  .modal-card::-webkit-scrollbar-track{border-radius:0 14px 14px 0}
  .visit-log-toolbar{grid-template-columns:1fr;padding:10px}.visit-log-columns{display:none}
  .visit-log-row{grid-template-columns:1fr 1fr;gap:4px 12px;padding:11px}.visit-log-row time{grid-column:1/-1}.visit-log-row strong{font-size:12px}.visit-log-row code{text-align:right}.visit-log-agent{grid-column:1/-1;white-space:normal;overflow-wrap:anywhere}
}
@media (max-width:420px){
  .quick-create{grid-template-columns:1fr}.quick-create input{grid-column:auto}
  .visit-log-row{grid-template-columns:1fr}.visit-log-row code{text-align:left}.visit-log-row time,.visit-log-agent{grid-column:auto}
}
@media (prefers-color-scheme:dark){
  :root[data-theme="auto"]{--control-surface:#162532;--control-surface-hover:#203646;--control-border:#405666;--control-border-hover:#668096;--control-focus:#72a7d0;--control-focus-ring:rgba(114,167,208,.22);--scroll-track:#172936;--scroll-thumb:#4c687b;--scroll-thumb-hover:#718da0}
  :root[data-theme="auto"] input::placeholder,:root[data-theme="auto"] textarea::placeholder{color:#8297a7}
  :root[data-theme="auto"] .custom-select-menu{border-color:#405666;background:#1a2a39}
  :root[data-theme="auto"] .custom-select-option:hover,:root[data-theme="auto"] .custom-select-option:focus-visible,:root[data-theme="auto"] .custom-select-option.selected{background:#243949;color:#e6eef5}
  :root[data-theme="auto"] .checkbox-row label,:root[data-theme="auto"] .checkbox-inline,:root[data-theme="auto"] .checkbox-label{color:#c4d3de}
  :root[data-theme="auto"] .quick-create,:root[data-theme="auto"] .visit-log-toolbar,:root[data-theme="auto"] .manual-status-result.loading{border-color:#405666;background:#162532}
  :root[data-theme="auto"] .manual-status-result{background:#1a2a39}
  :root[data-theme="auto"] .mobile-sticky-actions{border-color:#405666!important;background:rgba(22,37,50,.97)}
}

/* Final palette pass: this block intentionally follows all legacy theme rules. */
:root{--primary:#0d6efd;--primary2:#0a58ca;--accent:var(--primary);--control-focus:var(--primary);--control-focus-ring:rgba(var(--primary-rgb,13,110,253),.22);--control-surface:#fff;--control-surface-hover:#f4f8ff;--control-border:#c8d4e2;--control-border-hover:#8db5e8;--scroll-track:#e7eef7;--scroll-thumb:#9bb8da;--scroll-thumb-hover:#6f9bd0;--font-ui:"Noto Sans SC","Source Han Sans SC","IBM Plex Sans","Segoe UI",sans-serif;--font-num:"IBM Plex Mono","Roboto Mono","Noto Sans Mono",ui-monospace,monospace;--card-height:174px}
:root[data-theme="dark"]{--bg:#0d1117;--panel:#161b22;--panel2:#21262d;--ink:#e6edf3;--muted:#8b949e;--line:#30363d;--danger-bg:#3b1d21;--danger:#ff7b72;--ok:#3fb950;--warn:#d29922;--shadow:0 22px 70px rgba(0,0,0,.42);--control-surface:#161b22;--control-surface-hover:#21262d;--control-border:#3b4653;--control-border-hover:#6e9bd4;--control-focus:#6ea8fe;--control-focus-ring:rgba(110,168,254,.28);--scroll-track:#161b22;--scroll-thumb:#4b5868;--scroll-thumb-hover:#6e8199}
@media(prefers-color-scheme:dark){:root[data-theme="auto"]{--bg:#0d1117;--panel:#161b22;--panel2:#21262d;--ink:#e6edf3;--muted:#8b949e;--line:#30363d;--danger-bg:#3b1d21;--danger:#ff7b72;--ok:#3fb950;--warn:#d29922;--shadow:0 22px 70px rgba(0,0,0,.42);--control-surface:#161b22;--control-surface-hover:#21262d;--control-border:#3b4653;--control-border-hover:#6e9bd4;--control-focus:#6ea8fe;--control-focus-ring:rgba(110,168,254,.28);--scroll-track:#161b22;--scroll-thumb:#4b5868;--scroll-thumb-hover:#6e8199}}
html,body{font-family:var(--font-ui);color:var(--ink);background-color:var(--bg)}body{background-image:radial-gradient(circle at 15% -10%,rgba(var(--primary-rgb,13,110,253),.12) 0,transparent 32%),var(--portal-background-image,none),linear-gradient(var(--bg),var(--bg))}
button,input,select,textarea{font-family:var(--font-ui)}code,time,.history-row,.usage-bar-row strong,.visit-log-row code{font-family:var(--font-num);font-variant-numeric:tabular-nums}strong,.metric strong,.dashboard-metric strong,.status-summary-card strong,.library-count,.numeric,.number,.count{font-variant-numeric:tabular-nums}
.brand-mark{font-size:0;background:linear-gradient(145deg,var(--primary2),var(--primary));color:#fff}.brand-mark::after{content:"One";font-size:21px;letter-spacing:-.6px}.brand-mark.small::after{font-size:18px}
.btn.primary,.icon-btn.text-btn.active,.pill.active{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff}.btn.primary:hover{background:var(--primary2)!important;border-color:var(--primary2)!important}.tab.active{color:var(--primary)!important;border-color:var(--primary)!important}input[type="checkbox"],input[type="radio"]{accent-color:var(--primary)}
input:not([type="checkbox"]):not([type="radio"]),select,textarea,.custom-select-trigger{background:var(--control-surface);color:var(--ink);border-color:var(--control-border)}input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus,.custom-select-trigger:focus-visible,.custom-select.open .custom-select-trigger{border-color:var(--control-focus);box-shadow:0 0 0 4px var(--control-focus-ring)}.btn.ghost,.icon-btn,.pill,.section-toggle,.custom-select-trigger{background:var(--control-surface);color:var(--ink)}
.panel-block,.toolbar-card,.metric,.site-card,.manage-row,.dashboard-block,.dashboard-metric,.status-summary-card,.status-detail-row,.auth-card,.modal-card{background:var(--panel);color:var(--ink);border-color:var(--line)}.panel-block.soft,.bulk-bar,.restore-preview,.quick-create,.visit-log-toolbar,.empty-state{background:var(--panel2);border-color:var(--line)}.modal-head{background:linear-gradient(180deg,var(--panel2),var(--panel));border-color:var(--line)}.modal-head .icon-btn{background:var(--control-surface);color:var(--ink)}
.site-icon,.manage-icon,.tag,.tag-more{background:var(--primary-soft,#e7f1ff);color:var(--primary)}.featured-badge{background:color-mix(in srgb,var(--primary) 14%,var(--panel));color:var(--primary)}
.search-box{background:var(--control-surface);border-color:var(--control-border)}.search-box:focus-within{border:2px solid var(--control-focus);padding-left:11px;padding-right:11px;box-shadow:0 0 0 4px var(--control-focus-ring)}
.status-top-button{position:relative;min-width:96px}.status-alert-badge{position:absolute;top:-8px;right:-7px;display:grid;min-width:20px;height:20px;align-items:center;justify-content:center;padding:0 5px;border:2px solid var(--panel);border-radius:999px;background:#dc3545;color:#fff;font:700 10px/1 var(--font-num)}.status-alert-badge.hidden{display:none}#status-overview{display:none!important}
.site-title-line{margin-bottom:8px}.site-copy .site-description{margin:0 0 8px}.site-meta{margin-top:0;min-height:20px;line-height:20px}.site-last-opened-row{display:flex;min-height:19px;align-items:center;margin-top:4px;color:var(--muted);font-size:10px;line-height:19px}.site-last-opened{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tags{height:auto;min-height:20px;max-height:42px;margin-top:4px;gap:4px;overflow:hidden;align-content:flex-start}.tag{display:inline-flex;max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-more{font-family:var(--font-num)}.site-icon-glyph.emoji{font-size:34px}
.modal-actions{margin-top:20px;padding-top:16px;margin-bottom:8px}.visibility-custom{display:grid;gap:8px;margin:0 0 4px;padding:var(--space-5);border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.visibility-custom-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.visibility-group-picker,.visibility-chips{display:flex;flex-wrap:wrap;gap:8px}.visibility-group-chip,.visibility-chip,.user-group-option{border:1px solid var(--control-border);border-radius:999px;background:var(--control-surface);color:var(--ink);cursor:pointer;font-size:11px}.visibility-group-chip{padding:6px 10px}.visibility-group-chip.selected,.user-group-option.selected{border-color:var(--primary);background:var(--primary-soft,#e7f1ff);color:var(--primary);font-weight:700}.visibility-user-picker{position:relative}.visibility-user-picker input{height:var(--control-height-compact);min-height:var(--control-height-compact)}.visibility-suggestions{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;display:grid;max-height:220px;overflow:auto;padding:5px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 16px 36px rgba(0,0,0,.16)}.visibility-suggestions button{display:flex;justify-content:space-between;gap:8px;padding:8px 9px;border:0;border-radius:7px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.visibility-suggestions button:hover,.visibility-suggestions button:focus-visible{background:var(--primary-soft,#e7f1ff);outline:0}.visibility-suggestions small{color:var(--muted)}.visibility-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 8px}.visibility-chip button{border:0;background:transparent;color:inherit;cursor:pointer;font-size:15px}
.user-groups-field{display:grid;gap:8px}.user-group-selection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.user-group-option{display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;text-align:left}.user-group-option small{max-width:55%;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.group-manage-list{max-height:min(50vh,520px);overflow:auto;padding-right:4px}.group-row .manage-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#portal-health-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:min(56vh,620px);overflow:auto;padding:2px 4px 4px 0}.manage-list,.library-manage-list,.audit-list,.visit-log-list,#session-list,#my-session-list{max-height:min(58vh,680px);overflow:auto;padding-right:4px}
.impersonation-banner{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;margin:0 0 var(--space-5);padding:8px 12px;border:1px solid #f0c36d;border-radius:12px;background:#fff8e1;color:#805b00}.impersonation-banner .btn{height:32px;min-height:32px;background:#805b00;border-color:#805b00;color:#fff}
@media(max-width:1100px){#portal-health-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.user-group-selection{grid-template-columns:1fr}.group-row .manage-main{grid-template-columns:1fr}.manage-list,.library-manage-list,.audit-list,.visit-log-list,#session-list,#my-session-list{max-height:52vh}}@media(max-width:699px){#portal-health-list{grid-template-columns:1fr;max-height:48vh}.status-top-button{min-width:0}.top-actions .status-top-button{width:100%}.site-card{height:auto;min-height:144px}.tags{max-height:44px}.modal-actions{margin-bottom:12px;padding-bottom:4px}.visibility-custom{padding:11px}.visibility-custom-head{display:grid;gap:4px}.impersonation-banner{align-items:stretch;flex-direction:column;text-align:center}.impersonation-banner .btn{width:100%}}
:root[data-theme="dark"] .status-issue,:root[data-theme="auto"] .status-issue{background:#321d20;border-color:#593638;color:#ffb4ab}:root[data-theme="dark"] .status-issue span,:root[data-theme="auto"] .status-issue span{color:#d99a94}:root[data-theme="dark"] .mobile-sticky-actions,:root[data-theme="auto"] .mobile-sticky-actions{background:rgba(22,27,34,.97);border-color:var(--line)!important}
:root[data-theme="dark"] .user-chip,:root[data-theme="auto"] .user-chip,:root[data-theme="dark"] .tag-combobox,:root[data-theme="auto"] .tag-combobox,:root[data-theme="dark"] .tag-suggestions,:root[data-theme="auto"] .tag-suggestions,:root[data-theme="dark"] .emoji-picker,:root[data-theme="auto"] .emoji-picker,:root[data-theme="dark"] .library-summary,:root[data-theme="auto"] .library-summary,:root[data-theme="dark"] .library-row,:root[data-theme="auto"] .library-row,:root[data-theme="dark"] .tag-manage-row,:root[data-theme="auto"] .tag-manage-row,:root[data-theme="dark"] .dashboard-panel,:root[data-theme="auto"] .dashboard-panel{background:var(--panel);border-color:var(--line);color:var(--ink)}
.section-title-row h2,.section-title-row h3,.panel-block h3,.admin-section-head h3,.dashboard-block h3,.modal-head h2,.manage-main strong,.library-row .library-main strong,.auth-card h1{color:var(--ink)}
.manage-sub,.library-row .library-main span,.library-row .library-count,.dashboard-row span,.visit-log-agent{color:var(--muted)}
.tag-combobox,.tag-suggestions,.emoji-picker,.library-summary,.library-row,.tag-manage-row,.dashboard-panel{border-color:var(--line);background:var(--panel);color:var(--ink)}
.featured-badge{background:var(--primary-soft,#e7f1ff);color:var(--primary)}
.site-card.mini{height:104px;min-height:104px}.compact-mode .site-card{height:104px;min-height:104px}
@media(max-width:699px){.site-card:not(.mini){height:auto;min-height:154px}.site-card.mini{height:104px;min-height:104px}.compact-mode .site-card{height:104px;min-height:104px}}

/* ToreyOne 1.6.1 — dashboard modal, tag editor, scrollbar and search refinements. */
.dashboard-modal-card>#admin-dashboard{margin:0 0 var(--space-5)}
.dashboard-status-section{margin-top:0}
.dashboard-status-section>.panel-title-row{margin-bottom:12px}

/* The tag field owns the focus ring; the inner text box stays visually transparent. */
.tag-combobox{cursor:text;border-color:var(--control-border);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.tag-combobox:hover{border-color:var(--control-border-hover)}
.tag-combobox:focus-within{border-color:var(--control-focus);box-shadow:0 0 0 4px var(--control-focus-ring)}
.tag-combobox>input[type="text"],.tag-combobox>input[type="text"]:hover,.tag-combobox>input[type="text"]:focus{height:28px!important;min-height:28px!important;padding:3px 2px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:0!important}
.tag-editor-chip{cursor:grab;user-select:none;transition:opacity .12s ease,transform .12s ease,box-shadow .12s ease}
.tag-editor-chip:active{cursor:grabbing}
.tag-editor-chip.dragging{opacity:.42;transform:scale(.97);box-shadow:0 6px 16px rgba(8,43,76,.14)}
.tag-editor-chip-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tag-editor-chip button{cursor:pointer}

/* Keep a single separator inside the site status panel. */
.site-status-panel .status-auto-heading{margin:4px 0 4px;padding-top:0;border-top:0}

/* Inset modal scrollbars so neither the track nor thumb reaches into rounded corners. */
.modal-card{scrollbar-color:var(--scroll-thumb) transparent}
.modal-card::-webkit-scrollbar{width:10px;height:10px}
.modal-card::-webkit-scrollbar-track{margin-block:10px;background:transparent;border-radius:999px}
.modal-card::-webkit-scrollbar-thumb{min-height:42px;border:2px solid transparent;border-radius:999px;background:var(--scroll-thumb);background-clip:padding-box}
.modal-card::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:padding-box}
.modal-card::-webkit-scrollbar-corner{background:transparent}

/* Homepage/search controls use a real geometric icon and a stable text line box. */
.search-box{gap:8px;padding-inline:13px;overflow:visible}
.search-box:focus-within{padding-inline:12px}
.search-box>span{position:relative;display:block;width:20px;height:20px;flex:0 0 20px;font-size:0;line-height:0;color:#5d7890}
.search-box>span::before{position:absolute;left:3px;top:3px;width:9px;height:9px;content:"";border:2px solid currentColor;border-radius:50%}
.search-box>span::after{position:absolute;left:12px;top:12px;width:6px;height:2px;content:"";transform:rotate(45deg);transform-origin:left center;border-radius:999px;background:currentColor}
.search-box input,.search-box input:hover,.search-box input:focus{display:block!important;min-width:0!important;height:24px!important;min-height:24px!important;margin:0!important;padding:1px 0!important;overflow:visible!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:0!important;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif!important;font-size:14px!important;font-weight:400!important;line-height:22px!important;letter-spacing:0!important;text-indent:0!important}
.search-box input::placeholder{font:inherit;color:#8a9eb0;opacity:1}

@media(max-width:699px){
  .dashboard-modal-card>#admin-dashboard{padding:var(--space-5)}
  .dashboard-modal-card .dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-modal-card .dashboard-grid{grid-template-columns:1fr}
  .dashboard-modal-card .dashboard-chart-block{grid-column:auto}
}

/* ToreyOne 1.6.2 — visibility matrix, searchable membership pickers, tag color controls */
.visibility-custom{width:100%;min-width:0;padding:16px}
.site-primary-grid>.visibility-custom{grid-column:1/-1}
.visibility-custom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0}
.visibility-column{display:grid;min-width:0;align-content:start;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.visibility-column-head{display:grid;gap:4px;min-height:36px}.visibility-column-head strong{font-size:12px;color:var(--ink)}.visibility-column-head span{font-size:10px;color:var(--muted)}
.visibility-column>input{height:var(--control-height-compact)!important;min-height:var(--control-height-compact)!important}
.visibility-current-list,.visibility-group-picker,.visibility-suggestions{display:grid;align-content:start;gap:8px;min-width:0;max-height:245px;overflow:auto;padding:1px 3px 1px 1px}
.visibility-suggestions{position:static;z-index:auto;top:auto;left:auto;right:auto;padding:1px 3px 1px 1px;border:0;border-radius:0;background:transparent;box-shadow:none}
.visibility-add-row{display:flex;width:100%;min-height:48px;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border:1px solid var(--control-border);border-radius:9px;background:var(--control-surface);color:var(--ink);text-align:left;cursor:pointer}
.visibility-add-row:hover,.visibility-add-row:focus-visible{border-color:var(--control-focus);background:var(--primary-soft,#e7f1ff);outline:0}
.visibility-add-row>span{display:grid;min-width:0;gap:4px}.visibility-add-row strong,.visibility-add-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visibility-add-row strong{font-size:11px}.visibility-add-row small{color:var(--muted);font-size:9px}.visibility-add-row>b{flex:0 0 auto;color:var(--primary);font-size:10px}
.visibility-selected-row{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;border:1px solid var(--control-border);border-radius:9px;background:var(--control-surface)}
.visibility-selected-row>span{display:flex;min-width:0;align-items:center;gap:8px}.visibility-selected-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.visibility-selected-row>button{display:grid;width:26px;height:26px;flex:0 0 26px;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:17px;cursor:pointer}.visibility-selected-row>button:hover{background:var(--primary-soft,#e7f1ff);color:var(--primary)}
.visibility-type-badge{flex:0 0 auto;padding:2px 5px;border-radius:999px;background:var(--primary-soft,#e7f1ff);color:var(--primary);font-size:9px}.visibility-type-badge.user{background:#eef3f7;color:#4d6477}
.visibility-picker-empty{padding:var(--space-5) 8px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:10px;text-align:center}

.user-groups-field{display:grid;gap:8px;min-width:0}
.multi-picker{position:relative;min-width:0}
.multi-picker-trigger{display:flex;width:100%;height:var(--control-height);min-height:var(--control-height);align-items:center;justify-content:space-between;gap:8px;padding:0 12px;border:1px solid var(--control-border);border-radius:var(--radius-control);background:var(--control-surface);color:var(--ink);text-align:left;cursor:pointer}
.multi-picker-trigger:hover{border-color:var(--control-border-hover)}.multi-picker.open .multi-picker-trigger,.multi-picker-trigger:focus-visible{border-color:var(--control-focus);outline:0;box-shadow:0 0 0 4px var(--control-focus-ring)}
.multi-picker-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.multi-picker-chevron{width:8px;height:8px;flex:0 0 8px;transform:translateY(-2px) rotate(45deg);border-right:2px solid #668096;border-bottom:2px solid #668096;transition:transform .16s ease}.multi-picker.open .multi-picker-chevron{transform:translateY(2px) rotate(225deg)}
.multi-picker-menu{position:absolute;z-index:150;top:calc(100% + 7px);left:0;width:100%;min-width:100%;padding:7px;border:1px solid var(--control-border);border-radius:12px;background:var(--panel);box-shadow:0 18px 48px rgba(8,43,76,.20)}
.multi-picker-search{width:100%;height:var(--control-height-compact)!important;min-height:var(--control-height-compact)!important;margin-bottom:8px}
.multi-picker-options{display:grid;max-height:240px;gap:4px;overflow:auto;padding-right:2px}
.multi-picker-option{display:flex;width:100%;min-height:46px;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.multi-picker-option:hover,.multi-picker-option:focus-visible{background:var(--primary-soft,#e7f1ff);outline:0}.multi-picker-option.selected{background:var(--primary-soft,#e7f1ff);color:var(--primary)}
.multi-picker-option>span{display:grid;min-width:0;gap:4px}.multi-picker-option strong,.multi-picker-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-picker-option strong{font-size:11px}.multi-picker-option small{color:var(--muted);font-size:9px}.multi-picker-option>b{font-size:13px}
.multi-picker-empty{padding:var(--space-5) 8px;color:var(--muted);font-size:10px;text-align:center}
.multi-picker-chips{display:flex;min-height:28px;flex-wrap:wrap;gap:8px;margin-top:8px}
.multi-picker-chip{display:inline-flex;max-width:100%;align-items:center;gap:4px;padding:4px 7px;border:1px solid var(--control-border);border-radius:999px;background:var(--primary-soft,#e7f1ff);color:var(--primary);font-size:10px}.multi-picker-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-picker-chip>button{border:0;background:transparent;color:inherit;cursor:pointer;font-size:14px;line-height:1}

.group-row.editing{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}.group-edit-body{display:grid;min-width:0;gap:12px}.group-edit-fields{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:8px}.group-edit-fields label,.group-member-editor{display:grid;min-width:0;gap:8px;font-size:10px;color:var(--muted)}.group-edit-actions{display:flex;gap:8px;padding-top:20px}.group-member-editor .multi-picker-menu{position:relative;top:auto;left:auto;margin-top:8px;box-shadow:0 12px 32px rgba(8,43,76,.14)}

.tag-manage-list>.empty-mini{grid-column:1/-1;width:100%;height:auto;min-height:110px;display:grid;place-items:center}
#tag-create-form .custom-select{width:240px;min-width:240px;flex:0 0 240px}.tag-color-custom-select .custom-select-option{gap:8px}.tag-color-select-value{display:flex;min-width:0;align-items:center;gap:8px}.tag-color-select-value>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tag-color-swatch{display:inline-block;width:14px;height:14px;flex:0 0 14px;border:1px solid rgba(0,0,0,.12);border-radius:50%;box-shadow:inset 0 0 0 2px rgba(255,255,255,.28)}
.tag-color-swatch.swatch-blue{background:#0d6efd}.tag-color-swatch.swatch-cyan{background:#21b4cb}.tag-color-swatch.swatch-green{background:#198754}.tag-color-swatch.swatch-amber{background:#d89614}.tag-color-swatch.swatch-red{background:#dc3545}.tag-color-swatch.swatch-purple{background:#7952b3}.tag-color-swatch.swatch-slate{background:#64748b}.tag-color-swatch.swatch-rose{background:#d04f79}

@media(max-width:900px){.visibility-custom-grid{grid-template-columns:1fr}.visibility-current-list,.visibility-group-picker,.visibility-suggestions{max-height:190px}.group-row.editing{grid-template-columns:1fr}.group-edit-actions{padding-top:0;justify-content:flex-end}}
@media(max-width:600px){.group-edit-fields{grid-template-columns:1fr}#tag-create-form .custom-select{width:100%;min-width:0;flex:1 1 auto}}
.user-groups-field .multi-picker-menu{top:auto;bottom:calc(100% + 7px)}
.tag-color-custom-select .custom-select-option>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ToreyOne 1.6.3 — impersonation identity sync and empty tag-library dropdown space */
#manage-modal [data-panel="tags"].tags-empty .admin-section{min-height:430px}
#manage-modal [data-panel="tags"].tags-empty #tag-manage-list>.empty-mini{min-height:150px}
@media(max-width:820px){#manage-modal [data-panel="tags"].tags-empty .admin-section{min-height:390px}}
@media(max-width:600px){#manage-modal [data-panel="tags"].tags-empty .admin-section{min-height:470px}}

/* ToreyOne 1.7.0 — diagnostics, permission preview, duplicate hints and richer status details */
.visibility-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.visibility-preview-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel2)}
.visibility-preview-list>span{display:grid;min-width:0;gap:4px;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.visibility-preview-list strong,.visibility-preview-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visibility-preview-list strong{font-size:10px}.visibility-preview-list small{color:var(--muted);font-size:9px}
.site-duplicate-warning{display:grid;gap:4px;margin-top:8px;padding:8px 10px;border:1px solid #e6bf72;border-radius:9px;background:#fff8e8;color:#805b12;font-size:10px;line-height:1.45}
.site-duplicate-warning strong{font-size:10px}.site-duplicate-warning span{overflow-wrap:anywhere}
.manual-status-details{display:flex;flex-wrap:wrap;gap:4px 8px;margin:4px 0 4px;color:var(--muted);font-size:9px;line-height:1.5}.manual-status-details span{overflow-wrap:anywhere}
.audit-filter-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(150px,.8fr) minmax(150px,.8fr) 145px 145px auto auto;gap:8px;align-items:center;margin:0 0 var(--space-5);padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.audit-filter-grid .small-search{width:100%;max-width:none}
.status.warn{background:#fff3cd;color:#7a5800;border-color:#efd691}
:root[data-theme="dark"] .site-duplicate-warning{border-color:#715e2a;background:#2a2415;color:#e7c86c}:root[data-theme="dark"] .status.warn{border-color:#6d5a25;background:#2a2415;color:#e7c86c}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .site-duplicate-warning{border-color:#715e2a;background:#2a2415;color:#e7c86c}:root[data-theme="auto"] .status.warn{border-color:#6d5a25;background:#2a2415;color:#e7c86c}}
@media(max-width:1100px){.audit-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.audit-filter-grid .small-search{grid-column:1/-1}.visibility-preview-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.audit-filter-grid{grid-template-columns:1fr 1fr}.audit-filter-grid .small-search{grid-column:1/-1}.audit-filter-grid .btn{width:100%}.visibility-preview-bar{align-items:flex-start;flex-direction:column}.visibility-preview-list{grid-template-columns:1fr}}

/* ToreyOne 1.7.2 — full-width visibility, compact card actions, searchable selects and theme refinements. */
body{background-image:radial-gradient(circle at 15% -10%,rgba(var(--primary-rgb,13,110,253),.12) 0,transparent 32%),var(--portal-background-image,none),linear-gradient(var(--bg),var(--bg))}
.btn.primary,.icon-btn.text-btn.active,.pill.active{color:var(--primary-contrast,#fff)!important}
.brand-mark{color:var(--primary-contrast,#fff)}
.status-policy-note{display:flex;min-height:44px;align-items:center;margin:4px 0 12px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--muted);font-size:11px;line-height:1.5}
.theme-toggle{min-width:76px;justify-content:center;gap:8px}.theme-toggle-icon{display:grid;width:18px;height:18px;place-items:center;font-size:16px;line-height:1}.theme-toggle[aria-pressed="true"]{border-color:var(--primary);background:var(--primary-soft,#e7f1ff);color:var(--primary)}

/* The visibility editor is a full-width row; only its inner panels are thirds. */
#site-form>#site-visibility-custom,.site-primary-grid+#site-visibility-custom{width:100%;max-width:none;grid-column:auto;margin-top:0}
.visibility-custom-grid{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}
.visibility-column{width:100%;min-width:0}
.visibility-fixed-row{border-color:color-mix(in srgb,var(--primary) 28%,var(--line));background:color-mix(in srgb,var(--primary) 7%,var(--panel))}
.visibility-fixed-row>em{flex:0 0 auto;color:var(--primary);font-size:9px;font-style:normal;font-weight:800}
.visibility-type-badge.admin{background:var(--primary);color:var(--primary-contrast,#fff)}
.visibility-preview-admin{border-color:color-mix(in srgb,var(--primary) 30%,var(--line))!important;background:color-mix(in srgb,var(--primary) 7%,var(--panel))!important}

/* Site card actions: a compact, aligned control cluster instead of two oversized floating glyphs. */
.site-card-actions{position:absolute;z-index:5;top:9px;right:9px;display:flex;align-items:center;gap:4px;padding:2px;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:10px;background:color-mix(in srgb,var(--panel) 90%,transparent);box-shadow:0 3px 10px rgba(17,55,91,.06);backdrop-filter:blur(5px)}
.site-card-action.favorite,.site-card-action.edit-shortcut{position:static;display:grid;width:25px;height:25px;min-width:25px;min-height:25px;padding:0;place-items:center;border:0;border-radius:7px;background:transparent;color:color-mix(in srgb,var(--muted) 82%,transparent);font-size:0;line-height:1;cursor:pointer;box-shadow:none;transform:none}
.site-card-action.favorite>span{display:block;font-size:14px;line-height:1;transform:translateY(-.5px)}
.site-card-action.edit-shortcut>span{display:block;font-size:12px;font-weight:900;letter-spacing:-1.4px;line-height:1;transform:translateY(-2px)}
.site-card-action.favorite:hover,.site-card-action.favorite:focus-visible,.site-card-action.edit-shortcut:hover,.site-card-action.edit-shortcut:focus-visible{outline:0;background:var(--primary-soft,#e7f1ff);color:var(--primary);box-shadow:none;transform:none}
.site-card-action.favorite.active{color:#d99a00}.site-card-action.favorite.active:hover{color:#bd8100}
.site-card .site-link{padding-right:50px}.site-card.has-admin-actions .site-link{padding-right:78px}
.site-card.mini .site-link,.compact-mode .site-card .site-link{padding-right:50px}.site-card.mini.has-admin-actions .site-link,.compact-mode .site-card.has-admin-actions .site-link{padding-right:78px}
@media(max-width:600px){.site-card-actions{top:8px;right:8px}.site-card-action.favorite,.site-card-action.edit-shortcut{width:28px;height:28px;min-width:28px;min-height:28px}.site-card-action.favorite>span{font-size:15px}.site-card-action.edit-shortcut>span{font-size:13px}}

/* Every single-select dropdown gets a search field and a separately scrolling option list. */
.custom-select-menu{display:grid;gap:8px;max-height:none;overflow:visible;padding:7px}
.custom-select-search{width:100%;height:34px!important;min-height:34px!important;padding:6px 9px!important;border:1px solid var(--control-border)!important;border-radius:8px!important;background:var(--control-surface)!important;color:var(--ink)!important;box-shadow:none!important}
.custom-select-search:focus{border-color:var(--control-focus)!important;box-shadow:0 0 0 3px var(--control-focus-ring)!important}
.custom-select-options{display:grid;max-height:230px;gap:4px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-right:1px;scrollbar-color:var(--scroll-thumb) transparent}
.custom-select-empty{padding:var(--space-5) 8px;color:var(--muted);font-size:11px;text-align:center}
.custom-select-options::-webkit-scrollbar{width:8px}.custom-select-options::-webkit-scrollbar-track{margin-block:6px;background:transparent}.custom-select-options::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:var(--scroll-thumb);background-clip:padding-box}.custom-select-options::-webkit-scrollbar-button{display:none;width:0;height:0}
.tag-color-custom-select .custom-select-menu,.tone-color-custom-select .custom-select-menu{min-width:250px}
.tone-color-custom-select .custom-select-option{gap:8px}

/* Tag management keeps enough vertical room for its longest color/search menu even when empty. */
#manage-modal [data-panel="tags"] .admin-section{min-height:570px}
#manage-modal [data-panel="tags"].tags-empty .admin-section{min-height:570px}
#manage-modal [data-panel="tags"] #tag-manage-list>.empty-mini{min-height:160px}
@media(max-width:820px){#manage-modal [data-panel="tags"] .admin-section,#manage-modal [data-panel="tags"].tags-empty .admin-section{min-height:540px}}
@media(max-width:600px){#manage-modal [data-panel="tags"] .admin-section,#manage-modal [data-panel="tags"].tags-empty .admin-section{min-height:610px}}

/* Rounded modals use inset, arrowless scrollbars so browser scroll buttons cannot be clipped by the corners. */
.modal-card{scrollbar-gutter:stable;scrollbar-color:var(--scroll-thumb) transparent}
.modal-card::-webkit-scrollbar{width:10px;height:10px}
.modal-card::-webkit-scrollbar-track{margin-block:20px;background:transparent;border-radius:999px}
.modal-card::-webkit-scrollbar-thumb{min-height:44px;border:2px solid transparent;border-radius:999px;background:var(--scroll-thumb);background-clip:padding-box}
.modal-card::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover);background-clip:padding-box}
.modal-card::-webkit-scrollbar-button,.modal-card::-webkit-scrollbar-button:single-button{display:none!important;width:0!important;height:0!important;background:transparent!important}
.modal-card::-webkit-scrollbar-corner{background:transparent}

/* Night mode is a first-class full-site palette; the user's accent remains independent. */
:root[data-theme="dark"] body{background-image:radial-gradient(circle at 15% -10%,rgba(var(--primary-rgb,13,110,253),.16) 0,transparent 34%),var(--portal-background-image,none),linear-gradient(var(--bg),var(--bg))}
:root[data-theme="dark"] .site-card-actions{border-color:var(--line);background:color-mix(in srgb,var(--panel) 88%,transparent);box-shadow:0 4px 14px rgba(0,0,0,.24)}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] body{background-image:radial-gradient(circle at 15% -10%,rgba(var(--primary-rgb,13,110,253),.16) 0,transparent 34%),var(--portal-background-image,none),linear-gradient(var(--bg),var(--bg))}:root[data-theme="auto"] .site-card-actions{border-color:var(--line);background:color-mix(in srgb,var(--panel) 88%,transparent)}}

@media(max-width:900px){.visibility-custom-grid{grid-template-columns:1fr}.visibility-column{width:100%}}


/* ToreyOne 1.7.3 — simpler status workflow, dedicated health history modal and compact card actions. */
.dashboard-head.dashboard-head-actions{justify-content:flex-end;padding-bottom:10px;border-bottom:0}
.dashboard-head.dashboard-head-actions .btn{margin-left:auto}
.status-history-modal-card{width:min(980px,calc(100vw - 36px));max-height:min(82vh,760px)}
.status-history-modal-content{margin:16px}
.visibility-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.visibility-preview-bar>strong{font-size:11px;color:var(--ink)}
.site-card-action.edit-shortcut{overflow:hidden}
@media(max-width:600px){.status-history-modal-card{width:min(96vw,980px);max-height:86vh}.status-history-modal-content{margin:12px}}

/* ToreyOne 1.7.4 — additive homepage sections, resilient long-text layout and site status refresh. */
.homepage-section-toggles{display:flex;min-width:0;align-items:center;gap:8px 16px;flex-wrap:wrap;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-control,10px);background:var(--panel2)}
.homepage-section-toggles legend{padding:0 5px;color:var(--muted);font-size:11px;font-weight:700}.homepage-section-toggles label{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.homepage-section-toggles input{width:auto}

.site-card,.site-link,.site-copy,.site-title-line,.site-meta{min-width:0}.site-title-line{overflow:hidden}.site-title-line>strong{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-title-line .featured-badge,.site-title-line .privacy-badge{flex:0 0 auto;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-copy .site-description.is-empty{font-family:var(--font-ui);color:var(--muted)}
.site-meta{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;max-width:100%;overflow:hidden;flex-wrap:unset!important}.site-domain{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-meta .site-status{min-width:max-content;max-width:100%;justify-self:end;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-card-actions{max-width:calc(100% - 18px)}.site-card-action.refresh-status{position:static;display:grid;width:25px;height:25px;min-width:25px;min-height:25px;padding:0;place-items:center;border:0;border-radius:7px;background:transparent;color:color-mix(in srgb,var(--muted) 82%,transparent);font-size:0;line-height:1;cursor:pointer;box-shadow:none;transform:none}.site-card-action.refresh-status:hover,.site-card-action.refresh-status:focus-visible{outline:0;background:var(--primary-soft,#e7f1ff);color:var(--primary)}.site-card-action.refresh-status:disabled{opacity:.38;cursor:not-allowed;background:transparent;color:var(--muted)}.site-refresh-glyph{display:block;font-family:var(--font-num);font-size:15px;font-weight:700;line-height:1;transform:translateY(-.5px)}
.site-card .site-link{padding-right:80px}.site-card.has-admin-actions .site-link{padding-right:109px}.site-card.mini .site-link,.compact-mode .site-card .site-link{padding-right:80px}.site-card.mini.has-admin-actions .site-link,.compact-mode .site-card.has-admin-actions .site-link{padding-right:109px}

.manage-main,.manage-sub,.manage-sub span,.manage-health,.status-detail-main,.status-detail-title,.dashboard-row,.dashboard-row strong,.dashboard-row span,.history-row>* ,.library-row .library-main,.library-row .library-main strong,.library-row .library-main span,.audit-row>div,.audit-row strong,.audit-row span,.preview-warnings,.status-issue,.status-issue span{min-width:0;max-width:100%}.manage-main strong,.library-row .library-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-sub span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-detail-title{flex-wrap:nowrap}.status-detail-title strong{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-detail-row .muted,.history-row>*{overflow-wrap:anywhere}.dashboard-row strong{min-width:0;flex:1}.dashboard-row span{min-width:0;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-row span,.preview-warnings,.status-issue span{overflow-wrap:anywhere}.custom-select-value{max-width:100%}

code,pre,kbd,samp{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,"Courier New",monospace!important;font-variant-ligatures:none;font-variant-numeric:tabular-nums}code{letter-spacing:0}

@media(max-width:600px){.site-card-action.refresh-status{width:28px;height:28px;min-width:28px;min-height:28px}.site-refresh-glyph{font-size:16px}.site-card .site-link{padding-right:91px}.site-card.has-admin-actions .site-link{padding-right:122px}.site-card.mini .site-link,.compact-mode .site-card .site-link{padding-right:91px}.site-card.mini.has-admin-actions .site-link,.compact-mode .site-card.has-admin-actions .site-link{padding-right:122px}.site-meta{gap:8px}.dashboard-row span{max-width:100%}.homepage-section-toggles{align-items:flex-start;flex-direction:column}}
/* Empty descriptions intentionally render as `/` in 1.7.4. */
.site-copy .site-description.is-empty{visibility:visible!important}

/* ToreyOne 1.7.5 — typography, dark-mode component polish and arrowless scrollbars. */
:root{
  --font-ui:"Segoe UI","Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Noto Sans SC","Source Han Sans SC",Inter,system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  --font-code:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,"Courier New",monospace;
  --font-data:"Segoe UI","Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC","Noto Sans SC",Inter,system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;
  --empty-surface:color-mix(in srgb,var(--panel2) 92%,var(--panel));
  --empty-line:color-mix(in srgb,var(--line) 86%,var(--muted));
}
html,body,button,input,select,textarea,optgroup,option,table,th,td,label,fieldset,legend{font-family:var(--font-ui)!important}
body{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
code,pre,kbd,samp{font-family:var(--font-code)!important;font-variant-ligatures:none;font-variant-numeric:tabular-nums}
time,.audit-time,.history-row,.usage-bar-row strong,.dashboard-metric strong,.metric strong,.status-summary-card strong,.numeric,.number,.count{font-family:var(--font-data)!important;font-variant-numeric:tabular-nums lining-nums;letter-spacing:.01em}
.audit-time{display:block;flex:0 0 auto;padding:0;background:transparent!important;border:0!important;border-radius:0!important;color:var(--muted);font-size:11px;font-weight:500;line-height:1.45;white-space:nowrap}
.audit-row{align-items:flex-start}.audit-row>div{flex:1;min-width:0}

/* Remove native scrollbar arrow buttons everywhere; only track + thumb remain. */
*::-webkit-scrollbar-button,
*::-webkit-scrollbar-button:single-button,
*::-webkit-scrollbar-button:vertical:decrement,
*::-webkit-scrollbar-button:vertical:increment,
*::-webkit-scrollbar-button:horizontal:decrement,
*::-webkit-scrollbar-button:horizontal:increment{display:none!important;width:0!important;height:0!important;min-width:0!important;min-height:0!important;background:transparent!important}
.modal-card,.manage-list,.library-manage-list,.audit-list,.visit-log-list,#session-list,#my-session-list,#portal-health-list,.custom-select-options,.tag-suggestions,.visibility-suggestions,.group-manage-list{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}

/* Empty and no-result states share one soft surface in both themes. */
.empty-state,.empty-mini{border-color:var(--empty-line)!important;background:var(--empty-surface)!important;color:var(--muted)!important;box-shadow:inset 0 1px 0 color-mix(in srgb,var(--panel) 52%,transparent)}
.empty-state strong,.empty-mini strong{color:var(--ink)}
#empty-state{margin-top:24px}

/* Make non-code dates and technical-looking metadata feel like normal interface text. */
.visit-log-row time,.history-row>span:first-child,.dashboard-row span,.manage-sub,.site-last-opened,.restore-preview .muted{font-family:var(--font-data)!important;font-variant-numeric:tabular-nums}

/* Dark mode component audit. Keep every control on the same palette instead of legacy light grays. */
:root[data-theme="dark"]{
  --empty-surface:color-mix(in srgb,var(--panel2) 76%,var(--panel));
  --empty-line:color-mix(in srgb,var(--line) 82%,#6b7f93);
}
:root[data-theme="dark"] .btn.ghost,
:root[data-theme="dark"] .btn.secondary,
:root[data-theme="dark"] .icon-btn,
:root[data-theme="dark"] .pill,
:root[data-theme="dark"] .section-toggle,
:root[data-theme="dark"] input[type="file"]::file-selector-button{background:var(--control-surface)!important;border-color:var(--control-border)!important;color:var(--ink)!important;box-shadow:none}
:root[data-theme="dark"] .btn.ghost:hover,
:root[data-theme="dark"] .btn.secondary:hover,
:root[data-theme="dark"] .icon-btn:hover,
:root[data-theme="dark"] .pill:hover,
:root[data-theme="dark"] .section-toggle:hover,
:root[data-theme="dark"] input[type="file"]::file-selector-button:hover{background:var(--control-surface-hover)!important;border-color:var(--control-border-hover)!important;color:var(--ink)!important}
:root[data-theme="dark"] .btn.danger{background:#351c20!important;border-color:#67383e!important;color:#ff9b94!important}
:root[data-theme="dark"] .btn.danger:hover{background:#452329!important;border-color:#87505a!important;color:#ffc1bc!important}
:root[data-theme="dark"] label,
:root[data-theme="dark"] .field,
:root[data-theme="dark"] .field>label,
:root[data-theme="dark"] .checkbox-row label,
:root[data-theme="dark"] .checkbox-inline,
:root[data-theme="dark"] .checkbox-label{color:#c7d1dc!important}
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder{color:#758596!important}
:root[data-theme="dark"] input:disabled,
:root[data-theme="dark"] textarea:disabled,
:root[data-theme="dark"] .custom-select.is-disabled .custom-select-trigger{background:#1a2028!important;color:#718090!important;border-color:#303b47!important}
:root[data-theme="dark"] .custom-select-menu,
:root[data-theme="dark"] .tag-suggestions,
:root[data-theme="dark"] .visibility-suggestions,
:root[data-theme="dark"] .emoji-picker{background:var(--panel)!important;border-color:var(--line)!important;color:var(--ink)!important;box-shadow:0 18px 48px rgba(0,0,0,.38)}
:root[data-theme="dark"] .custom-select-option:hover,
:root[data-theme="dark"] .custom-select-option:focus-visible,
:root[data-theme="dark"] .custom-select-option.selected,
:root[data-theme="dark"] .tag-suggestion:hover,
:root[data-theme="dark"] .tag-suggestion:focus-visible,
:root[data-theme="dark"] .visibility-suggestions button:hover,
:root[data-theme="dark"] .visibility-suggestions button:focus-visible{background:#25303b!important;color:var(--ink)!important}
:root[data-theme="dark"] .tag-combobox,
:root[data-theme="dark"] .tag-editor-chip,
:root[data-theme="dark"] .visibility-chip,
:root[data-theme="dark"] .visibility-group-chip,
:root[data-theme="dark"] .user-group-option{background:var(--control-surface)!important;border-color:var(--control-border)!important;color:var(--ink)!important}
:root[data-theme="dark"] .tag-editor-chip button{background:#273441!important;color:#b8c7d6!important}
:root[data-theme="dark"] .tag-editor-chip button:hover{background:#354556!important;color:#eef5fb!important}
:root[data-theme="dark"] .status.neutral{background:#242c35!important;color:#a9b7c5!important}
:root[data-theme="dark"] .status.on{background:#153226!important;color:#64d999!important}
:root[data-theme="dark"] .status.off{background:#351c20!important;color:#ff9b94!important}
:root[data-theme="dark"] .status.warn{background:#332b16!important;border-color:#665626!important;color:#e7c86c!important}
:root[data-theme="dark"] .alert.success{background:#173524!important;border-color:#356849!important;color:#9ee7b7!important}:root[data-theme="dark"] .alert.info{background:#172d42!important;border-color:#345a7d!important;color:#acd5ff!important}:root[data-theme="dark"] .alert.danger{background:#351c20!important;border-color:#67383e!important;color:#ffaaa4!important}
:root[data-theme="dark"] .manual-status-result{background:var(--panel2)!important;border-color:var(--line)!important;color:var(--muted)!important}
:root[data-theme="dark"] .manual-status-result.up{background:#142d23!important;border-color:#28553f!important;color:#68d89d!important}
:root[data-theme="dark"] .manual-status-result.down{background:#351c20!important;border-color:#67383e!important;color:#ffaaa4!important}
:root[data-theme="dark"] .manual-status-result.error{background:#342619!important;border-color:#664c30!important;color:#efbd86!important}
:root[data-theme="dark"] .manual-status-result.loading{background:#182532!important;border-color:#33485a!important;color:#a8c6df!important}
:root[data-theme="dark"] .homepage-section-toggles,
:root[data-theme="dark"] .quick-create,
:root[data-theme="dark"] .bulk-bar,
:root[data-theme="dark"] .restore-preview,
:root[data-theme="dark"] .status-policy-note,
:root[data-theme="dark"] .visit-log-toolbar,
:root[data-theme="dark"] .panel-block.soft{background:var(--panel2)!important;border-color:var(--line)!important;color:var(--ink)!important}
:root[data-theme="dark"] .manage-row:hover,
:root[data-theme="dark"] .library-row:hover{background:#1b222b!important;border-color:#405162!important}
:root[data-theme="dark"] .tab:hover{background:#1d2630!important;color:#dce8f3!important}
:root[data-theme="dark"] .site-card:hover{border-color:#405162!important;box-shadow:0 16px 38px rgba(0,0,0,.32)}
:root[data-theme="dark"] .privacy-badge{background:#3d2f1f!important;color:#f2cc8f!important}
:root[data-theme="dark"] .featured-badge{background:color-mix(in srgb,var(--primary) 18%,var(--panel))!important;color:color-mix(in srgb,var(--primary) 72%,white)!important}
:root[data-theme="dark"] .impersonation-banner{background:#302817!important;border-color:#645328!important;color:#e8ca79!important}
:root[data-theme="dark"] .impersonation-banner .btn{background:#7a621e!important;border-color:#8c7227!important;color:#fff!important}
:root[data-theme="dark"] code{background:#202832;color:#d9e5ef}
:root[data-theme="dark"] .audit-time{background:transparent!important;color:#8495a6!important}
:root[data-theme="dark"] .modal-backdrop{background:rgba(2,8,18,.68)}
:root[data-theme="dark"] .toast{background:#243447;color:#eef5fb;box-shadow:0 18px 46px rgba(0,0,0,.42)}
:root[data-theme="dark"] .toast.danger{background:#5a282d;color:#ffe6e3}

/* Follow-system theme gets the same dark component treatment only when the OS is actually dark. */
@media(prefers-color-scheme:dark){
  :root[data-theme="auto"]{--empty-surface:color-mix(in srgb,var(--panel2) 76%,var(--panel));--empty-line:color-mix(in srgb,var(--line) 82%,#6b7f93)}
  :root[data-theme="auto"] .empty-state,:root[data-theme="auto"] .empty-mini{background:var(--empty-surface)!important;border-color:var(--empty-line)!important;color:var(--muted)!important}
  :root[data-theme="auto"] .btn.ghost,:root[data-theme="auto"] .btn.secondary,:root[data-theme="auto"] .icon-btn,:root[data-theme="auto"] .pill,:root[data-theme="auto"] .section-toggle,:root[data-theme="auto"] input[type="file"]::file-selector-button{background:var(--control-surface)!important;border-color:var(--control-border)!important;color:var(--ink)!important}
  :root[data-theme="auto"] .btn.ghost:hover,:root[data-theme="auto"] .btn.secondary:hover,:root[data-theme="auto"] .icon-btn:hover,:root[data-theme="auto"] .pill:hover,:root[data-theme="auto"] .section-toggle:hover{background:var(--control-surface-hover)!important;border-color:var(--control-border-hover)!important;color:var(--ink)!important}
  :root[data-theme="auto"] label,:root[data-theme="auto"] .field,:root[data-theme="auto"] .field>label{color:#c7d1dc!important}
  :root[data-theme="auto"] .custom-select-option:hover,:root[data-theme="auto"] .custom-select-option:focus-visible,:root[data-theme="auto"] .custom-select-option.selected{background:#25303b!important;color:var(--ink)!important}
  :root[data-theme="auto"] .homepage-section-toggles,:root[data-theme="auto"] .quick-create,:root[data-theme="auto"] .bulk-bar,:root[data-theme="auto"] .restore-preview,:root[data-theme="auto"] .status-policy-note,:root[data-theme="auto"] .visit-log-toolbar,:root[data-theme="auto"] .panel-block.soft{background:var(--panel2)!important;border-color:var(--line)!important;color:var(--ink)!important}
  :root[data-theme="auto"] code{background:#202832;color:#d9e5ef}
}
.search-box input{font-family:var(--font-ui)!important}
hr,.soft-separator{height:0;border:0;border-top:1px solid var(--line);background:transparent}
:root[data-theme="dark"] .preview-stats span{background:var(--control-surface)!important;border-color:var(--control-border)!important;color:#b8c7d6!important}
:root[data-theme="dark"] .preview-warnings{color:#e4bd69!important}
:root[data-theme="dark"] .preview-warnings div{background:#302817!important;border-color:#655426!important;color:#e8ca79!important}
:root[data-theme="dark"] .library-summary>span:first-child,
:root[data-theme="dark"] .tag-library-summary>span:first-child{color:#d9e6f1!important}
:root[data-theme="dark"] .tag-library-pill{background:#263442!important;color:#c8daea!important;border-color:#3a4b5b!important}
:root[data-theme="dark"] .history-row{border-color:var(--line)!important;color:var(--muted)!important}
:root[data-theme="dark"] .visit-log-columns{color:#8497a8!important}
@media(prefers-color-scheme:dark){
  :root[data-theme="auto"] .preview-stats span{background:var(--control-surface)!important;border-color:var(--control-border)!important;color:#b8c7d6!important}
  :root[data-theme="auto"] .preview-warnings div{background:#302817!important;border-color:#655426!important;color:#e8ca79!important}
  :root[data-theme="auto"] .library-summary>span:first-child,:root[data-theme="auto"] .tag-library-summary>span:first-child{color:#d9e6f1!important}
  :root[data-theme="auto"] .tag-library-pill{background:#263442!important;color:#c8daea!important;border-color:#3a4b5b!important}
  :root[data-theme="auto"] .history-row{border-color:var(--line)!important;color:var(--muted)!important}
}
@media(prefers-color-scheme:light){
  :root[data-theme="auto"] .privacy-badge{background:#fff4e5!important;color:#9a4f00!important}
  :root[data-theme="auto"] .status-issue{background:#fff8f7!important;border-color:#f3cfca!important;color:#8f2c22!important}
  :root[data-theme="auto"] .status-issue span{color:#9c6b64!important}
  :root[data-theme="auto"] .mobile-sticky-actions{background:rgba(255,255,255,.97)!important;border-color:var(--line)!important;color:var(--ink)!important}
}

/* ToreyOne 1.7.6 — homepage card information hierarchy. */
.site-card{display:flex;flex-direction:column;height:auto;min-height:166px;overflow:hidden}
.site-card .site-link{display:flex;flex:1;min-width:0;height:auto;gap:var(--space-5);padding:16px 16px 8px;color:inherit;text-decoration:none;align-items:flex-start}
.site-card .site-copy{display:flex;min-width:0;flex:1;flex-direction:column;overflow:hidden}
.site-card .site-title-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;height:auto;min-height:24px;margin:0 0 8px;overflow:hidden}
.site-title-main{display:flex;min-width:0;align-items:center;gap:8px;overflow:hidden}
.site-title-main>strong{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:22px}
.site-title-main .featured-badge,.site-title-main .privacy-badge{flex:0 0 auto;max-width:76px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-title-status{display:flex;min-width:0;max-width:128px;align-items:center;justify-content:flex-end;overflow:hidden}
.site-title-status .site-status{display:inline-flex;min-width:0;max-width:100%;align-items:center;gap:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-title-status .site-status i{flex:0 0 auto}
.site-card .site-description{display:-webkit-box;height:36px;min-height:36px;margin:0 0 8px;color:var(--muted);font-size:12px;line-height:18px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.site-card .site-description.is-empty{visibility:visible!important}
.site-url-row{display:flex;min-width:0;min-height:20px;align-items:center;color:var(--muted);font-size:11px;line-height:20px;overflow:hidden}
.site-url-row .site-domain{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-card-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:0 10px 10px 74px}
.site-card-footer .tags{display:flex;min-width:0;height:25px;min-height:25px;max-height:25px;margin:0;align-items:center;gap:4px;flex-wrap:nowrap;overflow:hidden}
.site-card-footer .tag{display:inline-flex;min-width:0;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-card-actions{position:static;z-index:auto;display:flex;flex:0 0 auto;max-width:none;align-items:center;gap:4px;padding:2px;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:10px;background:color-mix(in srgb,var(--panel) 90%,transparent);box-shadow:0 3px 10px rgba(17,55,91,.06);backdrop-filter:blur(5px)}
.site-card .site-link,.site-card.has-admin-actions .site-link{padding-right:16px}
.site-card.mini,.compact-mode .site-card{height:auto;min-height:154px}
.site-card.mini .site-link,.compact-mode .site-card .site-link{align-items:flex-start;padding:var(--space-5) 14px 7px}
.site-card.mini .site-icon,.compact-mode .site-card .site-icon{width:38px;height:38px;flex-basis:38px;border-radius:11px}
.site-card.mini .site-copy p,.site-card.mini .tags,.compact-mode .site-copy p,.compact-mode .tags{display:flex}
.site-card.mini .site-description,.compact-mode .site-description{display:-webkit-box;height:18px;min-height:18px;-webkit-line-clamp:1;margin-bottom:4px}
.site-card.mini .site-card-footer,.compact-mode .site-card-footer{padding-left:66px}
.site-card.mini .site-title-line,.compact-mode .site-title-line{height:auto;min-height:22px;margin-bottom:4px}
.site-card.mini .site-url-row,.compact-mode .site-url-row{margin-top:0}
@media(max-width:699px){
  .site-card,.site-card.mini,.compact-mode .site-card{min-height:158px}
  .site-card .site-link,.site-card.mini .site-link,.compact-mode .site-card .site-link{gap:12px;padding:var(--space-5) 12px 7px}
  .site-card .site-icon{width:42px;height:42px;flex-basis:42px;border-radius:12px}
  .site-title-status{max-width:112px}
  .site-card-footer,.site-card.mini .site-card-footer,.compact-mode .site-card-footer{padding:0 8px 9px 65px;gap:8px}
  .site-card-footer .tag{max-width:96px}
}
@media(max-width:420px){
  .site-title-status{max-width:94px}
  .site-card-footer,.site-card.mini .site-card-footer,.compact-mode .site-card-footer{padding-left:12px}
}

/* ToreyOne 1.7.7 — account preferences, tone swatches and device sections. */
.tone-color-custom-select .tone-swatch{background-color:var(--swatch-color)!important;border:1px solid rgba(31,41,55,.42);box-shadow:0 0 0 1px rgba(255,255,255,.82),inset 0 0 0 1px rgba(255,255,255,.18)}
:root[data-theme="dark"] .tone-color-custom-select .tone-swatch{border-color:rgba(255,255,255,.45);box-shadow:0 0 0 1px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.12)}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .tone-color-custom-select .tone-swatch{border-color:rgba(255,255,255,.45);box-shadow:0 0 0 1px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.12)}}
.preference-toggle-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:8px var(--space-5);padding:2px 0}
.preference-toggle-row label{min-width:0;margin:0;white-space:nowrap}
.session-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:var(--space-5) 0 8px;padding-top:14px;border-top:1px solid var(--line)}
.session-section-head h4{margin:0;font-size:13px}
#my-current-session,#my-other-session-list{margin-top:12px}
#my-current-session .manage-row,#my-other-session-list .manage-row{background:var(--panel2);border-color:var(--line)}
#pref-background-url{font-variant-ligatures:none}
@media(max-width:760px){.preference-toggle-row{grid-template-columns:repeat(2,minmax(0,1fr))}.session-section-head{align-items:flex-start;flex-direction:column}.session-section-head .btn{width:100%}}
@media(max-width:440px){.preference-toggle-row{grid-template-columns:1fr}}

/* ToreyOne 1.7.8 — stable tabbed dialogs, safer scroll gutters and card fallbacks. */
.tabbed-modal{height:min(820px,calc(100dvh - 40px));min-height:min(680px,calc(100dvh - 40px))}
.modal-card::-webkit-scrollbar-track{margin-block:30px!important;background:transparent!important;border-radius:999px!important}
.modal-card::-webkit-scrollbar-thumb{min-height:42px}
.modal-card::-webkit-scrollbar-button,.modal-card::-webkit-scrollbar-button:single-button{display:none!important;width:0!important;height:0!important;min-width:0!important;min-height:0!important}
.site-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.site-url-row .site-domain{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-last-opened{flex:0 0 auto;color:color-mix(in srgb,var(--muted) 88%,transparent);font-size:10.5px;white-space:nowrap;font-variant-numeric:tabular-nums}
.site-settings-glyph{display:inline-flex;width:15px;height:15px;align-items:center;justify-content:center}
.site-settings-glyph svg{display:block;width:15px;height:15px;fill:currentColor}
.site-card-action.edit-shortcut{line-height:1}
#pref-background-url-help.field-error{color:#b42318!important}
#pref-background-url-help.field-valid{color:#087443!important}
:root[data-theme="dark"] #pref-background-url-help.field-error{color:#ff9e95!important}
:root[data-theme="dark"] #pref-background-url-help.field-valid{color:#7bd7a8!important}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] #pref-background-url-help.field-error{color:#ff9e95!important}:root[data-theme="auto"] #pref-background-url-help.field-valid{color:#7bd7a8!important}}
@media(max-width:820px){.tabbed-modal{height:calc(100dvh - 12px);min-height:0}.modal-card::-webkit-scrollbar-track{margin-block:22px!important}}

/* Mobile: the tab strip is scrolled by swiping, so hide its horizontal scrollbar entirely.
   A visible thin bar flickers on every tab switch because the strip re-lays-out; hiding it
   removes both the flicker and the jitter. */
@media(max-width:820px){
  .tabbed-modal>.tabs,.tabs{scrollbar-width:none}
  .tabbed-modal>.tabs::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none}
}

/* ToreyOne 1.7.9 — unified dark-mode readability and Dashboard contrast. */
:root{
  --ui-text-strong:var(--ink);
  --ui-text-main:var(--ink);
  --ui-text-muted:var(--muted);
  --ui-text-faint:#8295a5;
  --ui-surface:var(--panel);
  --ui-surface-soft:var(--panel2);
  --ui-border:var(--line);
  --ui-hover:#f4f8fc;
  --dashboard-number:#12395f;
  --dashboard-label:#6c8195;
  --dashboard-meta:#71889d;
  --dashboard-subtitle:#486783;
  --chart-track:#e5eef5;
  --chart-number:#486783;
  --status-up-text:#087443;
  --status-up-bg:#ecfdf3;
  --status-down-text:#b42318;
  --status-down-bg:#fff1f0;
  --status-warn-text:#a15c00;
  --status-warn-bg:#fff8e8;
  --status-unknown-text:#71889d;
  --status-unknown-bg:#edf3f8;
  --tone-soft:var(--primary-soft,#e7f1ff);
  --tone-text:var(--primary);
}
:root[data-theme="dark"]{
  --bg:#0c1117;
  --panel:#151b22;
  --panel2:#1b232c;
  --ink:#d7e0e9;
  --muted:#95a5b5;
  --line:#2b3743;
  --control-surface:#171e26;
  --control-surface-hover:#202a34;
  --control-border:#394754;
  --control-border-hover:#607b96;
  --control-focus:#78aee3;
  --control-focus-ring:rgba(120,174,227,.22);
  --scroll-track:#11171d;
  --scroll-thumb:#4b5a69;
  --scroll-thumb-hover:#677b8f;
  --danger-bg:#321d20;
  --danger:#f29a94;
  --ok:#75d6a4;
  --warn:#e4c278;
  --ui-text-strong:#e0e7ee;
  --ui-text-main:#cdd8e3;
  --ui-text-muted:#96a6b6;
  --ui-text-faint:#7d8e9f;
  --ui-surface:#151b22;
  --ui-surface-soft:#1b232c;
  --ui-border:#2b3743;
  --ui-hover:#1e2832;
  --dashboard-number:#cbd8e5;
  --dashboard-label:#94a6b7;
  --dashboard-meta:#8ea1b3;
  --dashboard-subtitle:#a9bac9;
  --chart-track:#26323e;
  --chart-number:#a8bacb;
  --status-up-text:#75d6a4;
  --status-up-bg:#183025;
  --status-down-text:#f29a94;
  --status-down-bg:#351f22;
  --status-warn-text:#e4c278;
  --status-warn-bg:#332b18;
  --status-unknown-text:#9caaba;
  --status-unknown-bg:#242d36;
  --tone-soft:color-mix(in srgb,var(--primary) 14%,var(--panel2));
  --tone-text:color-mix(in srgb,var(--primary) 55%,#d9e5f0);
  color-scheme:dark;
}
@media(prefers-color-scheme:dark){
  :root[data-theme="auto"]{
    --bg:#0c1117;
    --panel:#151b22;
    --panel2:#1b232c;
    --ink:#d7e0e9;
    --muted:#95a5b5;
    --line:#2b3743;
    --control-surface:#171e26;
    --control-surface-hover:#202a34;
    --control-border:#394754;
    --control-border-hover:#607b96;
    --control-focus:#78aee3;
    --control-focus-ring:rgba(120,174,227,.22);
    --scroll-track:#11171d;
    --scroll-thumb:#4b5a69;
    --scroll-thumb-hover:#677b8f;
    --danger-bg:#321d20;
    --danger:#f29a94;
    --ok:#75d6a4;
    --warn:#e4c278;
    --ui-text-strong:#e0e7ee;
    --ui-text-main:#cdd8e3;
    --ui-text-muted:#96a6b6;
    --ui-text-faint:#7d8e9f;
    --ui-surface:#151b22;
    --ui-surface-soft:#1b232c;
    --ui-border:#2b3743;
    --ui-hover:#1e2832;
    --dashboard-number:#cbd8e5;
    --dashboard-label:#94a6b7;
    --dashboard-meta:#8ea1b3;
    --dashboard-subtitle:#a9bac9;
    --chart-track:#26323e;
    --chart-number:#a8bacb;
    --status-up-text:#75d6a4;
    --status-up-bg:#183025;
    --status-down-text:#f29a94;
    --status-down-bg:#351f22;
    --status-warn-text:#e4c278;
    --status-warn-bg:#332b18;
    --status-unknown-text:#9caaba;
    --status-unknown-bg:#242d36;
    --tone-soft:color-mix(in srgb,var(--primary) 14%,var(--panel2));
    --tone-text:color-mix(in srgb,var(--primary) 55%,#d9e5f0);
    color-scheme:dark;
  }
}

/* Typography hierarchy: strong text is readable without becoming pure white. */
.modal-head h2,.section-title-row h2,.section-title-row h3,.panel-title-row h2,.panel-title-row h3,.panel-block h3,.admin-section-head h3,.dashboard-block h3,.manage-main strong,.library-row .library-main strong,.status-detail-title strong,.auth-card h1{color:var(--ui-text-strong)!important}
.muted,.field-help,.manage-sub,.library-row .library-main span,.visit-log-agent,.site-last-opened,.site-url-row,.site-card .site-description,.dashboard-head p,.dashboard-block p,.panel-title-row p,.admin-section-copy p{color:var(--ui-text-muted)!important}
.eyebrow,.dashboard-subtitle,.visit-log-columns,.drag-handle,footer{color:var(--ui-text-faint)!important}
label,.field>label,.checkbox-row label,.checkbox-inline,.checkbox-label{color:color-mix(in srgb,var(--ui-text-strong) 88%,var(--ui-text-muted))!important}

/* Dashboard: remove legacy light-theme fixed colors and normalize all numbers. */
.dashboard-panel{background:linear-gradient(145deg,var(--ui-surface-soft),var(--ui-surface))!important;border-color:var(--ui-border)!important;box-shadow:0 12px 34px rgba(0,0,0,.16)}
.dashboard-head{border-color:var(--ui-border)!important}
.dashboard-metric,.dashboard-block,.status-summary-card,.status-detail-row{background:var(--ui-surface)!important;border-color:var(--ui-border)!important;color:var(--ui-text-main)!important}
.dashboard-metric span,.status-summary-card span{color:var(--dashboard-label)!important}
.dashboard-metric strong,.metric strong{color:var(--dashboard-number)!important;font-weight:720}
.dashboard-row{border-color:var(--ui-border)!important;color:var(--ui-text-main)!important}
.dashboard-row strong{color:var(--ui-text-main)!important;font-weight:650}
.dashboard-row span,.usage-bar-row{color:var(--dashboard-meta)!important}
.dashboard-subtitle{color:var(--dashboard-subtitle)!important}
.usage-bar-row strong{color:var(--chart-number)!important;font-weight:650}
.usage-bar{background:var(--chart-track)!important}
.usage-bar i{background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 62%,#7aaee3),color-mix(in srgb,var(--primary) 42%,#9ec5e8))!important}

/* Status colors use softer dark-theme tints with enough contrast. */
.status-summary-card.up strong,.history-state.up,.site-status.up{color:var(--status-up-text)!important}
.status-summary-card.down strong,.history-state.down,.site-status.down{color:var(--status-down-text)!important}
.status-summary-card.error strong,.history-state.error{color:var(--status-warn-text)!important}
.status-summary-card.unknown strong,.history-state.unknown{color:var(--status-unknown-text)!important}
.status.on{background:var(--status-up-bg)!important;color:var(--status-up-text)!important}
.status.off{background:var(--status-down-bg)!important;color:var(--status-down-text)!important}
.status.warn{background:var(--status-warn-bg)!important;color:var(--status-warn-text)!important;border-color:color-mix(in srgb,var(--status-warn-text) 34%,var(--ui-border))!important}
.status.neutral{background:var(--status-unknown-bg)!important;color:var(--status-unknown-text)!important}
.history-row{color:var(--dashboard-meta)!important;border-color:var(--ui-border)!important}
.status-issue{background:var(--status-down-bg)!important;border-color:color-mix(in srgb,var(--status-down-text) 28%,var(--ui-border))!important;color:var(--status-down-text)!important}
.status-issue span{color:color-mix(in srgb,var(--status-down-text) 65%,var(--ui-text-muted))!important}

/* Controls and badges follow the same palette; selected Bootstrap tone remains recognizable. */
.btn.primary,.icon-btn.text-btn.active,.pill.active{color:var(--primary-contrast)!important}
:root[data-theme="dark"] .btn.primary,:root[data-theme="dark"] .icon-btn.text-btn.active,:root[data-theme="dark"] .pill.active{border-color:color-mix(in srgb,var(--primary) 66%,#aab6c2)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 30%,transparent)}
.tag-more,.featured-badge,.visibility-group-chip.selected,.user-group-option.selected,.custom-select-option.selected{background:var(--tone-soft)!important;color:var(--tone-text)!important;border-color:color-mix(in srgb,var(--tone-text) 24%,var(--ui-border))!important}
.privacy-badge{background:var(--status-warn-bg)!important;color:var(--status-warn-text)!important}
.empty-state,.empty-mini{background:color-mix(in srgb,var(--ui-surface-soft) 88%,var(--ui-surface))!important;border-color:color-mix(in srgb,var(--ui-border) 84%,var(--ui-text-faint))!important;color:var(--ui-text-muted)!important}
.empty-state strong,.empty-mini strong{color:var(--ui-text-strong)!important}
.audit-time,.visit-log-row time{color:var(--ui-text-faint)!important;background:transparent!important}
code{color:var(--ui-text-main)}

/* Explicit dark surface cleanup for components that historically carried light backgrounds. */
:root[data-theme="dark"] body{background-image:radial-gradient(circle at 15% -10%,rgba(79,128,178,.12) 0,transparent 33%),var(--portal-background-image,none),linear-gradient(var(--bg),var(--bg))}
:root[data-theme="dark"] .user-chip,
:root[data-theme="dark"] .manage-row,
:root[data-theme="dark"] .library-row,
:root[data-theme="dark"] .tag-manage-row,
:root[data-theme="dark"] .tag-combobox,
:root[data-theme="dark"] .custom-select-menu,
:root[data-theme="dark"] .tag-suggestions,
:root[data-theme="dark"] .visibility-suggestions,
:root[data-theme="dark"] .emoji-picker,
:root[data-theme="dark"] .restore-preview,
:root[data-theme="dark"] .quick-create,
:root[data-theme="dark"] .bulk-bar,
:root[data-theme="dark"] .visit-log-toolbar,
:root[data-theme="dark"] .homepage-section-toggles{background:var(--ui-surface)!important;border-color:var(--ui-border)!important;color:var(--ui-text-main)!important}
:root[data-theme="dark"] .panel-block.soft{background:var(--ui-surface-soft)!important}
:root[data-theme="dark"] .tab{color:var(--ui-text-muted)!important}
:root[data-theme="dark"] .tab:hover{background:var(--ui-hover)!important;color:var(--ui-text-strong)!important}
:root[data-theme="dark"] .tab.active{color:var(--tone-text)!important}
:root[data-theme="dark"] input::placeholder,:root[data-theme="dark"] textarea::placeholder{color:var(--ui-text-faint)!important}
:root[data-theme="dark"] .site-card-actions{background:color-mix(in srgb,var(--ui-surface) 90%,transparent)!important;border-color:var(--ui-border)!important;box-shadow:0 4px 12px rgba(0,0,0,.18)}
:root[data-theme="dark"] .site-card-action{color:var(--ui-text-muted)!important}
:root[data-theme="dark"] .site-card-action.favorite.active{color:#e5bd62!important}
:root[data-theme="dark"] .site-card-action:hover,:root[data-theme="dark"] .site-card-action:focus-visible{background:var(--ui-hover)!important;color:var(--tone-text)!important}
:root[data-theme="dark"] hr,:root[data-theme="dark"] .soft-separator{border-color:var(--ui-border)!important}

@media(prefers-color-scheme:dark){
  :root[data-theme="auto"] body{background-image:radial-gradient(circle at 15% -10%,rgba(79,128,178,.12) 0,transparent 33%),var(--portal-background-image,none),linear-gradient(var(--bg),var(--bg))}
  :root[data-theme="auto"] .btn.primary,:root[data-theme="auto"] .icon-btn.text-btn.active,:root[data-theme="auto"] .pill.active{border-color:color-mix(in srgb,var(--primary) 66%,#aab6c2)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 30%,transparent)}
  :root[data-theme="auto"] .user-chip,:root[data-theme="auto"] .manage-row,:root[data-theme="auto"] .library-row,:root[data-theme="auto"] .tag-manage-row,:root[data-theme="auto"] .tag-combobox,:root[data-theme="auto"] .custom-select-menu,:root[data-theme="auto"] .tag-suggestions,:root[data-theme="auto"] .visibility-suggestions,:root[data-theme="auto"] .emoji-picker,:root[data-theme="auto"] .restore-preview,:root[data-theme="auto"] .quick-create,:root[data-theme="auto"] .bulk-bar,:root[data-theme="auto"] .visit-log-toolbar,:root[data-theme="auto"] .homepage-section-toggles{background:var(--ui-surface)!important;border-color:var(--ui-border)!important;color:var(--ui-text-main)!important}
  :root[data-theme="auto"] .panel-block.soft{background:var(--ui-surface-soft)!important}
  :root[data-theme="auto"] .tab{color:var(--ui-text-muted)!important}
  :root[data-theme="auto"] .tab:hover{background:var(--ui-hover)!important;color:var(--ui-text-strong)!important}
  :root[data-theme="auto"] .tab.active{color:var(--tone-text)!important}
  :root[data-theme="auto"] input::placeholder,:root[data-theme="auto"] textarea::placeholder{color:var(--ui-text-faint)!important}
  :root[data-theme="auto"] .site-card-actions{background:color-mix(in srgb,var(--ui-surface) 90%,transparent)!important;border-color:var(--ui-border)!important;box-shadow:0 4px 12px rgba(0,0,0,.18)}
  :root[data-theme="auto"] .site-card-action{color:var(--ui-text-muted)!important}
  :root[data-theme="auto"] .site-card-action.favorite.active{color:#e5bd62!important}
  :root[data-theme="auto"] .site-card-action:hover,:root[data-theme="auto"] .site-card-action:focus-visible{background:var(--ui-hover)!important;color:var(--tone-text)!important}
  :root[data-theme="auto"] hr,:root[data-theme="auto"] .soft-separator{border-color:var(--ui-border)!important}
}
.site-status.up i{background:var(--status-up-text)!important}.site-status.down i{background:var(--status-down-text)!important}.site-status.unknown i{background:var(--status-unknown-text)!important}
:root[data-theme="dark"] #dashboard-issue-count{color:var(--status-down-text)!important}:root[data-theme="dark"] #dashboard-incident-count,:root[data-theme="dark"] #dashboard-slow-count{color:var(--status-warn-text)!important}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] #dashboard-issue-count{color:var(--status-down-text)!important}:root[data-theme="auto"] #dashboard-incident-count,:root[data-theme="auto"] #dashboard-slow-count{color:var(--status-warn-text)!important}}
/* Dark-mode coverage for pickers, icons and named tag palettes. */
:root[data-theme="dark"] .site-icon,:root[data-theme="dark"] .manage-icon{background:var(--tone-soft)!important;color:var(--tone-text)!important}
:root[data-theme="dark"] .visibility-add-row:hover,:root[data-theme="dark"] .visibility-add-row:focus-visible,
:root[data-theme="dark"] .visibility-selected-row>button:hover,
:root[data-theme="dark"] .multi-picker-option:hover,:root[data-theme="dark"] .multi-picker-option:focus-visible,
:root[data-theme="dark"] .multi-picker-option.selected,
:root[data-theme="dark"] .multi-picker-chip,
:root[data-theme="dark"] .theme-toggle[aria-pressed="true"]{background:var(--tone-soft)!important;color:var(--tone-text)!important;border-color:color-mix(in srgb,var(--tone-text) 28%,var(--ui-border))!important}
:root[data-theme="dark"] .visibility-type-badge{background:var(--tone-soft)!important;color:var(--tone-text)!important}
:root[data-theme="dark"] .visibility-type-badge.user{background:#242d36!important;color:#aebdcb!important}
:root[data-theme="dark"] .multi-picker-chevron{border-color:#8298ac!important}
:root[data-theme="dark"] .tag-blue,:root[data-theme="dark"] .tag-editor-chip.tag-blue,:root[data-theme="dark"] .tag-library-pill.tag-blue{background:#172a3d!important;border-color:#2d4b68!important;color:#86b8e6!important}
:root[data-theme="dark"] .tag-cyan,:root[data-theme="dark"] .tag-editor-chip.tag-cyan,:root[data-theme="dark"] .tag-library-pill.tag-cyan{background:#153036!important;border-color:#2b555e!important;color:#7ccdd8!important}
:root[data-theme="dark"] .tag-green,:root[data-theme="dark"] .tag-editor-chip.tag-green,:root[data-theme="dark"] .tag-library-pill.tag-green{background:#183025!important;border-color:#2e5741!important;color:#79d4a1!important}
:root[data-theme="dark"] .tag-amber,:root[data-theme="dark"] .tag-editor-chip.tag-amber,:root[data-theme="dark"] .tag-library-pill.tag-amber{background:#322b1b!important;border-color:#5a4b28!important;color:#e0c175!important}
:root[data-theme="dark"] .tag-red,:root[data-theme="dark"] .tag-editor-chip.tag-red,:root[data-theme="dark"] .tag-library-pill.tag-red{background:#351f22!important;border-color:#60363a!important;color:#ef9a94!important}
:root[data-theme="dark"] .tag-purple,:root[data-theme="dark"] .tag-editor-chip.tag-purple,:root[data-theme="dark"] .tag-library-pill.tag-purple{background:#29243a!important;border-color:#483d68!important;color:#b9a7e5!important}
:root[data-theme="dark"] .tag-slate,:root[data-theme="dark"] .tag-editor-chip.tag-slate,:root[data-theme="dark"] .tag-library-pill.tag-slate{background:#242c35!important;border-color:#3c4a58!important;color:#aab9c7!important}
:root[data-theme="dark"] .tag-rose,:root[data-theme="dark"] .tag-editor-chip.tag-rose,:root[data-theme="dark"] .tag-library-pill.tag-rose{background:#34222b!important;border-color:#5c3947!important;color:#e9a0b9!important}
@media(prefers-color-scheme:dark){
  :root[data-theme="auto"] .site-icon,:root[data-theme="auto"] .manage-icon{background:var(--tone-soft)!important;color:var(--tone-text)!important}
  :root[data-theme="auto"] .visibility-add-row:hover,:root[data-theme="auto"] .visibility-add-row:focus-visible,:root[data-theme="auto"] .visibility-selected-row>button:hover,:root[data-theme="auto"] .multi-picker-option:hover,:root[data-theme="auto"] .multi-picker-option:focus-visible,:root[data-theme="auto"] .multi-picker-option.selected,:root[data-theme="auto"] .multi-picker-chip,:root[data-theme="auto"] .theme-toggle[aria-pressed="true"]{background:var(--tone-soft)!important;color:var(--tone-text)!important;border-color:color-mix(in srgb,var(--tone-text) 28%,var(--ui-border))!important}
  :root[data-theme="auto"] .visibility-type-badge{background:var(--tone-soft)!important;color:var(--tone-text)!important}
  :root[data-theme="auto"] .visibility-type-badge.user{background:#242d36!important;color:#aebdcb!important}
  :root[data-theme="auto"] .multi-picker-chevron{border-color:#8298ac!important}
  :root[data-theme="auto"] .tag-blue,:root[data-theme="auto"] .tag-editor-chip.tag-blue,:root[data-theme="auto"] .tag-library-pill.tag-blue{background:#172a3d!important;border-color:#2d4b68!important;color:#86b8e6!important}
  :root[data-theme="auto"] .tag-cyan,:root[data-theme="auto"] .tag-editor-chip.tag-cyan,:root[data-theme="auto"] .tag-library-pill.tag-cyan{background:#153036!important;border-color:#2b555e!important;color:#7ccdd8!important}
  :root[data-theme="auto"] .tag-green,:root[data-theme="auto"] .tag-editor-chip.tag-green,:root[data-theme="auto"] .tag-library-pill.tag-green{background:#183025!important;border-color:#2e5741!important;color:#79d4a1!important}
  :root[data-theme="auto"] .tag-amber,:root[data-theme="auto"] .tag-editor-chip.tag-amber,:root[data-theme="auto"] .tag-library-pill.tag-amber{background:#322b1b!important;border-color:#5a4b28!important;color:#e0c175!important}
  :root[data-theme="auto"] .tag-red,:root[data-theme="auto"] .tag-editor-chip.tag-red,:root[data-theme="auto"] .tag-library-pill.tag-red{background:#351f22!important;border-color:#60363a!important;color:#ef9a94!important}
  :root[data-theme="auto"] .tag-purple,:root[data-theme="auto"] .tag-editor-chip.tag-purple,:root[data-theme="auto"] .tag-library-pill.tag-purple{background:#29243a!important;border-color:#483d68!important;color:#b9a7e5!important}
  :root[data-theme="auto"] .tag-slate,:root[data-theme="auto"] .tag-editor-chip.tag-slate,:root[data-theme="auto"] .tag-library-pill.tag-slate{background:#242c35!important;border-color:#3c4a58!important;color:#aab9c7!important}
  :root[data-theme="auto"] .tag-rose,:root[data-theme="auto"] .tag-editor-chip.tag-rose,:root[data-theme="auto"] .tag-library-pill.tag-rose{background:#34222b!important;border-color:#5c3947!important;color:#e9a0b9!important}
}

/* ToreyOne 1.8.0 — theme-token audit: every accent-bearing component follows the selected site tone. */
:root{
  --theme-accent:var(--primary);
  --theme-accent-solid:var(--primary-solid-light,var(--primary));
  --theme-accent-hover:var(--primary-hover-light,var(--primary2));
  --theme-accent-text:var(--primary-text-light,var(--primary));
  --theme-accent-soft:var(--primary-soft-light,var(--primary-soft));
  --theme-accent-border:var(--primary-border-light,var(--primary));
  --theme-accent-contrast:var(--primary-contrast,#fff);
  --theme-focus:var(--theme-accent-text);
  --theme-focus-ring:color-mix(in srgb,var(--theme-focus) 22%,transparent);
  --theme-glow:color-mix(in srgb,var(--theme-accent) 14%,transparent);
  --theme-glow-soft:color-mix(in srgb,var(--theme-accent) 8%,transparent);
  --tone-soft:var(--theme-accent-soft);
  --tone-text:var(--theme-accent-text);
  --control-focus:var(--theme-focus);
  --control-focus-ring:var(--theme-focus-ring);
  --control-border-hover:color-mix(in srgb,var(--theme-accent-text) 38%,var(--line));
  --dashboard-number:var(--theme-accent-text);
  --dashboard-subtitle:color-mix(in srgb,var(--theme-accent-text) 52%,var(--muted));
  --chart-number:color-mix(in srgb,var(--theme-accent-text) 72%,var(--ink));
}
:root[data-theme="dark"]{
  --theme-accent-solid:var(--primary-solid-dark,var(--primary));
  --theme-accent-hover:var(--primary-hover-dark,var(--primary));
  --theme-accent-text:var(--primary-text-dark,var(--primary));
  --theme-accent-soft:var(--primary-soft-dark,var(--panel2));
  --theme-accent-border:var(--primary-border-dark,var(--line));
  --theme-glow:color-mix(in srgb,var(--theme-accent) 18%,transparent);
  --theme-glow-soft:color-mix(in srgb,var(--theme-accent) 11%,transparent);
  --tone-soft:var(--theme-accent-soft);
  --tone-text:var(--theme-accent-text);
  --control-focus:var(--theme-accent-text);
  --control-focus-ring:color-mix(in srgb,var(--theme-accent-text) 26%,transparent);
  --control-border-hover:color-mix(in srgb,var(--theme-accent-text) 42%,var(--line));
  --dashboard-number:var(--theme-accent-text);
  --dashboard-subtitle:color-mix(in srgb,var(--theme-accent-text) 48%,var(--muted));
  --chart-number:color-mix(in srgb,var(--theme-accent-text) 76%,var(--ui-text-main));
}
@media(prefers-color-scheme:dark){
  :root[data-theme="auto"]{
    --theme-accent-solid:var(--primary-solid-dark,var(--primary));
  --theme-accent-hover:var(--primary-hover-dark,var(--primary));
    --theme-accent-text:var(--primary-text-dark,var(--primary));
    --theme-accent-soft:var(--primary-soft-dark,var(--panel2));
    --theme-accent-border:var(--primary-border-dark,var(--line));
    --theme-glow:color-mix(in srgb,var(--theme-accent) 18%,transparent);
    --theme-glow-soft:color-mix(in srgb,var(--theme-accent) 11%,transparent);
    --tone-soft:var(--theme-accent-soft);
    --tone-text:var(--theme-accent-text);
    --control-focus:var(--theme-accent-text);
    --control-focus-ring:color-mix(in srgb,var(--theme-accent-text) 26%,transparent);
    --control-border-hover:color-mix(in srgb,var(--theme-accent-text) 42%,var(--line));
    --dashboard-number:var(--theme-accent-text);
    --dashboard-subtitle:color-mix(in srgb,var(--theme-accent-text) 48%,var(--muted));
    --chart-number:color-mix(in srgb,var(--theme-accent-text) 76%,var(--ui-text-main));
  }
}

/* Global accent surfaces. */
body{background-image:radial-gradient(circle at 15% -10%,var(--theme-glow) 0,transparent 33%),var(--portal-background-image,none),linear-gradient(var(--bg),var(--bg))!important}
.brand-mark{background:linear-gradient(145deg,var(--theme-accent-hover),var(--theme-accent-solid))!important;color:var(--theme-accent-contrast)!important;box-shadow:0 9px 25px var(--theme-glow)!important}
.btn.primary{background:var(--theme-accent-solid)!important;border-color:var(--theme-accent-solid)!important;color:var(--theme-accent-contrast)!important}
.btn.primary:hover,.btn.primary:focus-visible{background:var(--theme-accent-hover)!important;border-color:var(--theme-accent-hover)!important;color:var(--theme-accent-contrast)!important}
.icon-btn.text-btn.active,.pill.active{background:var(--theme-accent-solid)!important;border-color:var(--theme-accent-solid)!important;color:var(--theme-accent-contrast)!important}
.tab.active{color:var(--theme-accent-text)!important;border-color:var(--theme-accent-text)!important}
.tab:hover,.section-toggle:hover,.drag-handle:hover,.icon-action:hover,.emoji-picker-toggle:hover{color:var(--theme-accent-text)!important;background:var(--theme-accent-soft)!important;border-color:var(--theme-accent-border)!important}
input[type="checkbox"],input[type="radio"]{accent-color:var(--theme-accent)!important}
input[type="checkbox"]:checked,input[type="radio"]:checked{border-color:var(--theme-accent)!important;background:var(--theme-accent)!important}
input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus,.custom-select-trigger:focus-visible,.custom-select.open .custom-select-trigger,.search-box:focus-within,.tag-combobox:focus-within,.multi-picker.open .multi-picker-trigger,.multi-picker-trigger:focus-visible{border-color:var(--theme-focus)!important;box-shadow:0 0 0 4px var(--theme-focus-ring)!important}

/* Theme-aware neutral controls: selected/hover states carry the chosen tone. */
.site-icon,.manage-icon{background:var(--theme-accent-soft)!important;color:var(--theme-accent-text)!important}
.featured-badge,.tag-more{background:var(--theme-accent-soft)!important;color:var(--theme-accent-text)!important;border-color:var(--theme-accent-border)!important}
.visibility-group-chip.selected,.user-group-option.selected,.visibility-add-row:hover,.visibility-add-row:focus-visible,.visibility-selected-row>button:hover,.multi-picker-option:hover,.multi-picker-option:focus-visible,.multi-picker-option.selected,.multi-picker-chip,.custom-select-option:hover,.custom-select-option:focus-visible,.custom-select-option.selected,.theme-toggle[aria-pressed="true"]{background:var(--theme-accent-soft)!important;color:var(--theme-accent-text)!important;border-color:var(--theme-accent-border)!important}
.visibility-suggestions button:hover,.visibility-suggestions button:focus-visible,.tag-suggestion:hover,.tag-suggestion:focus,.emoji-choice:hover,.emoji-choice:focus{background:var(--theme-accent-soft)!important;color:var(--theme-accent-text)!important;border-color:var(--theme-accent-border)!important}
.visibility-type-badge:not(.user),.visibility-type-badge.admin{background:var(--theme-accent-solid)!important;color:var(--theme-accent-contrast)!important}
.site-card-action.favorite:hover,.site-card-action.favorite:focus-visible,.site-card-action.refresh-status:hover,.site-card-action.refresh-status:focus-visible,.site-card-action.edit-shortcut:hover,.site-card-action.edit-shortcut:focus-visible{background:var(--theme-accent-soft)!important;color:var(--theme-accent-text)!important}

/* Buttons, upload controls and progress indicators no longer retain the old ToreyOne blue. */
.btn.secondary,input[type="file"]::file-selector-button{background:var(--theme-accent-soft)!important;border-color:var(--theme-accent-border)!important;color:var(--theme-accent-text)!important}
.btn.secondary:hover,input[type="file"]::file-selector-button:hover{background:color-mix(in srgb,var(--theme-accent-soft) 76%,var(--theme-accent-border))!important;border-color:var(--theme-accent-text)!important;color:var(--theme-accent-text)!important}
.manual-status-spinner{border-color:color-mix(in srgb,var(--theme-accent-text) 22%,var(--line))!important;border-top-color:var(--theme-accent-text)!important}
.usage-bar i{background:linear-gradient(90deg,var(--theme-accent),var(--theme-accent-hover))!important}

/* Dashboard uses the chosen tone for emphasis, while semantic health colors remain semantic. */
.dashboard-metric strong,.metric strong{color:var(--dashboard-number)!important}
.dashboard-subtitle{color:var(--dashboard-subtitle)!important}
.usage-bar-row strong{color:var(--chart-number)!important}
.status-summary-card:not(.up):not(.down):not(.error):not(.unknown) strong{color:var(--dashboard-number)!important}
.dashboard-row a,.dashboard-row button:not(.btn),.status-detail-title a{color:var(--theme-accent-text)!important}

/* Toasts and generic actionable emphasis follow the selected tone; danger/warning retain semantic colors. */
.toast:not(.danger),.toast.ok{background:var(--theme-accent-solid)!important;color:var(--theme-accent-contrast)!important;box-shadow:0 14px 40px var(--theme-glow)!important}
.toast:not(.danger) .toast-action,.toast.ok .toast-action{border-color:color-mix(in srgb,var(--theme-accent-contrast) 42%,transparent)!important;background:color-mix(in srgb,var(--theme-accent-contrast) 13%,transparent)!important;color:var(--theme-accent-contrast)!important}

/* Keep user-selected tag colors and semantic status colors independent from the website tone by design. */
/* Specificity guard: supersede legacy dark-mode !important rules with theme-derived values. */
:root[data-theme="dark"] .btn.primary,
:root[data-theme="dark"] .icon-btn.text-btn.active,
:root[data-theme="dark"] .pill.active{background:var(--theme-accent-solid)!important;border-color:var(--theme-accent-solid)!important;color:var(--theme-accent-contrast)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--theme-accent-border) 58%,transparent)!important}
:root[data-theme="dark"] .btn.primary:hover,:root[data-theme="dark"] .btn.primary:focus-visible{background:var(--theme-accent-hover)!important;border-color:var(--theme-accent-hover)!important}
:root[data-theme="dark"] .tab.active{color:var(--theme-accent-text)!important;border-color:var(--theme-accent-text)!important}
:root[data-theme="dark"] .tab:hover,
:root[data-theme="dark"] .custom-select-option:hover,:root[data-theme="dark"] .custom-select-option:focus-visible,:root[data-theme="dark"] .custom-select-option.selected,
:root[data-theme="dark"] .visibility-suggestions button:hover,:root[data-theme="dark"] .visibility-suggestions button:focus-visible,
:root[data-theme="dark"] .site-card-action:hover,:root[data-theme="dark"] .site-card-action:focus-visible{background:var(--theme-accent-soft)!important;color:var(--theme-accent-text)!important;border-color:var(--theme-accent-border)!important}
:root[data-theme="dark"] input[type="file"]::file-selector-button,
:root[data-theme="dark"] .btn.secondary{background:var(--theme-accent-soft)!important;border-color:var(--theme-accent-border)!important;color:var(--theme-accent-text)!important}
:root[data-theme="dark"] input[type="file"]::file-selector-button:hover,
:root[data-theme="dark"] .btn.secondary:hover{background:color-mix(in srgb,var(--theme-accent-soft) 76%,var(--theme-accent-border))!important;border-color:var(--theme-accent-text)!important;color:var(--theme-accent-text)!important}
@media(prefers-color-scheme:dark){
  :root[data-theme="auto"] .btn.primary,
  :root[data-theme="auto"] .icon-btn.text-btn.active,
  :root[data-theme="auto"] .pill.active{background:var(--theme-accent-solid)!important;border-color:var(--theme-accent-solid)!important;color:var(--theme-accent-contrast)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--theme-accent-border) 58%,transparent)!important}
  :root[data-theme="auto"] .btn.primary:hover,:root[data-theme="auto"] .btn.primary:focus-visible{background:var(--theme-accent-hover)!important;border-color:var(--theme-accent-hover)!important}
  :root[data-theme="auto"] .tab.active{color:var(--theme-accent-text)!important;border-color:var(--theme-accent-text)!important}
  :root[data-theme="auto"] .tab:hover,
  :root[data-theme="auto"] .custom-select-option:hover,:root[data-theme="auto"] .custom-select-option:focus-visible,:root[data-theme="auto"] .custom-select-option.selected,
  :root[data-theme="auto"] .visibility-suggestions button:hover,:root[data-theme="auto"] .visibility-suggestions button:focus-visible,
  :root[data-theme="auto"] .site-card-action:hover,:root[data-theme="auto"] .site-card-action:focus-visible{background:var(--theme-accent-soft)!important;color:var(--theme-accent-text)!important;border-color:var(--theme-accent-border)!important}
  :root[data-theme="auto"] input[type="file"]::file-selector-button,
  :root[data-theme="auto"] .btn.secondary{background:var(--theme-accent-soft)!important;border-color:var(--theme-accent-border)!important;color:var(--theme-accent-text)!important}
  :root[data-theme="auto"] input[type="file"]::file-selector-button:hover,
  :root[data-theme="auto"] .btn.secondary:hover{background:color-mix(in srgb,var(--theme-accent-soft) 76%,var(--theme-accent-border))!important;border-color:var(--theme-accent-text)!important;color:var(--theme-accent-text)!important}
}

/* ToreyOne 1.8.1 — CSP-safe tone swatches, balanced settings rows and shorter modal scroll tracks. */
.tone-color-custom-select .tone-swatch{background-image:none!important;background-color:transparent!important}
.tone-color-custom-select .tone-swatch.tone-primary{background-color:#0d6efd!important}
.tone-color-custom-select .tone-swatch.tone-secondary{background-color:#6c757d!important}
.tone-color-custom-select .tone-swatch.tone-success{background-color:#198754!important}
.tone-color-custom-select .tone-swatch.tone-danger{background-color:#dc3545!important}
.tone-color-custom-select .tone-swatch.tone-warning{background-color:#ffc107!important}
.tone-color-custom-select .tone-swatch.tone-info{background-color:#0dcaf0!important}
.tone-color-custom-select .tone-swatch.tone-light{background-color:#f8f9fa!important;border-color:#7d8996!important;box-shadow:0 0 0 1px rgba(34,48,62,.14),inset 0 0 0 1px rgba(255,255,255,.9)!important}
.tone-color-custom-select .tone-swatch.tone-dark{background-color:#212529!important}

.settings-paired-row{align-items:stretch}
.settings-paired-card{box-sizing:border-box;min-width:0;min-height:112px;margin:0!important}
.settings-tone-card{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-control,10px);background:var(--panel2)}
.settings-tone-card>.custom-select{margin-top:4px}
.settings-tone-card>.field-help{margin-top:auto;padding-top:4px}
.homepage-section-toggles.settings-paired-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto 1fr;align-content:start;align-items:center;gap:12px 8px;padding:10px 12px}
.homepage-section-toggles.settings-paired-card legend{grid-column:1/-1;float:none;width:auto;margin:0;padding:0 2px;color:var(--ink);font-size:12px;font-weight:800}
.homepage-section-toggles.settings-paired-card label{display:flex;min-width:0;align-items:center;justify-content:flex-start;gap:8px;margin:0;white-space:nowrap}
.homepage-section-toggles.settings-paired-card input{flex:0 0 auto}

/* Native modal scrollbar keeps scrolling behaviour, but its usable track is pulled well inside the rounded card. */
.modal-card::-webkit-scrollbar{width:10px;height:10px}
.modal-card::-webkit-scrollbar-track{margin-top:52px!important;margin-bottom:52px!important;background:transparent!important;border-radius:999px!important}
.modal-card::-webkit-scrollbar-track-piece:start{margin-top:52px!important}
.modal-card::-webkit-scrollbar-track-piece:end{margin-bottom:52px!important}
.modal-card::-webkit-scrollbar-thumb{min-height:44px;border:2px solid transparent;border-radius:999px;background:var(--scroll-thumb)!important;background-clip:padding-box!important}
.modal-card::-webkit-scrollbar-button,.modal-card::-webkit-scrollbar-button:single-button,.modal-card::-webkit-scrollbar-button:start,.modal-card::-webkit-scrollbar-button:end{display:none!important;width:0!important;height:0!important;min-width:0!important;min-height:0!important;background:transparent!important}
.modal-card::-webkit-scrollbar-corner{background:transparent!important}

.preference-toggle-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:20px!important;width:100%;padding:4px 0!important}
.preference-toggle-row label{flex:0 0 auto!important;min-width:max-content!important;margin:0!important;white-space:nowrap!important}

:root[data-theme="dark"] .settings-tone-card{background:var(--ui-surface)!important;border-color:var(--ui-border)!important}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .settings-tone-card{background:var(--ui-surface)!important;border-color:var(--ui-border)!important}}
@media(max-width:820px){
  .settings-paired-card{min-height:0}
  .homepage-section-toggles.settings-paired-card{grid-template-columns:1fr}
  .homepage-section-toggles.settings-paired-card legend{grid-column:1}
  .modal-card::-webkit-scrollbar-track{margin-top:40px!important;margin-bottom:40px!important}
  .modal-card::-webkit-scrollbar-track-piece:start{margin-top:40px!important}
  .modal-card::-webkit-scrollbar-track-piece:end{margin-bottom:40px!important}
  .preference-toggle-row{display:grid!important;grid-template-columns:max-content max-content!important;justify-content:space-between!important;gap:12px var(--space-5)!important}
}
@media(max-width:520px){.preference-toggle-row{grid-template-columns:1fr!important;justify-content:stretch!important}.preference-toggle-row label{min-width:0!important}}
/* Track-piece fallback for Chromium variants that ignore track margins at the rounded edge. */
.modal-card::-webkit-scrollbar-track-piece{margin-block:52px!important;background:transparent!important}
@media(max-width:820px){.modal-card::-webkit-scrollbar-track-piece{margin-block:40px!important}}

/* ToreyOne 1.8.4 — keep the site settings control visually identical in size to the favorite control. */
.site-card-action.favorite,
.site-card-action.refresh-status,
.site-card-action.edit-shortcut{
  width:25px!important;
  height:25px!important;
  min-width:25px!important;
  min-height:25px!important;
  padding:0!important;
  border-radius:7px!important;
}
.site-settings-glyph{
  width:13px!important;
  height:13px!important;
}
.site-settings-glyph svg{
  width:13px!important;
  height:13px!important;
}
@media(max-width:600px){
  .site-card-action.favorite,
  .site-card-action.refresh-status,
  .site-card-action.edit-shortcut{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    min-height:28px!important;
  }
  .site-settings-glyph,
  .site-settings-glyph svg{
    width:14px!important;
    height:14px!important;
  }
}


/* ToreyOne 1.8.5 — keep last visit information on its own row below the domain. */
.site-url-row{display:block!important;min-width:0;min-height:20px;line-height:20px;overflow:hidden}
.site-last-opened-row{display:flex!important;min-width:0;min-height:19px;align-items:center;margin-top:4px;color:var(--muted);font-size:10.5px;line-height:19px;overflow:hidden}
.site-last-opened{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}
.site-card{min-height:184px}
.site-card.mini,.compact-mode .site-card{min-height:172px}
@media(max-width:699px){.site-card,.site-card.mini,.compact-mode .site-card{min-height:176px}}
.site-last-opened-row{overflow:visible!important}
.site-last-opened{max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;overflow-wrap:anywhere}

/* ToreyOne 1.8.6 — homepage card rhythm, equal-height alignment and tag overflow menu. */
.site-grid{align-items:stretch}
.site-card{height:100%;min-height:188px;overflow:visible}
.site-card .site-link{flex:1 1 auto}
.site-card .site-copy{height:100%}
.site-card .site-title-line{grid-template-columns:minmax(0,1fr) minmax(92px,118px)}
.site-title-status{width:100%;min-width:92px;max-width:118px;justify-content:flex-end;text-align:right}
.site-title-status .site-status{justify-content:flex-end}
.site-card .site-description.is-empty{color:color-mix(in srgb,var(--ui-text-muted) 72%,transparent)!important;font-size:11.5px;font-style:normal}
.site-url-row{font-size:11.5px;font-weight:600}
.site-last-opened-row{font-size:10.5px;opacity:.88}
.site-card-footer{margin-top:auto;position:relative;overflow:visible}
.site-card-footer .tags{overflow:visible;position:relative;z-index:4}
.tag-overflow{position:relative;display:inline-flex;flex:0 0 auto;align-items:center}
.tag-more{appearance:none;border:1px solid var(--theme-accent-border)!important;cursor:pointer;font:inherit;line-height:1.2}
.tag-more:hover,.tag-more:focus-visible,.tag-overflow.open .tag-more{background:var(--theme-accent-hover)!important;color:var(--theme-accent-text)!important;outline:none;box-shadow:0 0 0 3px var(--theme-focus-ring)}
.tag-overflow-menu{position:absolute;left:0;bottom:calc(100% + 7px);z-index:30;display:flex;visibility:hidden;min-width:150px;max-width:240px;max-height:190px;padding:9px;gap:8px;flex-wrap:wrap;align-content:flex-start;overflow:auto;opacity:0;pointer-events:none;transform:translateY(4px);border:1px solid var(--ui-border);border-radius:11px;background:var(--ui-surface);box-shadow:0 12px 30px rgba(17,55,91,.17);transition:opacity .14s ease,transform .14s ease,visibility .14s}
.tag-overflow:hover .tag-overflow-menu,.tag-overflow:focus-within .tag-overflow-menu,.tag-overflow.open .tag-overflow-menu{visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)}
.tag-overflow-menu .tag{max-width:210px}
.site-card-actions{align-self:center}
.site-card-action:not(:disabled){transition:background .14s ease,color .14s ease,transform .14s ease}
.site-card-action:not(:disabled):active{transform:scale(.94)}
.site-card-action.refresh-status.is-loading .site-refresh-glyph{animation:site-refresh-spin .75s linear infinite}
@keyframes site-refresh-spin{to{transform:rotate(360deg)}}
.site-card.mini,.compact-mode .site-card{height:100%;min-height:172px}
.compact-mode .site-last-opened-row,.site-card.mini .site-last-opened-row{display:none!important}
@media(max-width:699px){
  .site-card,.site-card.mini,.compact-mode .site-card{height:auto;min-height:180px}
  .site-card .site-title-line{grid-template-columns:minmax(0,1fr) minmax(84px,104px)}
  .site-title-status{min-width:84px;max-width:104px}
  .site-card-footer,.site-card.mini .site-card-footer,.compact-mode .site-card-footer{grid-template-columns:1fr;align-items:start;gap:8px;padding-left:12px}
  .site-card-footer .tags{width:100%;min-height:25px}
  .site-card-actions{justify-self:end}
  .tag-overflow-menu{left:auto;right:0;max-width:min(240px,calc(100vw - 40px))}
}
@media(max-width:420px){
  .site-card .site-title-line{grid-template-columns:minmax(0,1fr) auto}
  .site-title-status{min-width:76px;max-width:92px}
}
:root[data-theme="dark"] .tag-overflow-menu{box-shadow:0 14px 34px rgba(0,0,0,.34)}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .tag-overflow-menu{box-shadow:0 14px 34px rgba(0,0,0,.34)}}

/* ToreyOne 1.8.7 — product-finish pass: consistent forms, modal actions, interaction states and resilient overflow. */
:root{
  --ui-control-radius:10px;
  --ui-action-height:38px;
  --ui-action-height-compact:32px;
  --ui-disabled-opacity:.52;
}

/* One interaction language for actionable controls. */
.btn,.icon-btn,.site-card-action,.pill,.tab,.section-toggle,.theme-toggle,.tag-more,.custom-select-trigger{
  transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .12s ease,opacity .15s ease;
}
.btn:not(:disabled):active,.icon-btn:not(:disabled):active,.pill:not(:disabled):active,.section-toggle:not(:disabled):active,.theme-toggle:not(:disabled):active{transform:translateY(1px)}
button:disabled,.btn:disabled,.icon-btn:disabled,.site-card-action:disabled,.custom-select-trigger[aria-disabled="true"]{opacity:var(--ui-disabled-opacity)!important;cursor:not-allowed!important;filter:saturate(.6)}
button[aria-busy="true"],.btn[aria-busy="true"]{cursor:progress!important}
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--theme-focus)!important;outline-offset:2px}

/* Management forms use the same vertical rhythm and control geometry everywhere. */
.form-grid{column-gap:16px;row-gap:var(--space-5);align-items:start}
.form-grid>label,.form-grid>.field{display:grid;gap:8px;min-width:0;margin:0;font-size:12px;font-weight:700;color:var(--ink)}
.form-grid .field-help,.form-grid label>.field-help{margin-top:0;font-weight:400;line-height:1.55;color:var(--muted)}
.form-grid input:not([type="checkbox"]):not([type="radio"]),.form-grid select,.form-grid .custom-select-trigger{min-height:var(--control-height);border-radius:var(--ui-control-radius)}
.admin-section,.panel-block{min-width:0}
.panel-title-row,.admin-section-head{gap:16px}
.admin-section-copy,.panel-title-row>div{min-width:0}

/* Modal headers and actions remain visually anchored while the middle content scrolls. */
.modal-card{position:relative}
.modal-head{position:sticky;top:-20px;z-index:18;margin:-20px -20px 16px;padding:20px 20px var(--space-5);border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--panel) 82%,color-mix(in srgb,var(--panel) 92%,transparent))!important;backdrop-filter:blur(10px)}
.modal-actions{position:sticky;bottom:-20px;z-index:17;margin:var(--space-5) -20px -20px!important;padding:var(--space-5) 20px 20px!important;border-top:1px solid var(--line);background:color-mix(in srgb,var(--panel) 94%,transparent);backdrop-filter:blur(10px)}
.tabbed-modal>.modal-head{top:0;margin:0}
.tabbed-modal .tab-panel .modal-actions{bottom:0}
#confirm-modal .modal-actions{position:static;margin:16px 0 0!important;padding:var(--space-5) 0 0!important;background:transparent;backdrop-filter:none}
#confirm-message{line-height:1.65;overflow-wrap:anywhere}

/* Long management content must wrap instead of forcing the grid wider. */
.manage-main,.manage-sub,.audit-row>*,.visit-log-row>*{min-width:0}
.manage-sub{white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.manage-row{align-items:flex-start}
.manage-row>.status,.manage-row>.btn{flex:0 0 auto;align-self:center}
code{overflow-wrap:anywhere;word-break:break-word}

/* Tag overflow menu chooses a safe horizontal/vertical direction via JS classes. */
.tag-overflow-menu{left:0;right:auto;bottom:calc(100% + 7px);top:auto}
.tag-overflow.align-right .tag-overflow-menu{left:auto;right:0}
.tag-overflow.drop-down .tag-overflow-menu{top:calc(100% + 7px);bottom:auto;transform:translateY(-4px)}
.tag-overflow.drop-down:hover .tag-overflow-menu,.tag-overflow.drop-down:focus-within .tag-overflow-menu,.tag-overflow.drop-down.open .tag-overflow-menu{transform:translateY(0)}
.tag-overflow-menu{overscroll-behavior:contain;scrollbar-gutter:stable}

/* Homepage cards retain equal-height desktop rhythm while handling pathological text safely. */
.site-card,.site-copy,.site-title-main,.site-domain,.site-description{min-width:0}
.site-title-main strong,.site-description,.site-domain{overflow-wrap:anywhere;word-break:break-word}
.site-description{line-height:1.5}
.site-card-actions{flex:0 0 auto}
.site-card-action:focus-visible{box-shadow:0 0 0 3px var(--theme-focus-ring)!important}
.site-card-action.refresh-status[aria-busy="true"]{opacity:.72!important}

/* Toasts keep their semantics legible and never cover device safe areas. */
.toast{display:flex;align-items:center;justify-content:center;gap:8px;line-height:1.45;overflow-wrap:anywhere}
.toast.danger{background:#b42318!important;color:#fff!important}
.toast-action{flex:0 0 auto}

@media(max-width:820px){
  .modal-head{top:-16px;margin:-16px -16px var(--space-5);padding:16px 16px var(--space-5)}
  .modal-actions{bottom:-16px;margin:16px -16px -16px!important;padding:var(--space-5) 16px max(16px,env(safe-area-inset-bottom))!important}
  .manage-row{flex-wrap:wrap}
  .manage-row>.status,.manage-row>.btn{margin-left:auto}
}
@media(max-width:520px){
  .form-grid{row-gap:12px}
  .panel-title-row,.admin-section-head{align-items:flex-start}
  .modal-head{top:-16px}
  .tag-overflow-menu{max-width:min(260px,calc(100vw - 28px));max-height:min(220px,42vh)}
  .toast{align-items:flex-start;text-align:left}
}
@media(prefers-reduced-motion:reduce){
  .btn,.icon-btn,.site-card-action,.pill,.tab,.section-toggle,.theme-toggle,.tag-more,.custom-select-trigger,.tag-overflow-menu{transition:none!important;animation:none!important}
}

/* ToreyOne 1.9.0 — management efficiency */
.manage-filters{grid-template-columns:minmax(220px,1.6fr) repeat(5,minmax(120px,.72fr)) auto}
.manage-result-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 12px;padding:0 2px;font-size:12px;font-weight:700;color:var(--ink)}
.tag-manage-actions{flex-wrap:wrap;justify-content:flex-end}
.site-duplicate-warning{margin-top:8px;padding:9px 11px;border:1px solid var(--theme-accent-border);border-radius:10px;background:var(--theme-accent-soft);color:var(--ink);font-size:12px;line-height:1.55}
.site-duplicate-warning strong{display:block;margin-bottom:4px;color:var(--theme-accent-text)}.site-duplicate-warning span{display:block}
@media(max-width:1100px){.manage-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.manage-filters .small-search{grid-column:span 2}}
@media(max-width:700px){.manage-result-summary{align-items:flex-start;flex-direction:column}.manage-filters{grid-template-columns:1fr}.manage-filters .small-search{grid-column:auto}}


/* ToreyOne 2.0.0 — product experience layer */
.home-quick-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.quick-filter{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;padding:7px 12px;font:inherit;cursor:pointer}.quick-filter.active,.quick-filter:hover{border-color:var(--theme-accent-border);background:var(--theme-accent-soft);color:var(--theme-accent-text)}
.home-block-order{display:flex;gap:8px;flex-wrap:wrap}.home-block-order button{border:1px dashed var(--border);background:var(--surface);color:var(--ink);border-radius:10px;padding:8px 10px;cursor:grab}.home-block-order button.dragging{opacity:.45}
.command-card{max-width:680px}.command-search{display:flex;align-items:center;gap:8px;margin:0 20px 12px;padding:12px var(--space-5);border:1px solid var(--border);border-radius:14px;background:var(--surface)}.command-search input{border:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;width:100%;font-size:17px}.command-results{padding:0 12px var(--space-5);display:grid;gap:4px;max-height:60vh;overflow:auto}.command-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;border:0;background:transparent;color:var(--ink);padding:10px;border-radius:12px;cursor:pointer}.command-item:hover,.command-item.active{background:var(--theme-accent-soft)}.command-item span:nth-child(2){display:grid;gap:4px;min-width:0}.command-item small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.command-icon{display:grid;place-items:center;width:32px;height:32px}.command-item kbd{font-size:11px;color:var(--muted);background:var(--surface-2);padding:3px 6px;border-radius:6px}
.site-context-menu{position:fixed;z-index:1800;right:18px;top:82px;min-width:180px;padding:6px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:12px}.site-context-menu.context-left{right:auto;left:18px}.site-context-menu.context-low{top:auto;bottom:18px}.site-context-menu button{display:block;width:100%;border:0;background:transparent;color:var(--ink);text-align:left;padding:9px 10px;border-radius:8px;cursor:pointer}.site-context-menu button:hover{background:var(--theme-accent-soft);color:var(--theme-accent-text)}
.history-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px}.history-summary-grid>div{padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);display:grid;gap:4px}.history-summary-grid span{font-size:12px;color:var(--muted)}.history-summary-grid strong{font-size:16px}.status-history-chart{height:110px;display:flex;align-items:flex-end;gap:4px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);margin-bottom:16px;overflow:hidden}.status-history-chart i{flex:1;min-width:2px;max-width:8px;background:var(--theme-accent-solid);border-radius:3px 3px 1px 1px;opacity:.82}
.cron-health-summary{padding:12px var(--space-5);border-radius:12px;margin-bottom:12px;font-weight:650}.cron-health-summary.ok{background:rgba(25,135,84,.12);color:var(--success-text)}.cron-health-summary.warn{background:rgba(255,193,7,.14);color:var(--warning-text)}.cron-health-summary.error{background:rgba(220,53,69,.12);color:var(--danger-text)}
.category-row.site-drop-target{outline:2px solid var(--theme-accent-border);background:var(--theme-accent-soft)}
@media(max-width:680px){.history-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-quick-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.quick-filter{white-space:nowrap}.command-card{width:min(96vw,680px)}}

.site-category-dropzones{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 12px}.category-drop-chip{border:1px dashed var(--border);border-radius:999px;background:var(--surface);color:var(--muted);padding:6px 10px;font:inherit}.category-drop-chip.site-drop-target{border-color:var(--theme-accent-border);background:var(--theme-accent-soft);color:var(--theme-accent-text);transform:translateY(-1px)}

.status-history-chart i.h1{height:10%}.status-history-chart i.h2{height:20%}.status-history-chart i.h3{height:30%}.status-history-chart i.h4{height:40%}.status-history-chart i.h5{height:50%}.status-history-chart i.h6{height:60%}.status-history-chart i.h7{height:70%}.status-history-chart i.h8{height:80%}.status-history-chart i.h9{height:90%}.status-history-chart i.h10{height:100%}

/* ToreyOne 2.0.3 */
.auth-secondary-form{margin-top:12px}.compact-security-form{margin-top:12px}.alert.warning{background:rgba(255,193,7,.14);color:var(--warning-text);border:1px solid rgba(255,193,7,.3)}


/* ToreyOne 2.0.4 — unified modal geometry, global homepage blocks and focus/dark-mode polish. */
.modal-card{padding:0!important}
.modal-head,.tabbed-modal>.modal-head{position:sticky!important;top:0!important;z-index:18!important;margin:0!important;padding:20px 22px 16px!important;box-sizing:border-box!important;align-items:flex-start!important;border-bottom:1px solid var(--line)!important;background:linear-gradient(180deg,var(--panel2),var(--panel))!important;backdrop-filter:blur(10px)}
.modal-head>div:first-child{display:grid;gap:4px;min-width:0}.modal-head h2{margin:0!important;padding:0!important;line-height:1.3!important}.modal-head p{margin:0!important;line-height:1.5!important}
.modal-card> :not(.modal-head){margin-left:24px;margin-right:24px}.modal-card> :last-child:not(.modal-head){margin-bottom:24px}
.modal-card>.tabs{margin:12px 24px var(--space-5)}.modal-card>.tab-panel{margin:0 24px 24px}.modal-card>.modal-head+form,.modal-card>.modal-head+.panel-block,.modal-card>.modal-head+p{margin-top:20px}
#confirm-modal .modal-head{padding-bottom:15px!important}#confirm-modal #confirm-message{margin-top:20px!important}#confirm-modal .modal-actions{margin:16px 24px 24px!important;padding-top:14px!important}
.dashboard-modal-card>#admin-dashboard,.dashboard-modal-card>.dashboard-status-section{margin-left:24px!important;margin-right:24px!important}.dashboard-modal-card>#admin-dashboard{margin-top:20px!important;margin-bottom:16px!important}.dashboard-modal-card>.dashboard-status-section{margin-top:0!important;margin-bottom:24px!important}

.homepage-section-manager{display:grid;gap:12px;min-width:0;padding:var(--space-5) 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}.homepage-section-manager legend{padding:0 5px;font-size:12px;font-weight:800;color:var(--ink)}.homepage-section-help{margin:0!important}.home-block-menu{display:grid;gap:8px}.home-block-menu-item{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--control-border);border-radius:10px;background:var(--control-surface);color:var(--ink);cursor:grab}.home-block-menu-item.dragging{opacity:.46}.home-block-menu-item .drag-handle{display:grid;place-items:center;cursor:grab}.home-block-menu-item label{display:flex;align-items:center;gap:8px;min-width:0;margin:0!important;cursor:pointer}.home-block-menu-item input{width:auto!important;margin:0}.homepage-section-limit{display:grid;gap:8px;margin-top:4px!important}.homepage-section-limit select{width:100%}

/* Wrapper owns focus: inner text fields stay visually borderless. */
.search-box input:focus,.search-box input:focus-visible,.tag-combobox>input[type="text"]:focus,.tag-combobox>input[type="text"]:focus-visible,.command-search input:focus,.command-search input:focus-visible{border:0!important;outline:0!important;box-shadow:none!important}
.search-box input:focus-visible,.tag-combobox>input[type="text"]:focus-visible,.command-search input:focus-visible{outline:none!important;outline-offset:0!important}
.command-search:focus-within{border-color:var(--theme-focus)!important;box-shadow:0 0 0 4px var(--theme-focus-ring)!important}

/* Website-management surfaces must never fall back to legacy white in dark themes. */
:root[data-theme="dark"] .manage-filters,:root[data-theme="dark"] .category-drop-chip,:root[data-theme="dark"] .site-category-dropzones,:root[data-theme="dark"] .manage-result-summary{background:var(--ui-surface-soft)!important;border-color:var(--ui-border)!important;color:var(--ui-text-main)!important}
:root[data-theme="dark"] .manage-filters .search-box,:root[data-theme="dark"] .home-block-menu-item{background:var(--control-surface)!important;border-color:var(--control-border)!important;color:var(--ink)!important}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .manage-filters,:root[data-theme="auto"] .category-drop-chip,:root[data-theme="auto"] .site-category-dropzones,:root[data-theme="auto"] .manage-result-summary{background:var(--ui-surface-soft)!important;border-color:var(--ui-border)!important;color:var(--ui-text-main)!important}:root[data-theme="auto"] .manage-filters .search-box,:root[data-theme="auto"] .home-block-menu-item{background:var(--control-surface)!important;border-color:var(--control-border)!important;color:var(--ink)!important}}

@media(max-width:820px){.modal-head,.tabbed-modal>.modal-head{padding:16px!important}.modal-card> :not(.modal-head){margin-left:16px;margin-right:16px}.modal-card>.tabs{margin:12px 16px 16px}.modal-card>.tab-panel{margin:0 16px var(--space-5)}.modal-card> :last-child:not(.modal-head){margin-bottom:20px}.dashboard-modal-card>#admin-dashboard,.dashboard-modal-card>.dashboard-status-section{margin-left:16px!important;margin-right:16px!important}#confirm-modal .modal-actions{margin-left:16px!important;margin-right:16px!important;margin-bottom:20px!important}}

/* ToreyOne 2.0.4 — dashboard is one coherent modal workspace. */
.dashboard-modal-card>.dashboard-modal-body{display:grid;gap:var(--space-5);margin:20px 24px 24px!important;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel2);min-width:0}
.dashboard-modal-body>#admin-dashboard{margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.dashboard-modal-body>.dashboard-status-section{margin:0!important;background:var(--panel)!important}
.dashboard-modal-body>#admin-dashboard.hidden{display:none!important}
:root[data-theme="dark"] .dashboard-modal-card>.dashboard-modal-body{background:var(--ui-surface-soft)!important;border-color:var(--ui-border)!important}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .dashboard-modal-card>.dashboard-modal-body{background:var(--ui-surface-soft)!important;border-color:var(--ui-border)!important}}

/* Dark-mode cleanup for the Websites management tab and its utility surfaces. */
:root[data-theme="dark"] .site-manage-list,:root[data-theme="dark"] .site-manage-columns,:root[data-theme="dark"] .manage-toolbar,:root[data-theme="dark"] .manage-main,:root[data-theme="dark"] .manage-sub{color:var(--ui-text-main)!important}
:root[data-theme="dark"] .site-manage-row,:root[data-theme="dark"] .manage-row{background:var(--ui-surface)!important;border-color:var(--ui-border)!important}
:root[data-theme="dark"] .manage-sub{color:var(--ui-text-muted)!important}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .site-manage-list,:root[data-theme="auto"] .site-manage-columns,:root[data-theme="auto"] .manage-toolbar,:root[data-theme="auto"] .manage-main,:root[data-theme="auto"] .manage-sub{color:var(--ui-text-main)!important}:root[data-theme="auto"] .site-manage-row,:root[data-theme="auto"] .manage-row{background:var(--ui-surface)!important;border-color:var(--ui-border)!important}:root[data-theme="auto"] .manage-sub{color:var(--ui-text-muted)!important}}

/* Composite controls own their focus ring; nested text fields must not draw a second ring. */
.search-box>input:focus,.search-box>input:focus-visible,.tag-combobox>input:focus,.tag-combobox>input:focus-visible,.command-search>input:focus,.command-search>input:focus-visible{border-color:transparent!important;border-width:0!important;border-radius:0!important;outline:0!important;outline-offset:0!important;box-shadow:none!important}

@media(max-width:820px){.dashboard-modal-card>.dashboard-modal-body{margin:16px!important;padding:12px}}

/* Modal footers share the same content grid as their forms; no legacy negative offsets. */
.modal-card .modal-actions{position:static!important;inset:auto!important;margin:var(--space-5) 0 0!important;padding:var(--space-5) 0 0!important;border-top:1px solid var(--line)!important;background:transparent!important;backdrop-filter:none!important;box-sizing:border-box!important}
#confirm-modal .modal-actions{margin:16px 24px 24px!important;padding-top:14px!important}
@media(max-width:820px){#confirm-modal .modal-actions{margin:16px 16px var(--space-5)!important}.modal-card .modal-actions{margin-top:16px!important}}


.btn{text-decoration:none}

/* ToreyOne 2.0.7 — QR reliability, settings density and card/layout polish. */
/* Keep the site tone and homepage block manager from sharing one tall row. */
.settings-paired-row{grid-template-columns:1fr!important;align-items:start!important}
.settings-paired-card{min-height:0!important}
.homepage-section-manager{gap:8px!important;padding:12px var(--space-5)!important}
.home-block-menu{gap:4px!important}
.home-block-menu-item{min-height:34px;padding:6px 9px!important;grid-template-columns:20px minmax(0,1fr)!important}
.home-block-menu-item .drag-handle{font-size:12px}
.homepage-section-limit{grid-template-columns:minmax(0,1fr) minmax(130px,180px);align-items:center;gap:12px!important;margin-top:0!important}
.homepage-section-limit select{justify-self:end}

/* Dashboard empty states use the same content width and rhythm. */
.dashboard-modal-body .dashboard-chart-block,.dashboard-modal-body .dashboard-status-section{width:100%;box-sizing:border-box}
.compact-dashboard-list>.empty-mini,.status-detail-list>.empty-mini{display:grid!important;width:100%!important;min-height:84px;place-items:center;box-sizing:border-box;padding:20px!important}
.dashboard-modal-body>.dashboard-status-section{padding:var(--space-5)!important}

/* Batch-operation select must follow the dark control surface, including its custom-select proxy. */
:root[data-theme="dark"] .manage-toolbar select,
:root[data-theme="dark"] .manage-toolbar .custom-select-trigger,
:root[data-theme="dark"] .manage-toolbar .custom-select-menu{background:var(--control-surface)!important;border-color:var(--control-border)!important;color:var(--ink)!important}
@media(prefers-color-scheme:dark){
  :root[data-theme="auto"] .manage-toolbar select,
  :root[data-theme="auto"] .manage-toolbar .custom-select-trigger,
  :root[data-theme="auto"] .manage-toolbar .custom-select-menu{background:var(--control-surface)!important;border-color:var(--control-border)!important;color:var(--ink)!important}
}

/* Composite searches own the only focus ring. The nested text field stays visually neutral. */
.search-box>input,.search-box>input:hover,.search-box>input:focus,.search-box>input:focus-visible,
.command-search>input,.command-search>input:hover,.command-search>input:focus,.command-search>input:focus-visible,
.tag-combobox>input[type="text"],.tag-combobox>input[type="text"]:hover,.tag-combobox>input[type="text"]:focus,.tag-combobox>input[type="text"]:focus-visible{
  appearance:none!important;-webkit-appearance:none!important;border:0!important;border-color:transparent!important;border-radius:0!important;outline:0!important;outline-offset:0!important;box-shadow:none!important;background:transparent!important
}

/* Modal divider spans through the scrollbar gutter instead of stopping short on the right. */
.modal-head,.tabbed-modal>.modal-head{border-bottom:0!important}
.modal-head::after,.tabbed-modal>.modal-head::after{content:"";position:absolute;left:0;right:-14px;bottom:0;height:1px;background:var(--line);pointer-events:none}

/* Fetched favicons use their own pixels without an accent-colored tile behind them. */
.site-icon.has-favicon,.manage-icon.has-favicon{background:transparent!important;color:inherit!important}
.site-icon.has-favicon .site-icon-img,.manage-icon.has-favicon img{display:block;width:100%;height:100%;object-fit:contain}

/* Tags and card actions occupy separate columns; tag count is fitted by JS to actual width. */
.site-card-footer,.site-card.mini .site-card-footer,.compact-mode .site-card-footer{grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important;gap:8px!important;overflow:visible!important}
.site-card-footer .tags{display:flex!important;width:100%;min-width:0;height:auto!important;min-height:25px!important;max-height:50px!important;align-items:center!important;align-content:flex-start!important;gap:4px!important;flex-wrap:wrap!important;overflow:hidden!important;position:relative!important;z-index:4}
.site-card-footer .tag{max-width:min(160px,100%)!important}
.site-card-actions{position:static!important;align-self:end!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;height:32px;min-height:32px}
.site-card-action.favorite,.site-card-action.refresh-status,.site-card-action.edit-shortcut{display:grid!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;padding:0!important;place-items:center!important;border-radius:7px!important;line-height:1!important}
.site-card-action.favorite>span,.site-card-action.refresh-status>span,.site-card-action.edit-shortcut>span,.site-settings-glyph{display:grid!important;width:100%!important;height:100%!important;margin:0!important;place-items:center!important;line-height:1!important;transform:none!important}
.site-card-action.favorite>span{font-size:15px!important}
.site-refresh-glyph{font-size:16px!important;transform:none!important}
.site-settings-glyph{font-size:0!important;letter-spacing:0!important}
.site-settings-glyph svg{display:block!important;width:14px!important;height:14px!important;margin:0!important;transform:none!important}
.tag-overflow{align-self:center}
@media(max-width:699px){
  .site-card-footer,.site-card.mini .site-card-footer,.compact-mode .site-card-footer{grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important}
}

/* User-group summary rows share one horizontal baseline. */
.group-row:not(.editing){display:grid!important;grid-template-columns:minmax(0,1fr) auto auto;align-items:center!important;gap:8px 8px!important}
.group-row:not(.editing) .manage-main{display:grid!important;grid-template-columns:minmax(130px,.72fr) minmax(0,1.28fr)!important;align-items:center!important;gap:12px!important}
.group-row:not(.editing) .manage-main>strong,.group-row:not(.editing) .manage-sub{display:flex!important;min-height:32px;align-items:center!important;margin:0!important;line-height:1.35}
.group-row:not(.editing)>.btn{align-self:center!important;margin:0!important}
@media(max-width:720px){
  .group-row:not(.editing){grid-template-columns:1fr auto auto}
  .group-row:not(.editing) .manage-main{grid-column:1/-1;grid-template-columns:1fr!important;gap:4px!important}
  .group-row:not(.editing) .manage-main>strong,.group-row:not(.editing) .manage-sub{min-height:24px}
}

/* 2.0.7 final overrides: remove nested focus artifacts and keep fetched favicons neutral. */
body .search-box>input:not([type="checkbox"]):not([type="radio"]),
body .search-box>input:not([type="checkbox"]):not([type="radio"]):hover,
body .search-box>input:not([type="checkbox"]):not([type="radio"]):focus,
body .search-box>input:not([type="checkbox"]):not([type="radio"]):focus-visible,
body .command-search>input:not([type="checkbox"]):not([type="radio"]),
body .command-search>input:not([type="checkbox"]):not([type="radio"]):hover,
body .command-search>input:not([type="checkbox"]):not([type="radio"]):focus,
body .command-search>input:not([type="checkbox"]):not([type="radio"]):focus-visible,
body .tag-combobox>input[type="text"],body .tag-combobox>input[type="text"]:hover,
body .tag-combobox>input[type="text"]:focus,body .tag-combobox>input[type="text"]:focus-visible{
  border:0!important;border-color:transparent!important;border-radius:0!important;outline:0!important;outline-offset:0!important;box-shadow:none!important;background:transparent!important;transition:none!important
}
:root[data-theme] .site-icon.has-favicon,:root[data-theme] .manage-icon.has-favicon{background:transparent!important;background-color:transparent!important;color:inherit!important}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .site-icon.has-favicon,:root[data-theme="auto"] .manage-icon.has-favicon{background:transparent!important;background-color:transparent!important;color:inherit!important}}
.dashboard-modal-body .status-detail-list{margin-left:0!important;margin-right:0!important}
.dashboard-modal-body .status-detail-list{padding-right:0!important}
:root[data-theme="dark"] .manage-toolbar{background:var(--ui-surface-soft)!important;border-color:var(--ui-border)!important;color:var(--ui-text-main)!important}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .manage-toolbar{background:var(--ui-surface-soft)!important;border-color:var(--ui-border)!important;color:var(--ui-text-main)!important}}

/* ToreyOne 2.0.8 — keep favorite selection visibly active even while hovered/focused. */
.site-card-action.favorite.active,
.site-card-action.favorite[aria-pressed="true"],
.site-card-action.favorite.active:hover,
.site-card-action.favorite.active:focus-visible,
.site-card-action.favorite[aria-pressed="true"]:hover,
.site-card-action.favorite[aria-pressed="true"]:focus-visible{
  color:#d99a00!important;
  background:color-mix(in srgb,#f5b700 16%,transparent)!important;
  border-color:color-mix(in srgb,#d99a00 30%,transparent)!important;
}
:root[data-theme="dark"] .site-card-action.favorite.active,
:root[data-theme="dark"] .site-card-action.favorite[aria-pressed="true"],
:root[data-theme="dark"] .site-card-action.favorite.active:hover,
:root[data-theme="dark"] .site-card-action.favorite[aria-pressed="true"]:hover{
  color:#f0c75e!important;
  background:color-mix(in srgb,#f0c75e 15%,transparent)!important;
  border-color:color-mix(in srgb,#f0c75e 28%,transparent)!important;
}

/* ToreyOne 2.0.9 — health history, explicit modal dismissal and adaptive card titles. */
.dashboard-text-link{
  flex:0 0 auto;margin-left:auto;padding:2px 0;border:0;background:transparent;color:var(--theme-accent-text,var(--primary));
  font:700 12px/1.4 var(--font-ui);text-decoration:none;cursor:pointer;white-space:nowrap
}
.dashboard-text-link:hover,.dashboard-text-link:focus-visible{text-decoration:underline;text-underline-offset:3px}
.dashboard-text-link:focus-visible{outline:2px solid color-mix(in srgb,var(--theme-accent-solid,var(--primary)) 35%,transparent);outline-offset:3px;border-radius:4px}

.status-history-list{display:block}
.status-history-chart-shell{
  display:grid;grid-template-columns:24px 48px minmax(0,1fr);gap:8px;align-items:stretch;margin:0 0 var(--space-5);
  padding:var(--space-5) 14px 10px;border:1px solid var(--ui-border,var(--line));border-radius:14px;background:var(--ui-surface-soft,var(--panel2))
}
.history-y-title{align-self:center;justify-self:center;color:var(--ui-text-muted,var(--muted));font-size:10px;font-weight:700;letter-spacing:.02em;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}
.history-y-axis{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;height:150px;padding:0 0 1px;color:var(--ui-text-faint,var(--muted));font:10px/1.1 var(--font-data);font-variant-numeric:tabular-nums;white-space:nowrap}
.history-chart-main{min-width:0}
.status-history-chart{
  position:relative;height:150px;margin:0;padding:0;border:0;border-left:1px solid var(--ui-border,var(--line));border-bottom:1px solid var(--ui-border,var(--line));border-radius:0;background:transparent;overflow:visible
}
.history-grid-line{position:absolute;z-index:0;left:0;right:0;height:1px;background:color-mix(in srgb,var(--ui-border,var(--line)) 74%,transparent);pointer-events:none}
.history-grid-line.top{top:0}.history-grid-line.middle{top:50%}.history-grid-line.bottom{bottom:0}
.history-bars{position:absolute;z-index:1;inset:0 5px 1px;display:flex;align-items:flex-end;gap:clamp(1px,.32vw,4px)}
.history-bar{
  position:relative;display:block;flex:1 1 0;min-width:2px;max-width:16px;height:var(--history-bar-height);margin:0;padding:0;border:0;border-radius:4px 4px 1px 1px;
  background:var(--status-up-text,#13a066);opacity:.9;cursor:default;transition:opacity .12s ease,filter .12s ease,transform .12s ease
}
.history-bar:hover,.history-bar:focus-visible{z-index:5;opacity:1;filter:saturate(1.08);transform:translateY(-1px);outline:none}
.history-bar.up{background:var(--status-up-text,#13a066)}
.history-bar.down{background:var(--status-down-text,#b42318)}
.history-bar.error{background:var(--status-warn-text,#a15c00)}
.history-bar.unknown{background:var(--status-unknown-text,#71889d)}
.history-bar::after{
  content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 8px);z-index:20;min-width:max-content;max-width:260px;padding:6px 8px;border:1px solid var(--ui-border,var(--line));border-radius:8px;
  background:var(--ui-surface,var(--panel));box-shadow:0 8px 24px rgba(15,23,42,.16);color:var(--ui-text-main,var(--ink));font:11px/1.35 var(--font-ui);white-space:nowrap;
  opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .12s ease,transform .12s ease
}
.history-bar:hover::after,.history-bar:focus-visible::after{opacity:1;transform:translate(-50%,0)}
.history-x-axis{display:flex;justify-content:space-between;gap:8px;padding:7px 0 0;color:var(--ui-text-faint,var(--muted));font:10px/1.2 var(--font-data);font-variant-numeric:tabular-nums}
.history-x-axis span:nth-child(2){text-align:center}.history-x-axis span:last-child{text-align:right}
.history-x-title{text-align:center;margin-top:4px;color:var(--ui-text-muted,var(--muted));font-size:10px;font-weight:700}
.history-chart-empty{margin-bottom:20px}
.history-table-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 8px;color:var(--ui-text-main,var(--ink));font-size:13px}
.history-table-title span{color:var(--ui-text-muted,var(--muted));font:11px/1.4 var(--font-data)}
.history-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--ui-border,var(--line));border-radius:12px;background:var(--ui-surface,var(--panel))}
.history-table{width:100%;min-width:720px;border-collapse:collapse;table-layout:fixed;color:var(--ui-text-main,var(--ink));font-size:11px}
.history-table .history-col-time{width:21%}.history-table .history-col-state{width:16%}.history-table .history-col-latency{width:14%}.history-table .history-col-http{width:11%}.history-table .history-col-message{width:38%}
.history-table th,.history-table td{padding:10px 12px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--ui-border,var(--line));overflow-wrap:anywhere}
.history-table th{background:var(--ui-surface-soft,var(--panel2));color:var(--ui-text-muted,var(--muted));font-size:10.5px;font-weight:800;letter-spacing:.02em;white-space:nowrap}
.history-table tbody tr:last-child td{border-bottom:0}
.history-table tbody tr:hover td{background:color-mix(in srgb,var(--theme-accent-solid,var(--primary)) 4%,transparent)}
.history-table time,.history-table td:nth-child(3),.history-table td:nth-child(4){font-family:var(--font-data)!important;font-variant-numeric:tabular-nums;white-space:nowrap}

/* The status chip consumes only its measured width; the title receives all remaining space. */
.site-card .site-title-line{display:flex!important;align-items:center!important;gap:0!important;width:100%;overflow:hidden}
.site-card .site-title-line.has-status{gap:8px!important}
.site-card .site-title-main{flex:1 1 auto;min-width:0;width:auto;overflow:hidden}
.site-card .site-title-main>strong{flex:1 1 auto;min-width:0;max-width:none}
.site-card .site-title-status{display:none;flex:0 0 auto!important;width:auto!important;max-width:none!important;min-width:0;overflow:visible}
.site-card .site-title-line.has-status .site-title-status{display:flex}
.site-card .site-title-status .site-status{flex:0 0 auto;max-width:none!important;overflow:visible}

/* Clicking the shaded backdrop is intentionally not a dismissal gesture. */
.modal-backdrop{cursor:default}

@media(max-width:680px){
  .status-history-chart-shell{grid-template-columns:18px 42px minmax(0,1fr);gap:8px;padding:12px 10px 9px}
  .history-y-axis,.status-history-chart{height:132px}
  .history-bar::after{max-width:220px;font-size:10px}
  .dashboard-text-link{align-self:flex-end;margin-left:auto}
}

/* ToreyOne 2.0.10 — feedback lifecycle, list alignment, section rhythm and adaptive preference cards. */
/* List rows: read-only rows are vertically centered; editing forms keep top alignment. */
.manage-row:not(.editing),
.library-row,
.tag-manage-row,
.dashboard-row,
.audit-row,
.visit-log-row,
.status-detail-row,
.history-row,
.trash-row,
.session-row,
.cron-run-row,
.usage-bar-row{align-items:center!important}
.manage-row:not(.editing) .manage-main{align-self:center;display:flex;min-height:100%;flex-direction:column;justify-content:center}
.manage-row:not(.editing)>.status,.manage-row:not(.editing)>.btn,.manage-row:not(.editing)>.icon-action{align-self:center!important}
.audit-row>div{align-self:center;display:flex;flex-direction:column;justify-content:center}
.audit-row .audit-time{align-self:center}
.dashboard-row>strong,.dashboard-row>span,.visit-log-row>*,.history-row>*{align-self:center}
.group-row:not(.editing)>.btn{align-self:center!important}
.group-row.editing{align-items:start!important}

/* Management/page section rhythm: adjacent top-level blocks always get visible separation. */
#manage-modal .tab-panel>.panel-block+.panel-block,
#manage-modal .tab-panel>.admin-section+.panel-block,
#manage-modal .tab-panel>.panel-block+.admin-section,
#manage-modal .tab-panel>.admin-section+.admin-section{margin-top:24px!important}
#manage-modal .panel-block{margin-bottom:0}
#manage-modal .tab-panel>.panel-block:first-child,#manage-modal .tab-panel>.admin-section:first-child{margin-top:0}
.panel-block>.stack+.stack,.panel-block>form+form,.panel-block>.button-row+.stack,.panel-block>.stack+.button-row{margin-top:16px}

/* Preference-hidden content releases its card space instead of leaving empty slots. */
:root{--adaptive-card-base:90px}
:root[data-card-size="small"]{--adaptive-card-base:82px}
:root[data-card-size="large"]{--adaptive-card-base:100px}
.site-card{min-height:calc(var(--adaptive-card-base) + var(--card-detail-height,72px))!important}
.site-card.pref-no-favicon{min-height:calc(var(--adaptive-card-base) + var(--card-detail-height,72px) - 8px)!important}
.site-card.pref-no-favicon .site-card-footer{padding-left:10px}
.site-card.pref-no-favicon .site-link{gap:0}
.site-card.pref-no-description .site-link{padding-bottom:6px}
.site-card.pref-no-url .site-last-opened-row{margin-top:0}
.site-card.pref-no-status .site-title-status{display:none}
.site-card.pref-no-status .site-title-line{grid-template-columns:minmax(0,1fr)}
.compact-mode .site-card,.site-card.mini{--adaptive-card-base:76px;min-height:calc(var(--adaptive-card-base) + var(--card-detail-compact-height,56px))!important}
.compact-mode .site-card.pref-no-favicon,.site-card.mini.pref-no-favicon{min-height:calc(var(--adaptive-card-base) + var(--card-detail-compact-height,56px) - 6px)!important}

@media(max-width:600px){
  .manage-row:not(.editing){align-items:center!important}
  .tag-manage-row{align-items:stretch!important}
  .tag-manage-main,.tag-manage-actions{align-self:stretch}
  #manage-modal .tab-panel>.panel-block+.panel-block,
  #manage-modal .tab-panel>.admin-section+.panel-block,
  #manage-modal .tab-panel>.panel-block+.admin-section,
  #manage-modal .tab-panel>.admin-section+.admin-section{margin-top:20px!important}
}


/* ToreyOne 2.0.11 — overlay modal scrollbars that never reserve layout space. */
.modal-card{
  position:relative;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  scrollbar-width:none!important;
  scrollbar-gutter:auto!important;
  -ms-overflow-style:none;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.modal-card::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
.modal-card::-webkit-scrollbar-track,.modal-card::-webkit-scrollbar-thumb,.modal-card::-webkit-scrollbar-button,.modal-card::-webkit-scrollbar-corner{display:none!important;width:0!important;height:0!important;background:transparent!important}
.modal-scroll-rail{
  position:absolute;
  width:12px;
  min-width:12px;
  border-radius:999px;
  opacity:0;
  pointer-events:none;
  transition:opacity .16s ease;
  touch-action:none;
  user-select:none;
}
.modal-scroll-rail.visible{opacity:.72;pointer-events:auto}
.modal-scroll-rail:hover,.modal-scroll-rail.dragging{opacity:1}
.modal-scroll-thumb{
  position:absolute;
  top:0;
  left:4px;
  width:4px;
  min-height:30px;
  border-radius:999px;
  background:var(--scroll-thumb);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--panel) 44%,transparent);
  cursor:grab;
  will-change:transform;
}
.modal-scroll-rail.dragging .modal-scroll-thumb{cursor:grabbing;background:var(--scroll-thumb-hover)}
.modal-scroll-rail:hover .modal-scroll-thumb{background:var(--scroll-thumb-hover)}
/* The rail lives inside the rounded rectangle, so neither corner can be crossed. */
.modal-head{padding-right:22px!important}
@media(max-width:1024px){
  .modal-backdrop{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
  .modal-card,.modal-card.small-card,.modal-card.medium,.modal-card.large,.modal-card.xlarge{max-width:100%!important;max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
  .modal-scroll-rail{width:10px;min-width:10px}
  .modal-scroll-thumb{left:3.5px;width:3px;min-height:28px}
  .modal-head{padding-right:17px!important}
}
@media(max-width:520px){
  .modal-backdrop{padding:max(5px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left))}
  .modal-card,.modal-card.small-card,.modal-card.medium,.modal-card.large,.modal-card.xlarge{width:100%!important;max-width:100%!important;max-height:calc(100dvh - 10px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:14px}
  .modal-scroll-rail{width:9px;min-width:9px}
  .modal-scroll-thumb{left:3px;width:3px;min-height:26px}
  .modal-head{padding-right:14px!important}
}
@media(hover:none) and (pointer:coarse){.modal-scroll-rail.visible{opacity:.55}.modal-scroll-rail:hover{opacity:.55}}

.emoji-grid,.tag-overflow-menu,.custom-select-options,.command-results,.import-preview-list,.visibility-suggestions,.visibility-current-list,.multi-picker-options,.group-manage-list,#portal-health-list,.manage-list,.library-manage-list,.audit-list,.visit-log-list,#session-list,#my-session-list,.status-detail-list{scrollbar-gutter:auto!important}


.field-inline-error{
  display:block;
  margin-top:1px;
  padding:7px 9px;
  border-radius:8px;
  background:rgba(220,53,69,.08);
  color:var(--danger);
  font-size:12px;
  font-weight:600;
  line-height:1.5;
}
input[aria-invalid="true"]{border-color:rgba(220,53,69,.72)!important;box-shadow:0 0 0 3px rgba(220,53,69,.10)!important}

/* ToreyOne 2.0.16 — account form alignment, adaptive one-line tags and overlay fixes. */
.account-enabled-field{display:grid!important;gap:8px!important;align-content:start!important}
.account-enabled-toggle{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:40px;padding:9px 11px;border:1px solid var(--control-border,var(--line));border-radius:var(--radius-control,10px);background:var(--control-surface,var(--panel));color:var(--ink);font-weight:600;cursor:pointer}
.account-enabled-toggle:hover{border-color:var(--control-border-hover,var(--primary))}
.account-enabled-toggle input{width:16px!important;height:16px!important;min-height:0!important;margin:0!important;flex:0 0 16px}
.account-enabled-toggle span{line-height:1.35}

/* Keep the per-section count control immediately after its label, aligned to the left. */
.homepage-section-limit{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;flex-wrap:wrap!important}
.homepage-section-limit select{width:auto!important;min-width:116px!important;justify-self:auto!important;margin:0!important}

/* Give the tag merge dialog enough vertical room for its select menu and actions. */
#tag-merge-modal .tag-merge-modal-card{min-height:min(430px,calc(100dvh - 40px))}
#tag-merge-modal .tag-merge-modal-card>form{display:grid;align-content:start;min-height:280px}
#tag-merge-modal .tag-merge-modal-card .modal-actions{margin-top:auto!important}

/* Homepage tags are always a single row. Their natural widths decide how many fit. */
.site-card-footer .tags{display:flex!important;flex-wrap:nowrap!important;overflow:hidden!important;white-space:nowrap!important;min-width:0!important;height:25px!important;min-height:25px!important;max-height:25px!important;align-items:center!important}
.site-card-footer .tags>[data-card-tag],.site-card-footer .tag-overflow{flex:0 0 auto!important}
.site-card-footer .tag{font-size:10px!important;line-height:1.2!important}
.site-card-footer .tag-more{font-family:inherit!important;font-size:10px!important;line-height:1.2!important;font-weight:inherit!important}

/* The +N popover must sit above card text and neighboring cards instead of being clipped. */
.site-card{position:relative}
.site-card.tag-menu-open,.site-card:has(.tag-overflow:hover),.site-card:has(.tag-overflow:focus-within){overflow:visible!important;z-index:320!important}
.site-card.tag-menu-open .site-card-footer,.site-card:has(.tag-overflow:hover) .site-card-footer,.site-card:has(.tag-overflow:focus-within) .site-card-footer{position:relative;z-index:330}
.site-card .tag-overflow{position:relative;z-index:340}
.site-card .tag-overflow-menu{z-index:360!important}

@media(max-width:520px){
  #tag-merge-modal .tag-merge-modal-card{min-height:min(390px,calc(100dvh - 10px))}
  .homepage-section-limit{align-items:flex-start!important;flex-direction:column!important}
  .homepage-section-limit select{width:min(180px,100%)!important}
}
.site-card.tag-menu-open .site-card-footer .tags,.site-card:has(.tag-overflow:hover) .site-card-footer .tags,.site-card:has(.tag-overflow:focus-within) .site-card-footer .tags{overflow:visible!important}

/* ToreyOne 2.0.17 — full-data stability, session lifecycle and concurrency audit. */



/* Management / Sites: category is a real badge and tags use the same adaptive +N behavior as homepage cards. */
.manage-site-meta{display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:8px!important;min-width:0;overflow:visible!important;white-space:nowrap!important}
.manage-site-meta>span+span::before,.manage-site-meta span+span::before{content:none!important}
.manage-category-badge{display:inline-flex!important;align-items:center;max-width:150px;padding:3px 7px;border:1px solid var(--ui-border,var(--line));border-radius:999px;background:var(--ui-surface-soft,var(--panel2));color:var(--ui-text-main,var(--ink));font-size:10px;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto}
.manage-domain{display:block!important;max-width:180px;min-width:54px;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto;color:var(--ui-text-muted,var(--muted))}
.manage-tags{display:flex!important;align-items:center;gap:4px;min-width:64px;max-width:100%;height:24px;overflow:hidden;white-space:nowrap;flex:1 1 130px;position:relative;z-index:4}
.manage-tags>[data-manage-tag],.manage-tags>.tag-overflow{flex:0 0 auto!important}
.manage-tags .tag{max-width:130px;font-size:10px!important;line-height:1.2!important}
.manage-tags .tag-overflow-menu .tag{max-width:210px}
.manage-extra{display:inline-flex!important;align-items:center;flex:0 0 auto;padding:3px 6px;border-radius:999px;background:var(--ui-surface-soft,var(--panel2));color:var(--ui-text-muted,var(--muted));font-size:10px;font-weight:700;line-height:1.25}
.manage-admin-note{max-width:100%;margin-top:4px;color:var(--ui-text-muted,var(--muted));font-size:10px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-manage-row{position:relative}
.site-manage-row.tag-menu-open,.site-manage-row:has(.tag-overflow:hover),.site-manage-row:has(.tag-overflow:focus-within){z-index:420!important;overflow:visible!important}
.site-manage-row.tag-menu-open .manage-main,.site-manage-row:has(.tag-overflow:hover) .manage-main,.site-manage-row:has(.tag-overflow:focus-within) .manage-main{position:relative;z-index:430;overflow:visible!important}
.site-manage-row .tag-overflow{z-index:440}
.site-manage-row .tag-overflow-menu{z-index:460!important}
@media(max-width:760px){.manage-site-meta{flex-wrap:wrap!important}.manage-domain{max-width:min(210px,52vw)}.manage-tags{order:10;flex:1 0 100%;width:100%;max-width:100%}}

/* Visit IPs are plain text: no code-style background tile. */
.visit-log-row code{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:inherit}

/* Backup tab: the three .backup-panel blocks use standard panel-block rhythm. */
.backup-tab-panel .backup-tab-head{margin-bottom:var(--space-5)!important}
/* Import / restore preview warnings reuse the site-wide "attention" badge instead of a
   bare exclamation mark glued to the text. */
.preview-warnings div{position:relative;padding-left:27px}
.preview-warnings div::before{content:"!";position:absolute;left:9px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:#fce7bd;color:#8a5a00;font:700 11px/1 var(--font-num)}
:root[data-theme="dark"] .preview-warnings div::before{background:#453514!important;color:#f7dca4!important}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .preview-warnings div::before{background:#453514!important;color:#f7dca4!important}}

/* ToreyOne 2.2.4 — read-only mirror of the account as ToreyAuth sees it. */
.idp-profile-block{display:flex;flex-direction:column;gap:8px;margin-top:16px;padding:12px;border:1px solid var(--ui-border,var(--line));border-radius:11px;background:var(--panel2)}
.idp-profile-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.idp-profile-title{font-size:12px;font-weight:700;color:var(--ui-text-strong,var(--ink))}
.idp-profile-synced{margin-right:auto;color:var(--ui-text-muted,var(--muted));font-size:10.5px;font-variant-numeric:tabular-nums}
.idp-profile-head>.btn{flex:0 0 auto}
.idp-profile-body{display:grid;gap:8px;min-width:0}
.idp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px var(--space-5);margin:0;min-width:0}
.idp-facts>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:baseline;min-width:0}
.idp-facts dt{color:var(--ui-text-muted,var(--muted));font-size:10.5px;white-space:nowrap}
.idp-facts dd{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-strong,var(--ink));font-size:11.5px}
.idp-chip-group{display:flex;align-items:flex-start;gap:8px;min-width:0}
.idp-chip-label{flex:0 0 auto;color:var(--ui-text-muted,var(--muted));font-size:10.5px;line-height:1.9}
.idp-chip-list{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.idp-chip{display:inline-flex;align-items:baseline;gap:8px;max-width:100%;padding:3px 8px;border:1px solid var(--ui-border,var(--line));border-radius:999px;background:var(--panel);color:var(--ui-text-strong,var(--ink));font-size:11px;line-height:1.5}
.idp-chip em{font-style:normal;color:var(--ui-text-muted,var(--muted));font-size:10px;font-family:var(--font-data,inherit);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.idp-empty{color:var(--ui-text-muted,var(--muted));font-size:11px}
/* Read-only mirrors of IdP-owned fields must not look editable. */
#user-username[readonly],#user-display-name[readonly]{background:var(--panel2);color:var(--ui-text-muted,var(--muted));cursor:default}
/* Two stacked backup rows: keep the cards top-aligned so a shorter card never looks
   like it is holding empty space under a taller neighbour. */
.backup-tab-panel .backup-grid{align-items:start}
.backup-tab-panel .backup-grid>.backup-card{height:auto!important;align-self:start}

/* Homepage search is a search field, not a credential field. Hide browser credential affordances where supported. */
#site-search{-webkit-appearance:none;appearance:none}
#site-search::-webkit-credentials-auto-fill-button,#site-search::-webkit-contacts-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none;position:absolute;right:0}

/* Dashboard service status stays immediately after the website title instead of drifting to the far edge. */
.status-detail-title{justify-content:flex-start!important}
.status-detail-title strong{flex:0 1 auto!important;max-width:min(72%,520px)}
.status-detail-title .site-status{flex:0 0 auto;margin-left:0}

/* Health history: compact Y-axis spacing and an X-axis grid that shares the exact columns used by bars. */
.status-history-chart-shell{grid-template-columns:16px 42px minmax(0,1fr)!important;gap:4px!important;padding:var(--space-5) 12px 10px!important}
.history-y-title{justify-self:end!important;margin:0!important}
.history-y-axis{padding-right:1px!important}
.history-bars{inset:0 0 1px!important;display:grid!important;grid-template-columns:repeat(var(--history-count),minmax(0,1fr));align-items:end;gap:clamp(1px,.24vw,4px)!important}
.history-bar{width:min(100%,16px)!important;max-width:16px!important;min-width:1px!important;justify-self:center!important}
.history-x-axis{display:grid!important;grid-template-columns:repeat(var(--history-count),minmax(0,1fr));gap:clamp(1px,.24vw,4px)!important;justify-content:stretch!important;padding:7px 0 0!important;overflow:visible}
.history-x-axis span{justify-self:center;text-align:center!important;white-space:nowrap}
@media(max-width:600px){.status-history-chart-shell{grid-template-columns:14px 38px minmax(0,1fr)!important;gap:4px!important;padding:12px 8px 9px!important}.history-bar{max-width:12px!important}.history-x-axis{font-size:9px!important}}

/* Bulk-operation custom selects: the search field fills the actual dropdown width. */
.manage-toolbar-fields .custom-select-menu{box-sizing:border-box}
.manage-toolbar-fields .custom-select-search{display:block!important;width:100%!important;min-width:0!important;max-width:none!important;box-sizing:border-box!important}

/* Tag merge: use the available height for useful before/after information and keep actions anchored to the bottom. */
#tag-merge-modal .tag-merge-modal-card{display:flex!important;flex-direction:column;min-height:min(470px,calc(100dvh - 40px))!important;overflow:hidden}
#tag-merge-modal .tag-merge-modal-card>form{display:flex!important;flex:1 1 auto;min-height:0!important;flex-direction:column;align-content:normal!important}
#tag-merge-modal .tag-merge-modal-card .modal-actions{margin-top:auto!important;padding-top:16px}
.tag-merge-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 var(--space-5)}
.tag-merge-summary>div{display:grid;align-content:center;min-height:82px;padding:10px;border:1px solid var(--ui-border,var(--line));border-radius:12px;background:var(--ui-surface-soft,var(--panel2));text-align:center}
.tag-merge-summary span{color:var(--ui-text-muted,var(--muted));font-size:10px;font-weight:700}
.tag-merge-summary strong{margin:4px 0 1px;color:var(--ui-text-strong,var(--ink));font:800 20px/1.15 var(--font-data,var(--font-ui))}
.tag-merge-summary small{color:var(--ui-text-muted,var(--muted));font-size:9px;line-height:1.3}
.tag-merge-result-note{margin-top:12px;padding:10px 11px;border-radius:10px;background:var(--ui-surface-soft,var(--panel2));color:var(--ui-text-muted,var(--muted));font-size:11px;line-height:1.5}
.tag-merge-result-note strong{color:var(--ui-text-main,var(--ink))}
@media(max-width:520px){#tag-merge-modal .tag-merge-modal-card{min-height:min(450px,calc(100dvh - 10px))!important}.tag-merge-summary{grid-template-columns:1fr 1fr}.tag-merge-summary>div:last-child{grid-column:1/-1;min-height:70px}}
.manage-site-meta .tag-overflow{overflow:visible!important;max-width:none!important}
.manage-site-meta .tag-overflow-menu{overflow:auto!important;white-space:normal!important;max-width:240px!important}
#tag-merge-modal .tag-merge-modal-card{height:min(470px,calc(100dvh - 40px))!important;min-height:min(430px,calc(100dvh - 40px))!important;overflow:auto!important}



.tag-name-custom-select .custom-select-value{display:flex;align-items:center;min-width:0}
.tag-name-custom-select .custom-select-option{display:flex;align-items:center;min-width:0}
.tag-name-custom-select .tag-select-pill{max-width:100%;font-size:11px!important;line-height:1.25!important;padding:3px 8px!important}
.tag-name-custom-select .custom-select-option.selected .tag-select-pill{box-shadow:0 0 0 1px color-mix(in srgb,currentColor 22%,transparent)}
.tag-merge-result-note .tag{vertical-align:middle;margin:0 4px}

/* ToreyOne 2.0.20 — final responsive/component consolidation. */
/* Horizontal chip rails must scroll as rails; their items must never collapse into vertical text. */
.category-pills{min-width:0}
.category-pills .pill{flex:0 0 auto;white-space:nowrap;word-break:keep-all}
@media(max-width:820px){
  .category-pills{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .category-pills .pill{flex:0 0 auto;white-space:nowrap}
  .home-quick-filters{overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  .home-quick-filters .quick-filter{flex:0 0 auto;white-space:nowrap}
}

/* Backup cards have different amounts of content. Let every card use its natural height. */
.backup-grid{grid-auto-rows:auto!important;align-items:start!important}
.backup-grid>.backup-card{height:auto!important;align-self:start}
.backup-tab-panel .backup-grid>.backup-card{min-height:0!important}

/* The modal itself should only scroll vertically. Tabs and table wrappers own horizontal scrolling. */
.modal-card{overflow-x:hidden!important}
.tabbed-modal>.tabs{max-width:100%;overflow-x:auto!important;overflow-y:hidden!important;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-gutter:stable}
.tabbed-modal>.tabs>.tab{flex:0 0 auto}
.history-table-wrap{max-width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}

/* Prevent long dynamic content from adding a few pixels of hidden horizontal modal scroll. */
.modal-card form,.modal-card .panel-block,.modal-card .admin-section,.modal-card .dashboard-modal-body,
.modal-card .manage-list,.modal-card .library-manage-list,.modal-card .visit-log-list,.modal-card .status-detail-list{max-width:100%;box-sizing:border-box}
.status-detail-row{width:100%;box-sizing:border-box;min-width:0}
.status-detail-main{min-width:0}
@media(max-width:560px){
  .status-detail-row{align-items:stretch;flex-direction:column}
  .status-detail-row>.btn{width:100%;margin-left:0!important}
}

/* Native upload controls are allowed to shrink with narrow modal columns. */
.modal-card input[type="file"]{max-width:100%;min-width:0;box-sizing:border-box}

/* Keep compact management action groups readable when labels become long. */
.manage-toolbar,.manage-toolbar-fields,.manage-filters,.inline-create-form{min-width:0}
.manage-toolbar-fields>.custom-select,.manage-toolbar-fields>select{min-width:0;max-width:100%}
@media(max-width:520px){
  .manage-toolbar-fields{width:100%}
  .manage-toolbar-fields>.custom-select,.manage-toolbar-fields>select,.manage-toolbar-fields>.btn{width:100%}
}


/* Homepage card tags share the same horizontal center line as the action buttons. */
.site-card-footer,.site-card.mini .site-card-footer,.compact-mode .site-card-footer{align-items:center!important;min-height:32px!important}
.site-card-footer .tags{height:32px!important;min-height:32px!important;max-height:32px!important;align-items:center!important;align-content:center!important}
.site-card-actions{align-self:center!important}
.site-card-footer .tag-overflow{align-self:center!important}

/* The edit-tag dialog may let its color menu escape the card instead of clipping it to one or two rows. */
@media(min-width:601px){
  #tag-modal .modal-card.small-card{overflow:visible!important}
  #tag-modal .custom-select-menu{max-height:min(360px,calc(100dvh - 140px))!important}
  #tag-modal .custom-select-options{max-height:min(278px,calc(100dvh - 220px))!important}
}
@media(max-width:600px){
  #tag-modal .custom-select-menu{max-height:min(330px,56dvh)!important;overflow:hidden!important}
  #tag-modal .custom-select-options{max-height:min(240px,42dvh)!important}
}

/* In website management, the +N menu always opens above and toward the left, clear of the status controls on the right. */
.site-manage-row.tag-menu-open{position:relative!important;z-index:760!important}
.site-manage-row .manage-site-meta,.site-manage-row .manage-tags,.site-manage-row .tag-overflow{overflow:visible!important}
.site-manage-row .tag-overflow-menu{top:auto!important;bottom:calc(100% + 8px)!important;left:auto!important;right:0!important;z-index:790!important;transform:translateY(4px)!important}
.site-manage-row .tag-overflow:hover .tag-overflow-menu,.site-manage-row .tag-overflow:focus-within .tag-overflow-menu,.site-manage-row .tag-overflow.open .tag-overflow-menu{transform:translateY(0)!important}
.site-manage-row .tag-overflow.drop-down .tag-overflow-menu{top:auto!important;bottom:calc(100% + 8px)!important}

/* Home search is never offered as a credential field. Readonly is removed only on actual interaction by portal.js. */
#site-search[readonly]{cursor:text;background:var(--control-surface,var(--panel));color:var(--ink)}
#site-search[readonly]::placeholder{opacity:1}

/* Health history: bring Y-axis numbers closer to the vertical title and distribute history table columns evenly. */
.status-history-chart-shell{grid-template-columns:15px 36px minmax(0,1fr)!important;column-gap:1px!important}
.history-y-title{justify-self:end!important}
.history-y-axis{padding-right:0!important;margin-left:-1px!important}
.history-table{table-layout:fixed!important;width:100%!important}
.history-table .history-col-time,.history-table .history-col-state,.history-table .history-col-latency,.history-table .history-col-http,.history-table .history-col-message{width:20%!important}
.history-table th,.history-table td{width:20%!important}
@media(max-width:600px){.status-history-chart-shell{grid-template-columns:14px 33px minmax(0,1fr)!important;column-gap:1px!important}}


/* ToreyOne 2.0.21 — dense-history chart limits and long-content containment. */
/* Tag library rows: the tag name owns only the remaining space and ellipsizes dynamically. */
#tag-manage-list .tag-manage-row{min-width:0;overflow:hidden}
#tag-manage-list .tag-manage-main{display:flex;flex:1 1 auto;min-width:0;max-width:100%;flex-wrap:nowrap;overflow:hidden}
#tag-manage-list .tag-library-pill{flex:0 1 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#tag-manage-list .tag-usage-count{flex:0 0 auto;white-space:nowrap}
#tag-manage-list .tag-manage-actions{flex:0 0 auto;max-width:100%}

/* Every visible tag may shrink without pushing its parent wider than the available space. */
.tag,.tag-editor-chip,.tag-select-pill,.tag-library-pill,.multi-picker-chip{min-width:0;max-width:100%}
.tag-editor-chip-label,.tag-select-pill,.multi-picker-chip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tag-suggestion>span,.custom-select-option>span,.custom-select-value,.multi-picker-option>span,.visibility-add-row>span,.visibility-selected-row>span{min-width:0;max-width:100%}
.tag-suggestion .tag,.custom-select-option .tag-select-pill{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Common long-content guards for user/site names, URLs, notes, device strings and admin data. */
.site-title-main,.site-copy,.site-meta,.manage-main,.manage-sub,.library-main,.dashboard-row,.status-detail-main,.audit-row>div,.visit-log-row>*,.session-row .manage-main,.trash-row .manage-main,.cron-run-row .manage-main,.visibility-preview-list>*,.visibility-current-list>*,.multi-picker-option>span,.multi-picker-chip>span,.import-preview-list>div{min-width:0;max-width:100%}
.manage-main>strong,.library-main>strong,.visibility-add-row strong,.visibility-selected-row strong,.visibility-preview-list strong,.multi-picker-option strong,.multi-picker-chip>span,.import-preview-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.manage-sub,.library-main>span,.visibility-add-row small,.visibility-selected-row small,.visibility-preview-list small,.multi-picker-option small,.import-preview-list span,.import-preview-list em,.preview-warnings,.status-issue,.status-detail-row .muted,.cron-run-row .manage-sub,.audit-row span{overflow-wrap:anywhere;word-break:break-word}
.site-description{overflow-wrap:anywhere;word-break:break-word}
.visit-log-agent{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
code{overflow-wrap:anywhere;word-break:break-all}

/* Keep action areas usable even when labels/names are near their allowed limits. */
@media(max-width:760px){
  #tag-manage-list .tag-manage-row{align-items:stretch!important}
  #tag-manage-list .tag-manage-main{width:100%}
  #tag-manage-list .tag-manage-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  #tag-manage-list .tag-manage-actions .btn{width:100%;min-width:0}
}

/* Health chart never renders more columns than the JS-selected cap; bars stay centered in each slot. */
.history-bars{grid-template-columns:repeat(var(--history-count),minmax(0,1fr))!important;gap:clamp(4px,.32vw,4px)!important}
.history-bar{justify-self:center;width:min(70%,14px);max-width:14px;min-width:3px}
.history-chart-note{margin:-9px 0 16px;padding:0 4px;color:var(--ui-text-muted,var(--muted));font-size:10.5px;line-height:1.45;text-align:right;overflow-wrap:anywhere}
@media(max-width:680px){.history-bar{width:min(72%,12px)}.history-chart-note{text-align:left}}


/* Long labels at page/modal boundaries must never determine the viewport width. */
.topbar>*,.brand-row,.brand-row>div,.top-actions,.section-title-row>*,.modal-head>div,.panel-title-row>div,.admin-section-copy,.library-row>*{min-width:0;max-width:100%}
.brand-row>div,.section-title-row>div:first-child,.modal-head>div:first-child,.panel-title-row>div:first-child{overflow:hidden}
.brand-row h1,.user-chip strong,.user-chip span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.section-title-row h2,.section-title-row h3,.modal-head h2,.panel-title-row h2,.panel-title-row h3,.admin-section-copy h3{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.section-title-row p,.modal-head p,.panel-title-row p,.admin-section-copy p,.field-help,.alert{max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.category-pills .pill{max-width:min(280px,72vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manage-category-badge{max-width:min(150px,42vw)!important}
.manage-domain{max-width:min(180px,48vw)!important}
.manage-admin-note{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-count,.status,.history-state,.audit-time{flex:0 0 auto;white-space:nowrap}
.custom-select-trigger,.multi-picker-trigger{min-width:0;max-width:100%}
.custom-select-value,.multi-picker-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.visibility-preview-list>span,.visibility-selected-row,.visibility-add-row,.multi-picker-option{min-width:0;max-width:100%;overflow:hidden}
.history-table td{overflow-wrap:anywhere;word-break:break-word}
.history-table td:nth-child(1),.history-table td:nth-child(3),.history-table td:nth-child(4){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:520px){
  .section-title-row{min-width:0}
  .section-title-row>div:first-child{flex:1 1 auto}
  .category-pills .pill{max-width:76vw}
  .manage-domain{max-width:62vw!important}
  .manage-category-badge{max-width:58vw!important}
}


/* 2.0.21 final chart containment: native title tooltips do not affect intrinsic width. */
.history-bar::after{display:none!important;content:none!important}
.history-x-axis{position:relative!important;display:block!important;height:22px!important;padding-top:0!important;overflow:hidden!important}
.history-x-axis span{position:absolute!important;top:7px!important;display:block!important;min-width:0!important;max-width:45%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;transform:none!important}
.history-x-axis span:first-child{left:0!important;text-align:left!important}
.history-x-axis span:last-child{right:0!important;left:auto!important;text-align:right!important}
.history-x-axis span:not(:first-child):not(:last-child){left:50%!important;right:auto!important;transform:translateX(-50%)!important;text-align:center!important}

/* Health history: every bar and its time label live in the same grid column. */
.history-chart-main{--history-plot-pad:8px;--history-label-color:#737b86;--history-axis-color:var(--ui-border,var(--line))}
:root[data-theme="dark"] .history-chart-main{--history-label-color:#9ca3af}
.history-plot{
  position:relative;
  height:189px;
}
.history-plot>.status-history-chart{
  position:absolute!important;
  inset:0 0 auto!important;
  width:100%;
  height:150px;
}
.history-series-grid{
  position:absolute;
  z-index:1;
  inset:0 var(--history-plot-pad) auto;
  display:grid!important;
  grid-template-columns:repeat(var(--history-count),minmax(0,1fr))!important;
  align-items:stretch!important;
  height:189px!important;
  box-sizing:border-box!important;
  padding:0!important;
  gap:0!important;
  overflow:visible!important;
}
.history-point{
  position:relative;
  display:grid;
  grid-template-rows:150px 39px;
  min-width:0;
}
.history-bar-slot{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  min-width:0;
  padding-bottom:1px;
}
.history-point .history-bar{
  flex:none!important;
  width:min(62%,14px)!important;
  min-width:3px!important;
  max-width:14px!important;
  height:var(--history-bar-height)!important;
}
.history-axis-label{
  position:absolute!important;
  top:150px!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  display:block!important;
  width:max-content!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  color:var(--history-label-color)!important;
  font:400 10px/1.2 var(--font-data,monospace)!important;
  font-variant-numeric:tabular-nums!important;
  padding-top:9px!important;
  overflow:visible!important;
  text-overflow:ellipsis!important;
  white-space:pre!important;
  text-align:center!important;
  line-height:1.2!important;
}
.history-axis-label[hidden]{display:none!important}
.history-axis-label::before{
  content:'';
  position:absolute;
  top:-5px;
  left:calc(50% - 1px);
  transform:none;
  width:2px;
  height:5px;
  border-radius:1px 1px 0 0;
  background:var(--history-axis-color);
  pointer-events:none;
}
@media(max-width:680px){
  .history-plot{height:171px}
  .history-plot>.status-history-chart{height:132px}
  .history-series-grid{height:171px!important}
  .history-point{grid-template-rows:132px 39px}
  .history-point .history-bar{width:min(68%,12px)!important;max-width:12px!important}
  .history-axis-label{top:132px!important;font-size:9px!important}
}

/* ToreyOne 2.1.0 — unified Dashboard panels and locale-independent date fields. */
.dashboard-modal-body>#dashboard-loaded-content{display:grid;gap:var(--space-5);min-width:0}
.dashboard-modal-body>#dashboard-loaded-content.hidden{display:none!important}
.dashboard-modal-body>#dashboard-loaded-content>#admin-dashboard{margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.dashboard-modal-body>#dashboard-loaded-content>.dashboard-status-section{margin:0!important;padding:var(--space-5)!important;border:1px solid var(--ui-border,var(--line))!important;border-radius:13px!important;background:var(--ui-surface,var(--panel))!important;box-shadow:none!important}
.dashboard-modal-body .dashboard-block,.dashboard-modal-body .dashboard-metric,.dashboard-modal-body .dashboard-status-section{box-shadow:none!important}
.date-input{font-family:var(--font-data)!important;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.date-input::placeholder{font-family:var(--font-data)!important;letter-spacing:.02em;text-transform:lowercase}

/* ToreyOne 2.2.0 — one notice language for the whole site.
   Shape first, colour second: every tone has its own glyph, so the meaning stays
   readable for colour-blind users and in dark mode. */
.alert{position:relative;display:grid;gap:4px;padding:11px var(--space-5) 11px 39px;border-radius:11px;font-size:13px;line-height:1.6;margin:var(--space-5) 0}.alert::before{position:absolute;left:12px;top:11px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:700 12px/1 var(--font-num);letter-spacing:0}
.alert>strong{font-size:13px;font-weight:650}
.alert.success{background:#ecfdf3;border:1px solid #a7e6bb;color:#10633a}
.alert.success::before{content:"\2713";background:#c6f0d6;color:#0a6b3c}
.alert.info{background:#eef6ff;border:1px solid #bfdcff;color:#1d4e80}
.alert.info::before{content:"i";background:#cfe4ff;color:#1a5490;font-family:Georgia,"Times New Roman",serif;font-style:italic}
.alert.warning{background:#fff8ec;border:1px solid #f2d9a0;color:#7a5100}
.alert.warning::before{content:"!";background:#fce7bd;color:#8a5a00}
.alert.danger{background:#fff1f0;border:1px solid #fecaca;color:#98231a}
.alert.danger::before{content:"\00d7";background:#ffd5d1;color:#a4231a;font-size:15px}
:root[data-theme="dark"] .alert.success{background:#14301f!important;border-color:#2f6146!important;color:#8fe0b0!important}
:root[data-theme="dark"] .alert.success::before{background:#1d4430!important;color:#9ff0c2!important}
:root[data-theme="dark"] .alert.info{background:#14283a!important;border-color:#2c557a!important;color:#a9d3ff!important}
:root[data-theme="dark"] .alert.info::before{background:#1c3b56!important;color:#b6dcff!important}
:root[data-theme="dark"] .alert.warning{background:#33260c!important;border-color:#6b5423!important;color:#f0cf8f!important}
:root[data-theme="dark"] .alert.warning::before{background:#453514!important;color:#f7dca4!important}
:root[data-theme="dark"] .alert.danger{background:#3a1a1c!important;border-color:#6d3539!important;color:#ffb3ab!important}
:root[data-theme="dark"] .alert.danger::before{background:#4d2327!important;color:#ffc4bd!important}
@media(prefers-color-scheme:dark){
:root[data-theme="auto"] .alert.success{background:#14301f!important;border-color:#2f6146!important;color:#8fe0b0!important}
:root[data-theme="auto"] .alert.success::before{background:#1d4430!important;color:#9ff0c2!important}
:root[data-theme="auto"] .alert.info{background:#14283a!important;border-color:#2c557a!important;color:#a9d3ff!important}
:root[data-theme="auto"] .alert.info::before{background:#1c3b56!important;color:#b6dcff!important}
:root[data-theme="auto"] .alert.warning{background:#33260c!important;border-color:#6b5423!important;color:#f0cf8f!important}
:root[data-theme="auto"] .alert.warning::before{background:#453514!important;color:#f7dca4!important}
:root[data-theme="auto"] .alert.danger{background:#3a1a1c!important;border-color:#6d3539!important;color:#ffb3ab!important}
:root[data-theme="auto"] .alert.danger::before{background:#4d2327!important;color:#ffc4bd!important}}

/* Toasts: same three tones. "ok" keeps the brand colour, danger and warning add their own. */
.toast{display:flex;align-items:center;justify-content:center;gap:8px;line-height:1.45;overflow-wrap:anywhere}
.toast::before{flex:0 0 auto;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:700 12px/1 var(--font-num);background:rgba(255,255,255,.2);color:currentColor}
.toast.ok::before{content:"\2713"}
/* "busy" is a work-in-progress notice: nothing succeeded yet, so it must NOT show a tick. */
.toast.busy{background:var(--theme-accent-solid)!important;color:var(--theme-accent-contrast)!important}
.toast.busy::before{content:"\2026"}
.toast.info{background:var(--theme-accent-solid)!important;color:var(--theme-accent-contrast)!important}
.toast.info::before{content:"i";font-family:Georgia,"Times New Roman",serif;font-style:italic}
.toast.warning{background:#b25e00!important;color:#fff!important}
.toast.warning::before{content:"!"}
.toast.danger{background:#b42318!important;color:#fff!important}
.toast.danger::before{content:"\00d7";font-size:15px}

/* Status pills get a leading dot so the state is visible without reading the text. */
.status.on::before,.status.off::before,.status.warn::before,.status.neutral::before{content:"";flex:0 0 auto;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:4px;opacity:.9}
.status.warn::before{box-shadow:0 0 0 2px rgba(255,255,255,.35)}

/* Generic field feedback (previously only wired to one input). */
.field-error{color:#b42318}
.field-valid{color:#087443}
:root[data-theme="dark"] .field-error{color:#ff9e95}
:root[data-theme="dark"] .field-valid{color:#7bd7a8}
@media(prefers-color-scheme:dark){:root[data-theme="auto"] .field-error{color:#ff9e95}:root[data-theme="auto"] .field-valid{color:#7bd7a8}}

/* Health / integrity summaries reuse the same tones. */
.integrity-summary,.cron-health-summary{display:flex;align-items:flex-start;gap:8px}
.integrity-summary::before,.cron-health-summary::before{flex:0 0 auto;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font:700 12px/1 var(--font-num);margin-top:1px}
.integrity-summary.ok::before,.cron-health-summary.ok::before{content:"\2713";background:#c6f0d6;color:#0a6b3c}
.integrity-summary.warn::before,.cron-health-summary.warn::before{content:"!";background:#fce7bd;color:#8a5a00}
.cron-health-summary.error::before{content:"\00d7";background:#ffd5d1;color:#a4231a;font-size:15px}
:root[data-theme="dark"] .integrity-summary.ok::before,:root[data-theme="dark"] .cron-health-summary.ok::before{background:#1d4430!important;color:#9ff0c2!important}
:root[data-theme="dark"] .integrity-summary.warn::before,:root[data-theme="dark"] .cron-health-summary.warn::before{background:#453514!important;color:#f7dca4!important}
:root[data-theme="dark"] .cron-health-summary.error::before{background:#4d2327!important;color:#ffc4bd!important}
@media(prefers-color-scheme:dark){
:root[data-theme="auto"] .integrity-summary.ok::before,:root[data-theme="auto"] .cron-health-summary.ok::before{background:#1d4430!important;color:#9ff0c2!important}
:root[data-theme="auto"] .integrity-summary.warn::before,:root[data-theme="auto"] .cron-health-summary.warn::before{background:#453514!important;color:#f7dca4!important}
:root[data-theme="auto"] .cron-health-summary.error::before{background:#4d2327!important;color:#ffc4bd!important}}

/* Integrity / health summary text had light-only colours; give them dark equivalents. */
:root[data-theme="dark"] .integrity-summary{background:#141c24!important;border-color:#2c3a47!important;color:#b6c6d4!important}
:root[data-theme="dark"] .integrity-summary.ok{background:#14301f!important;border-color:#2f6146!important;color:#8fe0b0!important}
:root[data-theme="dark"] .integrity-summary.warn{background:#33260c!important;border-color:#6b5423!important;color:#f0cf8f!important}
:root[data-theme="dark"] .integrity-issue{background:#141c24!important;border-color:#2c3a47!important;color:#a8bccc!important}
@media(prefers-color-scheme:dark){
:root[data-theme="auto"] .integrity-summary{background:#141c24!important;border-color:#2c3a47!important;color:#b6c6d4!important}
:root[data-theme="auto"] .integrity-summary.ok{background:#14301f!important;border-color:#2f6146!important;color:#8fe0b0!important}
:root[data-theme="auto"] .integrity-summary.warn{background:#33260c!important;border-color:#6b5423!important;color:#f0cf8f!important}
:root[data-theme="auto"] .integrity-issue{background:#141c24!important;border-color:#2c3a47!important;color:#a8bccc!important}}

/* Cron health summary used rgba() over dark panels; keep the text readable in both themes. */
:root[data-theme="dark"] .cron-health-summary.ok{background:rgba(29,158,117,.16)!important}
:root[data-theme="dark"] .cron-health-summary.warn{background:rgba(239,159,39,.16)!important}
:root[data-theme="dark"] .cron-health-summary.error{background:rgba(226,75,74,.18)!important}
@media(prefers-color-scheme:dark){
:root[data-theme="auto"] .cron-health-summary.ok{background:rgba(29,158,117,.16)!important}
:root[data-theme="auto"] .cron-health-summary.warn{background:rgba(239,159,39,.16)!important}
:root[data-theme="auto"] .cron-health-summary.error{background:rgba(226,75,74,.18)!important}}

/* A section head inside a panel already draws a full-width divider, so the heading itself must
   not draw a second underline that only spans the text. */
.panel-block .admin-section-head h3,
.panel-block>.admin-section-head>div>h3{padding-bottom:0;border-bottom:0;margin:0}
/* Keep the divider itself full width even when the head is a flex row. */
.admin-section-head{border-bottom:1px solid var(--ui-border,var(--line))}

/* ToreyOne 2.2.3 — long titles end with an ellipsis instead of being cut off mid-word.
   The ellipsis only renders when the element that clips is itself width-constrained, so the
   whole chain (container -> min-width:0 -> strong) has to cooperate. */.manage-row .manage-main,
.library-row .library-main{min-width:0;max-width:100%;overflow:hidden}
.manage-row .manage-main>strong,
.library-row .library-main>strong,
.manage-row .manage-sub>span,
.manage-sub.manage-site-meta>span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* The manage grid column is minmax(240px,1fr), so the 1fr side can grow to the content width
   and the chain above never actually clips. Force the title cell to stay bounded and let the
   text inside it ellipsize, regardless of how wide the grid column tries to become. */
.site-manage-row .manage-main{max-width:100%;overflow:hidden}
.site-manage-row .manage-main>strong{display:block;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.site-manage-columns,.site-manage-row{grid-template-columns:28px 32px 42px minmax(0,1fr) 112px 88px 72px}

/* Titles that sit next to a row of buttons must shrink, not push the buttons onto a new line. */
.panel-title-row>h2,.panel-title-row>h3,
.section-title-row>h2,.section-title-row>h3,
.modal-head>div:first-child>h2,
.status-detail-title>strong{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.panel-title-row>.btn,.panel-title-row>.button-row,
.section-title-row>.btn,.section-title-row>.button-row{flex:0 0 auto}

/* Health history dialog: a long site name used to squeeze the toolbar until the close
   button wrapped onto its own line. */
.status-history-modal-card .modal-head>div:first-child{min-width:0;flex:1 1 auto;overflow:hidden}
.status-history-modal-card #status-history-title{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.status-history-modal-card .modal-head>.button-row{flex:0 0 auto;flex-wrap:nowrap;align-items:center}
.status-history-modal-card .modal-head>.button-row>.btn,
.status-history-modal-card .modal-head>.button-row>.icon-btn{flex:0 0 auto}

/* Any dialog head that carries a toolbar behaves the same way. */
.modal-head:has(>.button-row)>div:first-child{min-width:0;flex:1 1 auto;overflow:hidden}
.modal-head:has(>.button-row)>div:first-child>h2{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.modal-head:has(>.button-row)>.button-row{flex:0 0 auto;flex-wrap:nowrap;align-items:center}

/* The backup tab uses the same .panel-block cards as every other management tab. Three named
   blocks read top to bottom: import, configuration backup/restore, full backup/restore.
   The card itself is restyled by the 2.2.5 block at the end of this file. */
.backup-sections{display:grid;gap:var(--space-5);min-width:0}
.backup-panel{margin:0!important}
.backup-panel>.backup-panel-body{padding-top:var(--space-3)}
.backup-panel-body>.backup-grid{gap:var(--space-5);margin:0}

/* ============================================================================
   ToreyOne 2.2.5 — one vertical rhythm for the whole product.

   Before this block the page mixed three mechanisms at once: grid `gap`,
   sibling margins and inherited legacy margins. Inside a grid container the
   gap and the margins add up, so the same pair of elements was 16px apart in
   one panel, 36px in another and 48px in a third. Two rules fix that:

     1. inside a `.stack` the gap is the single source of truth, and
     2. a lone field that follows a multi-column row starts a new group, so it
        gets the wider group gap instead of the ordinary field gap.

   The resulting scale: 8px inside a field, 20px between fields, 32px between
   field groups, 20px between panels and sections.
   ========================================================================== */

/* 1. Fields and blocks. Every `.stack` now paces its children at 20px, so a
      form reads the same whether the fields sit in two columns or one. */
.stack{gap:var(--space-5)}

/* Panels and notices keep their own margins out of a grid stack: the gap
   already separates them, and adding the margin produced 36–48px holes. */
.stack>.panel-block,
.stack>.alert,
.stack>.form-actions,
.stack>.modal-actions,
.stack>.status-policy-note,
.stack>.button-row,
.stack>.manage-toolbar,
.stack>.restore-preview,
.stack>.tag-merge-summary,
.stack>.tag-merge-result-note{margin-top:0;margin-bottom:0}

/* Dialog footers already draw a divider and 16px of inner padding, so the grid
   gap alone must decide how far they sit from the last field. */
.stack>.modal-actions{margin-top:0!important}

/* 2. Field groups. A full-width field placed under a two-column row is a new
      group, not a continuation of that row — for example the Redirect URL
      field under the Client ID / Client Secret pair and their help text. */
.form-grid+:is(label,.field,.stack,.alert,.button-row,.form-actions,.idp-profile-block),
.backup-panel-body>label:first-child{margin-top:var(--space-8)}

/* The same relationship inside a grid stack: the gap already contributes 20px,
   so only the remaining 12px is added to reach the 32px group gap. */
.stack>.form-grid+:is(label,.field,.stack,.alert,.button-row,.form-actions,.idp-profile-block){margin-top:calc(var(--space-8) - var(--space-5))}

/* 3. Everything that stacks directly in a dialog or tab panel uses one gap. */
.panel-block{margin:var(--space-5) 0}

/* 4. Sign-in card. The card is not a grid, so it gets an explicit rhythm. */
.auth-card>*{margin-top:0;margin-bottom:0}
.auth-card>.brand-mark{margin-bottom:0}
.auth-card>.eyebrow{margin-top:var(--space-5)}
.auth-card>.eyebrow+h1{margin-top:var(--space-2)}
.auth-card>h1+p{margin-top:var(--space-3)}
.auth-card>.alert{margin:var(--space-5) 0}
.auth-card>form{margin-top:var(--space-5)}
.auth-card>p.muted+.btn,
.auth-card>.alert+.btn,
.auth-card>.btn{margin-top:var(--space-5)}

/* 5. Group headings inside a form follow the same 20px rhythm. */
.panel-block>.admin-section-head{margin-bottom:var(--space-5)}
.backup-panel>.backup-panel-body{padding-top:0}

/* ============================================================================
   ToreyOne 2.2.5 / 2.2.7 — the backup tab says which direction each card works in.

   Every panel holds two jobs side by side: getting a copy out (导出) and putting
   a copy back (导入). They used to look identical, so the only cue was the title.

   2.2.5 separated them with a thick coloured top bar and a tinted header band.
   2.2.7 keeps the separation but rebuilds it out of parts the rest of the product
   already has, because those two were the only place in the whole program that
   used them:

     · the card itself is the standard soft panel (1px border, --panel2, 12px)
     · the head is a normal heading row with a 1px underline, exactly like
       .panel-block h3 — no tinted band
     · the role is the site's ordinary small badge (.featured-badge for the brand
       tone, .privacy-badge for the amber "handle with care" tone)
   ========================================================================== */
.backup-card{
  display:flex;flex-direction:column;min-width:0;padding:0;overflow:hidden;
  border:1px solid var(--ui-border,var(--line));border-radius:12px;
}

/* Both cards use the ordinary frame every other tab uses: same fill, same 1px
   border. `.is-export` / `.is-import` stay in the markup as plain semantic hooks,
   the role is carried by the badge in the card head. */

.backup-card-head{
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);
  padding:var(--space-3) var(--space-4);
  border-bottom:1px solid var(--ui-border,var(--line));
}
.backup-card-head>h4{margin:0;min-width:0;font-size:13px;font-weight:700;line-height:1.4;color:var(--ui-text-strong,var(--ink))}

/* Same recipe as .featured-badge / .privacy-badge: a flat 10px pill, no border. */
.backup-role{
  flex:0 0 auto;display:inline-flex;align-items:center;padding:2px 6px;border:0;
  border-radius:999px;font-size:10px;font-weight:700;line-height:1.6;white-space:nowrap;
}
.backup-role.out{background:color-mix(in srgb,var(--primary) 14%,var(--panel));color:var(--primary)}
.backup-role.in{background:#fff4e5;color:#9a4f00}
:root[data-theme="dark"] .backup-role.out{background:color-mix(in srgb,var(--primary) 18%,var(--panel))!important;color:color-mix(in srgb,var(--primary) 72%,white)!important}
:root[data-theme="dark"] .backup-role.in{background:#3d2f1f!important;color:#f2cc8f!important}
@media(prefers-color-scheme:dark){
  :root[data-theme="auto"] .backup-role.out{background:color-mix(in srgb,var(--primary) 18%,var(--panel))!important;color:color-mix(in srgb,var(--primary) 72%,white)!important}
  :root[data-theme="auto"] .backup-role.in{background:#3d2f1f!important;color:#f2cc8f!important}
}

.backup-card-body{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-5);min-width:0;padding:var(--space-4)}
.backup-card-body>p{margin:0;font-size:12px;line-height:1.6;color:var(--ui-text-muted,var(--muted))}
.backup-card-body>h4{margin:0;font-size:12px;font-weight:700;line-height:1.4;color:var(--ui-text-strong,var(--ink))}
.backup-card-body>.button-row,
.backup-card-body>.form-actions,
.backup-card-body>.form-grid,
.backup-card-body>.stack,
.backup-card-body>form{margin:0}
.backup-card-body>hr.soft-separator{margin:0;border-color:var(--ui-border,var(--line))}
.backup-card-body .field-help{margin-top:0}
.backup-card-body>.stack>.panel-block,
.backup-card-body>.stack>.alert{margin-top:0;margin-bottom:0}

/* The 置顶 badge. Same recipe as the other small badges (.featured-badge /
   .privacy-badge), but filled with the brand tone so it reads as the strongest
   label on a card. */
.pinned-badge{
  display:inline-flex;flex:0 0 auto;align-items:center;padding:2px 6px;border-radius:999px;
  background:var(--primary);color:var(--primary-contrast,#fff);font-size:10px;font-weight:700;
  line-height:1.6;white-space:nowrap;
}
:root[data-theme="dark"] .pinned-badge{background:color-mix(in srgb,var(--primary) 78%,#fff)!important;color:#0d1117!important}
@media(prefers-color-scheme:dark){
  :root[data-theme="auto"] .pinned-badge{background:color-mix(in srgb,var(--primary) 78%,#fff)!important;color:#0d1117!important}
}

/* Card footer alignment. The tag row lives in .site-card-footer, which is a sibling
   of the icon/text row, so its left padding has to reproduce "card padding + icon +
   gap" by hand. It was hard-coded to 74px/65px/12px and had drifted: the tags sat
   14px left of the title on desktop and 54px left of it below 820px. These values
   match the icon sizes and gaps used by each layout. */
.site-card-footer{padding-left:calc(var(--space-4) + 52px + var(--space-5))}
.site-card.mini .site-card-footer,
.compact-mode .site-card-footer{padding-left:calc(14px + 38px + var(--space-5))}
@media(max-width:820px){
  .site-card-footer{padding-left:calc(12px + 42px + var(--space-3))}
  .site-card.mini .site-card-footer,
  .compact-mode .site-card-footer{padding-left:calc(12px + 38px + var(--space-3))}
}

/* The 置顶 badge sits inline before the site name in the management list, so it needs
   its own gap — flex gap does not apply to inline content. */
.manage-main .pinned-badge{margin-right:var(--space-2)}

@media(max-width:699px){
  /* One coherent mobile footer: flat, aligned with the fields above it, exactly like
     the desktop one. */
  .modal-card .mobile-sticky-actions{
    margin:var(--space-5) 0 0!important;padding:var(--space-5) 0 0!important;
    border:0!important;border-top:1px solid var(--line)!important;
    border-radius:0!important;box-shadow:none!important;background:transparent!important;
  }
}

/* Small link-style buttons sit inside a form row; on a touch screen they need a
   fingertip-sized hit area. */
@media(hover:none),(pointer:coarse){
  .inline-link-button{min-height:32px;padding:6px 0}
  /* The search box is 44px tall but its field was only 24px, so the top and bottom
     strips of a control that looks tappable did nothing on a phone. */
  .search-box>input,.command-search>input{height:100%!important;min-height:0!important}
}

/* ============================================================================
   ToreyOne 2.3.4 — phone layout corrections.

   1. The website-management row lost its phone layout. A later rule declares the
      desktop seven-track grid for every width, and because it sits at the end of the
      stylesheet it also overrode the two named-area layouts below 960px / 600px. The
      area names still applied but to those seven tracks, so the name cell landed in a
      zero-width track and the restore/status/action cells piled up in the first four.
      Re-declaring the two mobile grids here (after that rule) restores them.
   ========================================================================== */
@media(max-width:960px){
  .site-manage-columns,.site-manage-row{
    grid-template-columns:28px 30px 40px minmax(0,1fr) auto;
    grid-template-areas:'select drag icon main action' '. . . health enabled';
    gap:8px 10px;
  }
}
@media(max-width:600px){
  .site-manage-row{
    grid-template-columns:24px 26px 36px minmax(0,1fr);
    grid-template-areas:'select drag icon main' '. health health health' '. enabled enabled action';
    padding:12px 10px;
    gap:8px;
  }
}

/* 2. Visit log: a five-column table-like row squeezed into two columns put the IP on
      its own half-row and clipped the user agent. One field per line instead. */
@media(max-width:699px){
  .visit-log-row{grid-template-columns:1fr;gap:2px;padding:11px}
  .visit-log-row>*{text-align:left}
  .visit-log-row time{grid-column:auto}
  .visit-log-agent{grid-column:auto;white-space:normal;overflow-wrap:anywhere}
}

/* 3. The three card actions were all 28x28 but drew their glyph at 15px, 16px and a
      14px SVG, with two different colours, so they read as three different sizes. */
.site-card-action.favorite>span,
.site-card-action.refresh-status>span{font-size:15px!important;line-height:1!important}
.site-settings-glyph,
.site-settings-glyph svg{width:15px!important;height:15px!important}
.site-card-action.favorite,
.site-card-action.refresh-status,
.site-card-action.edit-shortcut{color:var(--muted)}
.site-card-action.favorite.active,
.site-card-action.favorite.active:hover{color:#d99a00}

/* 4. Quick filters: the category pills right above them wrap on a phone, the filter
      chips scrolled sideways instead. Same behaviour for both. */
@media(max-width:699px){
  .home-quick-filters{flex-wrap:wrap;overflow-x:visible;padding-bottom:0}
  .home-quick-filters .quick-filter{flex:0 1 auto}
}

/* ============================================================================
   ToreyOne 2.3.5 — phone layout of a website-management row.

   The icon, the status, the enabled badge and the edit button now share one vertical
   line (the icon column), so the row reads top-to-bottom instead of having its parts
   scattered across two lines:

       [ ] ⋮⋮ [icon] name
       [ ] ⋮⋮ [icon] category  domain
       [ ] ⋮⋮ [icon] tags
              [status] [refresh]
              [enabled]
              [edit]
   ========================================================================== */
@media(max-width:600px){
  .site-manage-row{
    grid-template-columns:24px 26px 36px minmax(0,1fr);
    grid-template-areas:
      'select drag icon main'
      '.      .    health health'
      '.      .    enabled enabled'
      '.      .    action action';
    padding:12px 10px;
    row-gap:8px;
    column-gap:8px;
  }
  .site-manage-row .manage-health{justify-content:flex-start}
  .site-manage-row .manage-enabled{justify-content:flex-start}
  /* One clear break between "what this site is doing" and the action. */
  .site-manage-row .manage-action{justify-content:flex-start;margin-top:4px}
  .site-manage-row .manage-health .icon-action{margin-left:0}
}

@media(max-width:640px){
  .backup-sections{gap:var(--space-4)}
  .backup-card-body{padding:var(--space-3)}
  .backup-card-head{padding:var(--space-2) var(--space-3)}
}

/* 6. A few paragraphs and headings still carried the browser's own default
      margins (1em on <p>, .83em on <h2>), which is 14px/17px at this font size —
      neither of them on the scale. Set them explicitly. */
.brand-row #site-subtitle-heading{margin-top:var(--space-3);margin-bottom:0}
.panel-title-row>div>h2,.panel-title-row>div>h3,.panel-title-row>h2,.panel-title-row>h3{margin-top:0;margin-bottom:0}
#confirm-modal #confirm-message{margin-top:0;margin-bottom:0}


/* ============================================================================
   ToreyOne 2.2.6 — "not run yet" hints in 维护与诊断.

   Four lists in that tab were simply blank until their button was clicked, which
   reads like a broken panel. They now start with a plain-language hint (markup in
   index.php). The health list is the only one laid out as a three-column grid, so
   its hint has to be told to span the whole row instead of sitting in column one.
   ========================================================================== */
#portal-health-list>.empty-mini{grid-column:1/-1;width:100%}
