:root{--navy:#1f3864;--blue:#2e75b6;--green:#2e9e6b;--ink:#202938;--muted:#68758a;--line:#dfe6ef;--soft:#f5f8fc}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:#f2f5f9;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Malgun Gothic",sans-serif;line-height:1.55}button,input,textarea,select{font:inherit}button{cursor:pointer}header{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:900;color:var(--navy);text-decoration:none}.brand i{width:25px;height:25px;border-radius:50%;background:radial-gradient(circle at 50% 60%,#ffd27a,#f2a93b);box-shadow:0 0 0 4px #fff0d6}.brand small{color:var(--muted)}#userbar{align-items:center;gap:10px;font-size:13px}.center{min-height:calc(100vh - 66px);display:grid;place-items:center;padding:25px}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px;box-shadow:0 18px 55px #1f386416}.login-card h1{color:var(--navy);margin:24px 0 7px}.login-card>p{color:var(--muted)}label{display:block;color:var(--navy);font-size:13px;font-weight:800;margin:16px 0 6px}input,textarea,select{display:block;width:100%;border:1px solid #cdd7e4;border-radius:10px;padding:11px 12px;margin-top:6px;background:#fff;outline:none}textarea{min-height:105px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2e75b619}.primary,.secondary{border-radius:9px;padding:10px 15px;font-weight:800;border:0}.primary{background:var(--navy);color:#fff}.secondary{background:#fff;color:var(--navy);border:1px solid var(--line)}.wide{width:100%;margin-top:12px}.minor{font-size:12px;color:var(--muted)}.spinner{width:32px;height:32px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.app{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 66px)}aside{background:#fff;border-right:1px solid var(--line);padding:24px 15px}aside b{display:block;color:var(--navy);padding:0 11px 12px}aside a,aside button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:10px 11px;border-radius:8px;color:#536176;font-weight:700;text-decoration:none}aside .on{background:#eaf2fb;color:var(--navy)}.aside-note{margin:20px 10px;padding:12px;background:#fff7e8;border-radius:9px;color:#755b24;font-size:12px}.content{padding:30px;max-width:1120px;width:100%;margin:0 auto}.pagehead,.article-head,.savebar,.modal-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.pagehead{align-items:flex-start;margin-bottom:20px}.pagehead h1{color:var(--navy);font-size:27px;margin:7px 0 2px}.pagehead p{color:var(--muted);margin:0}.status{display:inline-flex;padding:5px 10px;border-radius:99px;background:#eaf6ef;color:#277b55;font-size:12px;font-weight:800}.status.review{background:#fff4d7;color:#84640f}.status.revision{background:#fdeceb;color:#9b3935}.status.published{background:#e8f1fb;color:#245e94}.review-note{background:#fff4d7;border:1px solid #ecd28e;border-radius:12px;padding:14px 16px;margin-bottom:16px;color:#6f571c}article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;margin-bottom:16px}article h2{color:var(--navy);font-size:17px;margin:0 0 12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips label{margin:0;position:relative}.chips input{position:absolute;opacity:0}.chips span{display:block;border:1px solid var(--line);border-radius:99px;padding:8px 12px;color:#536176}.chips input:checked+span{border-color:var(--blue);background:#eaf2fb;color:var(--navy)}.doctor{border:1px solid var(--line);border-radius:11px;padding:14px;margin-top:10px}.doctor-head{display:flex;justify-content:space-between;align-items:center}.doctor-head b{color:var(--navy)}.upload{margin:0;background:var(--navy);color:#fff;border-radius:9px;padding:9px 13px}.photos{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.photo{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--soft)}.photo img{width:100%;height:100%;object-fit:cover}.photo button{position:absolute;right:5px;top:5px;border:0;background:#fff;border-radius:50%;width:27px;height:27px}.confirm{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--line);padding:16px;border-radius:12px;color:var(--ink)}.confirm input{width:auto;margin:3px 0}.savebar{position:sticky;bottom:10px;background:#ffffffef;backdrop-filter:blur(8px);padding:12px 14px;border:1px solid var(--line);border-radius:13px;box-shadow:0 8px 25px #1f38641a;margin-top:18px}.savebar span{font-size:13px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.stat b{display:block;font-size:24px;color:var(--navy)}.stat span{color:var(--muted);font-size:12px}.clinic-list{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.clinic-row{display:grid;grid-template-columns:1fr auto auto;gap:18px;align-items:center;padding:16px;border-bottom:1px solid var(--line)}.clinic-row:last-child{border:0}.clinic-row b{display:block;color:var(--navy)}.clinic-row small{color:var(--muted)}.review-grid{display:grid;grid-template-columns:1.1fr .8fr;gap:18px}.preview-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.preview-hero{padding:28px;background:linear-gradient(140deg,#fff4e6,#fff)}.preview-hero h2{font-size:28px;color:var(--navy);margin:8px 0}.preview-body{padding:22px}.preview-body section{padding:15px 0;border-top:1px solid var(--line)}.preview-body section:first-child{border:0}.preview-body h3{color:var(--navy);font-size:16px;margin:0 0 5px}.modal{position:fixed;inset:0;background:#111d34aa;display:grid;place-items:center;padding:20px;z-index:50}.modal-card{width:min(850px,100%);max-height:90vh;overflow:auto;background:#f5f8fc;border-radius:17px}.modal-card.compact{width:min(470px,100%)}.modal-top{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);padding:14px 17px;z-index:2}.modal-top button{border:0;background:#edf1f6;border-radius:50%;width:32px;height:32px;font-size:19px}.modal-body{padding:20px}.toast{position:fixed;right:18px;bottom:18px;background:#182c4e;color:#fff;padding:12px 16px;border-radius:9px;z-index:80}.error{color:#a43d39}.empty{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:760px){header{padding:0 14px}.brand small,#userEmail{display:none}.app{grid-template-columns:1fr}aside{display:none}.content{padding:20px 13px}.pagehead{flex-direction:column}.grid2,.review-grid{grid-template-columns:1fr}.photos,.stats{grid-template-columns:1fr 1fr}.clinic-row{grid-template-columns:1fr auto}.clinic-row>.status{display:none}.savebar{align-items:stretch;flex-direction:column}.savebar>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.savebar button{padding:10px 5px}}
.invitation-panel{margin-top:32px}.invitation-panel h2{margin:0;font-size:20px;color:var(--navy)}
#invitationList{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}
.invitation-row{grid-template-columns:minmax(0,1fr) auto}.invitation-row small{display:block;margin-top:5px;overflow-wrap:anywhere}
#invitationMessage{font-size:13px;line-height:1.6;min-height:200px}
#invitationNotice,#notice{line-height:1.7;overflow-wrap:anywhere}
button:disabled{opacity:.6;cursor:wait}

.template-guide{background:linear-gradient(135deg,#eef5fc,#fffaf0);border-color:#cad8e8}
.template-guide h2{margin-bottom:6px}
.template-guide p{margin:0;color:#536176}
.department-editor{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:12px;background:var(--soft)}
.department-editor h3{margin:0 0 8px;color:var(--navy);font-size:15px}
.photo-editor{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:14px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.photo-editor>img{width:180px;aspect-ratio:4/3;object-fit:cover;border-radius:9px;background:var(--soft)}
.photo-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.photo-fields label{margin-top:0}
.photo-order{display:flex;flex-direction:column;gap:7px}
.photo-order button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:8px;min-width:38px;height:36px;font-weight:900}
.photo-order .delete-photo{color:#a43d39}
.photos{display:grid;grid-template-columns:1fr;gap:12px}
.photo{aspect-ratio:auto;overflow:visible}
@media(max-width:760px){
 .photo-editor{grid-template-columns:1fr}
 .photo-editor>img{width:100%;max-width:340px}
 .photo-fields{grid-template-columns:1fr}
 .photo-order{flex-direction:row}
 .photos{grid-template-columns:1fr}
}

.admin-clinic-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-clinic-actions a,.admin-edit-link{text-decoration:none;display:inline-block}.admin-edit-link{margin-bottom:12px}.admin-editor-back{display:inline-block;margin-bottom:8px;color:var(--navy);font-size:13px}#adminEditor>p,#adminEditor>a{margin:24px}


/* Public portal entry links share the portal palette and button treatment. */
.login-card a{color:var(--blue);text-underline-offset:3px}.login-card a:hover{color:var(--navy)}.login-card a:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.login-card .login-return{display:block;text-align:center;text-decoration:none;color:var(--navy)}.login-card .login-return:hover{background:var(--soft)}
.direct-registration{width:min(560px,calc(100% - 32px));max-height:90dvh;overflow:auto;border:1px solid #e2d4ba;border-radius:16px;padding:24px;color:#1d2e4f}.direct-registration::backdrop{background:#14213d80}.direct-registration fieldset{border:1px solid #ddd;padding:12px}.direct-registration .direct-specialty{display:inline-flex;align-items:center;gap:6px;margin:6px 12px 6px 0}.direct-specialty input{width:auto}.direct-clinic-label{color:#87520b}.onboarding-policy{padding:14px;border:1px solid #e2d4ba;background:#fff8ec;margin:12px 0}.consent-details{margin:12px 0}.consent-details input[type=checkbox],.admin-qualification-check input{width:auto}.admin-qualification-check{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

.page-editor>.onboarding-policy{box-sizing:border-box;width:min(1160px,calc(100% - 32px));margin:16px auto;border-radius:14px;padding:20px}.page-editor>.onboarding-policy h2{font-size:18px;margin:0 0 10px}.page-editor>.onboarding-policy p{line-height:1.6}.page-editor>.onboarding-policy button{font:inherit;border:1px solid #c9a45e;border-radius:10px;padding:10px 16px;background:#fff;color:#1d2e4f;cursor:pointer}.page-editor>.onboarding-policy button:disabled{opacity:.55;cursor:wait}

.clinic-ai-policy label{display:flex;align-items:center;gap:10px;font-size:15px;margin:0;min-height:44px;cursor:pointer}.clinic-ai-policy input[type=checkbox]{display:inline-block;width:20px;height:20px;margin:0;flex:none}.clinic-ai-policy p{font-size:14px;color:var(--ink);margin:8px 0 0}
