/* The shared account boundary is independent of the existing personal workspace. */
.central-update-banner{position:fixed;z-index:5000;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:16px;align-items:center;width:max-content;max-width:calc(100vw - 28px);padding:12px 15px;border:1px solid #cbb57a;border-radius:12px;background:#263328;color:#f7ecd0;box-shadow:0 8px 35px #0005;font-size:12px;line-height:1.6;box-sizing:border-box}.central-update-banner button{flex:none;min-height:36px;border:1px solid #dac38b;border-radius:7px;padding:7px 11px;background:#e5cf94;color:#3b3422;font:inherit;font-weight:700}.central-update-banner[hidden]{display:none}
html.central-access-locked .app-shell{display:none!important}
html.central-access-locked body>dialog:not(.ca-dialog){display:none!important}
/* Own the viewport scroll: the generic map <main> clips overflow and has a fixed height. */
html.central-access-locked,html.central-access-locked body{overflow:hidden}
#centralAccessGate{--ca-gold:#c6a360;--ca-ink:#252b29;position:fixed;inset:0;z-index:3000;height:100dvh;min-height:0;max-height:none;margin:0;border:0;border-radius:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#b99a58 #202722;scroll-padding-block:24px;background:radial-gradient(ellipse at 20% 5%,#9c783430,transparent 55%),linear-gradient(135deg,#111916,#171b1a);color:#e9e4d9;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:70px;align-items:center;align-content:safe center;padding:clamp(24px,4vh,48px) clamp(25px,6vw,90px);box-sizing:border-box}
#centralAccessGate::-webkit-scrollbar{width:10px}
#centralAccessGate::-webkit-scrollbar-track{background:#202722}
#centralAccessGate::-webkit-scrollbar-thumb{background:#b99a58;border:2px solid #202722;border-radius:8px}
#centralAccessGate[hidden]{display:none!important}
html.central-account-open,html.central-account-open body{overflow:hidden}
#centralAccessGate.ca-account-view{position:fixed;inset:0;min-height:0;height:100dvh;overflow-y:auto;overscroll-behavior:contain;grid-template-columns:minmax(0,1fr);gap:0;padding:24px 16px;align-content:safe center;background:#101713d9;backdrop-filter:blur(5px);border:0;border-radius:0;margin:0}
#centralAccessGate.ca-account-view .ca-brand-copy{display:none}
#centralAccessGate.ca-account-view .ca-card{max-width:470px;margin:auto}
#centralAccessGate .ca-brand-mark{width:65px;height:65px;object-fit:contain;border-radius:12px;background:#242923;border:1px solid #af915140;padding:7px;box-sizing:border-box}
#centralAccessGate .ca-overline,.ca-dialog .ca-overline{font-size:10px;letter-spacing:3px;font-weight:700;color:#ccb57f;margin:20px 0 0}
#centralAccessGate h1{font-size:clamp(38px,5vw,70px);line-height:1.1;letter-spacing:-2px;color:#fff8e6;margin:17px 0 20px;text-shadow:0 3px 0 #665a3855}
#centralAccessGate .ca-brand-copy>p:not(.ca-overline){font-size:16px;line-height:1.9;color:#b6beb3;max-width:460px}
#centralAccessGate .ca-steps{display:flex;gap:12px;margin-top:40px;flex-wrap:wrap}
#centralAccessGate .ca-steps span{display:flex;gap:8px;align-items:center;font-size:12px;color:#d4c9ac}
#centralAccessGate .ca-steps b{display:grid;place-items:center;width:24px;height:24px;border:1px solid #a48a4b55;border-radius:50%;color:#dab979;font-size:10px}
#centralAccessGate .ca-responsibility{border-top:1px solid #a99b7026;margin-top:35px;padding-top:20px;font-size:11px;line-height:1.9;color:#8d9a8e}
#centralAccessGate .ca-card{width:100%;max-width:490px;justify-self:center;background:#fbfaf6;color:var(--ca-ink);border:1px solid #d7caa9;border-radius:22px;padding:30px;box-shadow:0 28px 90px #0006;box-sizing:border-box}
#centralAccessGate .ca-card h2{color:#29342b;font-size:26px;letter-spacing:-1px;margin:0 0 9px}
#centralAccessGate .ca-card>p,#centralAccessGate .ca-hint,.ca-dialog .ca-hint{font-size:12px;line-height:1.75;color:#778070;margin:8px 0 20px}
#centralAccessGate .ca-tabs{display:flex;gap:5px;background:#eeede4;padding:4px;border-radius:10px;margin:22px 0}
#centralAccessGate .ca-tabs button{flex:1;border:0;background:transparent;color:#6f7568;border-radius:7px;min-height:38px;font-size:13px}
#centralAccessGate .ca-tabs button[aria-selected=true]{background:#fff;color:#584620;box-shadow:0 1px 5px #0001;font-weight:700}
.ca-form label{display:block;margin:15px 0 0;font-size:12px;font-weight:650;color:#4c5849}
.ca-form label>span{display:block;margin-bottom:7px}
.ca-form input,.ca-form select,.ca-form textarea{width:100%;border:1px solid #d6dacd;border-radius:9px;background:#fff;color:#29342b;min-height:45px;padding:11px 12px;box-sizing:border-box;font:inherit;font-size:14px;outline:none}
.ca-form input:focus,.ca-form select:focus,.ca-form textarea:focus{border-color:#ab8a45;box-shadow:0 0 0 3px #bca56920}
.ca-form input::placeholder{color:#a1a99a;font-weight:400}
.ca-form .ca-inline{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#centralAccessGate button,.ca-dialog button{cursor:pointer;font-family:inherit;box-sizing:border-box}
#centralAccessGate button:focus-visible,.ca-dialog button:focus-visible{outline:3px solid #a98c4d;outline-offset:2px}
#centralAccessGate button:disabled,.ca-dialog button:disabled{opacity:.5;cursor:wait}
#centralAccessGate .ca-primary,.ca-dialog .ca-primary{display:block;width:100%;margin-top:22px;border:1px solid #697243;border-radius:9px;min-height:46px;padding:11px 15px;background:linear-gradient(110deg,#293c32,#4d5033);color:#fff7e4;font-size:14px;font-weight:700}
#centralAccessGate .ca-secondary,.ca-dialog .ca-secondary{border:1px solid #d8d5c4;border-radius:8px;min-height:39px;padding:9px 12px;background:#f5f3e9;color:#676446;font-size:12px}
#centralAccessGate .ca-link{background:none;border:0;color:#776a49;padding:8px 0;font-size:12px;text-decoration:underline;text-underline-offset:3px;min-height:35px}
#centralAccessGate .ca-card-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:15px;flex-wrap:wrap}
#centralAccessGate .ca-message,.ca-dialog .ca-message{border-radius:9px;background:#edf2e9;border:1px solid #cfdcc6;color:#4b6942;padding:12px 14px;font-size:12px;line-height:1.7;margin:15px 0;white-space:pre-line;overflow-wrap:anywhere}
#centralAccessGate .ca-message:empty,.ca-dialog .ca-message:empty{display:none}
#centralAccessGate .ca-message.ca-error,.ca-dialog .ca-message.ca-error{background:#fbefea;border-color:#edcfc1;color:#99573e}
#centralAccessGate .ca-preparing{background:#f7f0dd;border:1px solid #e8d9ad;color:#8b7136;padding:13px;border-radius:9px;font-size:12px;line-height:1.8;margin:15px 0}
#centralAccessGate .ca-status-symbol{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:#ece7d6;color:#9b7e3a;font-size:25px;margin-bottom:20px}
#centralAccessGate .ca-account{background:#f0f0e7;border:1px solid #e0e2d4;border-radius:10px;padding:15px;font-size:13px;line-height:1.9;margin:20px 0}
#centralAccessGate .ca-account strong{display:block;font-size:17px;color:#293b2c}
#centralAccessGate .ca-qr{display:block;width:180px;height:180px;max-width:100%;background:white;margin:15px auto;border-radius:8px;border:1px solid #e5e2d7;padding:8px;box-sizing:border-box}
#centralAccessGate .ca-secret{font:12px monospace;overflow-wrap:anywhere;padding:9px;background:#eeede5;border-radius:7px;color:#596350}
#centralAccessGate .ca-field-help{font-size:11px;color:#8c927f;margin:7px 0;line-height:1.6}
.ca-dialog{border:1px solid #bba875;border-radius:18px;padding:0;width:min(1120px,calc(100vw - 26px));max-width:1120px;max-height:92dvh;background:#f7f8f3;color:#2e392d;box-shadow:0 25px 110px #0009;overflow:hidden}
.ca-dialog::backdrop{background:#0d1513b3;backdrop-filter:blur(4px)}
.ca-admin-shell{max-height:92dvh;display:flex;flex-direction:column}
.ca-admin-head{background:linear-gradient(125deg,#19251f,#2c3227);color:#f5e6c1;padding:24px 26px;display:flex;justify-content:space-between;align-items:center;gap:15px;flex:none}
.ca-admin-head .ca-overline{margin:0;color:#beaa72}
.ca-admin-head h2{margin:8px 0 0;font-size:25px;color:#fff5df}
.ca-admin-head button{width:40px;height:40px;border-radius:9px;background:#ffffff0c;border:1px solid #ccb16b4f;color:#e3d4ac;font-size:22px;flex:none}
.ca-admin-tabs{display:flex;gap:6px;overflow:auto;padding:16px 24px 0;flex:none;scrollbar-width:thin}
.ca-admin-tabs button{white-space:nowrap;min-height:40px;border:1px solid #d5dacb;border-radius:8px;background:white;color:#76816e;padding:9px 13px;font-size:12px}
.ca-admin-tabs button[aria-selected=true]{background:#e8e9d9;border-color:#adb18c;color:#495432;font-weight:700}
.ca-admin-content{padding:20px 24px 26px;overflow:auto;min-height:0;overscroll-behavior:contain}
.ca-admin-content>h3{margin:0 0 8px;color:#2d3e2d;font-size:19px}
.ca-toolbar{display:flex;gap:10px;align-items:center;margin:0 0 15px;flex-wrap:wrap}
.ca-toolbar input{min-width:180px;flex:1;height:42px;border:1px solid #d4d9cb;background:#fff;border-radius:8px;padding:10px 12px;font:inherit;font-size:13px;box-sizing:border-box}
.ca-toolbar .ca-count{font-size:12px;color:#7b856f}
.ca-table-wrap{overflow:auto;border:1px solid #dce1d2;border-radius:12px;background:#fff;scrollbar-width:thin}
.ca-table{width:100%;border-collapse:collapse;font-size:12px;min-width:630px;text-align:left}
.ca-table th{font-weight:600;background:#f0f2e9;color:#7c856f;padding:12px 13px;white-space:nowrap}
.ca-table td{padding:13px;border-top:1px solid #eef0e8;vertical-align:middle;color:#4e5a46;line-height:1.7;overflow-wrap:anywhere}
.ca-table td strong{color:#293d2a;font-size:13px}
.ca-table td small{display:block;color:#8c9583;font-size:10px}
.ca-table .ca-row-actions{display:flex;gap:5px;flex-wrap:wrap;min-width:100px}
.ca-table button{border:1px solid #d5ddca;border-radius:6px;background:#f1f5ec;color:#4b633e;font-size:11px;min-height:32px;padding:6px 9px}
.ca-table button.ca-danger,.ca-dialog .ca-danger{border-color:#e9d4c8;background:#fff5ee;color:#a76042}
.ca-status{display:inline-block;border-radius:5px;background:#edf3e8;color:#4c713c;padding:3px 7px;font-size:10px;white-space:nowrap}
.ca-status-pending{background:#fbf2d7;color:#9e7a25}.ca-status-suspended,.ca-status-withdrawn{background:#f5e7df;color:#a06a4c}
.ca-empty{padding:32px 18px;color:#94a087;text-align:center;font-size:13px;line-height:1.8}
.ca-panel{background:#fff;border:1px solid #dce1d3;border-radius:12px;padding:18px;margin:15px 0}
.ca-panel h3,.ca-panel h4{margin:0 0 8px;color:#3c5035;font-size:15px}
.ca-form .ca-check{display:flex;gap:9px;align-items:center;font-weight:400}.ca-form .ca-check input{width:17px;min-height:17px}
.ca-dialog .ca-form .ca-primary{max-width:200px}
.ca-dialog .ca-form small{display:block;color:#8b937e;font-size:11px;margin-top:7px}
.ca-kpi{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}
.ca-kpi div{background:#eff2e8;border:1px solid #dce3cf;border-radius:10px;padding:13px 17px;min-width:100px}.ca-kpi span{display:block;font-size:11px;color:#80916f}.ca-kpi b{display:block;font-size:22px;color:#3b5731;margin-top:5px}
.ca-record{background:#fff;border:1px solid #dce3d2;border-radius:9px;margin:9px 0;overflow:hidden}.ca-record summary{padding:12px 14px;font-size:13px;font-weight:600;cursor:pointer;color:#465c39}.ca-record-body{padding:0 14px 14px;font-size:12px;color:#637355;overflow-wrap:anywhere}.ca-record-body dl{display:grid;grid-template-columns:minmax(80px,.65fr) minmax(0,2fr);margin:0}.ca-record-body dt,.ca-record-body dd{margin:0;padding:7px 8px;border-top:1px solid #edf0e6;line-height:1.7}.ca-record-body dt{color:#8a957c}.ca-record-body .ca-nested{padding:8px;background:#f8f9f4;border-radius:7px;margin:7px 0}.ca-plain-list{padding-left:18px;line-height:1.9}.ca-danger-block{margin-top:24px;padding-top:15px;border-top:1px solid #e0dacb}
@media(max-width:760px){#centralAccessGate{display:block;padding:26px 16px;min-height:0}#centralAccessGate .ca-brand-copy{max-width:490px;margin:auto}#centralAccessGate .ca-brand-mark{width:43px;height:43px;float:left;margin-right:13px}#centralAccessGate .ca-overline{margin:0;font-size:8px;padding-top:4px;letter-spacing:2px}#centralAccessGate h1{font-size:30px;letter-spacing:-1px;margin:5px 0 0}#centralAccessGate .ca-brand-copy>p:not(.ca-overline){font-size:12px;margin:16px 0}#centralAccessGate .ca-steps{margin:15px 0 25px;gap:8px}#centralAccessGate .ca-steps span{font-size:10px;gap:5px}#centralAccessGate .ca-responsibility{display:none}#centralAccessGate .ca-card{padding:23px 20px;border-radius:17px;margin:auto}#centralAccessGate .ca-card h2{font-size:23px}.ca-form input,.ca-form select,.ca-form textarea{font-size:16px;min-height:46px}.ca-form .ca-inline{gap:9px}.ca-dialog{width:calc(100vw - 16px);max-height:96dvh;border-radius:13px}.ca-admin-shell{max-height:96dvh}.ca-admin-head{padding:18px}.ca-admin-head h2{font-size:21px}.ca-admin-content{padding:17px 13px 20px}.ca-admin-tabs{padding:13px 13px 0}.ca-table button{min-height:40px}.ca-dialog .ca-form .ca-inline{grid-template-columns:1fr}.ca-record-body dl{grid-template-columns:85px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){#centralAccessGate *,.ca-dialog *{scroll-behavior:auto!important}}
@media(max-width:760px){#centralAccessGate.ca-account-view{display:grid;min-height:0;padding:18px 12px}#centralAccessGate.ca-account-view .ca-card{width:100%}}
/* Approval is two decisions: role and organization. Keep the directory usable on phones. */
#centralAccessGate .ca-login-help{background:#f0eee4;border-left:3px solid #b69a59;border-radius:0 8px 8px 0;padding:11px 12px;color:#625a43;font-size:12px;line-height:1.7;margin:0 0 18px}
.ca-role-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 20px}.ca-role-guide p{margin:0;padding:12px;border:1px solid #dddcca;border-radius:9px;background:#f0f0e6;font-size:11px;line-height:1.7;color:#73735d}.ca-role-guide b{display:block;font-size:12px;color:#555631;margin-bottom:3px}
.ca-member-editor{max-width:650px}.ca-role-detail{background:#f1f4e9;border-radius:8px;padding:12px;color:#546b3d;font-size:12px;line-height:1.7}.ca-migration-notice{border:1px solid #e4cf9e;background:#fbf3df;color:#866633;font-size:12px;line-height:1.8;padding:13px;border-radius:9px}.ca-self{color:#8c947f;font-size:11px}.ca-members-table td{vertical-align:top}.ca-dialog button[aria-disabled=true]{cursor:not-allowed}.ca-dialog .ca-member-editor .ca-primary{max-width:240px}
@media(max-width:760px){.ca-role-guide{gap:6px;margin-bottom:15px}.ca-role-guide p{padding:9px;font-size:10px}.ca-members-table{min-width:0}.ca-members-table thead{display:none}.ca-members-table tbody{display:grid;padding:10px;gap:10px;background:#f4f5ee}.ca-members-table tr{display:block;border:1px solid #e0e3d5;border-radius:10px;background:#fff;padding:11px}.ca-members-table td{display:block;border:0;padding:4px 0;font-size:12px}.ca-members-table td[data-label="회원"] strong{font-size:15px}.ca-members-table td[data-label="회원"] small{font-size:11px;margin-bottom:4px}.ca-members-table td[data-label="소속"]::before{content:"소속 · ";color:#919681}.ca-members-table .ca-row-actions{margin-top:6px;gap:7px}.ca-members-table button{font-size:12px;min-height:40px;flex:1 0 auto}.ca-dialog .ca-member-editor .ca-primary{max-width:none}.ca-admin-tabs button{flex:1}.ca-toolbar input{min-width:0;width:100%}}

/* Account recovery remains visible on desktop and phones. */
#centralAccessGate .ca-find-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border-top:1px solid #e2dfd3;padding-top:12px}
#centralAccessGate .ca-find-links .ca-link{border:1px solid #ded9c9;border-radius:8px;background:#f2efe4;font-weight:650;text-decoration:none;padding:10px 8px;min-height:42px}
#centralAccessGate #caIdRequestText{box-sizing:border-box;width:100%;resize:vertical;border:1px solid #d5dacd;border-radius:9px;background:#fff;color:#29342b;padding:12px;font-family:inherit;font-size:13px;line-height:1.7}
#centralAccessGate .ca-account strong{overflow-wrap:anywhere}
/* Keep the optional update notice dismissible on narrow screens. */
.central-update-banner{flex-wrap:wrap;gap:8px 12px}.central-update-banner>span{flex:1 1 180px;min-width:0}.central-update-banner button:last-child{background:transparent;color:inherit}
