@charset "utf-8";

@import url("https://cdn.jsdelivr.net/gh/moonspam/NanumSquare@2.0/nanumsquare.css");
@import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,400,0,0");

/* Portal Hybrid Push Service 데모 테마 */
:root {
    --portal-navy:#07132f;
    --portal-navy-soft:#0e2353;
    --portal-blue:#2d68f5;
    --portal-blue-light:#76a6ff;
    --portal-violet:#7857f6;
    --portal-mint:#19c3a3;
    --portal-orange:#ff9d42;
    --portal-ink:#101a33;
    --portal-muted:#697792;
    --portal-line:#dce5f3;
    --portal-surface:#f4f7fc;
}

html {scroll-behavior:smooth}
body {min-width:0;background:#fff;color:var(--portal-ink);font-family:'NanumSquare','Malgun Gothic',Arial,sans-serif;font-size:16px;line-height:1.65;letter-spacing:-.2px}
body,h1,h2,h3,h4,h5,h6,button,input,select,textarea,table {font-family:'NanumSquare','Malgun Gothic',Arial,sans-serif}
button,input[type=button],input[type=submit],input[type=reset] {font-family:'NanumSquare','Malgun Gothic',Arial,sans-serif}
.material-symbols-rounded {display:inline-block;font-family:'Material Symbols Rounded';font-size:24px;font-style:normal;font-weight:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased}
a {transition:color .2s,background .2s,border-color .2s,transform .2s,box-shadow .2s}
#hd_login_msg {position:absolute}
#wrapper,#container_wr,#container,#ft {min-width:0;width:auto}
#wrapper {overflow:hidden}
#container_wr {margin:0}
#container {float:none;min-height:0;margin:0;width:auto;font-size:inherit}
.portal-shell {width:min(1240px,calc(100% - 56px));margin:0 auto}

/* 공통 버튼 */
.portal-button {display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px;padding:0 18px;border:1px solid transparent;border-radius:12px;font-size:15px;font-weight:700;white-space:nowrap}
.portal-button:hover {transform:translateY(-2px)}
.portal-button--ghost {border-color:#dce3ee;background:#fff;color:#24314b}
.portal-button--dark {background:var(--portal-navy);color:#fff;box-shadow:0 10px 24px rgba(7,19,47,.16)}
.portal-button--purchase {background:linear-gradient(135deg,#3274ff,#285ce0);color:#fff;box-shadow:0 10px 24px rgba(45,104,245,.24)}
.portal-button--push-admin {background:linear-gradient(135deg,#7257e8,#4f3ac7);color:#fff;box-shadow:0 10px 24px rgba(91,68,205,.22)}
.portal-button--primary {background:linear-gradient(135deg,#3274ff,#285ce0);box-shadow:0 18px 38px rgba(45,104,245,.3);color:#fff}
.portal-button--admin {background:linear-gradient(135deg,#6950e8,#4936bc);box-shadow:0 18px 38px rgba(89,65,203,.25);color:#fff}
.portal-button--glass {border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:#fff;backdrop-filter:blur(12px)}
.portal-button--light {background:#fff;color:#10245a;box-shadow:0 15px 34px rgba(7,19,47,.18)}
.portal-button--large {min-height:56px;padding:0 25px;border-radius:14px;font-size:15px}
.portal-eyebrow,.portal-card-label {display:inline-block;color:var(--portal-blue);font-size:13px;font-weight:800;letter-spacing:1.8px}

/* 헤더 */
.portal-header {position:sticky;z-index:1000;top:0;border-bottom:1px solid rgba(16,26,51,.08);background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(7,19,47,.06);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.portal-header__inner {display:flex;align-items:center;min-height:78px;gap:28px}
.portal-brand {display:inline-flex;align-items:center;gap:11px;color:#101a33;font-size:19px;font-weight:500;letter-spacing:-.6px;white-space:nowrap}
.portal-brand strong {font-weight:800}
.portal-brand__mark {display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#3577ff,#244fc5);box-shadow:0 9px 22px rgba(45,104,245,.27);color:#fff;font-size:15px}
.portal-navigation {display:flex;align-items:center;justify-content:center;gap:27px;margin-left:auto}
.portal-navigation a {position:relative;color:#4b5972;font-size:15px;font-weight:700}
.portal-navigation a:after {position:absolute;right:0;bottom:-9px;left:0;height:2px;transform:scaleX(0);background:var(--portal-blue);content:"";transition:transform .2s}
.portal-navigation a:hover {color:var(--portal-blue)}
.portal-navigation a:hover:after {transform:scaleX(1)}
.portal-navigation__push-admin {display:none}
.portal-header__actions {display:flex;flex-shrink:0;gap:8px}
.portal-menu-button {display:none;width:42px;height:42px;border:1px solid var(--portal-line);border-radius:11px;background:#fff;font-size:18px}

/* 히어로 */
.portal-hero {position:relative;overflow:hidden;padding:92px 0 0;background:linear-gradient(135deg,#06132f 0%,#0b2459 48%,#143a8c 100%);color:#fff}
.portal-hero:before {position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(to bottom,#000,transparent 82%);content:""}
.portal-hero__glow {position:absolute;border-radius:50%;filter:blur(4px);opacity:.65}
.portal-hero__glow--one {top:-250px;right:-180px;width:650px;height:650px;background:radial-gradient(circle,rgba(58,123,255,.42),transparent 67%)}
.portal-hero__glow--two {bottom:-320px;left:-180px;width:620px;height:620px;background:radial-gradient(circle,rgba(116,80,246,.22),transparent 67%)}
.portal-hero__grid {position:relative;z-index:1;display:grid;grid-template-columns:.94fr 1.06fr;align-items:center;gap:74px;min-height:630px}
.portal-kicker {display:inline-flex;align-items:center;padding:8px 13px;border:1px solid rgba(125,171,255,.28);border-radius:100px;background:rgba(255,255,255,.06);color:#aac8ff;font-size:13px;font-weight:800;letter-spacing:1.7px}
.portal-kicker .material-symbols-rounded {margin-right:7px;color:#52d8c1;font-size:9px;font-variation-settings:'FILL' 1,'wght' 400,'GRAD' 0,'opsz' 20}
.portal-hero h1 {margin:27px 0 24px;font-size:56px;font-weight:800;line-height:1.13;letter-spacing:-3.3px}
.portal-hero h1 em {background:linear-gradient(90deg,#7eafff,#a891ff);-webkit-background-clip:text;background-clip:text;color:transparent;font-style:normal}
.portal-hero__copy>p {max-width:580px;color:#bcc9e2;font-size:16px;line-height:1.9;word-break:keep-all}
.portal-hero__actions {display:flex;align-items:center;gap:12px;margin-top:35px}
.portal-proof {display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:30px;color:#95a7ca;font-size:16px;font-weight:600}
.portal-proof li {display:flex;align-items:center;gap:7px}
.portal-proof .material-symbols-rounded {color:#7faaff;font-size:19px}
.portal-hero__visual {position:relative;align-self:end;min-height:610px;padding-top:30px}
.portal-product-frame {position:absolute;right:0;bottom:-36px;width:min(590px,100%);padding:12px;border:1px solid rgba(135,176,255,.25);border-radius:31px;background:rgba(255,255,255,.075);box-shadow:0 45px 95px rgba(0,0,0,.36);transform:rotate(1deg);backdrop-filter:blur(12px)}
.portal-product-frame img {display:block;width:100%;border-radius:22px}
.portal-floating-card {position:absolute;z-index:2;display:grid;grid-template-columns:44px 1fr;align-items:center;min-width:178px;padding:13px 15px;border:1px solid rgba(255,255,255,.22);border-radius:16px;background:rgba(8,23,57,.82);box-shadow:0 20px 45px rgba(0,0,0,.28);backdrop-filter:blur(14px)}
.portal-floating-card>.material-symbols-rounded {grid-row:1/3;display:flex;align-items:center;justify-content:center;width:35px;height:35px;border-radius:11px;background:#2e6cf3;color:#fff;font-size:20px}
.portal-floating-card b {font-size:15px}.portal-floating-card small {color:#8fa7d4;font-size:13px}
.portal-floating-card--push {top:55px;left:-28px}.portal-floating-card--native {right:-25px;bottom:80px}
.portal-floating-card--native>i {background:#7258ed}
.portal-trustbar {position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:27px;min-height:80px;margin-top:30px;border-top:1px solid rgba(255,255,255,.1);color:#8296bd;font-size:13px;font-weight:800;letter-spacing:1.5px}
.portal-trustbar i {width:3px;height:3px;border-radius:50%;background:#4567a7}

/* 섹션 공통 */
.portal-section {padding:112px 0}
.portal-section__heading {max-width:720px;margin:0 auto 54px;text-align:center}
.portal-section__heading h2 {margin:14px 0 18px;font-size:43px;line-height:1.24;letter-spacing:-2.4px}
.portal-section__heading p {color:var(--portal-muted);font-size:16px;line-height:1.85;word-break:keep-all}
.portal-section__heading--inverse h2 {color:#fff}
.portal-section__heading--inverse p {color:#8fa4cc}

/* 기능 벤토 */
.portal-overview {background:#fff}
.portal-bento {display:grid;grid-template-columns:repeat(4,1fr);gap:17px}
.portal-bento__card {position:relative;min-height:290px;padding:30px;border:1px solid var(--portal-line);border-radius:23px;background:#fff;box-shadow:0 14px 38px rgba(35,66,115,.055);overflow:hidden;transition:transform .25s,box-shadow .25s}
.portal-bento__card:hover {transform:translateY(-5px);box-shadow:0 24px 55px rgba(35,66,115,.11)}
.portal-bento__card--wide {grid-column:span 2}
.portal-bento__card--blue {display:grid;grid-template-columns:72px 1fr;align-content:start;align-items:start;gap:0 12px;background:linear-gradient(145deg,#edf4ff,#f7faff)}
.portal-bento__card--blue>ul {grid-column:2;display:flex;align-self:start;align-items:flex-start;flex-wrap:wrap;gap:7px;margin:22px 0 0;padding:0;list-style:none}
.portal-bento__card--blue>ul li {display:flex;align-items:center;min-height:38px;padding:6px 12px;border:1px solid #d8e5fb;border-radius:8px;background:#fff;color:#52627e;font-size:14px;font-weight:700;list-style:none}
.portal-bento__icon {display:flex;align-items:center;justify-content:center;width:54px;height:54px;margin-bottom:50px;border-radius:16px;background:var(--portal-blue);box-shadow:0 12px 25px rgba(45,104,245,.23);color:#fff;font-size:19px}
.portal-bento__card--blue>.portal-bento__icon {grid-row:1/3;margin:0}
.portal-bento__icon--violet {background:var(--portal-violet)}
.portal-bento__icon--mint {background:var(--portal-mint)}
.portal-bento__icon--orange {background:var(--portal-orange)}
.portal-bento__card h3 {margin:8px 0 11px;color:var(--portal-ink);font-size:21px;letter-spacing:-1px}
.portal-bento__card p {color:var(--portal-muted);font-size:16px;line-height:1.8;word-break:keep-all}
.portal-bento__card--dark {display:flex;align-items:center;justify-content:space-between;gap:30px;background:linear-gradient(135deg,#0b193a,#173b86);color:#fff}
.portal-bento__card--dark h3 {color:#fff}.portal-bento__card--dark p {color:#aabbdc}.portal-bento__card--dark .portal-card-label {color:#7faaff}
.portal-mini-ui {display:flex;align-items:flex-end;gap:7px;min-width:190px;height:150px;padding:20px;border:1px solid rgba(255,255,255,.13);border-radius:18px;background:rgba(255,255,255,.06)}
.portal-mini-ui span {display:block;width:19px;border-radius:6px 6px 2px 2px;background:linear-gradient(#6ba1ff,#376ce9)}
.portal-mini-ui span:nth-child(1) {height:45%}.portal-mini-ui span:nth-child(2) {height:70%}.portal-mini-ui span:nth-child(3) {height:92%}
.portal-mini-ui b {align-self:flex-start;margin-left:auto;color:#b6c7e9;font-size:13px}

/* 제품 화면 */
.portal-tour {background:linear-gradient(145deg,#06122d,#0d2454 60%,#113476);color:#fff}
.portal-tour__grid {display:grid;grid-template-columns:repeat(2,minmax(0,520px));justify-content:center;align-items:start;gap:20px}
.portal-showcase {position:relative;min-width:0;min-height:0;aspect-ratio:1/1;overflow:hidden;border:1px solid rgba(130,170,246,.19);border-radius:26px;background:#071632;box-shadow:0 25px 60px rgba(0,0,0,.2)}
.portal-showcase img {display:block;width:100%;height:100%;object-fit:contain;object-position:center;transition:opacity .3s}
.portal-showcase:hover img {opacity:.96}
.portal-showcase:after {position:absolute;inset:44% 0 0;background:linear-gradient(transparent,rgba(4,12,30,.94));content:""}
.portal-showcase>div {position:absolute;z-index:2;right:30px;bottom:27px;left:30px}
.portal-showcase>div span {color:#81a9fb;font-size:13px;font-weight:800;letter-spacing:1.6px}
.portal-showcase h3 {margin-top:7px;font-size:22px;letter-spacing:-1px}
.portal-showcase p {margin-top:7px;color:#aebbd5;font-size:16px}
.portal-showcase--large,.portal-showcase--wide {grid-column:auto;grid-row:auto;min-height:0}

/* 플랫폼 */
.portal-native {background:#f4f7fc}
.portal-native__grid {display:grid;grid-template-columns:.84fr 1.16fr;align-items:center;gap:90px}
.portal-native__copy h2 {margin:15px 0 20px;font-size:43px;line-height:1.23;letter-spacing:-2.2px}
.portal-native__copy>p {color:var(--portal-muted);line-height:1.9;word-break:keep-all}
.portal-native__list {margin-top:35px}
.portal-native__list>div {padding:17px 0;border-top:1px solid #dfe6f1}
.portal-native__list dt {color:#182541;font-size:16px;font-weight:800}
.portal-native__list dt .material-symbols-rounded {width:25px;color:var(--portal-blue);font-size:19px;vertical-align:-4px}
.portal-native__list dd {margin:5px 0 0 25px;color:#7b879d;font-size:16px}
.portal-native__stack {display:flex;flex-direction:column;gap:13px}
.portal-native__stack article {display:grid;grid-template-columns:66px 1fr auto;align-items:center;gap:18px;padding:22px 25px;border:1px solid var(--portal-line);border-radius:19px;background:#fff;box-shadow:0 12px 35px rgba(35,66,115,.06)}
.portal-native__stack article>.material-symbols-rounded {display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:#eaf1ff;color:var(--portal-blue);font-size:27px}
.portal-native__stack article:nth-child(2)>.material-symbols-rounded {background:#edf0f5;color:#16223a}.portal-native__stack article:nth-child(3)>.material-symbols-rounded {background:#e6fbf6;color:#10a98c}
.portal-native__stack b,.portal-native__stack small {display:block}.portal-native__stack b {font-size:17px}.portal-native__stack small {margin-top:3px;color:#8995aa;font-size:14px}
.portal-native__stack em {padding:6px 9px;border-radius:100px;background:#edf4ff;color:#326ae0;font-size:13px;font-style:normal;font-weight:800;letter-spacing:1px}

/* 도입 절차 */
.portal-workflow {background:#fff}
.portal-steps {display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:0;padding:0;list-style:none}
.portal-steps li {position:relative;min-width:0;min-height:250px;padding:28px;border:1px solid var(--portal-line);border-radius:21px;background:linear-gradient(145deg,#fff,#f8faff);list-style:none}
.portal-steps li::marker {content:""}
.portal-steps li>span {position:absolute;top:22px;right:23px;color:#9aa8bf;font-size:13px;font-weight:800}
.portal-steps li>.material-symbols-rounded {display:flex;align-items:center;justify-content:center;width:54px;height:54px;margin-bottom:60px;border-radius:16px;background:#eaf1ff;color:var(--portal-blue);font-size:24px}
.portal-steps h3 {font-size:18px;letter-spacing:-.7px}.portal-steps p {margin-top:8px;color:var(--portal-muted);font-size:16px;line-height:1.7}

/* CTA와 푸터 */
.portal-cta {padding:92px 0;background:linear-gradient(135deg,#2d6bf5,#234ec6);color:#fff}
.portal-cta .portal-eyebrow {color:#b9d0ff}
.portal-cta__inner {display:flex;align-items:flex-end;justify-content:space-between;gap:60px}
.portal-cta h2 {margin-top:12px;font-size:42px;line-height:1.25;letter-spacing:-2px}
.portal-cta__inner>div:last-child {text-align:right}.portal-cta p {margin-bottom:20px;color:#d7e3ff}
.portal-footer {padding:65px 0 25px;background:#071126;color:#fff}
.portal-brand--footer {color:#fff}
.portal-footer__top {display:flex;justify-content:space-between;gap:60px;padding-bottom:55px}
.portal-footer__top>div:first-child p {margin-top:20px;color:#8494b3;font-size:16px;line-height:1.8}
.portal-footer__links {display:flex;gap:70px}
.portal-footer__links div {display:flex;min-width:90px;flex-direction:column;gap:10px}
.portal-footer__links strong {margin-bottom:5px;font-size:16px}.portal-footer__links a {display:inline-flex;align-items:center;width:max-content;max-width:100%;min-height:27px;color:#9aa9c5;font-size:16px;line-height:1.35}.portal-footer__links a:hover,.portal-footer__links a:focus {color:#fff}
.portal-footer__policy-link {gap:7px}.portal-footer__policy-link .material-symbols-rounded {flex:0 0 auto;color:#6f92d7;font-size:17px}.portal-footer__policy-link:hover .material-symbols-rounded,.portal-footer__policy-link:focus .material-symbols-rounded {color:#8fb2ff}
.portal-footer__bottom {display:flex;align-items:center;justify-content:space-between;padding-top:23px;border-top:1px solid #1d2b48;color:#667793;font-size:14px}
#top_btn {position:static;width:36px;height:36px;border:1px solid #263654;border-radius:9px;background:#101d37;color:#9dadca}

/* 데모 참여 화면 */
.portal-demo-join {min-height:100vh;background:#f4f7fc}
.portal-demo-join__hero {position:relative;overflow:hidden;padding:92px 0 82px;background:linear-gradient(135deg,#06132f,#10357e);color:#fff}
.portal-demo-join__hero:after {position:absolute;top:-220px;right:-120px;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(83,143,255,.48),transparent 67%);content:""}
.portal-demo-join__hero .portal-shell {position:relative;z-index:1}
.portal-demo-join__hero h1 {margin:15px 0 18px;font-size:49px;line-height:1.2;letter-spacing:-2.8px}
.portal-demo-join__hero p {max-width:700px;color:#bdcbe6;font-size:17px;line-height:1.85;word-break:keep-all}
.portal-demo-join__body {padding:70px 0 110px}
.portal-demo-join__platforms {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.portal-demo-platform {position:relative;display:flex;overflow:hidden;flex-direction:column;padding:31px;border:1px solid var(--portal-line);border-radius:24px;background:#fff;box-shadow:0 18px 45px rgba(35,66,115,.07)}
.portal-demo-platform__icon {display:flex;align-items:center;justify-content:center;width:58px;height:58px;margin-bottom:28px;border-radius:17px;background:#e9f1ff;color:var(--portal-blue)}
.portal-demo-platform__icon .material-symbols-rounded {font-size:30px}
.portal-demo-platform--ios .portal-demo-platform__icon {background:#eef1f6;color:#15213a}
.portal-demo-platform--admin .portal-demo-platform__icon {background:#eeeafe;color:#5c43d5}
.portal-demo-platform--admin .portal-card-label {color:#654dde}
.portal-demo-platform h2 {font-size:25px;letter-spacing:-1px}.portal-demo-platform p {min-height:58px;margin:9px 0 26px;color:var(--portal-muted);font-size:16px;line-height:1.75}
.portal-demo-platform__meta {display:flex;gap:8px;margin-top:auto;margin-bottom:24px}.portal-demo-platform__meta span {padding:6px 10px;border-radius:100px;background:#f0f4fa;color:#65748e;font-size:13px;font-weight:700}
.portal-demo-platform .portal-button[aria-disabled=true] {cursor:not-allowed;opacity:.55;pointer-events:none}
.portal-demo-board {margin-top:52px;padding:34px;border:1px solid var(--portal-line);border-radius:25px;background:#fff;box-shadow:0 18px 45px rgba(35,66,115,.055)}
.portal-demo-board__head {display:flex;align-items:flex-end;justify-content:space-between;gap:25px;padding-bottom:25px;border-bottom:1px solid var(--portal-line)}
.portal-demo-board__head h2 {margin-top:8px;font-size:28px;letter-spacing:-1.2px}.portal-demo-board__head p {margin-top:7px;color:var(--portal-muted);font-size:16px}
.portal-demo-board__grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:24px}
.portal-demo-board__item {display:flex;align-items:center;gap:14px;min-height:92px;padding:18px;border:1px solid #e0e7f2;border-radius:17px;background:#f9fbff;color:var(--portal-ink)}
.portal-demo-board__item:hover {transform:translateY(-2px);border-color:#a9c4fb;box-shadow:0 10px 22px rgba(45,104,245,.09)}
.portal-demo-board__item>.material-symbols-rounded {display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:43px;height:43px;border-radius:13px;background:#e7efff;color:var(--portal-blue);font-size:22px}
.portal-demo-board__item b,.portal-demo-board__item small {display:block}.portal-demo-board__item b {font-size:16px}.portal-demo-board__item small {margin-top:3px;color:#8491a7;font-size:13px}
.portal-demo-board__empty {margin-top:24px;padding:45px 20px;border:1px dashed #bed0ed;border-radius:18px;background:#f8fbff;color:#71809a;text-align:center}

/* iOS TestFlight 전용 신청 화면 */
.portal-testflight-page #container_title {display:none}
.portal-testflight {overflow:hidden;border:1px solid var(--portal-line);border-radius:26px;background:#fff;box-shadow:0 22px 58px rgba(35,66,115,.09)}
.portal-testflight__hero {display:flex;align-items:center;gap:22px;padding:34px 38px;background:linear-gradient(135deg,#eef4ff,#f8faff)}
.portal-testflight__icon {display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:64px;height:64px;border-radius:19px;background:linear-gradient(145deg,#17233c,#081126);box-shadow:0 13px 28px rgba(7,19,47,.2);color:#fff}
.portal-testflight__icon .material-symbols-rounded {font-size:31px}
.portal-testflight__hero h2 {margin:5px 0 6px;font-size:29px;letter-spacing:-1.3px}
.portal-testflight__hero p {color:var(--portal-muted);font-size:15px;word-break:keep-all}
#portal_testflight_form {padding:36px 38px 40px}
.portal-testflight__notice {display:flex;align-items:flex-start;gap:13px;margin-bottom:30px;padding:17px 19px;border:1px solid #cfe0ff;border-radius:15px;background:#f0f5ff;color:#52627e}
.portal-testflight__notice>.material-symbols-rounded {color:var(--portal-blue);font-size:22px}
.portal-testflight__notice-content {flex:1;min-width:0}.portal-testflight__notice strong,.portal-testflight__notice p {display:block}.portal-testflight__notice strong {color:#1d376f;font-size:15px}.portal-testflight__notice p {margin-top:2px;font-size:14px}
.portal-testflight__result-link {display:inline-flex;align-items:center;gap:6px;margin-top:11px;padding:7px 11px;border:1px solid #b9cff9;border-radius:9px;background:#fff;color:#245fdc;font-size:13px;font-weight:800}.portal-testflight__result-link:hover {border-color:#6f9cf5;background:#f8fbff}.portal-testflight__result-link .material-symbols-rounded {font-size:18px}
.portal-testflight__grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}
.portal-testflight__field {display:block;min-width:0}
.portal-testflight__field--wide {grid-column:1/-1}
.portal-testflight__field>span {display:block;margin-bottom:8px;color:#25344f;font-size:15px;font-weight:800}
.portal-testflight__field>span b {margin-left:4px;color:#e24e58;font-size:12px}
.portal-testflight__field input,.portal-testflight__field select {display:block;width:100%;height:54px;padding:0 16px;border:1px solid #cfd9e9;border-radius:13px;background:#fff;color:#17223b;font-size:15px;box-sizing:border-box;outline:none;transition:border-color .2s,box-shadow .2s}
.portal-testflight__field input:focus,.portal-testflight__field select:focus {border-color:#4a7cf1;box-shadow:0 0 0 4px rgba(45,104,245,.1)}
.portal-testflight__field small {display:block;margin-top:7px;color:#8693a8;font-size:13px}
.portal-testflight__agree {display:flex;align-items:center;gap:10px;margin-top:30px;padding:16px 18px;border:1px solid #dce4f0;border-radius:14px;background:#fafcff;color:#596881;font-size:14px;cursor:pointer}
.portal-testflight__agree input {position:absolute;width:1px;height:1px;opacity:0}
.portal-testflight__agree>.material-symbols-rounded {display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:24px;height:24px;border:1px solid #bdc9dc;border-radius:7px;background:#fff;color:transparent;font-size:17px}
.portal-testflight__agree input:checked+.material-symbols-rounded {border-color:var(--portal-blue);background:var(--portal-blue);color:#fff}
.portal-testflight__actions {display:flex;justify-content:flex-end;gap:10px;margin-top:28px}
.portal-testflight__actions .portal-button {display:inline-flex;align-items:center;justify-content:center;gap:7px}
.portal-testflight__actions button {border:0;cursor:pointer}
.portal-testflight__actions button:disabled {cursor:wait;opacity:.6}
.portal-testflight__captcha {margin-top:22px;padding:18px;border:1px solid #dce4f0;border-radius:14px;background:#fafcff}
.portal-testflight__captcha-title {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.portal-testflight__captcha-title>strong {color:#25344f;font-size:14px}.portal-testflight__captcha-title>span {display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:100px;background:#e8f7ee;color:#18763b;font-size:11px;font-weight:800}.portal-testflight__captcha-title .material-symbols-rounded {font-size:16px}
.portal-demo-robot-fields {position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.portal-testflight-results {margin-top:28px;padding:32px 38px;border:1px solid var(--portal-line);border-radius:26px;background:#fff;box-shadow:0 18px 45px rgba(35,66,115,.055)}
.portal-testflight-results__head h2 {margin:7px 0 5px;font-size:26px}.portal-testflight-results__head p {color:var(--portal-muted);font-size:14px}
.portal-testflight-results__success {margin-top:22px;padding:14px 16px;border:1px solid #9eeab9;border-radius:12px;background:#effcf3;color:#18763b;font-weight:800}
.portal-testflight-results__error {margin-top:22px;padding:14px 16px;border:1px solid #f3b7bc;border-radius:12px;background:#fff3f4;color:#b62e3a;font-weight:800}
.portal-testflight-results__lookup {display:grid;grid-template-columns:minmax(180px,.7fr) minmax(240px,1fr) auto;align-items:end;gap:12px;margin-top:22px;padding:20px;border:1px solid #dce5f3;border-radius:16px;background:#f8fbff}
.portal-testflight-results__lookup label>span {display:block;margin-bottom:7px;color:#33435f;font-size:13px;font-weight:800}.portal-testflight-results__lookup input {display:block;width:100%;height:48px;padding:0 14px;border:1px solid #cbd7e9;border-radius:11px;background:#fff;color:#17223b;font-size:14px;box-sizing:border-box;outline:none}.portal-testflight-results__lookup input:focus {border-color:#4a7cf1;box-shadow:0 0 0 4px rgba(45,104,245,.1)}
.portal-testflight-results__lookup button {display:inline-flex;align-items:center;justify-content:center;gap:6px;height:48px;padding:0 20px;border:0;border-radius:11px;background:var(--portal-blue);color:#fff;font-weight:800;white-space:nowrap;cursor:pointer}.portal-testflight-results__lookup button .material-symbols-rounded {font-size:19px}
.portal-testflight-results__list {margin-top:22px}.portal-testflight-results__list>article {padding:20px 0;border-top:1px solid #e4eaf3}.portal-testflight-results__list>article:first-child {border-top:0}
.portal-testflight-results__list>article>div:first-child {display:flex;align-items:center;justify-content:space-between;gap:18px}.portal-testflight-results__list time {color:#8795ab;font-size:13px}.portal-testflight-results__list>article>p {margin-top:9px;color:#5b6981;font-size:14px;line-height:1.7}
.portal-testflight-results__answer {margin-top:14px;padding:15px;border-radius:12px;background:#f0f5ff}.portal-testflight-results__answer b {color:#245fdc}.portal-testflight-results__answer p {margin-top:5px;color:#50617e;line-height:1.7}
.portal-testflight-results__pending {display:inline-flex;margin-top:12px;padding:6px 10px;border-radius:100px;background:#fff4d8;color:#8a6010;font-size:12px;font-weight:800}.portal-testflight-results__empty {margin-top:22px;padding:40px 20px;border:1px dashed #bed0ed;border-radius:15px;background:#f8fbff;color:#71809a;text-align:center}
.portal-testflight__closed {display:flex;align-items:center;gap:18px;margin:30px;padding:24px;border:1px solid #f1d498;border-radius:18px;background:#fff9ed;color:#72541c}.portal-testflight__closed>.material-symbols-rounded {font-size:36px}.portal-testflight__closed>div {flex:1}.portal-testflight__closed strong {display:block;color:#49360f;font-size:18px}.portal-testflight__closed p {margin-top:5px;font-size:14px;line-height:1.65}.portal-testflight__closed .portal-button {flex:0 0 auto}
.portal-testflight-results__status {display:inline-flex;margin-top:12px;margin-right:6px;padding:6px 10px;border-radius:100px;background:#edf2fa;color:#51617c;font-size:12px;font-weight:800}.portal-testflight-results__status--reviewing {background:#e9f2ff;color:#245fdc}.portal-testflight-results__status--invited,.portal-testflight-results__status--completed {background:#eaf9ef;color:#18763b}.portal-testflight-results__status--rejected {background:#fff0f1;color:#b62e3a}

/* PUSH 관리자 */
.portal-push-admin {display:grid;gap:24px}.portal-push-admin__hero {display:flex;align-items:center;justify-content:space-between;gap:24px;padding:34px 38px;border-radius:24px;background:linear-gradient(135deg,#132653,#2867ed);box-shadow:0 22px 52px rgba(29,74,173,.18);color:#fff}.portal-push-admin__hero h1 {margin:7px 0 5px;font-size:32px;letter-spacing:-1.4px}.portal-push-admin__hero p {color:#c8d7f8}.portal-push-admin__hero .portal-card-label {color:#bcd0ff}.portal-push-admin__hero .portal-button {display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.portal-push-admin__notice {display:flex;align-items:center;gap:9px;padding:14px 17px;border:1px solid #9fe4b8;border-radius:14px;background:#effbf3;color:#18763b;font-weight:800}.portal-push-admin__settings {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.portal-push-admin__card,.portal-push-admin__requests {border:1px solid var(--portal-line);border-radius:22px;background:#fff;box-shadow:0 16px 40px rgba(35,66,115,.06)}.portal-push-admin__card {padding:27px}.portal-push-admin__card-head {display:flex;align-items:center;gap:14px}.portal-push-admin__card-head>.material-symbols-rounded {display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:#eaf1ff;color:var(--portal-blue);font-size:25px}.portal-push-admin__card-head h2 {font-size:21px}.portal-push-admin__card-head p {margin-top:3px;color:var(--portal-muted);font-size:14px}.portal-push-admin__meta {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:22px 0}.portal-push-admin__meta>div {min-width:0;padding:12px;border-radius:12px;background:#f5f8fd}.portal-push-admin__meta dt {color:#8190a8;font-size:12px}.portal-push-admin__meta dd {overflow:hidden;margin-top:4px;color:#25344f;font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.portal-push-admin__upload {display:flex;align-items:end;gap:10px}.portal-push-admin__upload label {flex:1;min-width:0}.portal-push-admin__upload label>span {display:block;margin-bottom:7px;color:#33435f;font-size:13px;font-weight:800}.portal-push-admin__upload input {display:block;width:100%;min-height:46px;padding:8px;border:1px solid #ccd8e9;border-radius:11px;box-sizing:border-box}.portal-push-admin__upload .portal-button {min-height:46px;border:0;cursor:pointer}.portal-push-admin__toggle-form {display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:28px;padding:20px;border-radius:16px;background:#f5f8fd}.portal-push-admin__toggle-form strong,.portal-push-admin__toggle-form span {display:block}.portal-push-admin__toggle-form strong {color:#24314b;font-size:18px}.portal-push-admin__toggle-form div>span {margin-top:4px;color:var(--portal-muted);font-size:13px}.portal-switch-button {position:relative;display:flex;align-items:center;justify-content:space-between;width:88px;height:42px;padding:4px 6px 4px 12px;border:0;border-radius:100px;background:#7d8aa0;color:#fff;font-weight:800;cursor:pointer}.portal-switch-button i {width:30px;height:30px;border-radius:50%;background:#fff;box-shadow:0 3px 9px rgba(0,0,0,.18)}.portal-switch-button.is-on {background:#20b991}.portal-switch-button.is-off {flex-direction:row-reverse;padding-right:12px;padding-left:6px}
.portal-push-admin__requests {overflow:hidden}.portal-push-admin__requests-head {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 30px;border-bottom:1px solid var(--portal-line);background:#f8faff}.portal-push-admin__requests-head h2 {margin:6px 0 4px;font-size:24px}.portal-push-admin__requests-head p {color:var(--portal-muted);font-size:14px}.portal-push-admin__requests-head>strong {display:flex;align-items:center;justify-content:center;min-width:62px;height:62px;border-radius:18px;background:#e8f0ff;color:var(--portal-blue);font-size:18px}.portal-push-admin__request-list {padding:0 30px}.portal-push-admin__request {scroll-margin-top:100px;padding:25px 0;border-top:1px solid #e5ebf4}.portal-push-admin__request:first-child {border-top:0}.portal-push-admin__request>header {display:flex;align-items:center;justify-content:space-between;gap:16px}.portal-push-admin__request>header>div {display:flex;align-items:center;gap:10px;min-width:0}.portal-push-admin__request>header strong {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-push-admin__request time {color:#8a98ad;font-size:13px}.portal-push-admin__request-id {padding:5px 8px;border-radius:8px;background:#edf2fa;color:#52627e;font-size:12px;font-weight:800}.portal-status {flex:0 0 auto;padding:6px 10px;border-radius:100px;background:#edf2fa;color:#52627e;font-size:12px;font-weight:800}.portal-status--reviewing {background:#e8f1ff;color:#245fdc}.portal-status--invited,.portal-status--completed {background:#e9faef;color:#18763b}.portal-status--rejected {background:#fff0f1;color:#b62e3a}.portal-push-admin__request>dl {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:16px 0}.portal-push-admin__request>dl>div {min-width:0;padding:11px;border-radius:10px;background:#f7f9fc}.portal-push-admin__request dt {color:#8a98ad;font-size:11px}.portal-push-admin__request dd {overflow:hidden;margin-top:3px;color:#33435f;font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.portal-push-admin__result-form {display:grid;grid-template-columns:170px minmax(0,1fr) auto;align-items:end;gap:10px}.portal-push-admin__individual-head {grid-column:1/-1;display:flex;align-items:center;gap:10px;margin-top:2px;padding:11px 13px;border:1px solid #d9e4f7;border-radius:11px;background:#f5f8ff}.portal-push-admin__individual-head>.material-symbols-rounded {color:var(--portal-blue);font-size:21px}.portal-push-admin__individual-head strong,.portal-push-admin__individual-head small {display:block}.portal-push-admin__individual-head strong {color:#293b5d;font-size:13px}.portal-push-admin__individual-head small {margin-top:2px;color:#7e8da5;font-size:11px}.portal-push-admin__result-form label>span {display:block;margin-bottom:6px;color:#33435f;font-size:12px;font-weight:800}.portal-push-admin__result-form select,.portal-push-admin__result-form textarea {display:block;width:100%;padding:12px;border:1px solid #ccd8e9;border-radius:11px;background:#fff;color:#25344f;font:inherit;box-sizing:border-box;outline:none}.portal-push-admin__result-form select {height:48px}.portal-push-admin__result-form textarea {min-height:80px;resize:vertical}.portal-push-admin__result-form select:focus,.portal-push-admin__result-form textarea:focus {border-color:#4a7cf1;box-shadow:0 0 0 4px rgba(45,104,245,.1)}.portal-push-admin__result-form .portal-button {min-height:48px;border:0;cursor:pointer}.portal-push-admin__empty {padding:70px 20px;color:var(--portal-muted);text-align:center}
.portal-push-admin__applicant-table {overflow-x:auto;padding:20px 30px 0}.portal-push-admin__applicant-head,.portal-push-admin__applicant {display:grid;grid-template-columns:74px minmax(190px,1.35fr) minmax(105px,.7fr) minmax(145px,.85fr) 105px 145px 74px;align-items:center;gap:12px;min-width:980px}.portal-push-admin__applicant-head {padding:0 16px 10px;color:#8795aa;font-size:11px;font-weight:800}.portal-push-admin__applicant-list {display:grid;gap:8px}.portal-push-admin__applicant {padding:13px 16px;border:1px solid #e1e8f3;border-radius:13px;background:#fff;color:#33435f;font-size:13px;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s}.portal-push-admin__applicant:hover,.portal-push-admin__applicant.is-selected {border-color:#8ab0ff;background:#f5f8ff;box-shadow:0 8px 20px rgba(36,95,220,.09);transform:translateY(-1px)}.portal-push-admin__applicant>strong {color:#245fdc}.portal-push-admin__applicant>span,.portal-push-admin__applicant>time {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-push-admin__applicant small {margin-left:4px;color:#8a98ad}.portal-push-admin__applicant .portal-status {display:inline-flex;font-style:normal}.portal-push-admin__applicant-action {display:flex;align-items:center;justify-content:flex-end;gap:3px;color:#245fdc;font-weight:800}.portal-push-admin__applicant-action .material-symbols-rounded {font-size:17px}.portal-push-admin__pagination {display:flex;align-items:center;justify-content:center;gap:6px;padding:20px 30px}.portal-push-admin__pagination>a,.portal-push-admin__pagination>span {display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;border-radius:9px;color:#62718a;font-size:13px;box-sizing:border-box}.portal-push-admin__pagination>a {border:1px solid #dce5f2;background:#fff}.portal-push-admin__pagination>a:hover,.portal-push-admin__pagination>a.is-current {border-color:#2d68f5;background:#2d68f5;color:#fff}.portal-push-admin__pagination .material-symbols-rounded {font-size:18px}.portal-push-admin__editor {margin:8px 30px 30px;padding:24px;border:1px solid #b8cff8!important;border-radius:17px;background:#fbfdff;box-shadow:0 14px 32px rgba(37,87,188,.08)}.portal-push-admin__editor-close {display:flex;align-items:center;gap:5px;padding:7px 10px;border-radius:9px;background:#edf3ff;color:#245fdc;font-size:12px;font-weight:800}.portal-push-admin__editor-close .material-symbols-rounded {font-size:17px}.portal-push-admin__select-guide {display:flex;align-items:center;justify-content:center;gap:14px;margin:20px 30px 30px;padding:28px;border:1px dashed #b8c8df;border-radius:15px;background:#f8faff;color:#75849b;text-align:left}.portal-push-admin__select-guide>.material-symbols-rounded {color:#2d68f5;font-size:30px}.portal-push-admin__select-guide strong {display:block;color:#33435f}.portal-push-admin__select-guide p {margin-top:3px;font-size:13px}

/* 로그인 없이 확인하는 공개 관리자 데모 */
.portal-public-admin {padding-bottom:80px}
.portal-public-admin__hero {display:flex;align-items:center;justify-content:space-between;gap:28px;padding:35px 38px;border-radius:26px;background:linear-gradient(135deg,#142557,#2865ed);box-shadow:0 20px 45px rgba(22,64,157,.2);color:#fff}
.portal-public-admin__hero h1 {margin:7px 0 5px;font-size:31px;letter-spacing:-1.3px}.portal-public-admin__hero p {color:#d8e4ff;font-size:15px}.portal-public-admin__hero .portal-card-label {color:#bbceff}
.portal-public-admin__readonly {display:flex;align-items:center;gap:7px;flex:0 0 auto;padding:11px 15px;border:1px solid rgba(255,255,255,.3);border-radius:100px;background:rgba(6,22,63,.22);font-size:13px;font-weight:800}.portal-public-admin__readonly .material-symbols-rounded {font-size:19px}
.portal-public-admin__notice {display:flex;align-items:flex-start;gap:13px;margin:18px 0;padding:16px 18px;border:1px solid #cfe0ff;border-radius:15px;background:#f0f5ff;color:#52627e}.portal-public-admin__notice>.material-symbols-rounded {color:var(--portal-blue)}.portal-public-admin__notice strong {display:block;color:#1d376f}.portal-public-admin__notice p {margin-top:3px;font-size:13px}
.portal-public-admin__layout {display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px}
.portal-public-admin__sidebar,.portal-public-admin__main {border:1px solid var(--portal-line);border-radius:22px;background:#fff;box-shadow:0 16px 40px rgba(35,66,115,.055)}
.portal-public-admin__sidebar {overflow:hidden;padding:24px 14px}.portal-public-admin__sidebar>strong {display:flex;align-items:center;gap:9px;padding:0 9px 18px;color:#15213b;font-size:16px;line-height:1.45}.portal-public-admin__sidebar>strong .material-symbols-rounded {color:var(--portal-blue)}
.portal-public-admin__sidebar nav {display:flex;flex-direction:column;gap:3px}.portal-public-admin__sidebar nav a {display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:10px;color:#5d6980;font-size:14px}.portal-public-admin__sidebar nav a:hover,.portal-public-admin__sidebar nav a.is-active {background:#eaf1ff;color:#245fdc;font-weight:800}.portal-public-admin__sidebar nav .material-symbols-rounded {font-size:19px}
.portal-public-admin__main {overflow:hidden}.portal-public-admin__title {display:flex;align-items:center;justify-content:space-between;gap:22px;padding:27px 30px;border-bottom:1px solid #e4eaf3}.portal-public-admin__title h2 {margin:6px 0 3px;font-size:25px}.portal-public-admin__title p {color:#7b899f;font-size:14px}
.portal-public-admin__save {display:flex;align-items:center;gap:6px;padding:11px 14px;border:0;border-radius:10px;background:var(--portal-blue);color:#fff;font-weight:800;cursor:pointer}.portal-public-admin__save .material-symbols-rounded {font-size:18px}
.portal-public-admin__service {display:flex;align-items:center;justify-content:space-between;gap:25px;margin:24px;padding:26px 28px;border-radius:18px;background:linear-gradient(135deg,#142557,#2865ed);color:#fff}.portal-public-admin__service>div>span {color:#b9ccfb;font-size:11px;font-weight:800;letter-spacing:2px}.portal-public-admin__service strong,.portal-public-admin__service p {display:block}.portal-public-admin__service strong {margin-top:7px;font-size:23px}.portal-public-admin__service p {margin-top:5px;color:#d9e4ff;font-size:13px}
.portal-public-admin__service label,.portal-public-admin__choice {display:flex;align-items:center;gap:9px;cursor:pointer}.portal-public-admin__service input,.portal-public-admin__choice input {position:absolute;width:1px;height:1px;opacity:0}.portal-public-admin__service i,.portal-public-admin__choice i {position:relative;width:42px;height:23px;border-radius:100px;background:#c9d3e4}.portal-public-admin__service i:after,.portal-public-admin__choice i:after {position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.2);content:"";transition:transform .2s}.portal-public-admin__service input:checked+i,.portal-public-admin__choice input:checked+i {background:#2dd4bf}.portal-public-admin__service input:checked+i:after,.portal-public-admin__choice input:checked+i:after {transform:translateX(19px)}.portal-public-admin__service label>span {white-space:nowrap;font-size:13px;font-weight:800}
.portal-public-admin__grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 24px 24px}.portal-public-admin__grid article {position:relative;padding:22px;border:1px solid #dce4f0;border-radius:16px;background:#fbfcff}.portal-public-admin__grid article>.material-symbols-rounded {display:flex;align-items:center;justify-content:center;width:42px;height:42px;margin-bottom:15px;border-radius:12px;background:#e7efff;color:var(--portal-blue)}.portal-public-admin__grid h3 {margin-bottom:13px;font-size:17px}.portal-public-admin__grid label {display:block;margin-top:11px;color:#5e6d84;font-size:12px;font-weight:700}.portal-public-admin__grid input[type=text] {display:block;width:100%;height:43px;margin-top:5px;padding:0 12px;border:1px solid #d3ddeb;border-radius:10px;background:#fff;color:#33425d;box-sizing:border-box}.portal-public-admin__grid small {display:block;margin-top:8px;color:#8795aa;font-size:12px;line-height:1.6}.portal-public-admin__number {display:inline-flex;margin-bottom:13px;padding:5px 8px;border-radius:8px;background:#e5eeff;color:#245fdc;font-size:12px;font-weight:900}.portal-public-admin__grid--controls p {min-height:39px;color:#7b899f;font-size:13px;line-height:1.55}.portal-public-admin__choice {margin:15px 0 4px!important}.portal-public-admin__choice span {font-size:13px}
.portal-public-admin__stats {display:grid;grid-template-columns:repeat(3,1fr);gap:13px;padding:24px}.portal-public-admin__stats article {padding:18px;border:1px solid #dce4f0;border-radius:14px}.portal-public-admin__stats span,.portal-public-admin__stats strong {display:block}.portal-public-admin__stats span {color:#7e8ca2;font-size:12px}.portal-public-admin__stats strong {margin-top:5px;font-size:24px}
.portal-public-admin__table {margin:0 24px 24px;border:1px solid #dce4f0;border-radius:14px;overflow:hidden}.portal-public-admin__table>div {display:grid;grid-template-columns:90px 150px minmax(200px,1fr) 150px;align-items:center;gap:12px;padding:14px;border-top:1px solid #e5eaf2;color:#52617a;font-size:13px}.portal-public-admin__table>.portal-public-admin__table-head {border-top:0;background:#f2f6fc;color:#243650;font-weight:800}.portal-public-admin__table b {display:inline-flex;width:max-content;padding:5px 8px;border-radius:100px;font-size:11px}.portal-public-admin__table .is-success {background:#dcf9e7;color:#168445}.portal-public-admin__table .is-warning {background:#fff0d0;color:#96610b}.portal-public-admin__table time {color:#8390a5}
.portal-public-admin__toast {position:fixed;right:24px;bottom:24px;z-index:1100;transform:translateY(20px);padding:15px 18px;border-radius:13px;background:#101d38;box-shadow:0 15px 35px rgba(7,19,47,.25);color:#fff;font-size:13px;font-weight:800;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.portal-public-admin__toast.is-visible {transform:translateY(0);opacity:1}

/* 이용약관·개인정보처리방침 */
.portal-policy {margin:0 0 40px;padding:38px 42px;border:1px solid var(--portal-line);border-radius:22px;background:#fff;box-shadow:0 15px 40px rgba(35,66,115,.055)}
.portal-policy__intro {margin-bottom:30px;padding:20px 22px;border-radius:15px;background:#f0f5ff;color:#52627e;font-size:15px;line-height:1.75}
.portal-policy__intro strong {display:block;margin-bottom:4px;color:#234fbb;font-size:16px}
.portal-policy__custom {color:#596881;font-size:15px;line-height:1.85;word-break:keep-all}.portal-policy__custom img {max-width:100%;height:auto}
.portal-policy__section {padding:25px 0;border-top:1px solid #e4eaf3}
.portal-policy__section:first-of-type {border-top:0}
.portal-policy__section h3 {margin-bottom:10px;color:#15213b;font-size:20px;letter-spacing:-.7px}
.portal-policy__section p,.portal-policy__section li {color:#596881;font-size:15px;line-height:1.85;word-break:keep-all}
.portal-policy__section ol,.portal-policy__section ul {margin:9px 0 0 21px}.portal-policy__section li+li {margin-top:5px}
.portal-policy__table-wrap {overflow-x:auto;margin-top:12px}
.portal-policy table {width:100%;min-width:640px;border-collapse:collapse;border-top:2px solid #385fbd}
.portal-policy th,.portal-policy td {padding:13px 14px;border-right:1px solid #e1e7f0;border-bottom:1px solid #e1e7f0;color:#596881;font-size:14px;line-height:1.65;text-align:left;vertical-align:top}
.portal-policy th {background:#f3f6fb;color:#263653;font-weight:800}.portal-policy th:last-child,.portal-policy td:last-child {border-right:0}
.portal-policy__effective {margin-top:28px;padding-top:22px;border-top:1px solid #dfe6f1;color:#344663;font-size:14px;font-weight:700}

/* 그누보드 일반 콘텐츠 */
#container_wr.portal-content {float:none;width:min(1240px,calc(100% - 56px));margin:0 auto;padding:55px 0 90px;box-sizing:border-box}
#container_wr.portal-content #container {float:none;width:100%;min-width:0;max-width:100%;min-height:500px;margin:0;box-sizing:border-box}
#container_wr.portal-content #container:after {display:block;visibility:hidden;clear:both;content:""}
#container_wr.portal-content #bo_list,#container_wr.portal-content #bo_gall,#container_wr.portal-content #bo_v,#container_wr.portal-content #bo_w {width:100%!important;max-width:100%;box-sizing:border-box}
#container_wr.portal-content .tbl_wrap {max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
#container_wr.portal-content .tbl_wrap table {width:100%}
#container_wr.portal-content img,#container_wr.portal-content iframe {max-width:100%}
#container_title {margin-bottom:30px;font-size:26px;letter-spacing:-1px}

@media (max-width:1080px) {
    .portal-header__inner {min-height:70px}
    .portal-menu-button {display:block;margin-left:auto}
    .portal-navigation {position:absolute;top:70px;right:28px;left:28px;display:none;align-items:stretch;flex-direction:column;gap:0;padding:10px;border:1px solid var(--portal-line);border-radius:15px;background:#fff;box-shadow:0 22px 45px rgba(7,19,47,.15)}
    .portal-navigation.is-open {display:flex}.portal-navigation a {padding:11px 13px}.portal-navigation a:after {display:none}.portal-navigation .portal-navigation__push-admin {display:block;color:#5b43d1}
    .portal-header__actions {display:none}
    .portal-push-admin__settings {grid-template-columns:1fr}.portal-push-admin__request>dl {grid-template-columns:repeat(2,minmax(0,1fr))}.portal-push-admin__result-form {grid-template-columns:150px minmax(0,1fr)}.portal-push-admin__result-form .portal-button {grid-column:1/-1}
    .portal-hero__grid {grid-template-columns:1fr;gap:40px;padding-top:20px}.portal-hero__copy {max-width:750px;text-align:center;margin:0 auto}.portal-hero__copy>p {margin:0 auto}.portal-hero__actions,.portal-proof {justify-content:center}
    .portal-hero__visual {width:min(660px,100%);min-height:610px;margin:0 auto}.portal-product-frame {right:50%;transform:translateX(50%) rotate(1deg)}
    .portal-bento {grid-template-columns:repeat(2,1fr)}
    .portal-native__grid {grid-template-columns:1fr;gap:50px}.portal-native__copy {max-width:720px;text-align:center;margin:0 auto}.portal-native__list {text-align:left}
    .portal-steps {grid-template-columns:repeat(2,1fr)}
    .portal-demo-join__platforms {grid-template-columns:repeat(2,minmax(0,1fr))}.portal-demo-platform--admin {grid-column:1/-1}
}

@media (max-width:720px) {
    .portal-shell {width:min(100% - 32px,1240px)}
    #container_wr.portal-content {width:calc(100% - 32px);padding:36px 0 65px}
    #container_wr.portal-content .tbl_wrap table {min-width:680px}
    #container_wr.portal-content #container_title {margin-bottom:20px;font-size:23px}
    .portal-brand {font-size:16px}.portal-brand__mark {width:34px;height:34px}.portal-navigation {right:16px;left:16px}
    .portal-hero {padding-top:57px}.portal-hero h1 {font-size:40px;letter-spacing:-2.3px}.portal-hero__copy>p {font-size:16px}.portal-hero__actions {align-items:stretch;flex-direction:column}.portal-proof {gap:9px 14px}
    .portal-hero__visual {min-height:420px}.portal-product-frame {bottom:-5px;padding:8px;border-radius:22px}.portal-product-frame img {border-radius:16px}.portal-floating-card {display:none}.portal-trustbar {justify-content:flex-start;overflow:auto;gap:18px;white-space:nowrap}
    .portal-section {padding:78px 0}.portal-section__heading {margin-bottom:38px}.portal-section__heading h2,.portal-native__copy h2,.portal-cta h2 {font-size:31px;letter-spacing:-1.6px}
    .portal-bento {grid-template-columns:1fr}.portal-bento__card,.portal-bento__card--wide {grid-column:auto}.portal-bento__card {min-height:260px}.portal-bento__card--blue {display:block}.portal-bento__card--blue>.portal-bento__icon {margin-bottom:45px}.portal-bento__card--blue>ul {margin-top:20px}.portal-bento__card--dark {align-items:flex-start;flex-direction:column}.portal-mini-ui {width:100%;height:120px}
    .portal-tour__grid {grid-template-columns:minmax(0,520px)}.portal-showcase,.portal-showcase--large,.portal-showcase--wide {grid-column:auto;grid-row:auto;min-height:0;aspect-ratio:1/1}
    .portal-native__stack article {grid-template-columns:54px 1fr;padding:17px}.portal-native__stack article>.material-symbols-rounded {width:48px;height:48px}.portal-native__stack em {display:none}
    .portal-steps {grid-template-columns:1fr}.portal-steps li {min-height:210px}.portal-steps li>.material-symbols-rounded {margin-bottom:38px}
    .portal-cta__inner {align-items:flex-start;flex-direction:column;gap:34px}.portal-cta__inner>div:last-child {text-align:left}
    .portal-footer__top {flex-direction:column}.portal-footer__links {display:grid;grid-template-columns:repeat(2,1fr);gap:35px}.portal-footer__bottom {gap:20px}
    .portal-demo-join__hero {padding:66px 0 60px}.portal-demo-join__hero h1 {font-size:36px;letter-spacing:-2px}.portal-demo-join__body {padding:42px 0 78px}
    .portal-demo-join__platforms {grid-template-columns:1fr}.portal-demo-platform,.portal-demo-platform--admin {grid-column:auto;padding:25px}.portal-demo-platform p {min-height:0}
    .portal-demo-board {margin-top:30px;padding:23px}.portal-demo-board__head {align-items:flex-start;flex-direction:column}.portal-demo-board__grid {grid-template-columns:1fr}
    .portal-testflight__hero {align-items:flex-start;padding:25px 22px}.portal-testflight__icon {width:52px;height:52px;border-radius:15px}.portal-testflight__hero h2 {font-size:24px}.portal-testflight__hero p {font-size:14px}
    #portal_testflight_form {padding:24px 21px 28px}.portal-testflight__grid {grid-template-columns:1fr;gap:18px}.portal-testflight__field--wide {grid-column:auto}.portal-testflight__actions {align-items:stretch;flex-direction:column-reverse}.portal-testflight__actions .portal-button {width:100%;box-sizing:border-box}
    .portal-testflight-results {padding:25px 21px}.portal-testflight-results__lookup {grid-template-columns:1fr;padding:17px}.portal-testflight-results__lookup button {width:100%}.portal-testflight-results__list>article>div:first-child {align-items:flex-start;flex-direction:column;gap:4px}
    .portal-testflight__closed {align-items:flex-start;flex-direction:column;margin:20px}.portal-push-admin__hero {align-items:flex-start;flex-direction:column;padding:27px 23px}.portal-push-admin__hero h1 {font-size:27px}.portal-push-admin__card {padding:22px}.portal-push-admin__meta {grid-template-columns:1fr}.portal-push-admin__upload {align-items:stretch;flex-direction:column}.portal-push-admin__toggle-form {align-items:flex-start;flex-direction:column}.portal-push-admin__requests-head {align-items:flex-start;padding:23px}.portal-push-admin__request-list {padding:0 21px}.portal-push-admin__applicant-table {padding:16px 20px 0}.portal-push-admin__pagination {padding:18px 20px}.portal-push-admin__pagination>a>span:not(.material-symbols-rounded) {display:none}.portal-push-admin__editor {margin:6px 20px 24px;padding:19px}.portal-push-admin__select-guide {align-items:flex-start;margin:18px 20px 24px;padding:20px}.portal-push-admin__request>header,.portal-push-admin__request>header>div {align-items:flex-start;flex-direction:column}.portal-push-admin__request>dl,.portal-push-admin__result-form {grid-template-columns:1fr}.portal-push-admin__result-form .portal-button {grid-column:auto;width:100%}
    .portal-public-admin__hero {align-items:flex-start;flex-direction:column;padding:27px 24px}.portal-public-admin__hero h1 {font-size:26px}.portal-public-admin__layout {grid-template-columns:1fr}.portal-public-admin__sidebar nav {display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.portal-public-admin__title {align-items:flex-start;flex-direction:column}.portal-public-admin__grid {grid-template-columns:1fr}.portal-public-admin__service {align-items:flex-start;flex-direction:column}.portal-public-admin__stats {grid-template-columns:1fr}.portal-public-admin__table {overflow-x:auto}.portal-public-admin__table>div {min-width:700px}
    .portal-policy {padding:25px 21px;border-radius:17px}.portal-policy__intro {padding:17px}.portal-policy__section h3 {font-size:18px}
}

@media (prefers-reduced-motion:reduce) {
    html {scroll-behavior:auto}
    * {transition:none!important;animation:none!important}
}
