@charset "utf-8";

.pnodex-top-server{gap:18px}
.pnodex-member-panel{overflow:hidden;border:1px solid #e6e9ef;border-radius:18px;background:#fff;box-shadow:0 12px 34px rgba(27,35,53,.06);font-family:"Spoqa Han Sans Neo",sans-serif;color:#252a37}
.pnodex-member-profile{display:flex;align-items:center;gap:13px;padding:15px 14px;background:linear-gradient(135deg,#fff,#fff8ee)}
.pnodex-member-avatar{display:flex;overflow:hidden;align-items:center;justify-content:center;width:58px;height:58px;flex:0 0 58px;border:3px solid #ffe6c6;border-radius:50%;background:#fff;box-shadow:0 3px 11px rgba(57,39,19,.11)}
.pnodex-member-avatar img{width:100%!important;height:100%!important;object-fit:cover}
.pnodex-member-name{display:flex;align-items:center;gap:7px;font-size:17px;font-weight:800}
.pnodex-member-name small{padding:3px 8px;border-radius:999px;background:#fff0d8;color:#db7b17;font-size:10px}
.pnodex-member-profile a{display:inline-flex;margin-top:7px;padding:4px 9px;border:1px solid #dfe3eb;border-radius:7px;background:#fff;color:#647086;font-size:11px;text-decoration:none}
.pnodex-member-warning{display:flex;align-items:center;gap:7px;margin:12px 14px;padding:11px 13px;border:1px solid #e1e6ef;border-radius:11px;background:#f5f7fb;color:#5d6679;font-size:12px;font-weight:700}
.pnodex-member-warning span{color:#5268a7}.pnodex-member-warning b{margin-left:2px;color:#758097}
.pnodex-member-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 14px}
.pnodex-member-stat-grid>a,.pnodex-member-stat-grid>span{display:grid;grid-template-columns:30px 1fr auto;align-items:center;min-width:0;height:51px;padding:0 11px;border:1px solid #e7eaf0;border-radius:11px;background:#f7f8fa;color:#687186;text-decoration:none;box-sizing:border-box}
.pnodex-member-stat-grid span>i,.pnodex-member-stat-grid a>span{display:flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:8px;font-style:normal}
.pnodex-member-stat-grid em{overflow:hidden;font-size:11px;font-style:normal;font-weight:700;white-space:nowrap}
.pnodex-member-stat-grid b{color:#4c5fff;font-size:14px}
.pnodex-member-stat-grid .is-gold{background:#fff4dd;color:#c58600}.pnodex-member-stat-grid .is-mint{background:#e8f8f2;color:#1da678}.pnodex-member-stat-grid .is-lime{background:#f3f9df;color:#829f14}.pnodex-member-stat-grid .is-pink{background:#fde9f0;color:#ce5681}.pnodex-member-stat-grid .is-blue{background:#eaf0ff;color:#4e67f0}.pnodex-member-stat-grid .is-violet{background:#f1eafe;color:#7450db}
.pnodex-panel-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 14px 8px}
.pnodex-panel-actions button,.pnodex-panel-actions a{display:flex;align-items:center;justify-content:center;gap:7px;height:42px;border:0;border-radius:11px;color:#fff;font-family:inherit;font-size:13px;font-weight:800;text-decoration:none;cursor:pointer}
.pnodex-attendance-button{background:linear-gradient(135deg,#ffac4f,#f48626)}.pnodex-attendance-button.is-done{background:#b7bdc8}.pnodex-attendance-button:disabled{cursor:wait;opacity:.8}
.pnodex-telegram-button{background:linear-gradient(135deg,#67b9f3,#3f92df)}.pnodex-telegram-button small{font-size:9px;opacity:.82}
.pnodex-today-server-button{display:flex;align-items:center;justify-content:center;gap:13px;width:calc(100% - 28px);height:42px;margin:0 14px 8px;border:0;border-radius:11px;background:linear-gradient(135deg,#202536,#2d3348);color:#fff;font-family:inherit;cursor:pointer;box-shadow:0 5px 12px rgba(28,32,47,.18)}
.pnodex-today-server-button span{font-size:14px;font-weight:800}.pnodex-today-server-button span i{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#5ce48a;box-shadow:0 0 0 4px rgba(92,228,138,.1)}
.pnodex-today-server-button b{color:#f28a2b;font-size:11px}
.pnodex-alert-setting{display:grid;grid-template-columns:34px minmax(0,1fr) 44px;align-items:center;gap:8px;margin:0 14px 8px;padding:10px 12px;border:1px solid #e6e9ef;border-radius:11px;background:#f8f9fb}
.pnodex-alert-setting>span{min-width:0}.pnodex-alert-setting strong,.pnodex-alert-setting small{display:block}.pnodex-alert-setting strong{font-size:12px}.pnodex-alert-setting small{margin-top:2px;color:#939aa9;font-size:10px}
.pnodex-alert-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:#fff2dc;color:#e18a22}
.pnodex-alert-setting [role=switch]{position:relative;width:43px;height:25px;padding:0;border:0;border-radius:99px;background:#cbd0da;cursor:pointer;transition:.2s}
.pnodex-alert-setting [role=switch] i{position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(20,25,35,.2);transition:.2s}
.pnodex-alert-setting [role=switch].is-on{background:#f2872d}.pnodex-alert-setting [role=switch].is-on i{transform:translateX(18px)}
.pnodex-panel-logout{display:flex;align-items:center;justify-content:center;height:39px;margin:0 14px 14px;border:1px solid #e2e5eb;border-radius:11px;color:#98a0ae;font-size:12px;font-weight:700;text-decoration:none}
.pnodex-member-guest{display:flex;align-items:center;gap:12px;padding:19px 16px 13px}
.pnodex-member-guest-icon{display:flex;align-items:center;justify-content:center;width:50px;height:50px;flex:0 0 50px;border-radius:17px;background:linear-gradient(135deg,#242a3d,#3b435e);color:#ff953a;font-size:22px;font-weight:900}
.pnodex-member-guest strong{display:block;font-size:16px}.pnodex-member-guest p{margin:4px 0 0;color:#8991a1;font-size:11px;line-height:1.5}
.pnodex-member-guest-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 14px 12px}.pnodex-member-guest-actions a{display:flex;align-items:center;justify-content:center;height:39px;border:1px solid #e2e6ed;border-radius:10px;background:#f7f8fa;color:#555f73;font-size:12px;font-weight:800;text-decoration:none}.pnodex-member-guest-actions a:first-child{border-color:#f28a2b;background:#f28a2b;color:#fff}

html.pnodex-modal-open{overflow:hidden}
.pnodex-server-modal{position:fixed;inset:0;z-index:100500;display:flex;visibility:hidden;align-items:center;justify-content:center;padding:24px;opacity:0;transition:opacity .18s,visibility .18s}
.pnodex-server-modal.is-open{visibility:visible;opacity:1}
.pnodex-server-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(17,20,31,.75);cursor:pointer;backdrop-filter:blur(6px)}
.pnodex-server-modal-card{position:relative;z-index:1;overflow:hidden;width:min(580px,100%);max-height:min(760px,calc(100vh - 48px));border-radius:20px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.35);transform:translateY(12px) scale(.98);transition:transform .22s}
.pnodex-server-modal.is-open .pnodex-server-modal-card{transform:none}
.pnodex-server-modal-card.is-today>header{display:flex;align-items:center;gap:13px;padding:20px 22px;border-bottom:3px solid #f28a2b;background:#252a3c;color:#fff}
.pnodex-modal-calendar{display:flex;align-items:center;justify-content:center;width:39px;height:39px;border-radius:11px;background:#363c51;color:#ff9436;font-size:25px}
.pnodex-server-modal-card header h2{margin:0;font-size:19px}.pnodex-server-modal-card header p{margin:4px 0 0;color:#aeb4c2;font-size:11px}
.pnodex-server-modal-card.is-today>header>button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:auto;border:0;border-radius:50%;background:#3c4256;color:#fff;font-size:25px;cursor:pointer}
.pnodex-server-list{overflow:auto;max-height:620px;padding:13px 22px 18px}
.pnodex-server-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-height:54px;border-bottom:1px solid #f0f1f4}
.pnodex-server-row:last-child{border-bottom:0}.pnodex-server-row strong{overflow:hidden;color:#262936;font-size:13px;white-space:nowrap;text-overflow:ellipsis}
.pnodex-server-row>a{display:flex;align-items:center;justify-content:center;height:31px;padding:0 11px;border-radius:8px;background:linear-gradient(135deg,#f79b29,#ef8118);color:#fff;font-size:11px;font-weight:800;text-decoration:none;box-shadow:0 5px 10px rgba(238,129,24,.2)}
.pnodex-server-badge{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:7px;background:#fff6dc;color:var(--badge-color);font-size:10px;font-weight:800;white-space:nowrap}.pnodex-server-badge:before{content:"●";margin-right:4px;font-size:7px}
.pnodex-server-empty{padding:80px 15px;color:#9ba1ad;text-align:center;font-size:13px}
.pnodex-server-modal-card.is-alert{width:min(340px,100%);padding-bottom:13px;border-radius:19px;text-align:center}
.pnodex-server-modal-card.is-alert>header{padding:22px 20px 17px;background:linear-gradient(135deg,#f58c2e,#ec791c);color:#fff}
.pnodex-modal-bell{display:flex;align-items:center;justify-content:center;width:55px;height:55px;margin:0 auto 12px;border-radius:50%;background:rgba(255,255,255,.2);font-size:27px}
.pnodex-server-modal-card.is-alert header h2{font-size:19px}.pnodex-server-modal-card.is-alert header p{margin-top:5px;color:#fff;font-size:11px;font-weight:700}
.pnodex-server-modal-card.is-alert .pnodex-server-list{padding:8px 16px 5px}.pnodex-server-modal-card.is-alert .pnodex-server-row{min-height:48px;text-align:left}
.pnodex-open-pin{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:#5f65ef;color:#fff;font-size:12px}
.pnodex-alert-confirm{width:calc(100% - 32px);height:46px;margin:5px 16px 10px;border:0;border-radius:11px;background:#f18124;color:#fff;font-family:inherit;font-size:14px;font-weight:800;cursor:pointer}
.pnodex-alert-setting.is-modal{grid-template-columns:minmax(0,1fr) 44px;margin:0 16px;padding:11px 3px;border-width:1px 0 0;background:#fff;text-align:left}.pnodex-alert-setting.is-modal small{color:#aaa}
.pnodex-alert-hide-today{border:0;background:transparent;color:#a0a2aa;font-family:inherit;font-size:11px;cursor:pointer}

/* 추천 서버 열의 범용 너비 규칙이 레이어 내부까지 확장되지 않도록 고정. */
.pnodex-top-server .pnodex-server-modal>.pnodex-server-modal-card.is-today{width:min(580px,calc(100vw - 48px));max-width:580px}
.pnodex-top-server .pnodex-server-modal>.pnodex-server-modal-card.is-alert{width:min(340px,calc(100vw - 48px));max-width:340px}

@media(max-width:720px){
    .pnodex-member-panel{border-radius:15px}
    .pnodex-server-modal{align-items:flex-end;padding:12px}
    .pnodex-server-modal-card{max-height:calc(100vh - 24px);border-radius:20px 20px 14px 14px}
    .pnodex-server-modal-card.is-today{width:100%}
    .pnodex-server-list{max-height:60vh;padding-left:15px;padding-right:15px}
}
