:root{
  color-scheme: light;
  font-family:"NanumGothic","Nanum Gothic","Noto Sans KR",Arial,sans-serif;
  --ink:#18212a; --muted:#6b7580; --line:#dfe5ea; --panel:#fff; --bg:#f4f6f8;
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;color:var(--ink)} a{color:inherit;text-decoration:none}
button,input,select{font:inherit}button,.btn,.login-button{font-family:"NanumGothic","Nanum Gothic","Noto Sans KR",Arial,sans-serif}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.btn{height:34px;border:0;background:var(--btn-secondary,#66727d);color:#fff;border-radius:6px;padding:0 13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:12px;font-weight:700;line-height:1;white-space:nowrap;vertical-align:middle}.btn:hover{filter:brightness(.94)}.btn:focus-visible{outline:2px solid rgba(19,104,179,.28);outline-offset:2px}.btn.primary,.btn-save{background:var(--btn-save,var(--accent,#1368b3));color:#fff}.btn-add{background:var(--btn-add,#198754);color:#fff}.btn-edit{background:var(--btn-edit,#d97706);color:#fff}.btn-danger{background:var(--btn-delete,#c0392b);color:#fff}.btn-secondary,.btn.ghost{background:var(--btn-secondary,#66727d);color:#fff}.btn-logout{background:var(--btn-logout,#475569);color:#fff}.btn.small{height:34px;padding:0 10px;font-size:12px}.icon-btn{width:34px;height:34px;border:0;background:transparent;color:#46515a;font-family:"NanumGothic","Nanum Gothic",Arial,sans-serif;font-size:22px;cursor:pointer;line-height:1;display:inline-grid;place-items:center;border-radius:5px}.icon-btn:hover{background:#f0f2f4}

/* login */
.login-page{min-height:100vh;min-height:100svh;position:relative;overflow:hidden;background-color:#06101a;background-image:linear-gradient(180deg,#06101a,#102533);background-size:cover;background-position:center center;background-repeat:no-repeat;color:#fff}
.login-page:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.03),rgba(0,0,0,.03));pointer-events:none}
.login-wordmark{position:absolute;top:7.5vh;left:50%;transform:translateX(-50%);text-align:center;z-index:2;min-width:0;max-width:82vw}
.login-wordmark:empty{display:none}.login-wordmark img{max-height:120px;object-fit:contain}.custom-login-title{font-size:34px;font-weight:800;letter-spacing:3px;text-shadow:0 1px 12px rgba(0,0,0,.35);color:var(--login-title-color,#fff)}
.login-box{position:absolute;left:var(--login-x,50%);top:var(--login-y,58%);transform:translate(-50%,-50%);z-index:2;width:min(430px,82vw);color:var(--login-box-text-color,#fff)}.login-box-inner{width:100%;text-align:center;color:inherit}
.login-subtitle{margin-bottom:18px;color:var(--login-helper-text-color,#d9e1e8);font-size:var(--login-helper-font-size,14px);line-height:1.45}.login-error{background:rgba(155,24,24,.78);border:1px solid var(--login-line-color,#fff);color:#fff;padding:10px 12px;border-radius:6px;margin-bottom:12px;font-size:14px}
.line-input{width:100%;height:48px;border:0;border-bottom:1px solid var(--login-line-color,#fff);background:transparent;color:var(--login-input-text-color,#fff);opacity:var(--input-alpha,.9);outline:none;text-align:center;font-size:var(--input-font-size,16px);font-weight:600;letter-spacing:.7px}.line-input::placeholder{color:var(--login-input-text-color,#fff);opacity:1}
.remember-id-row{display:flex;align-items:center;justify-content:flex-start;gap:8px;margin-top:10px;color:var(--login-remember-color,var(--login-box-text-color,#fff));font-size:var(--login-remember-font-size,13px);line-height:1.2;cursor:pointer;user-select:none}.remember-id-row input{width:calc(var(--login-remember-font-size,13px) + 3px);height:calc(var(--login-remember-font-size,13px) + 3px);min-width:15px;min-height:15px;margin:0;accent-color:var(--accent,#1368b3)}.login-button{margin-top:16px;width:100%;height:34px;background:rgba(0,0,0,.34);border:0;color:#fff;font-weight:700;cursor:pointer;letter-spacing:1px}.login-button:hover{background:rgba(255,255,255,.12)}
.login-footer{position:absolute;z-index:2;left:0;right:0;bottom:4vh;padding:0 16px;text-align:center;color:var(--login-footer-color,#334155);font-size:var(--login-footer-font-size,11px);line-height:1.4;letter-spacing:.5px;pointer-events:none}

/* portal */
.portal-shell{min-height:100vh;background:#fff;font-family:"NanumGothic","Nanum Gothic",Arial,sans-serif;--portal-link-width:120px;--portal-link-gap-x:10px;--portal-link-gap-y:10px;--portal-group-title-gap:6px;--portal-group-gap-y:1px;--portal-group-font-size:13px;--portal-link-font-size:11px;--portal-credential-font-size:11px}.portal-header{height:38px;min-height:38px;background:#fff;border-bottom:1px solid #f0f2f4;padding:0 18px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.portal-identity{display:flex;align-items:center;gap:7px;min-width:0}.portal-brand{font-size:12px;font-weight:700;color:#4d5963;letter-spacing:.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}.portal-user{font-size:10px;color:#9aa3aa;white-space:nowrap}.header-actions{display:flex;gap:5px;align-items:center;color:#8a949d;font-size:10px;white-space:nowrap}.header-actions form{margin:0;display:inline-flex}.portal-meta-link{font-size:10px;color:#6d7881;padding:0;border:0;background:transparent;cursor:pointer;line-height:1}.portal-meta-link:hover{color:var(--accent)}.portal-meta-sep{color:#d1d6da}.portal-session{font-size:10px;color:#8a949d}.portal-session b{font:inherit;color:#606b74;font-variant-numeric:tabular-nums}.portal-main{width:80vw;max-width:none;margin:0 auto;padding:8px 0 18px;font-family:"NanumGothic","Nanum Gothic",Arial,sans-serif}
.portal-group{background:#fff;border:1px solid #eef1f3;border-radius:3px;margin-bottom:var(--portal-group-gap-y);padding:3px 4px 4px}.group-title-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #f1f3f4;padding:0 1px 2px;margin:0 0 var(--portal-group-title-gap)}.group-title-row h2{margin:0;font-family:"NanumGothic","Nanum Gothic",Arial,sans-serif;font-size:var(--portal-group-font-size);line-height:1.25;font-weight:700}.group-title-row span{font-size:8px;color:#a0a8ae}
.link-grid{display:grid;grid-template-columns:repeat(var(--resolved-columns,16),var(--resolved-link-width,var(--portal-link-width)));column-gap:var(--portal-link-gap-x);row-gap:var(--portal-link-gap-y);justify-content:start;align-items:start}.link-card{width:var(--resolved-link-width,var(--portal-link-width));border:0;border-radius:0;background:#fff;overflow:visible}.site-main-link{width:100%;padding:0;display:block;text-align:center}.site-logo-wrap{width:100%;aspect-ratio:2/1;min-height:24px;max-height:80px;border:0;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}.site-main-link:hover{filter:brightness(.97)}.site-logo-wrap img{display:block;width:100%;height:100%;object-fit:contain}.site-logo-wrap span{display:grid;place-items:center;width:100%;height:100%;background:#f7f8f9;color:var(--accent);font-size:14px;font-weight:800}.site-name,.credential-line{font-family:"NanumGothic","Nanum Gothic",Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;padding:0 1px}.site-name{margin-top:1px;font-size:var(--portal-link-font-size);line-height:1.35;color:#303940;height:1.35em}.credential-line{font-size:var(--portal-credential-font-size);line-height:1.35;color:#65717a;height:1.35em;min-height:9px}.empty-state{background:#fff;border:1px dashed #c9d1d8;border-radius:8px;padding:24px;text-align:center;display:flex;flex-direction:column;gap:6px}

/* modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.48);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:min(520px,94vw);background:#fff;border-radius:12px;padding:18px}.modal.wide{width:min(760px,94vw)}.modal-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:16px}.cred-row{display:grid;grid-template-columns:38px 1fr auto auto;gap:8px;align-items:center;margin:10px 0}.cred-row input{width:100%;border:1px solid var(--line);border-radius:7px;padding:10px}.modal-note{font-size:12px;color:var(--muted);margin-top:14px}

/* admin */
.admin-shell{min-height:100vh;background:var(--bg);display:grid;grid-template-columns:210px 1fr}.admin-side{position:sticky;top:0;height:100vh;background:#17212b;color:#dbe2e8;padding:10px 10px;display:flex;flex-direction:column}.admin-brand{font-weight:800;color:#fff;padding:6px 8px 10px;font-size:13px}.admin-side nav{display:flex;flex-direction:column;gap:2px}.admin-side nav a{padding:8px 8px;border-radius:5px;font-size:12px}.admin-side nav a:hover{background:#253440}.admin-version{margin-top:auto;font-size:10px;color:#81909c;padding:7px 8px}.admin-content{min-width:0}.admin-top{height:42px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 12px}.admin-top strong{font-size:12px}.admin-top span{font-size:10px;color:var(--muted);margin-left:6px}.admin-main{padding:8px 10px 12px}.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:7px}.page-title h1{font-size:19px;line-height:1.2;margin:0 0 2px}.page-title p{margin:0;color:var(--muted);font-size:11px;line-height:1.35}
.metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-bottom:8px}.metric{background:#fff;border:1px solid var(--line);border-radius:7px;padding:9px 10px}.metric span{display:block;color:var(--muted);font-size:10px}.metric strong{display:block;font-size:21px;margin-top:3px;color:var(--accent)}
.panel{background:#fff;border:1px solid var(--line);border-radius:7px;padding:9px 10px;margin-bottom:8px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px}.panel-title h2{margin:0;font-size:14px}.panel-title a{color:var(--accent);font-size:11px}.panel-title-actions{display:flex;align-items:center;gap:8px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{border-bottom:1px solid #edf0f2;text-align:left;padding:7px 7px;white-space:nowrap}th{background:#f8fafb;color:#5a6570}.detail-cell{max-width:380px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.form-grid label,.stack-form label,.filter-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#4b5660}.form-grid input,.form-grid select,.stack-form input,.stack-form select,.filter-row input,.filter-row select{width:100%;border:1px solid var(--line);border-radius:6px;padding:7px 8px;background:#fff}.form-action{display:flex;align-items:flex-end}.field-help{font-size:11px;color:var(--muted);line-height:1.45}.secret-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center}.secret-field input{min-width:0}.masked-secret{-webkit-text-security:disc;text-security:disc}.masked-secret.is-visible{-webkit-text-security:none;text-security:none}.secret-toggle{height:34px;border:0;border-radius:6px;padding:0 10px;background:var(--btn-secondary,#66727d);color:#fff;cursor:pointer;font-family:"NanumGothic","Nanum Gothic",Arial,sans-serif;font-size:11px;font-weight:700}.stack-form{display:flex;flex-direction:column;gap:8px}.check-row{flex-direction:row!important;align-items:center}.check-row input{width:auto!important}.inline-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.protected-account{font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap}.reset-form{display:flex;gap:6px}.reset-form input{width:130px;border:1px solid var(--line);border-radius:6px;padding:6px}.filter-row{display:flex;gap:10px;align-items:flex-end}.filter-row label{min-width:180px}
.portal-display-panel{padding:8px 10px}.portal-display-panel .panel-title{margin-bottom:6px}.portal-display-form{display:grid;grid-template-columns:repeat(5,minmax(118px,1fr));gap:6px 8px;align-items:start}.portal-display-form label{display:grid;grid-template-rows:16px 34px 20px;gap:3px;font-size:12px;color:#4b5660}.portal-display-form input,.portal-display-form select{width:100%;height:34px;border:1px solid var(--line);border-radius:6px;padding:5px 8px;background:#fff}.portal-display-form small{font-size:9px;line-height:1.2;color:var(--muted);overflow:hidden}.portal-display-save{align-items:flex-start;align-self:start;padding-top:19px}.portal-display-save .btn{white-space:nowrap}
.layout-toolbar{background:#fff;border:1px solid var(--line);border-radius:7px;padding:7px 10px;margin-bottom:7px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}.status-line{min-height:24px;font-size:13px;color:var(--accent)}
.group-board{display:flex;flex-direction:column;gap:8px}.layout-group{background:#fff;border:1px solid var(--line);border-radius:7px;padding:8px}.layout-group.drag-over{outline:2px solid var(--accent)}.layout-group-head{touch-action:none;display:flex;justify-content:space-between;align-items:center;padding-bottom:6px;border-bottom:1px solid var(--line);cursor:grab;user-select:none}.layout-group-head:active{cursor:grabbing}.layout-group-head strong{font-size:16px}.layout-group-head em{font-style:normal;font-size:11px;color:var(--muted);margin-left:10px}.drag-symbol{margin-right:8px;color:#8b98a3}.inactive-badge{font-size:10px;background:#eceff2;color:#727c84;padding:3px 6px;border-radius:20px;margin-left:7px}
.layout-link-grid{display:grid;grid-template-columns:repeat(var(--columns,16),minmax(0,1fr));gap:6px;padding:7px 0;min-height:42px}.layout-link-grid.drag-over{outline:2px dashed rgba(19,104,179,.35);outline-offset:2px}.layout-link{touch-action:none;border:1px solid var(--line);border-radius:6px;padding:5px 5px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:5px;align-items:center;cursor:grab;background:#fff;min-width:0;user-select:none}.layout-link:active{cursor:grabbing}.layout-link.is-inactive{opacity:.45}.layout-link.dragging,.layout-group.dragging{opacity:.32;pointer-events:none}.layout-drag-active{cursor:grabbing!important;user-select:none!important}.layout-drag-active *{cursor:grabbing!important}.layout-link-logo{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#f2f5f7;border-radius:7px;overflow:hidden}.layout-link-logo img{max-width:100%;max-height:100%;object-fit:contain}.layout-link-logo span{font-size:11px;font-weight:800;color:var(--accent)}.layout-link-name{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-edit{height:34px;padding:0 8px;font-size:11px}.add-link-btn{height:34px;padding:0 10px}
.settings-grid{display:grid;grid-template-columns:390px 1fr;gap:8px}.preview-panel{min-width:0}.login-preview{width:100%;aspect-ratio:1365/768;border-radius:9px;position:relative;overflow:hidden;background:#06101a;background-size:cover;background-position:center center;background-repeat:no-repeat;color:#fff}.preview-logo{position:absolute;top:9%;left:50%;transform:translateX(-50%);text-align:center;max-width:80%}.preview-logo img{max-width:220px;max-height:96px}.preview-title{display:block;font-size:26px;font-weight:800;letter-spacing:2px;text-shadow:0 1px 10px rgba(0,0,0,.35);color:var(--preview-title-color,#fff)}.preview-login{position:absolute;transform:translate(-50%,-50%);width:44%;text-align:center;color:var(--preview-box-text-color,#fff)}.preview-login div{border-bottom:1px solid var(--preview-line-color,#fff);padding:10px;font-size:var(--preview-input-size,16px);color:var(--preview-input-text-color,#fff);opacity:var(--preview-input-alpha,.9)}.preview-login .preview-login-subtitle{border-bottom:0;padding:0 0 8px;color:var(--preview-helper-text-color,#d9e1e8);opacity:1;font-size:var(--preview-helper-font-size,14px);line-height:1.4;min-height:0}.preview-login .preview-login-subtitle:empty{display:none}.preview-login-remember{display:flex;align-items:center;gap:5px;text-align:left;margin-top:7px;color:var(--preview-remember-color,var(--preview-box-text-color,#fff));font-size:var(--preview-remember-font-size,13px);line-height:1.2}.preview-login-remember input{width:calc(var(--preview-remember-font-size,13px) + 2px);height:calc(var(--preview-remember-font-size,13px) + 2px);margin:0;accent-color:var(--preview-accent,#1368b3)}.preview-login button{width:100%;height:34px;margin-top:16px;padding:0 10px;background:rgba(0,0,0,.34);color:#fff;border:0;font-family:"NanumGothic","Nanum Gothic",Arial,sans-serif}.preview-login-footer{position:absolute;z-index:2;left:0;right:0;bottom:4%;padding:0 12px;text-align:center;color:var(--preview-footer-color,#334155);font-size:var(--preview-footer-font-size,11px);line-height:1.4;letter-spacing:.4px}.preview-login-footer:empty{display:none}

@media(max-width:1200px){.metrics{grid-template-columns:repeat(3,1fr)}.settings-grid{grid-template-columns:1fr}.portal-display-form{grid-template-columns:repeat(3,minmax(118px,1fr))}}
@media(max-width:760px){.admin-shell{grid-template-columns:1fr}.admin-side{position:static;height:auto}.admin-side nav{display:grid;grid-template-columns:1fr 1fr}.admin-content{min-width:0}.admin-main{padding:8px}.metrics{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.portal-main{width:calc(100vw - 24px);padding:12px 0 22px}.portal-header{height:36px;min-height:36px;padding:0 10px}.portal-brand{max-width:36vw}.portal-user{display:none}.layout-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-toolbar{align-items:flex-start;gap:10px;flex-direction:column}.filter-row{flex-direction:column;align-items:stretch}.settings-grid{grid-template-columns:1fr}.portal-display-form{grid-template-columns:1fr 1fr}.login-footer{bottom:4vh}}

.rank-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.online-badge{display:inline-block;padding:3px 7px;border-radius:20px;background:#e9f7ee;color:#23733b;font-size:11px;font-weight:700}@media(max-width:900px){.rank-grid{grid-template-columns:1fr}}

.panel-help{font-size:12px;color:var(--muted)}

/* installer */
.install-page{min-height:100vh;background:#f4f6f8;padding:40px 16px;display:flex;justify-content:center;align-items:flex-start}.install-card{width:min(620px,100%);background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px}.install-card h1{margin:0 0 8px}.install-card p{color:var(--muted)}.install-card hr{border:0;border-top:1px solid var(--line);width:100%}.install-card small{color:var(--muted)}.install-error{background:#fff1f1;border:1px solid #e8b7b7;color:#8b1f1f;border-radius:8px;padding:12px;margin:14px 0}.install-note{font-size:12px}.config-text{width:100%;font-family:Consolas,monospace;font-size:12px;border:1px solid var(--line);border-radius:7px;padding:10px}.status-line{padding:6px 0 10px}

/* setup and local test */
.local-banner{margin:14px 0;padding:12px 14px;border:1px solid #b8d6ea;border-radius:8px;background:#eef7fd;font-size:13px;line-height:1.6}.setup-links{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.system-check-card{width:min(760px,100%)}.check-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:14px 0}.check-row-item{display:grid;grid-template-columns:180px 70px 1fr;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:13px}.check-row-item:last-child{border-bottom:0}.check-row-item small{color:var(--muted);overflow-wrap:anywhere}.check-row-item .pass{color:#23733b}.check-row-item .fail{color:#a22626}.check-summary{padding:12px 14px;border-radius:8px;margin:12px 0;font-size:13px}.pass-box{background:#edf8f0;border:1px solid #afd2b8;color:#1d6231}.fail-box{background:#fff1f1;border:1px solid #e8b7b7;color:#8b1f1f}@media(max-width:640px){.check-row-item{grid-template-columns:1fr auto}.check-row-item small{grid-column:1/-1}}


/* login background rotation */
.background-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.background-card{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}.background-card.is-hidden{opacity:.55}.background-card>img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#eef2f5}.background-meta{padding:9px 10px;display:flex;flex-direction:column;gap:3px}.background-meta strong{font-size:12px}.background-meta span{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.background-actions{border-top:1px solid var(--line);padding:8px 10px;display:flex;justify-content:space-between;align-items:center;gap:8px}.background-actions form{margin:0}.background-actions .check-row{font-size:11px;gap:5px}@media(max-width:1000px){.background-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.background-gallery{grid-template-columns:1fr}}

/* Compact semantic button configuration */
.button-color-form{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr)) auto;gap:7px;align-items:end}.button-color-form label{display:grid;gap:3px;font-size:11px;color:#4b5660}.button-color-form input[type=color]{width:100%;height:34px;padding:2px;border:1px solid var(--line);border-radius:5px;background:#fff}.button-color-panel{margin-top:0}.background-actions .btn{min-width:74px}

@media(max-width:1200px){.button-color-form{grid-template-columns:repeat(3,minmax(105px,1fr))}}@media(max-width:760px){.button-color-form{grid-template-columns:1fr 1fr}}

/* User Excel import / 4-digit portal PIN */
.excel-import-form{display:grid;grid-template-columns:minmax(280px,1.5fr) minmax(160px,.7fr) auto;gap:7px 9px;align-items:end}.excel-import-form label{display:grid;gap:4px;font-size:12px;color:#4b5660}.excel-import-form input[type=file],.excel-import-form select{width:100%;height:34px;border:1px solid var(--line);border-radius:6px;padding:5px 8px;background:#fff}.excel-import-help{grid-column:1/-1}.import-summary{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:8px 0 6px;padding:6px 8px;background:#f7f9fa;border-radius:5px;font-size:11px}.import-summary strong{font-size:12px}.text-danger{color:#b42318!important}.import-preview-table{max-height:420px;overflow:auto}.import-preview-table th,.import-preview-table td{font-size:11px;padding:5px 6px}.import-error-row{background:#fff1f0}.import-actions{display:flex;gap:7px;align-items:center;margin-top:7px}.import-actions form{margin:0}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.reset-form input[inputmode=numeric],.user-create-form input[inputmode=numeric]{letter-spacing:2px;text-align:center;font-variant-numeric:tabular-nums}
@media(max-width:900px){.excel-import-form{grid-template-columns:1fr}.excel-import-help{grid-column:auto}}

/* Prior navigator/search baseline retained for compatibility. */
.portal-main{width:min(1880px,calc(100vw - 24px));padding:10px 0 20px}
.portal-content-shell{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;align-items:start}.portal-primary{min-width:0}.portal-group{scroll-margin-top:58px}.portal-navigator{position:sticky;top:50px;display:flex;flex-direction:column;gap:10px}.navigator-card{background:#fff;border:1px solid #e5eaee;border-radius:8px;padding:10px}.navigator-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid #eef2f5;margin-bottom:9px}.navigator-head strong{font-size:13px}.navigator-head span{font-size:10px;color:#87919a;white-space:nowrap}.portal-search-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.portal-search-controls input{width:100%;height:34px;border:1px solid #d9e1e7;border-radius:6px;padding:0 10px;font-size:12px}.portal-search-status{font-size:11px;color:#6f7982;margin-top:7px}.portal-search-results{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto;margin-top:8px}.search-result-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;border:1px solid #edf1f4;border-radius:7px;padding:6px;background:#fff}.search-result-item:hover{border-color:#cad7e3;background:#f8fbfd}.search-result-item img,.result-fallback{width:34px;height:26px;display:grid;place-items:center;object-fit:contain;background:#f1f5f8;border-radius:5px}.result-fallback{font-size:11px;font-weight:800;color:var(--accent)}.search-result-item span{display:flex;flex-direction:column;min-width:0}.search-result-item strong{font-size:12px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-item em{font-style:normal;font-size:10px;color:#7d8790;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-empty{padding:10px 0;font-size:12px;color:#7a848d;text-align:center}
.navigator-links{display:flex;flex-direction:column;gap:7px}.navigator-group-links .nav-group-link{display:flex;justify-content:space-between;align-items:center;padding:8px 9px;border:1px solid #edf1f4;border-radius:7px;font-size:12px}.navigator-group-links .nav-group-link:hover{border-color:#cad7e3;background:#f8fbfd}.navigator-group-links .nav-group-link b{font-size:10px;background:#f0f4f7;color:#5c6873;padding:2px 6px;border-radius:999px}.navigator-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:7px}.nav-shortcut-link{border:1px solid #edf1f4;border-radius:7px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;min-width:0}.nav-shortcut-link:hover{border-color:#cad7e3;background:#f8fbfd}.nav-shortcut-link img,.shortcut-fallback{width:100%;max-width:72px;height:28px;display:grid;place-items:center;object-fit:contain;background:#f1f5f8;border-radius:5px}.shortcut-fallback{font-size:11px;font-weight:800;color:var(--accent)}.nav-shortcut-link em{font-style:normal;font-size:11px;line-height:1.25;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.group-focus-flash{animation:groupFocusFlash 1s ease}@keyframes groupFocusFlash{0%{box-shadow:0 0 0 0 rgba(19,104,179,.28)}40%{box-shadow:0 0 0 4px rgba(19,104,179,.16)}100%{box-shadow:none}}

/* Prior admin drag baseline retained for compatibility. */
.layout-head-left,.layout-head-actions,.layout-link-actions{display:flex;align-items:center;gap:8px}.layout-head-left{min-width:0;flex-wrap:wrap}.layout-link{grid-template-columns:auto 30px minmax(0,1fr) auto}.layout-link-info{min-width:0}.layout-link-meta{font-size:10px;color:#7a858f;display:flex;gap:6px;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-chip{width:28px;height:28px;display:grid;place-items:center;border:1px solid #d8dfe5;border-radius:7px;background:#f7f9fb;color:#73808b;cursor:grab;user-select:none;touch-action:none;font-weight:700}.drag-chip:active{cursor:grabbing}.drag-chip-link{width:24px;height:30px;border-radius:6px}.nav-pill{display:inline-flex;align-items:center;justify-content:center;height:18px;padding:0 6px;border-radius:999px;background:#eaf3fb;color:#1368b3;font-size:10px;font-weight:700}.layout-modal-actions{display:flex;justify-content:flex-start}.layout-delete-inline{padding:0 20px 20px}.layout-delete-inline .btn{min-width:96px}

@media(max-width:1024px){.portal-content-shell{grid-template-columns:1fr}.portal-navigator{position:static;order:-1}.navigator-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.portal-main{width:calc(100vw - 16px);padding:8px 0 18px}.navigator-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-search-controls{grid-template-columns:1fr}.layout-head-actions{width:100%;justify-content:flex-end}.layout-link{grid-template-columns:auto 26px minmax(0,1fr);row-gap:4px}.layout-link-actions{grid-column:1/-1;justify-content:flex-end}.layout-link-meta{white-space:normal}.layout-delete-inline{padding:0 16px 16px}}

/* =========================================================
   Cache-busted premium portal / sticky navigator UI baseline
   ========================================================= */
.portal-shell{background:#fff}
.portal-header{
  height:46px;min-height:46px;padding:0 14px;display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(320px,620px) minmax(260px,1fr);
  gap:16px;align-items:center;position:sticky;top:0;z-index:120;
  border-bottom:1px solid #e9edf1;background:rgba(255,255,255,.98);
  box-shadow:0 1px 0 rgba(18,35,52,.02)
}
.portal-identity{justify-self:start}.header-actions{justify-self:end}.portal-brand{font-size:12px;color:#28333d}.portal-user{font-size:10px;color:#98a1a9}
.portal-header-search{position:relative;width:100%;z-index:140}
.portal-search-field{height:32px;display:grid;grid-template-columns:28px minmax(0,1fr) 48px;align-items:center;border:1px solid #d8e0e7;border-radius:7px;background:#f8fafb;overflow:hidden;transition:border-color .15s,box-shadow .15s,background .15s}
.portal-search-field:focus-within{background:#fff;border-color:#9ebbd3;box-shadow:0 0 0 3px rgba(19,104,179,.08)}
.portal-search-icon{display:grid;place-items:center;color:#70808e;font-size:18px;line-height:1}
.portal-search-field input{width:100%;height:30px;border:0;outline:0;background:transparent;padding:0 6px;font-size:12px;color:#26323d}
.portal-search-field input::placeholder{color:#9aa5ae}
.portal-search-field button{height:30px;border:0;border-left:1px solid #e4e9ed;background:#fff;color:var(--accent);font-size:11px;font-weight:700;cursor:pointer}
.portal-search-field button:hover{background:#f1f7fb}
.portal-search-popover{position:absolute;top:37px;left:0;right:0;border:1px solid #dce4ea;border-radius:9px;background:#fff;box-shadow:0 14px 36px rgba(30,46,61,.15);padding:8px;max-height:420px;overflow:hidden}
.portal-search-status{font-size:10px;color:#7a8791;padding:2px 4px 7px;border-bottom:1px solid #eef2f5;margin:0 0 6px}
.portal-search-results{display:flex;flex-direction:column;gap:3px;max-height:350px;overflow:auto;margin:0}
.search-result-item{display:grid;grid-template-columns:44px minmax(0,1fr);gap:9px;align-items:center;border:0;border-radius:6px;padding:7px 8px;background:#fff}
.search-result-item:hover{background:#f4f8fb;border:0}
.search-result-item img,.result-fallback{width:44px;height:28px;border:0;background:#f5f7f9;border-radius:4px;object-fit:contain;display:grid;place-items:center}
.search-result-item strong{font-size:12px;color:#28343e}.search-result-item em{font-size:10px;color:#8b959d;margin-top:1px}.search-empty{padding:18px 8px;color:#89949c;font-size:12px;text-align:center}

.portal-main{width:calc(100vw - 18px);max-width:none;margin:0 auto;padding:8px 0 20px}
.portal-content-shell{display:grid;grid-template-columns:minmax(0,1fr) 256px;gap:10px;align-items:start}
.portal-primary{min-width:0}.portal-group{scroll-margin-top:55px}

.portal-navigator{position:sticky;top:54px;max-height:calc(100vh - 62px);z-index:40}
.navigator-shell{height:auto;max-height:calc(100vh - 62px);display:flex;flex-direction:column;background:#fff;border:1px solid #dfe6eb;border-radius:9px;box-shadow:0 8px 24px rgba(25,42,56,.08);overflow:hidden}
.navigator-titlebar{min-height:54px;padding:10px 10px 9px 12px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,#fbfcfd,#f7f9fa);border-bottom:1px solid #e7ecf0}
.navigator-titlebar>div{display:flex;flex-direction:column;gap:1px}.navigator-titlebar span{font-size:8px;font-weight:800;letter-spacing:1.4px;color:#98a2aa}.navigator-titlebar strong{font-size:14px;color:#202c36}
.navigator-collapse{width:28px;height:28px;border:1px solid #d9e0e5;border-radius:6px;background:#fff;color:#65727c;font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center}
.navigator-collapse:hover{background:#f0f4f7;color:#24313b}
.navigator-section{padding:10px 9px 9px}.navigator-section+.navigator-section{border-top:1px solid #edf1f4}.navigator-section-title{display:flex;align-items:center;justify-content:space-between;padding:0 3px 7px}.navigator-section-title strong{font-size:11px;color:#47535e}.navigator-section-title span{font-size:9px;color:#9aa4ac}
.navigator-favorites{display:flex;flex-direction:column;gap:4px;max-height:42vh;overflow:auto;padding-right:1px}
.navigator-favorite{min-height:42px;display:grid;grid-template-columns:38px minmax(0,1fr) 18px;gap:7px;align-items:center;padding:5px 6px;border:1px solid transparent;border-radius:7px;background:#fff}
.navigator-favorite:hover{background:#f6f9fb;border-color:#e4ebf0}
.navigator-logo{width:38px;height:28px;display:grid;place-items:center;border-radius:4px;background:#f5f7f9;color:var(--accent);font-size:10px;font-weight:800;overflow:hidden}.navigator-logo img{width:100%;height:100%;object-fit:contain}
.navigator-favorite-text{min-width:0;display:flex;flex-direction:column}.navigator-favorite-text strong{font-size:11px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigator-favorite-text em{font-style:normal;font-size:9px;color:#929ba3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navigator-open{font-size:12px;color:#9aa3aa;text-align:center}
.navigator-empty{font-size:10px;line-height:1.55;color:#858f97;padding:9px 8px;background:#f7f9fa;border-radius:6px}.navigator-empty b{color:#5a6670}
.navigator-groups-section{min-height:0;overflow:hidden}.navigator-group-list{display:flex;flex-direction:column;gap:2px;max-height:30vh;overflow:auto}
.nav-group-link{min-height:30px;display:flex;align-items:center;justify-content:space-between;padding:5px 7px;border:0;border-radius:5px;font-size:11px;color:#45515c;background:#fff}.nav-group-link:hover{background:#f1f5f8;color:#1f2b35}.nav-group-link b{font-size:9px;color:#7b8790;background:#eef2f5;border-radius:999px;padding:2px 6px;font-weight:600}
.navigator-collapsed .portal-content-shell{grid-template-columns:minmax(0,1fr) 42px}
.navigator-collapsed .navigator-shell{min-height:54px}.navigator-collapsed .navigator-titlebar{padding:8px 6px;justify-content:center}.navigator-collapsed .navigator-titlebar>div,.navigator-collapsed .navigator-section{display:none}.navigator-collapsed .navigator-collapse{display:grid}
.group-focus-flash{animation:groupFocusFlashV24 1s ease}@keyframes groupFocusFlashV24{0%{box-shadow:0 0 0 0 rgba(19,104,179,.28)}35%{box-shadow:0 0 0 4px rgba(19,104,179,.13)}100%{box-shadow:none}}

/* Admin layout: stable high-density cards; only dedicated handles drag. */
.layout-group{padding:7px 8px;border-radius:6px}.layout-group-head{cursor:default;user-select:auto;padding-bottom:6px}.layout-group-head:active{cursor:default}.layout-group-head strong{font-size:14px}.layout-group-head em{font-size:10px;margin-left:2px}.layout-head-left,.layout-head-actions{display:flex;align-items:center;gap:7px}.layout-head-left{min-width:0;flex-wrap:nowrap}.layout-head-actions{margin-left:auto;flex:0 0 auto}.layout-head-actions form{margin:0}
.drag-chip{width:25px;height:28px;display:grid;place-items:center;border:1px solid #d8e0e6;border-radius:5px;background:#f7f9fa;color:#77838d;cursor:grab!important;user-select:none;touch-action:none;font-size:13px;font-weight:700;flex:0 0 auto}.drag-chip:active{cursor:grabbing!important}.drag-chip-link{width:20px;height:30px;border:0;background:transparent;color:#86919a;padding:0}
.layout-link-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(168px,1fr))!important;gap:5px!important;padding:6px 0!important;min-height:42px}
.layout-link{border:1px solid #e2e7eb;border-radius:5px;padding:4px 5px;display:grid!important;grid-template-columns:20px 28px minmax(0,1fr) auto!important;gap:5px;align-items:center;cursor:default!important;background:#fff;min-width:0;user-select:auto;min-height:40px}.layout-link:active{cursor:default!important}.layout-link:hover{background:#fbfcfd;border-color:#d3dce3}.layout-link-logo{width:28px;height:28px;border-radius:4px;background:#f3f6f8}.layout-link-info{min-width:0;overflow:hidden}.layout-link-name{font-size:11px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layout-link-meta{display:flex;align-items:center;gap:4px;min-width:0;font-size:8px;color:#9099a1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-pill{height:15px;padding:0 4px;font-size:8px;border-radius:3px}.layout-link-actions{display:flex;align-items:center}.mini-edit{height:28px!important;padding:0 7px!important;font-size:10px!important;border-radius:5px}.add-link-btn{height:30px!important}.layout-modal-actions{display:flex}.layout-delete-inline{padding:0 20px 20px}.layout-delete-inline .btn{min-width:96px}

@media(max-width:1180px){
  .portal-header{grid-template-columns:minmax(180px,.8fr) minmax(280px,1.2fr) minmax(230px,.8fr);gap:8px}
  .portal-content-shell{grid-template-columns:minmax(0,1fr) 230px}.navigator-collapsed .portal-content-shell{grid-template-columns:minmax(0,1fr) 42px}
  .layout-link-grid{grid-template-columns:repeat(auto-fill,minmax(158px,1fr))!important}
}
@media(max-width:900px){
  .portal-header{height:auto;min-height:72px;grid-template-columns:1fr auto;grid-template-areas:"identity actions" "search search";padding:5px 9px;gap:4px 8px}.portal-identity{grid-area:identity}.header-actions{grid-area:actions}.portal-header-search{grid-area:search}.portal-search-popover{top:35px}
  .portal-main{width:calc(100vw - 12px)}.portal-content-shell,.navigator-collapsed .portal-content-shell{grid-template-columns:1fr}.portal-navigator{position:static;max-height:none;order:-1}.navigator-shell{max-height:none}.navigator-collapse{display:none}.navigator-favorites{max-height:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.navigator-favorite{grid-template-columns:34px minmax(0,1fr);min-height:38px}.navigator-open{display:none}.navigator-group-list{max-height:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:620px){
  .portal-header{grid-template-columns:1fr auto}.portal-user,.portal-meta-sep,.portal-session{display:none}.portal-brand{max-width:55vw}.navigator-favorites,.navigator-group-list{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-link-grid{grid-template-columns:1fr!important}.layout-head-left{flex-wrap:wrap}.layout-head-actions{width:auto}.portal-main{width:calc(100vw - 8px)}
}

/* ===== V2.5 LEGACY UI BASE (overridden by later version blocks) ===== */
/* User portal: premium high-density header, full-width content, image-only navigator. */
.portal-header{height:42px;min-height:42px;display:grid!important;grid-template-columns:minmax(180px,.85fr) minmax(320px,1.45fr) auto auto!important;gap:12px!important;padding:0 14px!important;align-items:center!important;position:sticky!important;top:0!important;z-index:150!important;background:rgba(255,255,255,.985)!important;border-bottom:1px solid #e8edf1!important;box-shadow:0 1px 0 rgba(17,31,43,.02)!important}
.portal-identity{min-width:0;display:flex;align-items:center;gap:7px}.portal-brand{font-size:12px!important;font-weight:800!important;color:#1e2a34!important;letter-spacing:.05px}.portal-user{font-size:9px!important;color:#9aa4ac!important}.portal-current-time{font-size:10px;color:#55616b;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.1px;padding:0 4px}.header-actions{font-size:10px!important;gap:5px!important;justify-self:end}.portal-header-search{position:relative;width:100%;min-width:0}.portal-search-field{height:32px!important;grid-template-columns:30px minmax(0,1fr) 46px!important;border:1px solid #d9e1e7!important;border-radius:6px!important;background:#f8fafb!important;box-shadow:none!important}.portal-search-field:focus-within{background:#fff!important;border-color:#9fb9ce!important;box-shadow:0 0 0 3px rgba(19,104,179,.07)!important}.portal-search-field input{font-size:11px!important}.portal-search-field button{font-size:10px!important;background:#fff!important}.portal-search-popover{top:37px!important;border-radius:7px!important;box-shadow:0 14px 36px rgba(22,38,52,.13)!important}
.portal-main{width:calc(100vw - 12px)!important;max-width:none!important;margin:0 auto!important;padding:7px 0 18px!important}.portal-content-shell{display:grid!important;grid-template-columns:minmax(0,1fr) var(--navigator-width,220px)!important;gap:10px!important;align-items:start!important;padding-right:var(--navigator-right-offset,12px)!important}.navigator-disabled .portal-content-shell{grid-template-columns:minmax(0,1fr)!important;padding-right:0!important}.portal-primary{min-width:0}.portal-group{margin-bottom:var(--portal-group-gap-y)!important;border:1px solid #edf1f4!important;border-radius:3px!important;padding:3px 4px 4px!important;box-shadow:none!important}.group-title-row{border-bottom:1px solid #f0f3f5!important}
.portal-navigator{position:sticky!important;top:calc(42px + var(--navigator-top-offset,12px))!important;width:var(--navigator-width,220px)!important;max-height:calc(100vh - 54px - var(--navigator-top-offset,12px))!important;z-index:60!important}.navigator-shell{width:100%!important;max-height:inherit!important;background:#fff!important;border:1px solid #dfe6eb!important;border-radius:7px!important;box-shadow:0 10px 26px rgba(24,39,52,.08)!important;padding:8px!important;overflow:hidden!important}.navigator-titlebar{height:28px!important;min-height:28px!important;padding:0 1px 7px!important;border-bottom:1px solid #edf1f4!important;background:#fff!important;display:flex!important;align-items:center!important;justify-content:space-between!important}.navigator-titlebar>span{font-size:9px!important;font-weight:800!important;letter-spacing:1.25px!important;color:#73808b!important}.navigator-collapse{width:24px!important;height:24px!important;border:0!important;background:#f4f6f8!important;border-radius:4px!important;font-size:17px!important;color:#65727c!important}.navigator-banner-list{display:flex!important;flex-direction:column!important;align-items:center!important;gap:var(--navigator-gap-y,8px)!important;overflow-y:auto!important;max-height:calc(100vh - 105px - var(--navigator-top-offset,12px))!important;padding:9px 1px 2px!important}.navigator-banner{display:block!important;width:min(var(--navigator-banner-width,180px),100%)!important;height:var(--navigator-banner-height,55px)!important;background:#fff!important;border:0!important;border-radius:3px!important;overflow:hidden!important;transition:transform .12s ease,filter .12s ease!important}.navigator-banner:hover{transform:translateY(-1px)!important;filter:brightness(.97)!important}.navigator-banner img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important}.navigator-empty{font-size:10px!important;line-height:1.5!important;color:#8a949c!important;text-align:center!important;padding:18px 8px!important;background:#f8fafb!important;border-radius:5px!important;margin-top:8px!important}.navigator-collapsed .portal-content-shell{grid-template-columns:minmax(0,1fr) 36px!important}.navigator-collapsed .portal-navigator{width:36px!important}.navigator-collapsed .navigator-shell{padding:5px!important}.navigator-collapsed .navigator-titlebar{border-bottom:0!important;padding:0!important;justify-content:center!important}.navigator-collapsed .navigator-titlebar>span,.navigator-collapsed .navigator-banner-list,.navigator-collapsed .navigator-empty{display:none!important}

/* Admin link management: clean command bar and stable drag cards. */
.layout-commandbar{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid #dfe5ea;border-radius:7px;padding:8px 10px;margin-bottom:7px}.layout-commandbar>div:first-child{display:flex;align-items:baseline;gap:10px;min-width:0}.layout-commandbar strong{font-size:13px}.layout-commandbar span{font-size:10px;color:#7c8790;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layout-commandbar>div:last-child{display:flex;gap:6px}.layout-group{border-radius:6px!important;padding:7px 8px!important}.layout-group-head{padding-bottom:6px!important;cursor:default!important}.layout-head-left,.layout-head-actions{display:flex!important;align-items:center!important;gap:6px!important}.layout-head-actions{margin-left:auto}.layout-head-actions form{margin:0}.layout-link-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))!important;gap:5px!important;padding:6px 0!important;min-height:45px!important}.layout-link{display:grid!important;grid-template-columns:20px 30px minmax(0,1fr) auto!important;gap:5px!important;align-items:center!important;min-height:42px!important;padding:4px 5px!important;border:1px solid #e1e7eb!important;border-radius:5px!important;background:#fff!important;cursor:default!important}.layout-link:hover{background:#fbfcfd!important;border-color:#d1dbe2!important}.layout-link-logo{width:30px!important;height:30px!important;border-radius:4px!important;background:#f4f6f8!important}.layout-link-name{font-size:11px!important}.layout-link-meta{font-size:8px!important}.drag-chip{width:25px!important;height:28px!important;border:1px solid #d9e1e7!important;border-radius:5px!important;background:#f7f9fa!important;color:#75818b!important;cursor:grab!important}.drag-chip-link{width:20px!important;border:0!important;background:transparent!important}.mini-edit{height:28px!important;border-radius:5px!important;font-size:10px!important;padding:0 8px!important}.add-link-btn{height:30px!important}

/* Premium modal system. */
.modal-backdrop{background:rgba(21,31,40,.54)!important;backdrop-filter:blur(1.5px)!important;padding:18px!important}.modal{padding:0!important;border-radius:8px!important;border:1px solid rgba(255,255,255,.5)!important;box-shadow:0 26px 70px rgba(15,28,39,.24)!important;overflow:hidden!important}.modal-head{min-height:52px!important;padding:0 16px!important;margin:0!important;border-bottom:1px solid #e8edf1!important;background:#fff!important;display:flex!important;align-items:center!important}.modal-head>div{display:flex;flex-direction:column;gap:2px}.modal-head strong{font-size:15px!important;color:#1f2c36}.modal-head span{font-size:9px;color:#8a959e}.modal-compact{width:min(470px,94vw)!important}.link-modal{width:min(840px,96vw)!important}.premium-modal-body,.link-modal-form{padding:16px!important}.premium-modal-body>label,.link-modal-grid>label{display:grid;gap:5px;font-size:11px;color:#47535d}.premium-modal-body input,.link-modal-grid input,.link-modal-grid select{width:100%;height:34px;border:1px solid #d9e1e7;border-radius:5px;background:#fff;padding:0 9px;color:#202b34;outline:none}.link-modal-grid input:focus,.link-modal-grid select:focus,.premium-modal-body input:focus{border-color:#9db7cc;box-shadow:0 0 0 3px rgba(19,104,179,.06)}.link-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px 14px}.link-modal-grid .span-two{grid-column:1/-1}.secret-field{display:grid!important;grid-template-columns:minmax(0,1fr) 48px!important;gap:5px!important}.secret-field input{height:34px!important}.secret-toggle{height:34px!important;border:0!important;border-radius:5px!important;background:#65737f!important;color:#fff!important;font-size:10px!important;font-weight:700!important}.link-modal-options{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;border-top:1px solid #edf1f4;margin-top:14px;padding-top:12px}.premium-check{display:inline-flex!important;align-items:center!important;gap:7px!important;font-size:11px!important;color:#48545e!important}.premium-check input{width:15px!important;height:15px!important;margin:0!important}.premium-check small{font-size:9px;color:#8c969e;margin-left:3px}.danger-option span{color:#a83e33}.premium-modal-footer{display:flex;justify-content:flex-end;gap:7px;margin-top:16px}.premium-delete-row{border-top:1px solid #edf1f4;padding:10px 16px 14px;display:flex;justify-content:flex-end;margin:0}.premium-delete-row .btn{height:30px!important;font-size:10px!important}.modal-compact .premium-modal-footer{margin-top:14px}

/* Separate display/navigator settings. */
.settings-page-form{margin:0}.premium-settings-panel{padding:12px 13px!important}.panel-subcopy{margin:2px 0 0;font-size:10px;color:#88939b}.premium-setting-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px 14px}.premium-setting-grid-three{grid-template-columns:repeat(3,minmax(160px,1fr))}.premium-setting-grid-two{grid-template-columns:repeat(2,minmax(150px,1fr))}.premium-setting-grid label{display:grid;gap:5px;font-size:11px;color:#48545f}.premium-setting-grid label>span{font-weight:700}.premium-setting-grid input,.premium-setting-grid select{width:100%;height:34px;border:1px solid #d9e1e7;border-radius:5px;background:#fff;padding:0 9px}.premium-setting-grid small{font-size:9px;color:#929ca4}.setting-unit{display:grid;grid-template-columns:minmax(0,1fr) 35px;align-items:center;border:1px solid #d9e1e7;border-radius:5px;overflow:hidden;background:#fff}.setting-unit input{border:0!important;border-radius:0!important}.setting-unit b{font-size:9px;color:#8a949d;text-align:center;border-left:1px solid #edf1f4;height:100%;display:grid;place-items:center;background:#f8fafb}.settings-page-save,.premium-save-row{display:flex;justify-content:flex-end;margin:8px 0 0}.navigator-setting-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}.navigator-setting-fields{min-width:0}.switch-setting{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf1f4;padding:4px 0 14px;margin-bottom:14px}.switch-setting>span{display:flex;flex-direction:column;gap:2px}.switch-setting strong{font-size:12px}.switch-setting small{font-size:9px;color:#8c969e}.switch-setting input{width:18px;height:18px}.navigator-preview-card{width:min(100%,var(--preview-nav-width));justify-self:end;border:1px solid #dfe6eb;border-radius:7px;background:#fff;box-shadow:0 10px 25px rgba(24,39,52,.07);padding:10px}.navigator-preview-label{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid #edf1f4}.navigator-preview-label span{font-size:8px;letter-spacing:1px;color:#8a959e}.navigator-preview-label strong{font-size:11px}.navigator-preview-list{display:flex;flex-direction:column;align-items:center;gap:var(--preview-gap);padding-top:10px}.navigator-preview-banner{width:min(100%,var(--preview-banner-width));height:var(--preview-banner-height);overflow:hidden}.navigator-preview-banner img{width:100%;height:100%;object-fit:contain}.navigator-preview-empty{font-size:10px;line-height:1.5;color:#8a949d;text-align:center;padding:20px 8px}.navigator-admin-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}.navigator-admin-list>div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;align-items:center;border:1px solid #e7ecef;border-radius:5px;padding:6px}.navigator-admin-thumb{width:76px;height:38px;display:grid;place-items:center;background:#f7f9fa}.navigator-admin-thumb img{width:100%;height:100%;object-fit:contain}.navigator-admin-thumb b{font-size:8px;color:#9aa3ab}.navigator-admin-list strong{font-size:11px}.navigator-admin-list small{display:block;font-size:9px;color:#8d979f;margin-top:2px}

/* Link backup / restore. */
.backup-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:8px}.backup-card{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:15px!important;position:relative;min-height:190px}.backup-card-icon{width:36px;height:36px;border-radius:8px;background:#f1f5f8;color:#53616d;display:grid;place-items:center;font-size:20px;font-weight:700}.backup-card-copy>span{font-size:8px;font-weight:800;letter-spacing:1.2px;color:#8c969f}.backup-card-copy h2{font-size:15px;margin:3px 0 6px}.backup-card-copy p{font-size:10px;line-height:1.55;color:#6f7b85;margin:0 0 7px}.backup-card-copy ul{margin:0;padding-left:16px;color:#77838c;font-size:9px;line-height:1.7}.backup-card-action,.backup-upload-form{grid-column:2;display:flex;align-items:center;gap:7px;margin-top:auto}.backup-upload-form input[type=file]{min-width:0;max-width:360px;font-size:10px}.backup-policy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.backup-policy-grid>div{background:#f8fafb;border-radius:5px;padding:8px 9px}.backup-policy-grid b{display:block;font-size:10px;margin-bottom:3px}.backup-policy-grid span{display:block;font-size:9px;line-height:1.5;color:#7c8790}.backup-preview-actions{display:flex;gap:6px}.backup-preview-actions form{margin:0}.backup-summary{display:grid;grid-template-columns:repeat(4,120px);gap:6px;margin-bottom:8px}.backup-summary>div{border:1px solid #e5eaee;border-radius:5px;padding:7px 9px;display:flex;justify-content:space-between;align-items:center}.backup-summary span{font-size:9px;color:#7c8790}.backup-summary strong{font-size:14px}.backup-summary .has-error{border-color:#efc8c3;background:#fff8f7}.backup-summary .has-error strong{color:#b64235}.backup-warning,.backup-ok{font-size:10px;border-radius:5px;padding:8px 10px;margin:0 0 8px}.backup-warning{background:#fff7e8;border:1px solid #edd39a;color:#87611b}.backup-ok{background:#edf8f1;border:1px solid #bcdac6;color:#27663b}.backup-preview-table{max-height:460px;overflow:auto}.backup-preview-table th,.backup-preview-table td{font-size:9px!important;padding:5px 6px!important}.backup-preview-table .url-cell{max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.backup-status{display:inline-flex;padding:2px 5px;border-radius:4px;background:#edf2f5;color:#54616c;font-size:8px;font-weight:700}.status-신규{background:#edf8f1;color:#2d6f41}.status-오류{background:#fff0ef;color:#a83d34}.status-업데이트{background:#eef4fb;color:#32618d}

@media(max-width:1180px){.portal-header{grid-template-columns:minmax(160px,.7fr) minmax(280px,1.25fr) auto auto!important}.portal-content-shell{grid-template-columns:minmax(0,1fr) min(var(--navigator-width),210px)!important}.navigator-setting-layout{grid-template-columns:1fr 300px}.premium-setting-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}.backup-policy-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.portal-header{height:auto!important;min-height:72px!important;grid-template-columns:1fr auto!important;grid-template-areas:"identity actions" "search time"!important;padding:5px 9px!important}.portal-identity{grid-area:identity}.portal-header-search{grid-area:search}.portal-current-time{grid-area:time;justify-self:end}.header-actions{grid-area:actions}.portal-content-shell,.navigator-collapsed .portal-content-shell{grid-template-columns:1fr!important;padding-right:0!important}.portal-navigator{position:static!important;width:100%!important;max-height:none!important;order:-1!important}.navigator-shell{max-height:none!important}.navigator-banner-list{max-height:none!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}.navigator-banner{width:100%!important}.navigator-collapse{display:none!important}.navigator-setting-layout,.backup-dashboard{grid-template-columns:1fr}.navigator-preview-card{justify-self:start}.backup-card-action,.backup-upload-form{grid-column:2}.link-modal{width:min(760px,96vw)!important}}
@media(max-width:650px){.portal-current-time{display:none}.portal-header{grid-template-areas:"identity actions" "search search"!important}.link-modal-grid,.premium-setting-grid,.premium-setting-grid-three,.premium-setting-grid-two{grid-template-columns:1fr}.link-modal-grid .span-two{grid-column:auto}.backup-dashboard{grid-template-columns:1fr}.backup-card{grid-template-columns:34px minmax(0,1fr)}.backup-policy-grid{grid-template-columns:1fr}.backup-summary{grid-template-columns:1fr 1fr}.navigator-preview-card{width:100%}.layout-link-grid{grid-template-columns:1fr!important}.layout-commandbar{align-items:flex-start;flex-direction:column}.layout-commandbar>div:last-child{width:100%;justify-content:flex-end}}

/* V2.6 precision portal alignment / premium compact styling */
.portal-shell{--portal-title-row-height:24px}
.portal-header{height:46px!important;min-height:46px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:0 14px!important;position:sticky!important;top:0!important;z-index:180!important;background:rgba(255,255,255,.992)!important;border-bottom:1px solid #e5eaee!important;box-shadow:0 1px 0 rgba(18,32,43,.025)!important}
.portal-identity{position:relative;z-index:2;display:flex;align-items:center;gap:7px;min-width:0;max-width:28vw}.portal-brand{font-size:12.5px!important;font-weight:800!important;color:#1e2a34!important}.portal-user{font-size:10.5px!important;color:#8e99a2!important}
.portal-header-search{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;width:min(600px,42vw)!important;z-index:4!important}.portal-search-field{height:34px!important;display:grid!important;grid-template-columns:32px minmax(0,1fr) 48px!important;border:1px solid #d6dee5!important;border-radius:5px!important;background:#f8fafb!important;overflow:hidden!important}.portal-search-field:focus-within{background:#fff!important;border-color:#9db7cb!important;box-shadow:0 0 0 3px rgba(19,104,179,.065)!important}.portal-search-icon{display:grid!important;place-items:center!important;font-size:16px!important;color:#87939d!important}.portal-search-field input{height:32px!important;border:0!important;outline:0!important;background:transparent!important;font-size:12px!important;padding:0 4px!important}.portal-search-field button{height:32px!important;border:0!important;border-left:1px solid #e3e8ec!important;background:#fff!important;color:#1766a5!important;font-size:11px!important;font-weight:800!important;cursor:pointer!important}.portal-search-popover{top:39px!important;border:1px solid #dce4ea!important;border-radius:6px!important;box-shadow:0 16px 38px rgba(18,34,48,.14)!important;background:#fff!important}
.portal-header-right{position:relative;z-index:3;margin-left:auto;display:flex;align-items:center;gap:12px;white-space:nowrap}.portal-current-time{font-size:13px!important;line-height:1!important;font-weight:700!important;color:#46535e!important;font-variant-numeric:tabular-nums!important;letter-spacing:.05px!important;min-width:164px;text-align:right}.header-actions{display:flex!important;align-items:center!important;gap:6px!important;font-size:12px!important;color:#68737c!important}.portal-meta-link{font-size:12px!important;line-height:1!important;color:#59656f!important}.portal-session{font-size:12px!important;color:#68737c!important}.portal-session b{font-size:12px!important;color:#45515b!important;font-variant-numeric:tabular-nums!important}.portal-meta-sep{color:#cbd2d8!important}
.portal-main{width:calc(100vw - 12px)!important;max-width:none!important;margin:0 auto!important;padding:7px 0 18px!important}.portal-content-shell{display:grid!important;grid-template-columns:minmax(0,1fr) var(--navigator-width,188px)!important;gap:8px!important;align-items:start!important;padding-right:var(--navigator-right-offset,12px)!important}.navigator-disabled .portal-content-shell{grid-template-columns:minmax(0,1fr)!important;padding-right:0!important}
.portal-group{background:#fff!important;border:1px solid var(--portal-group-border-color,#eef1f3)!important;border-radius:3px!important;margin-bottom:var(--portal-group-gap-y)!important;padding:3px 4px 4px!important;box-shadow:none!important}.group-title-row{height:var(--portal-title-row-height)!important;min-height:var(--portal-title-row-height)!important;display:flex!important;align-items:center!important;justify-content:space-between!important;border-bottom:1px solid #eef2f4!important;padding:0 1px!important;margin:0 0 var(--portal-group-title-gap)!important}.group-title-row h2{margin:0!important;font-size:var(--portal-group-font-size)!important;line-height:1!important;font-weight:700!important;color:#1d2831!important}.group-title-row span{font-size:8.5px!important;color:#9ba4ab!important}
.portal-navigator{position:sticky!important;top:calc(46px + var(--navigator-top-offset,12px))!important;width:var(--navigator-width,188px)!important;max-height:calc(100vh - 54px - var(--navigator-top-offset,12px))!important;z-index:60!important}.navigator-shell{width:100%!important;max-height:inherit!important;display:flex!important;flex-direction:column!important;background:#fff!important;border:1px solid var(--navigator-border-color,#dfe6eb)!important;border-radius:4px!important;box-shadow:0 7px 20px rgba(24,39,52,.055)!important;padding:3px!important;overflow:hidden!important}.navigator-titlebar{height:var(--portal-title-row-height)!important;min-height:var(--portal-title-row-height)!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:0 1px!important;margin:0 0 var(--portal-group-title-gap)!important;border-bottom:1px solid #eef2f4!important;background:#fff!important}.navigator-titlebar h2{margin:0!important;font-size:var(--portal-group-font-size)!important;line-height:1!important;font-weight:700!important;color:#1d2831!important}.navigator-collapse{width:20px!important;height:20px!important;display:grid!important;place-items:center!important;border:0!important;background:#f4f6f8!important;border-radius:3px!important;font-size:15px!important;color:#67737d!important;cursor:pointer!important}.navigator-banner-list{display:flex!important;flex-direction:column!important;align-items:center!important;gap:var(--navigator-gap-y,8px)!important;overflow-y:auto!important;max-height:calc(100vh - 105px - var(--navigator-top-offset,12px))!important;padding:0!important}.navigator-banner{display:block!important;width:100%!important;max-width:var(--navigator-banner-width,180px)!important;height:var(--navigator-banner-height,55px)!important;background:#fff!important;border:0!important;border-radius:2px!important;overflow:hidden!important;transition:transform .12s ease,filter .12s ease!important}.navigator-banner:hover{transform:translateY(-1px)!important;filter:brightness(.975)!important}.navigator-banner img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important}.navigator-empty{font-size:10px!important;line-height:1.45!important;color:#8a949c!important;text-align:center!important;padding:15px 5px!important;background:#f8fafb!important;border-radius:3px!important}.navigator-collapsed .portal-content-shell{grid-template-columns:minmax(0,1fr) 30px!important}.navigator-collapsed .portal-navigator{width:30px!important}.navigator-collapsed .navigator-shell{padding:3px!important}.navigator-collapsed .navigator-titlebar{margin:0!important;border-bottom:0!important;justify-content:center!important}.navigator-collapsed .navigator-titlebar h2,.navigator-collapsed .navigator-banner-list,.navigator-collapsed .navigator-empty{display:none!important}
.color-setting-row{height:34px;display:grid;grid-template-columns:46px 1fr;align-items:center;gap:8px}.color-setting-row input[type=color]{width:46px;height:34px;padding:2px;border:1px solid #dce3e8;border-radius:5px;background:#fff;cursor:pointer}.color-setting-row code{height:34px;display:flex;align-items:center;padding:0 9px;border:1px solid #e1e6ea;border-radius:5px;background:#f8fafb;color:#53606a;font-family:Consolas,monospace;font-size:11px}.navigator-width-note{margin-top:8px;padding:8px 10px;border:1px solid #e8edf1;border-radius:5px;background:#f9fbfc;color:#66727c;font-size:11px}.navigator-width-note strong{color:#26333d}.navigator-preview-card.v27-preview{width:var(--preview-nav-width)!important;border-color:var(--preview-nav-border,#dfe6eb)!important;padding:3px!important;border-radius:4px!important}.navigator-preview-card.v27-preview .navigator-preview-label{height:24px!important;min-height:24px!important;padding:0 1px!important;margin-bottom:6px!important;display:flex!important;align-items:center!important;border-bottom:1px solid #eef2f4!important}.navigator-preview-card.v27-preview .navigator-preview-label strong{font-size:13px!important}.navigator-preview-card.v27-preview .navigator-preview-list{padding:0!important;gap:var(--preview-gap)!important}.navigator-preview-card.v27-preview .navigator-preview-banner{width:100%!important;max-width:var(--preview-banner-width)!important;height:var(--preview-banner-height)!important;border:0!important}
@media(max-width:1280px){.portal-header-search{width:min(500px,39vw)!important}.portal-current-time{font-size:12px!important;min-width:150px}.header-actions,.portal-meta-link,.portal-session,.portal-session b{font-size:11px!important}.portal-content-shell{padding-right:4px!important}}
@media(max-width:980px){.portal-header{height:auto!important;min-height:82px!important;display:grid!important;grid-template-columns:1fr auto!important;grid-template-areas:"identity right" "search search"!important;padding:6px 9px!important;gap:5px 8px!important}.portal-identity{grid-area:identity;max-width:none}.portal-header-right{grid-area:right}.portal-header-search{grid-area:search;position:relative!important;left:auto!important;top:auto!important;transform:none!important;width:100%!important}.portal-current-time{font-size:12px!important}.portal-content-shell,.navigator-collapsed .portal-content-shell{grid-template-columns:1fr!important;padding-right:0!important}.portal-navigator{position:static!important;width:100%!important;max-height:none!important;order:-1!important}.navigator-shell{max-height:none!important}.navigator-banner-list{max-height:none!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}.navigator-banner{max-width:none!important}.navigator-collapse{display:none!important}}
@media(max-width:680px){.portal-current-time{display:none!important}.portal-user,.portal-meta-sep,.portal-session{display:none!important}.header-actions,.portal-meta-link{font-size:11px!important}.navigator-banner-list{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* =========================================================
   V2.7 visual system / exact group-navigator alignment
   ========================================================= */
html,body,input,select,textarea,button,table{
  font-family:"Nanum Gothic","NanumGothic","Malgun Gothic",sans-serif;
}

/* Portal: the primary groups and navigator share the same vertical frame metrics. */
.portal-shell{
  --portal-section-title-height:24px;
  --portal-section-pad-top:3px;
  --portal-section-pad-bottom:4px;
}
.portal-main{
  padding-top:var(--navigator-top-offset,12px)!important;
}
.portal-section-frame{
  padding-top:var(--portal-section-pad-top)!important;
  padding-bottom:var(--portal-section-pad-bottom)!important;
}
.portal-section-titlebar{
  height:var(--portal-section-title-height)!important;
  min-height:var(--portal-section-title-height)!important;
  margin-top:0!important;
  margin-bottom:var(--portal-group-title-gap)!important;
  line-height:1!important;
}
.portal-section-body{margin-top:0!important;padding-top:0!important}
.portal-group.portal-section-frame{
  padding-left:4px!important;
  padding-right:4px!important;
}
.portal-navigator{
  top:calc(46px + var(--navigator-top-offset,12px))!important;
  align-self:start!important;
}
.navigator-shell.portal-section-frame{
  padding-left:2px!important;
  padding-right:2px!important;
  border-color:var(--navigator-border-color,#dfe6eb)!important;
}
.navigator-titlebar.portal-section-titlebar{
  position:relative!important;
  padding:0 24px 0 1px!important;
  justify-content:flex-start!important;
}
.navigator-collapse{
  position:absolute!important;
  right:1px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  margin:0!important;
}
.navigator-banner-list.portal-section-body{
  width:100%!important;
  align-items:stretch!important;
}
.navigator-banner{
  width:100%!important;
  max-width:none!important;
}
.navigator-collapsed .navigator-titlebar.portal-section-titlebar{
  padding:0!important;
  margin-bottom:0!important;
}
.navigator-collapsed .navigator-collapse{
  left:50%!important;
  right:auto!important;
  transform:translate(-50%,-50%)!important;
}

/* Admin typography and spacing: readable, dense enterprise UI. */
.admin-shell{font-size:13px!important;grid-template-columns:210px minmax(0,1fr)!important}
.admin-side{padding:12px 10px!important}
.admin-brand{font-size:13.5px!important;padding:6px 8px 12px!important;letter-spacing:.05px}
.admin-side nav{gap:3px!important}
.admin-side nav a{font-size:13px!important;line-height:1.25!important;padding:9px 9px!important;border-radius:5px!important}
.admin-version{font-size:11px!important;line-height:1.45!important;padding:9px 8px!important}
.admin-top{height:46px!important;padding:0 16px!important}
.admin-top strong{font-size:13px!important}
.admin-top span{font-size:12px!important;margin-left:7px!important}
.admin-main{padding:12px 16px 20px!important}
.page-title{margin-bottom:12px!important}
.page-title h1{font-size:20px!important;line-height:1.25!important;margin:0 0 4px!important;letter-spacing:-.15px}
.page-title p{font-size:13px!important;line-height:1.55!important;color:#68747e!important}
.status-line{font-size:13px!important;line-height:1.5!important;min-height:28px!important;padding:4px 0 9px!important}
.panel{border-color:#dfe5ea!important;border-radius:6px!important;padding:14px 15px!important;margin-bottom:10px!important}
.panel-title{margin-bottom:10px!important}
.panel-title h2{font-size:16px!important;line-height:1.3!important}
.panel-title a,.panel-help{font-size:12px!important}
.panel-subcopy{font-size:12px!important;line-height:1.45!important;margin:3px 0 0!important;color:#77838d!important}
.btn,.btn.small{font-size:13px!important;font-weight:700!important}
.btn.small{height:34px!important}
.form-grid label,.stack-form label,.filter-row label,.premium-setting-grid label,.premium-modal-body>label,.link-modal-grid>label,.excel-import-form label{font-size:13px!important;line-height:1.35!important}
.form-grid input,.form-grid select,.stack-form input,.stack-form select,.filter-row input,.filter-row select,.premium-setting-grid input,.premium-setting-grid select,.link-modal-grid input,.link-modal-grid select,.premium-modal-body input{font-size:13px!important}
.field-help,.premium-setting-grid small,.switch-setting small,.navigator-width-note,.protected-account{font-size:11.5px!important;line-height:1.5!important}
table{font-size:12.5px!important}th,td{padding:8px 8px!important}
.metric span{font-size:12px!important}.metric strong{font-size:22px!important}

/* Admin link manager: larger banner preview with the link name underneath. */
.layout-commandbar{padding:10px 12px!important;margin-bottom:9px!important}
.layout-commandbar strong{font-size:14px!important}
.layout-commandbar span{font-size:12px!important;line-height:1.4!important}
.layout-group{padding:9px 10px!important;border-radius:6px!important}
.layout-group-head{padding-bottom:8px!important}
.layout-group-head strong{font-size:16px!important}
.layout-group-head em{font-size:12px!important}
.inactive-badge{font-size:11px!important}
.layout-link-grid{
  grid-template-columns:repeat(auto-fill,minmax(215px,1fr))!important;
  gap:8px!important;
  padding:9px 0!important;
  min-height:58px!important;
}
.layout-link{
  min-height:116px!important;
  padding:7px!important;
  grid-template-columns:24px minmax(0,1fr) auto!important;
  grid-template-areas:"drag preview edit"!important;
  gap:7px!important;
  align-items:start!important;
  border-color:#dfe5ea!important;
  border-radius:6px!important;
}
.layout-link>.drag-chip-link{grid-area:drag!important;align-self:center!important;width:24px!important;height:32px!important}
.layout-link-preview{grid-area:preview!important;min-width:0!important;width:100%!important;display:flex!important;flex-direction:column!important;align-items:stretch!important}
.layout-link-logo{
  width:100%!important;
  height:64px!important;
  min-height:64px!important;
  border-radius:4px!important;
  background:#fafbfc!important;
  overflow:hidden!important;
}
.layout-link-logo img{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important;display:block!important}
.layout-link-logo span{font-size:14px!important}
.layout-link-info{width:100%!important;text-align:center!important;padding-top:4px!important}
.layout-link-name{
  font-size:13px!important;
  line-height:1.3!important;
  font-weight:700!important;
  color:#26323c!important;
  white-space:normal!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  min-height:17px!important;
}
.layout-link-meta{justify-content:center!important;font-size:11px!important;line-height:1.3!important;margin-top:2px!important;color:#7d8891!important}
.nav-pill{height:17px!important;padding:0 5px!important;font-size:9px!important}
.layout-link>.mini-edit{grid-area:edit!important;align-self:start!important;height:32px!important;font-size:12px!important;padding:0 9px!important}
.add-link-btn{height:34px!important;font-size:13px!important}

/* Link edit/create modal readability. */
.link-modal{width:min(880px,96vw)!important}
.modal-head{min-height:58px!important;padding:0 18px!important}
.modal-head strong{font-size:17px!important}.modal-head span{font-size:11.5px!important}
.premium-modal-body,.link-modal-form{padding:18px!important}
.link-modal-grid{gap:13px 16px!important}
.link-modal-grid input,.link-modal-grid select,.premium-modal-body input{height:38px!important}
.secret-field input,.secret-toggle{height:38px!important}
.secret-toggle{font-size:12px!important}
.link-modal-options{gap:11px 20px!important;margin-top:16px!important;padding-top:14px!important}
.premium-check{font-size:13px!important}.premium-check small{font-size:11px!important}
.premium-delete-row{padding:12px 18px 16px!important}.premium-delete-row .btn{height:34px!important;font-size:13px!important}

/* Backup/restore: more legible hierarchy and less decorative clutter. */
.backup-dashboard{gap:12px!important}
.backup-card{
  grid-template-columns:46px minmax(0,1fr)!important;
  gap:14px!important;
  padding:18px 20px!important;
  min-height:224px!important;
}
.backup-card-icon{width:42px!important;height:42px!important;border-radius:7px!important;font-size:22px!important;background:#f1f5f8!important;color:#43515d!important}
.backup-card-copy h2{font-size:17px!important;line-height:1.3!important;margin:1px 0 8px!important;color:#1e2b35!important}
.backup-card-copy p{font-size:13px!important;line-height:1.65!important;color:#62707b!important;margin:0 0 10px!important;max-width:760px}
.backup-card-copy ul{font-size:12px!important;line-height:1.75!important;color:#65727d!important;padding-left:18px!important;margin:0!important}
.backup-card-action,.backup-upload-form{gap:9px!important;margin-top:12px!important}
.backup-upload-form input[type=file]{font-size:12px!important;max-width:420px!important}
.backup-policy-panel{padding:16px!important}
.backup-policy-grid{gap:10px!important}
.backup-policy-grid>div{padding:12px 13px!important;border:1px solid #edf1f4!important;border-radius:5px!important;background:#fafbfc!important}
.backup-policy-grid b{font-size:13px!important;line-height:1.35!important;margin-bottom:5px!important;color:#2b3741!important}
.backup-policy-grid span{font-size:12px!important;line-height:1.6!important;color:#6d7983!important}
.backup-summary span{font-size:11.5px!important}.backup-summary strong{font-size:16px!important}
.backup-warning,.backup-ok{font-size:12px!important;line-height:1.55!important;padding:10px 12px!important}
.backup-preview-table th,.backup-preview-table td{font-size:11.5px!important;padding:7px 7px!important}
.backup-status{font-size:10.5px!important;padding:3px 6px!important}

/* Settings pages and navigator admin copy use the same readable scale. */
.premium-settings-panel{padding:15px 16px!important}
.premium-setting-grid{gap:14px 16px!important}
.premium-setting-grid label>span{font-size:13px!important}
.setting-unit b{font-size:11px!important}
.switch-setting strong{font-size:13px!important}
.navigator-admin-list strong{font-size:13px!important}.navigator-admin-list small{font-size:11px!important}
.navigator-preview-empty{font-size:12px!important}
.navigator-preview-card.v27-preview .navigator-preview-label strong{font-size:13px!important}

@media(max-width:1180px){
  .layout-link-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))!important}
  .backup-policy-grid{grid-template-columns:1fr 1fr!important}
}
@media(max-width:900px){
  .portal-main{padding-top:8px!important}
  .layout-link-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))!important}
}
@media(max-width:650px){
  .admin-main{padding:10px!important}
  .page-title h1{font-size:18px!important}
  .backup-card{min-height:0!important;padding:15px!important}
  .layout-link-grid{grid-template-columns:1fr!important}
}

/* =========================================================
   V2.8 admin icon system / border palette / compact navigator
   ========================================================= */
.admin-nav-link{display:flex!important;align-items:center!important;gap:10px!important;color:#d5dde4!important;transition:background .14s ease,color .14s ease!important}
.admin-nav-link:hover{background:#253440!important;color:#fff!important}
.admin-nav-link.active{background:#2a3b49!important;color:#fff!important;box-shadow:inset 3px 0 0 var(--accent,#1368b3)!important}
.admin-menu-icon{width:17px;height:17px;flex:0 0 17px;color:#91a4b3;transition:color .14s ease}
.admin-nav-link:hover .admin-menu-icon,.admin-nav-link.active .admin-menu-icon{color:#ddecf7}
.admin-version{display:flex!important;flex-direction:column!important;gap:2px!important;border-top:1px solid rgba(255,255,255,.07)!important;margin-top:auto!important;padding-top:12px!important}
.admin-version strong{font-size:11.5px!important;color:#d6e2ea!important;letter-spacing:.15px}
.admin-version span{font-size:10.5px!important;color:#81909c!important}
.admin-top-identity{display:flex;align-items:center;gap:7px;min-width:0}
.admin-top-identity .admin-role{margin:0!important}
.admin-version-badge{display:inline-flex!important;align-items:center!important;height:24px!important;margin:0 0 0 5px!important;padding:0 8px!important;border:1px solid #dce5eb!important;border-radius:999px!important;background:#f5f8fa!important;color:#3e596d!important;font-size:11.5px!important;font-weight:800!important;letter-spacing:.1px!important;white-space:nowrap}
.page-title-heading{display:flex;align-items:center;gap:9px}
.admin-page-icon{width:22px;height:22px;flex:0 0 22px;color:#45677f}
.page-title-heading h1{margin:0!important}
.page-title-copy>p{margin:4px 0 0 31px!important}

.system-overview-panel{padding:15px 16px!important}
.system-overview-grid{display:grid;grid-template-columns:1.35fr repeat(4,minmax(150px,1fr));gap:8px}
.system-info-item{min-height:72px;display:flex;align-items:center;gap:11px;padding:11px 12px;border:1px solid #e4eaf0;border-radius:6px;background:#fafcfd}
.system-info-item>span{min-width:46px;height:30px;display:grid;place-items:center;border-radius:5px;background:#eef3f6;color:#526777;font-size:10px;font-weight:900;letter-spacing:.6px}
.system-info-item.accent>span{background:#eaf3fb;color:#1368b3}
.system-info-item div{display:flex;min-width:0;flex-direction:column;gap:2px}
.system-info-item small{font-size:11px;color:#7b8791}
.system-info-item strong{font-size:13px;color:#26333d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.system-info-item em{font-style:normal;font-size:10.5px;color:#8a959e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.system-info-icon{width:46px!important;height:30px!important}
.system-card-icon{width:18px;height:18px}

.border-style-panel{overflow:visible!important}
.border-setting-grid{display:grid;grid-template-columns:minmax(320px,1.8fr) minmax(180px,.8fr) minmax(220px,1fr);gap:15px;align-items:start}
.border-setting-grid>label,.navigator-border-settings>label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700}
.border-setting-grid small,.navigator-border-settings small{font-size:11.5px;line-height:1.45;color:#78858f;font-weight:400}
.compact-select{width:150px!important;height:38px!important;border:1px solid #d9e1e7!important;border-radius:5px!important;background:#fff!important;padding:0 10px!important;font-size:13px!important}
.color-palette-control{display:flex;flex-direction:column;gap:7px;max-width:470px}
.color-picker-main{display:grid;grid-template-columns:50px minmax(120px,170px);gap:8px;align-items:center}
.color-native{width:50px!important;height:38px!important;padding:2px!important;border:1px solid #d7e0e6!important;border-radius:5px!important;background:#fff!important;cursor:pointer!important}
.color-hex{height:38px!important;padding:0 10px!important;border:1px solid #d7e0e6!important;border-radius:5px!important;background:#fff!important;font-family:Consolas,"Courier New",monospace!important;font-size:13px!important;text-transform:uppercase!important;letter-spacing:.25px!important}
.color-hex:focus{outline:0!important;border-color:#8eb1cb!important;box-shadow:0 0 0 3px rgba(19,104,179,.08)!important}
.color-swatches{display:flex;flex-wrap:wrap;gap:5px;max-width:430px}
.color-swatch{position:relative;width:26px;height:26px;border:1px solid #cfd8df;border-radius:4px;background:var(--swatch);cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.color-swatch:hover{transform:translateY(-1px)}
.color-swatch.selected:after{content:"";position:absolute;inset:3px;border:2px solid #fff;border-radius:2px;box-shadow:0 0 0 1px rgba(24,33,42,.55)}
.border-preview{min-height:94px;border:1px solid #eef1f4;border-radius:6px;background:#fbfcfd;padding:9px;color:#61707b;font-size:11px}
.border-preview>span{display:block;margin-bottom:7px;font-size:11.5px;font-weight:700;color:#586773}
.border-preview>div{height:50px;display:grid;place-items:center;border:1px solid #eef1f3;border-radius:3px;background:#fff;font-size:11px;color:#909aa2}
.navigator-border-settings{display:grid;grid-template-columns:minmax(320px,1.5fr) minmax(190px,.7fr);gap:15px;align-items:start;margin-top:14px;padding:14px;border:1px solid #e7edf1;border-radius:6px;background:#fbfcfd}

/* Border thickness is painted by pseudo elements, so visual thickness never changes group/navigator geometry or vertical alignment. */
.portal-group{position:relative!important;border:0!important;box-shadow:none!important}
.portal-group:before{content:"";position:absolute;inset:0;pointer-events:none;border:var(--portal-group-border-width,1px) solid var(--portal-group-border-color,#eef1f3);border-radius:inherit;z-index:3}
.navigator-shell.portal-section-frame{position:relative!important;width:100%!important;min-height:0!important;height:auto!important;border:0!important;box-shadow:none!important;padding-left:0!important;padding-right:0!important;padding-bottom:0!important;overflow:hidden!important}
.navigator-shell.portal-section-frame:before{content:"";position:absolute;inset:0;pointer-events:none;border:var(--navigator-border-width,1px) solid var(--navigator-border-color,#dfe6eb);border-radius:inherit;z-index:4}
.navigator-titlebar.portal-section-titlebar{width:100%!important;padding-left:4px!important;padding-right:24px!important}
.navigator-banner-list.portal-section-body{width:100%!important;padding:0!important;margin:0!important;gap:var(--navigator-gap-y,8px)!important}
.navigator-banner{width:100%!important;max-width:none!important;margin:0!important;border-radius:0!important}
.navigator-banner img{width:100%!important;height:100%!important;display:block!important;object-fit:contain!important;margin:0!important;padding:0!important}
.navigator-empty{margin:0!important;border-radius:0!important}

.navigator-preview-card.v28-preview{position:relative;width:var(--preview-nav-width)!important;padding:3px 0 0!important;border:0!important;box-shadow:none!important;border-radius:4px!important;overflow:hidden!important}
.navigator-preview-card.v28-preview:before{content:"";position:absolute;inset:0;border:var(--preview-nav-border-width,1px) solid var(--preview-nav-border,#dfe6eb);border-radius:inherit;pointer-events:none;z-index:2}
.navigator-preview-card.v28-preview .navigator-preview-label{height:24px!important;min-height:24px!important;padding:0 4px!important;margin-bottom:6px!important;display:flex!important;align-items:center!important;border-bottom:1px solid #eef2f4!important}
.navigator-preview-card.v28-preview .navigator-preview-list{padding:0!important;gap:var(--preview-gap)!important}
.navigator-preview-card.v28-preview .navigator-preview-banner{width:100%!important;max-width:none!important;height:var(--preview-banner-height)!important;border:0!important;border-radius:0!important}
.navigator-preview-card.v28-preview .navigator-preview-banner img{display:block;width:100%!important;height:100%!important;object-fit:contain!important}

@media(max-width:1380px){.system-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.border-setting-grid{grid-template-columns:1fr 1fr}.border-preview{grid-column:1/-1}.navigator-border-settings{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.admin-version-badge{display:none!important}.page-title-copy>p{margin-left:0!important}.system-overview-grid{grid-template-columns:1fr 1fr}.border-setting-grid,.navigator-border-settings{grid-template-columns:1fr}.color-picker-main{grid-template-columns:50px 1fr}.compact-select{width:100%!important}}
.color-hex.invalid{border-color:#c0392b!important;background:#fff8f7!important}


/* =========================================================
   Global time bar / navigator bottom rhythm
   ========================================================= */
.portal-shell{--portal-link-name-line-height:1.35}
/* Navigator intentionally hides the link name, but reserves exactly one normal link-name line below the final banner. */
.navigator-banner-list.portal-section-body{font-size:var(--portal-link-font-size,11px)!important;padding-bottom:calc(1.35em + var(--portal-section-pad-bottom,4px) + 1px)!important}
.navigator-empty{font-size:var(--portal-link-font-size,11px)!important;margin-bottom:calc(1.35em + var(--portal-section-pad-bottom,4px) + 1px)!important}

.global-time-bar{height:34px;min-height:34px;width:100%;display:flex;align-items:center;justify-content:center;gap:14px;padding:0 14px;background:#fff;border-bottom:1px solid #edf1f4;color:#44515b;white-space:nowrap;overflow:hidden;position:relative;z-index:70}
.global-time-label{display:flex;align-items:center;gap:5px;flex:0 0 auto;color:#7b8790;font-size:10px;letter-spacing:.55px}
.global-time-globe{font-size:12px;color:var(--accent,#1368b3)}
.global-time-list{display:flex;align-items:center;justify-content:center;min-width:0;gap:0;white-space:nowrap;overflow:hidden}
.global-time-item{position:relative;display:inline-flex;align-items:center;gap:4px;padding:0 10px;font-size:11px;line-height:1;min-width:0}
.global-time-item+.global-time-item:before{content:"";position:absolute;left:0;top:50%;width:1px;height:12px;background:#e6ebef;transform:translateY(-50%)}
.world-clock-flag{width:18px;height:12px;flex:0 0 18px;display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:8px;font-weight:800;letter-spacing:-.2px;color:#65727c;overflow:hidden}.world-clock-flag img{display:block;width:18px;height:12px;object-fit:contain;box-sizing:border-box;border:1px solid #dfe5e9;border-radius:1px}.world-clock-flag.is-code-fallback{overflow:visible}.world-clock-city{font-weight:600;color:#54616a}.world-clock-time{font-size:11.5px;font-weight:800;font-variant-numeric:tabular-nums;color:#1f2d37;letter-spacing:.05px}.world-clock-date{font-size:9px;color:#9a6c34;font-variant-numeric:tabular-nums}

.world-time-commandbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:4px 0 14px;border-bottom:1px solid #e9eef2}.world-time-commandbar .switch-setting{flex:1;margin:0}
.world-time-preview{margin:14px 0;padding:12px 14px;border:1px solid #e4eaef;border-radius:6px;background:#fbfcfd}.world-time-preview>strong{display:block;margin-bottom:8px;font-size:13px}.world-time-preview-line{display:flex;align-items:center;gap:0;white-space:nowrap;overflow:hidden;font-size:11.5px;color:#46535d}.world-time-preview-line>span{display:inline-flex;align-items:center;gap:4px;padding:0 9px;border-left:1px solid #e5eaee}.world-time-preview-line>span:first-child{padding-left:0;border-left:0}.world-time-preview-line i.world-clock-flag{font-style:normal}.world-time-preview-line b{font-variant-numeric:tabular-nums}
.world-time-admin-list{display:flex;flex-direction:column;gap:6px}.world-time-row{display:grid;grid-template-columns:30px 78px 150px minmax(250px,1fr) 58px 62px;gap:8px;align-items:end;padding:8px 9px;border:1px solid #e2e8ed;border-radius:6px;background:#fff}.world-time-row.dragging{opacity:.55;border-color:#9fb7c9;background:#f7fafc}.world-time-row label{display:grid;gap:4px;font-size:11px;color:#66727c}.world-time-row label>span{font-weight:700}.world-time-row input[type=text],.world-time-row input:not([type]){height:34px;border:1px solid #d8e0e6;border-radius:5px;padding:0 8px;font-size:12.5px}.world-time-row input[name$="[country_code]"]{text-transform:uppercase;text-align:center;font-weight:800}.world-time-active{justify-items:center}.world-time-active input{width:17px;height:17px;margin:8px 0}.world-time-drag{width:30px;height:34px;display:grid;place-items:center;border:1px solid #d8e0e6;border-radius:5px;background:#f7f9fa;color:#74818b;cursor:grab;font-size:14px}.world-time-row .btn{height:34px!important}
.world-time-add{margin-top:12px;display:grid;grid-template-columns:minmax(220px,1.3fr) 90px 150px minmax(250px,1fr) auto;gap:8px;align-items:end;padding:12px;border:1px dashed #cfd9e0;border-radius:6px;background:#fbfcfd}.world-time-add>div{display:flex;flex-direction:column;gap:3px}.world-time-add strong{font-size:13px}.world-time-add small{font-size:11px;color:#7a8790}.world-time-add input{height:36px;border:1px solid #d8e0e6;border-radius:5px;padding:0 9px;font-size:12.5px}.world-time-help p{margin:0;font-size:12.5px;line-height:1.65;color:#5f6d77}

@media(max-width:1500px){.global-time-bar{gap:7px;padding:0 8px}.global-time-label{font-size:9px}.global-time-item{padding:0 6px;font-size:10px}.world-clock-time{font-size:10.5px}.world-clock-flag{width:16px;height:11px;flex-basis:16px;font-size:7px}.world-clock-flag img{width:16px;height:11px}.world-time-row{grid-template-columns:30px 70px 130px minmax(220px,1fr) 52px 58px}}
@media(max-width:1180px){.global-time-label{display:none}.global-time-item{padding:0 5px}.world-time-row{grid-template-columns:30px 64px 120px minmax(190px,1fr) 50px 58px}.world-time-add{grid-template-columns:1fr 80px 130px minmax(190px,1fr) auto}}
@media(max-width:900px){.global-time-bar{justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.global-time-bar::-webkit-scrollbar{display:none}.global-time-list{overflow:visible;justify-content:flex-start}.world-time-row{grid-template-columns:30px 64px 1fr 1.5fr}.world-time-active,.world-time-row .btn{grid-column:auto}.world-time-add{grid-template-columns:1fr 1fr}.world-time-add>div{grid-column:1/-1}}

/* =========================================================
   Navigator save button sizing and placement
   ========================================================= */
.navigator-save-row{grid-column:1/-1;display:flex!important;align-items:center;justify-content:flex-end;margin:0!important;padding-top:2px}
.navigator-save-row .btn-save{width:168px!important;min-width:168px;height:38px!important;min-height:38px;padding:0 18px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;text-align:center!important}
@media(max-width:900px){.navigator-save-row{grid-column:1;padding-top:0}.navigator-save-row .btn-save{width:168px!important}}
@media(max-width:560px){.navigator-save-row .btn-save{width:100%!important;min-width:0}}



/* =========================================================
   Navigator preview geometry / world-time row alignment
   ========================================================= */
.navigator-setting-layout{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;align-items:start!important}
.navigator-enabled-row{width:100%!important;margin:0!important;padding:4px 0 12px!important}
.navigator-settings-body{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:20px;align-items:start;min-width:0}
.navigator-setting-fields{min-width:0}
.navigator-preview-wrap{width:max-content;max-width:100%;justify-self:end;align-self:start;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.navigator-preview-caption{font-size:11px;font-weight:700;color:#6b7882;line-height:1.2;text-align:right}
.navigator-preview-card.v34-preview{position:relative!important;width:var(--preview-nav-width)!important;max-width:340px!important;padding:0!important;border:0!important;border-radius:4px!important;box-shadow:none!important;background:#fff!important;overflow:hidden!important}
.navigator-preview-card.v34-preview:before{content:"";position:absolute;inset:0;border:var(--preview-nav-border-width,1px) solid var(--preview-nav-border,#dfe6eb);border-radius:inherit;pointer-events:none;z-index:3}
.navigator-preview-card.v34-preview .navigator-preview-label{width:100%!important;height:28px!important;min-height:28px!important;margin:0!important;padding:0 6px!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;border-bottom:1px solid #eef2f4!important;background:#fff!important}
.navigator-preview-card.v34-preview .navigator-preview-label strong{font-size:12px!important;line-height:1!important}
.navigator-preview-card.v34-preview .navigator-preview-list{width:100%!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:var(--preview-gap)!important;padding:0!important;margin:0!important;background:#fff!important}
.navigator-preview-card.v34-preview .navigator-preview-banner{display:block!important;width:var(--preview-banner-width)!important;max-width:100%!important;height:var(--preview-banner-height)!important;min-height:var(--preview-banner-height)!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;overflow:hidden!important;background:#fff!important}
.navigator-preview-card.v34-preview .navigator-preview-banner img{display:block!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;object-fit:contain!important}
.navigator-preview-card.v34-preview .navigator-preview-empty{width:var(--preview-banner-width)!important;max-width:100%!important;height:var(--preview-banner-height)!important;min-height:var(--preview-banner-height)!important;margin:0!important;padding:5px 8px!important;display:grid!important;place-items:center!important;background:#f8fafb!important;border-radius:0!important;font-size:10.5px!important;line-height:1.35!important;text-align:center!important;color:#89949c!important;overflow:hidden!important}
.navigator-save-row{grid-column:1!important;width:100%!important;padding-top:0!important}

.world-time-row{align-items:end!important}
.world-time-row>*,.world-time-row label{min-width:0}
.world-time-country-field{justify-items:stretch!important;text-align:center!important}
.world-time-country-field>span{width:100%!important;text-align:center!important}
.world-time-country-field input[name$="[country_code]"]{width:100%!important;height:34px!important;padding:0!important;text-align:center!important;text-indent:0!important;line-height:34px!important;font-weight:800!important;font-variant-numeric:tabular-nums!important;text-transform:uppercase!important}
.world-time-drag,.world-time-row .btn{align-self:end!important;margin:0!important}
.world-time-active{align-self:stretch!important;display:grid!important;grid-template-rows:auto 34px!important;gap:4px!important;align-items:end!important;justify-items:center!important}
.world-time-active>span{width:100%!important;text-align:center!important}
.world-time-active input{align-self:center!important;justify-self:center!important;margin:0!important}
.world-time-new-country{padding:0!important;text-align:center!important;text-transform:uppercase!important;font-weight:800!important}

@media(max-width:1180px){.navigator-settings-body{grid-template-columns:minmax(0,1fr) max-content;gap:14px}}
@media(max-width:900px){.navigator-settings-body{grid-template-columns:1fr}.navigator-preview-wrap{justify-self:start;align-items:flex-start}.navigator-preview-caption{text-align:left}.navigator-save-row{grid-column:1!important}}
@media(max-width:560px){.navigator-preview-wrap{width:100%}.navigator-preview-card.v34-preview{max-width:100%!important}.navigator-preview-card.v34-preview,.navigator-preview-card.v34-preview .navigator-preview-banner,.navigator-preview-card.v34-preview .navigator-preview-empty{width:100%!important}}


/* =========================================================
   Navigator settings density aligned with portal display settings
   ========================================================= */
.navigator-admin-panel{padding:12px 13px!important}
.navigator-enabled-row{padding:2px 0 10px!important;border-bottom:1px solid #edf1f4!important}
.navigator-settings-body{gap:16px!important}
.navigator-setting-fields .navigator-primary-grid{grid-template-columns:repeat(3,minmax(160px,1fr))!important;gap:12px 14px!important}
.navigator-setting-fields .premium-setting-grid label{gap:5px!important}
.navigator-setting-fields .premium-setting-grid input,
.navigator-setting-fields .premium-setting-grid select{height:34px!important;min-height:34px!important;padding-top:0!important;padding-bottom:0!important;line-height:32px!important}
.navigator-setting-fields .setting-unit{height:34px!important;min-height:34px!important}
.navigator-setting-fields .setting-unit input{height:32px!important;min-height:32px!important;line-height:32px!important}
.navigator-setting-fields .setting-unit b{height:32px!important;min-height:32px!important}
.navigator-border-settings{grid-template-columns:minmax(320px,1.6fr) 180px!important;gap:14px!important;align-items:start!important;margin-top:12px!important;padding:12px 0 0!important;border:0!important;border-top:1px solid #edf1f4!important;border-radius:0!important;background:transparent!important}
.navigator-border-settings>label{gap:5px!important}
.navigator-border-settings .compact-select{width:150px!important;height:34px!important;min-height:34px!important}
.navigator-border-settings .color-picker-main{grid-template-columns:50px minmax(120px,170px)!important;gap:8px!important}
.navigator-border-settings .color-native,
.navigator-border-settings .color-hex{height:34px!important;min-height:34px!important}
.navigator-width-note{margin-top:7px!important;padding:6px 9px!important;min-height:30px!important;display:flex!important;align-items:center!important}
.navigator-preview-wrap{padding-top:0!important}
.navigator-preview-caption{margin:0!important;min-height:14px!important}
.navigator-save-row{margin-top:0!important}
@media(max-width:1380px){
  .navigator-setting-fields .navigator-primary-grid{grid-template-columns:repeat(3,minmax(145px,1fr))!important}
  .navigator-border-settings{grid-template-columns:minmax(260px,1fr) 170px!important}
}
@media(max-width:1080px){
  .navigator-setting-fields .navigator-primary-grid{grid-template-columns:repeat(2,minmax(150px,1fr))!important}
}
@media(max-width:900px){
  .navigator-settings-body{grid-template-columns:1fr!important}
  .navigator-setting-fields .navigator-primary-grid{grid-template-columns:repeat(2,minmax(150px,1fr))!important}
  .navigator-border-settings{grid-template-columns:1fr 180px!important}
}
@media(max-width:650px){
  .navigator-setting-fields .navigator-primary-grid,.navigator-border-settings{grid-template-columns:1fr!important}
  .navigator-border-settings .compact-select{width:100%!important}
}

/* Link modal logo upload alignment and shared field rhythm. */
.link-modal-grid>label{
  min-width:0!important;
  align-content:start!important;
}
.link-modal-grid .logo-upload-field{
  grid-template-rows:auto 38px!important;
}
.link-modal-grid .logo-upload-input{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:38px!important;
  min-height:38px!important;
  box-sizing:border-box!important;
  padding:0!important;
  overflow:hidden!important;
  line-height:36px!important;
  color:#4f5c66!important;
  background:#fff!important;
  border:1px solid #d9e1e7!important;
  border-radius:5px!important;
}
.link-modal-grid .logo-upload-input::file-selector-button{
  height:36px!important;
  margin:0 10px 0 0!important;
  padding:0 12px!important;
  border:0!important;
  border-right:1px solid #d9e1e7!important;
  border-radius:4px 0 0 4px!important;
  background:#f5f7f9!important;
  color:#34414b!important;
  font:700 12px/36px "NanumGothic","Nanum Gothic",Arial,sans-serif!important;
  vertical-align:top!important;
  cursor:pointer!important;
}
.link-modal-grid .logo-upload-input::-webkit-file-upload-button{
  height:36px!important;
  margin:0 10px 0 0!important;
  padding:0 12px!important;
  border:0!important;
  border-right:1px solid #d9e1e7!important;
  border-radius:4px 0 0 4px!important;
  background:#f5f7f9!important;
  color:#34414b!important;
  font:700 12px/36px "NanumGothic","Nanum Gothic",Arial,sans-serif!important;
  vertical-align:top!important;
  cursor:pointer!important;
}


/* Navigator numeric rows: lock label/input geometry so help text never shifts controls. */
.navigator-setting-fields .navigator-primary-grid{
  align-items:start!important;
}
.navigator-setting-fields .navigator-primary-grid>label{
  display:grid!important;
  grid-template-rows:16px 34px auto!important;
  align-content:start!important;
  align-self:start!important;
  row-gap:5px!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
}
.navigator-setting-fields .navigator-primary-grid>label>span{
  display:flex!important;
  align-items:center!important;
  height:16px!important;
  min-height:16px!important;
  margin:0!important;
  padding:0!important;
  line-height:16px!important;
}
.navigator-setting-fields .navigator-primary-grid>label>.setting-unit{
  grid-row:2!important;
  width:100%!important;
  height:34px!important;
  min-height:34px!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.navigator-setting-fields .navigator-primary-grid>label>.setting-unit>input{
  height:32px!important;
  min-height:32px!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.navigator-setting-fields .navigator-primary-grid>label>.setting-unit>b{
  height:32px!important;
  min-height:32px!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.navigator-setting-fields .navigator-primary-grid>label>small{
  grid-row:3!important;
  align-self:start!important;
  margin:0!important;
  padding:0!important;
  line-height:1.35!important;
}
/* Usage-based link ordering */
.portal-sort-setting{grid-column:1/-1;max-width:560px}
.usage-pill{display:inline-flex;align-items:center;justify-content:center;height:17px;padding:0 5px;border:1px solid #e1e7eb;border-radius:3px;background:#f7f9fa;color:#66727d;font-size:9px;font-weight:700}
@media(max-width:650px){.portal-sort-setting{grid-column:auto;max-width:none}}

/* =========================================================
   Navigator site title under banner
   ========================================================= */
.navigator-banner-list.portal-section-body{
  font-size:var(--portal-link-font-size,11px)!important;
  padding-bottom:var(--portal-section-pad-bottom,4px)!important;
}
.navigator-banner{
  height:auto!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  overflow:visible!important;
  text-align:center!important;
  color:#303940!important;
  text-decoration:none!important;
}
.navigator-banner-image{
  display:block!important;
  width:100%!important;
  height:var(--navigator-banner-height,55px)!important;
  min-height:var(--navigator-banner-height,55px)!important;
  overflow:hidden!important;
  background:#fff!important;
}
.navigator-banner-image img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  margin:0!important;
  padding:0!important;
}
.navigator-banner-name{
  display:block!important;
  width:100%!important;
  height:1.35em!important;
  margin-top:1px!important;
  padding:0 1px!important;
  font-family:"NanumGothic","Nanum Gothic",Arial,sans-serif!important;
  font-size:var(--portal-link-font-size,11px)!important;
  font-weight:400!important;
  line-height:1.35!important;
  color:#303940!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.navigator-banner:hover .navigator-banner-name{color:#303940!important}
.navigator-empty{
  margin-bottom:var(--portal-section-pad-bottom,4px)!important;
}

.navigator-preview-card.v34-preview .navigator-preview-banner{
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
}
.navigator-preview-card.v34-preview .navigator-preview-banner-image{
  display:block!important;
  width:100%!important;
  height:var(--preview-banner-height)!important;
  min-height:var(--preview-banner-height)!important;
  overflow:hidden!important;
  background:#fff!important;
}
.navigator-preview-card.v34-preview .navigator-preview-banner-image img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
.navigator-preview-card.v34-preview .navigator-preview-banner-name{
  display:block!important;
  width:100%!important;
  height:1.35em!important;
  margin-top:1px!important;
  padding:0 1px!important;
  font-size:var(--portal-link-font-size,11px)!important;
  line-height:1.35!important;
  color:#303940!important;
  text-align:center!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* =========================================================
   Portal frame baseline + credential overlay
   ========================================================= */
/* The link card geometry stays unchanged. Credential UI is an overlay inside the existing image box. */
.site-logo-wrap{position:relative!important}
.credential-badge{
  position:absolute!important;right:3px!important;top:3px!important;z-index:3!important;
  width:17px!important;height:17px!important;min-width:17px!important;min-height:17px!important;
  display:grid!important;place-items:center!important;padding:0!important;margin:0!important;
  border:1px solid rgba(45,66,82,.18)!important;border-radius:3px!important;
  background:rgba(255,255,255,.94)!important;color:#52616d!important;box-shadow:0 1px 3px rgba(24,39,52,.08)!important;
  pointer-events:none!important
}
.credential-badge svg{width:11px!important;height:11px!important;display:block!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.credential-hover-panel{
  position:absolute!important;inset:0!important;z-index:2!important;
  display:flex!important;flex-direction:column!important;justify-content:center!important;gap:3px!important;
  width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;
  padding:5px 7px!important;margin:0!important;box-sizing:border-box!important;
  background:rgba(255,255,255,.96)!important;border:1px solid rgba(19,104,179,.24)!important;border-radius:0!important;
  color:#28343e!important;font-size:var(--portal-credential-font-size,11px)!important;line-height:1.2!important;
  opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:opacity .1s ease!important
}
.link-card.credential-hover-active .credential-hover-panel{opacity:1!important;visibility:visible!important}
.link-card.credential-hover-active .credential-badge{opacity:0!important}
.credential-hover-row{display:grid!important;grid-template-columns:20px minmax(0,1fr)!important;gap:4px!important;align-items:center!important;width:100%!important;height:auto!important;min-height:0!important;padding:0!important;margin:0!important;background:transparent!important;color:#28343e!important}
.credential-hover-row b{font-size:9px!important;color:#6b7780!important;text-align:left!important;line-height:1.2!important}
.credential-hover-row>span{display:block!important;width:auto!important;height:auto!important;min-width:0!important;padding:0!important;margin:0!important;background:transparent!important;color:#202b34!important;font-size:var(--portal-credential-font-size,11px)!important;font-weight:700!important;line-height:1.2!important;text-align:left!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.credential-hover-loading{display:none!important;width:auto!important;height:auto!important;padding:0!important;margin:0!important;background:transparent!important;color:#75818a!important;font-size:9px!important;line-height:1.2!important;text-align:center!important}
.link-card.credential-loading .credential-hover-loading{display:block!important}
.link-card.credential-loading .credential-hover-row{display:none!important}
.link-card.credential-error .credential-hover-loading{display:block!important;color:#9a4f48!important}
.link-card.credential-error .credential-hover-row{display:none!important}

/* Standard desktop target: 1920x1080 = 10% left rail / 80% portal / 10% navigator rail. */
@media(min-width:981px){
  .portal-main{width:80vw!important;max-width:none!important;margin:0 auto!important;padding-left:0!important;padding-right:0!important}
  .portal-content-shell,.navigator-collapsed .portal-content-shell{display:block!important;grid-template-columns:none!important;gap:0!important;padding-right:0!important}
  .portal-primary{width:100%!important;min-width:0!important}
  .portal-navigator{
    position:fixed!important;
    top:calc(42px + 34px + var(--navigator-top-offset,12px))!important;
    right:max(4px,calc((10vw - var(--navigator-width,180px))/2))!important;
    width:min(var(--navigator-width,180px),calc(10vw - 8px))!important;
    max-height:calc(100vh - 84px - var(--navigator-top-offset,12px))!important;
    z-index:60!important
  }
  .navigator-collapsed .portal-navigator{width:30px!important;right:calc((10vw - 30px)/2)!important}
  .navigator-banner-list.portal-section-body{max-height:calc(100vh - 126px - var(--navigator-top-offset,12px))!important}
}

/* =========================================================
   Portal row fill / navigator clearance / credential popover / world-time font size
   ========================================================= */
/* Keep link cards at the configured size, but distribute the small remainder across full rows. */
.link-grid{column-gap:var(--resolved-link-gap-x,var(--portal-link-gap-x))!important}

/* Make the account marker immediately distinguishable without changing its size or position. */
.credential-badge{
  border-color:#e8b04b!important;
  background:#fff7df!important;
  color:#d97706!important;
  box-shadow:0 1px 3px rgba(130,88,10,.14)!important
}

/* The card and image geometry stay unchanged. Only the temporary credential layer grows outside the card. */
.link-card.has-credential{position:relative!important;overflow:visible!important}
.link-card.has-credential .site-logo-wrap{overflow:visible!important}
.link-card.credential-hover-active{z-index:120!important}
.link-card.credential-hover-active .site-main-link{filter:none!important}
.credential-hover-panel{
  inset:auto!important;
  top:-4px!important;
  left:calc(100% + 8px)!important;
  right:auto!important;
  bottom:auto!important;
  width:290px!important;
  max-width:calc(100vw - 24px)!important;
  height:auto!important;
  min-height:92px!important;
  padding:10px 12px!important;
  gap:6px!important;
  justify-content:flex-start!important;
  background:#fff!important;
  border:1px solid #cfdbe4!important;
  border-radius:6px!important;
  box-shadow:0 8px 20px rgba(28,43,55,.16)!important;
  color:#25313a!important;
  pointer-events:none!important;
  overflow:visible!important
}
.credential-popover-left .credential-hover-panel{left:auto!important;right:calc(100% + 8px)!important}
.credential-popover-title{display:block!important;width:100%!important;height:auto!important;padding:0 0 5px!important;margin:0!important;border-bottom:1px solid #edf1f4!important;background:transparent!important;color:#34414b!important;font-size:11px!important;font-weight:800!important;line-height:1.2!important;text-align:left!important}
.credential-hover-row{grid-template-columns:32px minmax(0,1fr)!important;gap:7px!important;align-items:start!important}
.credential-hover-row b{font-size:10px!important;line-height:1.45!important;color:#77838d!important;padding-top:1px!important}
.credential-hover-row>span{font-size:max(12px,var(--portal-credential-font-size,11px))!important;line-height:1.45!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;word-break:break-all!important;color:#17232c!important}
.credential-hover-loading{font-size:11px!important;line-height:1.4!important;text-align:left!important;color:#75818a!important}

/* The main portal ends at the 90% line. Navigator starts after a dedicated visual gap. */
@media(min-width:981px){
  .portal-navigator{
    left:calc(90vw + 8px)!important;
    right:auto!important;
    width:min(var(--navigator-width,180px),calc(10vw - 12px))!important
  }
  .navigator-collapsed .portal-navigator{left:calc(90vw + 8px)!important;right:auto!important;width:30px!important}
}
@media(max-width:980px){
  .credential-hover-panel{top:calc(100% + 6px)!important;left:0!important;right:auto!important;width:min(290px,calc(100vw - 24px))!important}
  .credential-popover-left .credential-hover-panel{left:0!important;right:auto!important}
}

/* User-configurable GLOBAL TIME typography. Flag size follows the selected type size via em units. */
.global-time-label{font-size:var(--global-time-font-size,11px)!important}
.global-time-globe{font-size:1.1em!important}
.global-time-item{font-size:var(--global-time-font-size,11px)!important}
.world-clock-city{font-size:1em!important}
.world-clock-time{font-size:1.05em!important}
.world-clock-date{font-size:max(8px,calc(var(--global-time-font-size,11px) - 2px))!important}
.world-clock-flag{width:1.62em!important;height:1.08em!important;flex:0 0 1.62em!important;font-size:.68em!important}
.world-clock-flag img{width:100%!important;height:100%!important}
.world-time-preview-line{font-size:var(--world-time-preview-font-size,11px)!important}
.world-time-preview-line .world-clock-time{font-size:1.05em!important}
.world-time-preview-line .world-clock-date{font-size:max(8px,calc(var(--world-time-preview-font-size,11px) - 2px))!important}

.world-time-commandbar{display:grid!important;grid-template-columns:minmax(0,1fr) 180px auto!important;align-items:center!important}
.world-time-font-setting{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;font-size:12px;font-weight:700;color:#4d5b66}
.world-time-font-setting>.setting-unit{height:34px!important;min-height:34px!important}
.world-time-font-setting>.setting-unit>input,.world-time-font-setting>.setting-unit>b{height:32px!important;min-height:32px!important}
@media(max-width:760px){.world-time-commandbar{grid-template-columns:1fr!important}.world-time-font-setting{max-width:220px}.world-time-commandbar .btn-save{justify-self:end}}


/* =========================================================
   V4.3 mobile portal UX
   Desktop rules above 980px stay unchanged.
   ========================================================= */
@media(max-width:980px){
  /* Mobile uses the full viewport. Navigator is completely removed. */
  .portal-shell{width:100%!important;max-width:none!important;overflow-x:hidden!important}
  .portal-main{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:8px 8px 20px!important;
    box-sizing:border-box!important;
  }
  .portal-content-shell,.navigator-collapsed .portal-content-shell{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    padding:0!important;
    margin:0!important;
  }
  .portal-primary{width:100%!important;min-width:0!important;margin:0!important;padding:0!important}
  .portal-navigator{display:none!important}

  /* Group frames stay symmetrical; no desktop right-rail reserve remains on mobile. */
  .portal-group.portal-section-frame{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:4px!important;
    padding-right:4px!important;
  }

  /* Exactly three links per row on phones/tablets. */
  .link-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    column-gap:6px!important;
    row-gap:max(8px,var(--portal-link-gap-y,10px))!important;
    width:100%!important;
    justify-content:stretch!important;
    align-items:start!important;
  }
  .link-card{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
  .site-logo-wrap{
    width:100%!important;
    max-height:none!important;
    aspect-ratio:2/1!important;
  }
  .site-name{
    width:100%!important;
    min-width:0!important;
    font-size:max(11px,var(--portal-link-font-size,11px))!important;
    line-height:1.35!important;
  }

  /* Mobile header prioritizes company identity, account actions, and a large search target. */
  .portal-header{
    position:sticky!important;
    top:0!important;
    z-index:180!important;
    height:auto!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"identity right" "search search"!important;
    gap:8px 10px!important;
    padding:10px 12px 9px!important;
    box-sizing:border-box!important;
    background:#fff!important;
  }
  .portal-identity{grid-area:identity!important;min-width:0!important}
  .portal-brand{font-size:15px!important;max-width:100%!important;line-height:1.2!important}
  .portal-user{display:none!important}
  .portal-header-right{grid-area:right!important;margin:0!important;gap:0!important;align-self:center!important}
  .portal-current-time,.portal-session,.portal-meta-sep{display:none!important}
  .header-actions{gap:12px!important;font-size:14px!important}
  .portal-meta-link{font-size:14px!important;line-height:1.2!important;padding:4px 0!important}
  .portal-header-search{
    grid-area:search!important;
    position:relative!important;
    left:auto!important;
    top:auto!important;
    transform:none!important;
    width:100%!important;
    min-width:0!important;
    z-index:190!important;
  }
  .portal-search-field{
    height:46px!important;
    grid-template-columns:38px minmax(0,1fr) 64px!important;
    border-radius:8px!important;
    overflow:hidden!important;
  }
  .portal-search-icon{font-size:19px!important}
  .portal-search-field input{
    height:44px!important;
    min-height:44px!important;
    padding:0 8px!important;
    font-size:16px!important;
    line-height:44px!important;
  }
  .portal-search-field button{
    height:44px!important;
    min-height:44px!important;
    font-size:15px!important;
    font-weight:800!important;
  }
  .portal-search-popover{
    top:52px!important;
    width:100%!important;
    max-height:min(62vh,520px)!important;
    overflow:auto!important;
    overscroll-behavior:contain!important;
  }
  .portal-search-status{font-size:12px!important;margin:0!important;padding:9px 10px 5px!important}
  .portal-search-results{max-height:none!important;margin-top:0!important;padding:4px 6px 8px!important;gap:5px!important}
  .search-result-item{
    min-height:52px!important;
    grid-template-columns:48px minmax(0,1fr)!important;
    gap:10px!important;
    padding:6px 8px!important;
  }
  .search-result-item img,.result-fallback{width:48px!important;height:36px!important}
  .search-result-item strong{font-size:14px!important}
  .search-result-item em{font-size:11px!important}

  /* One non-wrapping swipeable GLOBAL TIME strip. */
  .global-time-bar{
    width:100%!important;
    height:38px!important;
    min-height:38px!important;
    display:block!important;
    padding:0 8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    white-space:nowrap!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    scrollbar-width:none!important;
    touch-action:pan-x!important;
  }
  .global-time-bar::-webkit-scrollbar{display:none!important}
  .global-time-label{display:none!important}
  .global-time-list{
    display:inline-flex!important;
    width:max-content!important;
    min-width:max-content!important;
    height:100%!important;
    align-items:center!important;
    justify-content:flex-start!important;
    overflow:visible!important;
    white-space:nowrap!important;
  }
  .global-time-item{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    height:100%!important;
    padding:0 8px!important;
    white-space:nowrap!important;
  }
  .world-clock-flag,.world-clock-city,.world-clock-time,.world-clock-date{flex:0 0 auto!important;white-space:nowrap!important}

  /* Mobile credentials: the key is tapped; the readable popover floats above page layout. */
  .credential-badge{
    pointer-events:auto!important;
    cursor:pointer!important;
    touch-action:manipulation!important;
  }
  .credential-hover-panel{
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    top:auto!important;
    bottom:18px!important;
    width:auto!important;
    max-width:none!important;
    min-height:100px!important;
    z-index:520!important;
    padding:12px 14px!important;
    border-radius:8px!important;
    box-shadow:0 12px 34px rgba(20,34,46,.24)!important;
  }
  .credential-popover-left .credential-hover-panel{left:12px!important;right:12px!important}
  .credential-popover-title{font-size:13px!important}
  .credential-hover-row b{font-size:12px!important}
  .credential-hover-row>span{font-size:14px!important;line-height:1.5!important}
  .credential-hover-loading{font-size:13px!important}
}

@media(max-width:420px){
  .portal-main{padding-left:6px!important;padding-right:6px!important}
  .portal-header{padding-left:10px!important;padding-right:10px!important}
  .portal-brand{font-size:14px!important}
  .header-actions,.portal-meta-link{font-size:13px!important}
  .link-grid{column-gap:5px!important}
}

.panel-title-actions form{margin:0}.user-export-help{margin:-2px 0 7px;font-size:10px;color:var(--muted)}


/* V4.7 admin button consistency / split design pages */
.admin-shell .btn,.admin-shell a.btn,.admin-shell a.btn:link,.admin-shell a.btn:visited,.admin-shell a.btn:hover,.admin-shell a.btn:focus,.admin-shell a.btn:active,.admin-shell button.btn,.admin-shell .secret-toggle{color:#fff!important;-webkit-text-fill-color:#fff!important}.admin-shell .btn:disabled{color:#fff!important;-webkit-text-fill-color:#fff!important}
.button-design-form{display:grid;gap:12px}.button-design-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.button-design-item{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(260px,1.3fr) 128px;gap:12px;align-items:center;padding:10px;border:1px solid #e1e7eb;border-radius:6px;background:#fbfcfd}.button-design-copy{display:grid;gap:3px}.button-design-copy strong{font-size:13px;color:#26323c}.button-design-copy span{font-size:11px;color:#77838d}.button-design-item .color-palette-control{min-width:0}.button-design-preview{width:128px;pointer-events:none}.button-design-save{display:flex;justify-content:flex-end}.button-design-save .btn{min-width:160px}.user-delete-error-row td{padding:0 8px 8px!important;border-top:0!important;background:#fff5f4!important;color:#9f2e24!important}.user-delete-error-row td>strong,.user-delete-error-row td>span{display:block}.user-delete-error-row strong{font-size:12px;margin-bottom:3px}.user-delete-error-row span{font-size:11px;line-height:1.45;overflow-wrap:anywhere}@media(max-width:1200px){.button-design-grid{grid-template-columns:1fr}.button-design-item{grid-template-columns:minmax(150px,.7fr) minmax(240px,1.3fr) 128px}}@media(max-width:760px){.button-design-item{grid-template-columns:1fr}.button-design-preview{width:100%}}

/* A4 landscape link catalogue admin preview */
.link-pdf-admin-tools{padding:12px 14px!important}.link-pdf-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.link-pdf-summary{display:flex;flex-direction:column;gap:4px}.link-pdf-summary strong{font-size:13px;color:#26343e}.link-pdf-summary span{font-size:11.5px;color:#74818b}.link-pdf-action-buttons{display:flex;align-items:center;gap:7px;flex:0 0 auto}.link-pdf-preview-wrap{overflow:auto;padding:4px 0 20px;background:#edf1f4;border:1px solid #dde5ea;border-radius:6px}.link-pdf-preview-wrap .link-pdf-page{transform:scale(.96);transform-origin:top center;margin-bottom:-5mm}
@media(max-width:1400px){.link-pdf-preview-wrap .link-pdf-page{transform:scale(.86);margin-bottom:-25mm}}
@media(max-width:980px){.link-pdf-actions{align-items:flex-start;flex-direction:column}.link-pdf-action-buttons{width:100%;justify-content:flex-end}.link-pdf-preview-wrap{display:none}}


/* printable page visual definitions for admin preview */
.link-pdf-page{width:297mm;height:210mm;margin:8mm auto;padding:6mm;background:#fff;display:grid;grid-template-rows:10mm minmax(0,1fr) 5mm;overflow:hidden;box-shadow:0 2px 14px rgba(34,48,59,.14);break-after:page;page-break-after:always}
.link-pdf-page:last-child{break-after:auto;page-break-after:auto}
.link-pdf-page-head{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:.3mm solid #dce4ea;padding:0 0 1.8mm}
.link-pdf-page-head>div:first-child{display:flex;align-items:baseline;gap:2.2mm;min-width:0;white-space:nowrap}.link-pdf-page-head strong{font-size:9.6pt;line-height:1.2;letter-spacing:-.12pt;white-space:nowrap}.link-pdf-page-head span{font-size:6.3pt;color:#72808b;white-space:nowrap}.link-pdf-meta{display:flex;align-items:center;gap:2.6mm;padding-top:.6mm;white-space:nowrap}
.link-pdf-page-body{padding-top:2mm;min-height:0;overflow:hidden}.link-pdf-group{margin:0 0 2mm;break-inside:avoid-page}.link-pdf-group:last-child{margin-bottom:0}.link-pdf-group-title{height:5.4mm;display:flex;align-items:center;gap:1.5mm;border-bottom:.25mm solid #e5eaee;margin-bottom:1.4mm}.link-pdf-group-title strong{font-size:8pt;line-height:1;font-weight:800}.link-pdf-group-title span{font-size:5.7pt;font-weight:700;color:#788690;border:.2mm solid #d8e0e5;border-radius:10mm;padding:.35mm 1.2mm}
.link-pdf-grid{display:grid;grid-template-columns:repeat(var(--link-pdf-columns,12),minmax(0,1fr));column-gap:1.4mm;row-gap:2mm}.link-pdf-card{position:relative;display:grid;grid-template-rows:auto 5.3mm;min-width:0;border:.25mm solid #e1e7eb;border-radius:.8mm;background:#fff;overflow:visible;break-inside:avoid;page-break-inside:avoid}.link-pdf-logo{position:relative;display:grid;place-items:center;aspect-ratio:2/1;background:#fbfcfd;border-bottom:.2mm solid #edf1f4;overflow:hidden}.link-pdf-logo>img,.link-pdf-logo>.link-pdf-fallback{grid-area:1/1}.link-pdf-logo img{display:block;width:100%;height:100%;object-fit:contain}.link-pdf-fallback{align-self:center;justify-self:center;font-size:8.4pt;font-weight:800;color:#7b8994}.link-pdf-name{display:flex;align-items:center;justify-content:center;gap:.55mm;min-width:0;padding:0 .7mm;font-size:6.2pt;font-weight:700;line-height:1.1;text-align:center;white-space:nowrap;overflow:hidden}.link-pdf-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.link-pdf-key{flex:0 0 auto;height:3.2mm;display:inline-grid;place-items:center;padding:0 .65mm;border:.2mm solid #efbd4f;border-radius:.7mm;background:#fff7db;color:#8a5400;font-size:4.5pt;font-weight:900;line-height:1;letter-spacing:.05pt}.link-pdf-empty{height:100%;display:grid;place-items:center;font-size:10pt;color:#7c8993;border:.3mm dashed #dce3e8;border-radius:2mm;background:#fafcfd}
.link-pdf-page-foot{display:flex;align-items:end;justify-content:space-between;border-top:.2mm solid #edf1f4;padding-top:1.2mm;color:#89949c;font-size:6pt}.link-pdf-page-foot b{font-size:6.3pt;color:#65727c}

/* 4-digit portal PIN semantics and self-service PIN change. */
.pin-mask-input{-webkit-text-security:disc;text-security:disc;font-variant-numeric:tabular-nums;letter-spacing:.16em}
.pin-change-page{min-height:100vh;display:grid;place-items:start center;padding:72px 18px;background:#f3f6f8;color:#1e2a34}
.pin-change-card{width:min(560px,100%);padding:24px;border:1px solid #dce4ea;border-radius:8px;background:#fff;box-shadow:0 8px 26px rgba(25,42,55,.08)}
.pin-change-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid #e7ecef}.pin-change-head strong{display:block;margin-bottom:6px;font-size:12px;color:#6c7881}.pin-change-head h1{margin:0;font-size:22px;line-height:1.25}.pin-change-head p{margin:7px 0 0;font-size:12px;color:#76838d}.pin-change-head .btn{flex:0 0 auto}
.pin-change-error{margin:16px 0 0;padding:10px 12px;border:1px solid #efc4bf;border-radius:5px;background:#fff4f2;color:#b62f24;font-size:12px;font-weight:700}
.pin-change-form{display:grid;gap:14px;margin-top:18px}.pin-change-form label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#34434e}.pin-change-form input{height:40px;border:1px solid #d4dde4;border-radius:5px;background:#fff;padding:0 12px;font-size:16px;text-align:center;outline:none}.pin-change-form input:focus{border-color:#86abc9;box-shadow:0 0 0 3px rgba(19,104,179,.07)}.pin-change-help{margin:0;font-size:11.5px;line-height:1.55;color:#71808b}.pin-change-submit{height:40px;margin-top:2px}
@media(max-width:600px){.pin-change-page{padding:24px 12px}.pin-change-card{padding:18px 14px}.pin-change-head{display:grid}.pin-change-head .btn{justify-self:start}.pin-change-head h1{font-size:20px}}
.link-pdf-action-buttons button:disabled{opacity:.62;cursor:wait}

/* Portal link management */
.layout-searchbar{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #dfe5ea;border-radius:7px;padding:8px 10px;margin-bottom:8px}
.layout-search-field{display:grid;grid-template-columns:24px minmax(260px,1fr) auto auto;align-items:center;gap:6px;flex:1;min-width:0}
.layout-search-icon{display:grid;place-items:center;color:#6d7983;font-size:18px}
.layout-search-field input{height:36px;width:100%;border:1px solid #d9e1e7;border-radius:5px;padding:0 10px;font-size:13px;outline:none}
.layout-search-field input:focus{border-color:#9db7cc;box-shadow:0 0 0 3px rgba(19,104,179,.06)}
.layout-search-status{flex:0 0 auto;min-width:92px;text-align:right;font-size:12px;color:#6f7c86}
.layout-link.search-hit{border-color:#d89b22!important;box-shadow:0 0 0 2px rgba(216,155,34,.12)!important;background:#fffdf7!important}
.layout-link[hidden],.layout-group[hidden]{display:none!important}

.group-quick-modal{width:min(1020px,96vw)!important}
.group-quick-form{padding:14px 16px 16px}
.group-quick-table-wrap{max-height:min(62vh,620px);overflow:auto;border:1px solid #e1e7eb;border-radius:6px}
.group-quick-table{width:100%;border-collapse:collapse;background:#fff;font-size:12px}
.group-quick-table th{position:sticky;top:0;z-index:1;background:#f6f8fa;color:#48545e;text-align:center;font-weight:700;padding:8px;border-bottom:1px solid #dfe5ea}
.group-quick-table td{padding:6px 7px;border-bottom:1px solid #edf1f4;vertical-align:middle}
.group-quick-table tr:last-child td{border-bottom:0}
.group-quick-table input[type="text"],.group-quick-table input[type="number"]{height:34px;width:100%;border:1px solid #d9e1e7;border-radius:5px;padding:0 8px;font-size:12px;background:#fff}
.group-quick-table .group-sort-input{width:76px;text-align:center}
.group-quick-active{text-align:center;width:90px}.group-quick-active label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.group-quick-active input{width:15px;height:15px;margin:0}
.group-quick-move{display:flex;justify-content:center;gap:4px;white-space:nowrap}.group-quick-move .btn{width:34px;height:30px;padding:0}.group-quick-move .quick-edge{width:52px;font-size:10px}
.group-quick-count{text-align:center;color:#6e7a84;white-space:nowrap;width:70px}

.url-edit-control{display:grid;grid-template-columns:minmax(0,1fr) 86px;gap:6px;align-items:center}
.url-edit-control .btn{height:38px!important;padding:0 10px!important;font-size:11px!important}
.url-edit-note{display:block;margin-top:4px;color:#8a5b52;font-size:10px;line-height:1.4}

@media(max-width:900px){
  .layout-searchbar{align-items:stretch;flex-direction:column}.layout-search-status{text-align:left}.layout-search-field{grid-template-columns:24px minmax(0,1fr) auto}.layout-search-field #layoutSearchEditFirst{grid-column:2/4}.group-quick-modal{width:96vw!important}
}
@media(max-width:650px){
  .layout-search-field{grid-template-columns:24px minmax(0,1fr)}.layout-search-field .btn{grid-column:1/-1;width:100%}.url-edit-control{grid-template-columns:1fr}.url-edit-control .btn{width:100%}
}


/* =========================================================
   credential direct-copy + hover retention controls
   ========================================================= */
.credential-hover-panel{pointer-events:auto!important}
.credential-hover-row{
  grid-template-columns:32px minmax(0,1fr) auto!important;
  gap:7px!important;
  align-items:center!important;
}
.credential-copy-value{
  display:block!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  cursor:pointer!important;
  user-select:all!important;
  -webkit-user-select:all!important;
  font-variant-ligatures:none!important;
}
.credential-copy-value:hover,.credential-copy-value:focus-visible{
  color:#0b64b5!important;
  text-decoration:underline!important;
  outline:none!important;
}
.credential-copy-action{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:38px!important;
  height:24px!important;
  margin:0!important;
  padding:0 7px!important;
  border:1px solid #c8d6e1!important;
  border-radius:4px!important;
  background:#f7fafc!important;
  color:#31536e!important;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  user-select:none!important;
}
.credential-copy-action:hover,.credential-copy-action:focus-visible{
  border-color:#7aaed6!important;
  background:#edf6fd!important;
  color:#0b64b5!important;
  outline:none!important;
}
.credential-copy-action.credential-copy-done{
  border-color:#70b88c!important;
  background:#edf9f1!important;
  color:#17713d!important;
}
@media(max-width:980px){
  .credential-hover-row{grid-template-columns:34px minmax(0,1fr) auto!important;gap:8px!important}
  .credential-copy-value{font-size:14px!important;line-height:1.5!important}
  .credential-copy-action{min-width:52px!important;height:32px!important;padding:0 10px!important;font-size:12px!important}
}

.login-position-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.login-position-grid label{min-width:0}.login-position-grid input[type=range]{width:calc(100% - 72px);vertical-align:middle}.login-position-grid input[type=number]{width:64px;height:30px;margin-left:6px;text-align:center}.login-position-grid output{font-weight:700}.stack-form>.color-palette-control{margin-top:4px}
