@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{font-family:'Noto Sans KR',sans-serif;color:#26332c;background:#f6f7f2;font-size:14px}*{box-sizing:border-box}body{margin:0}button,select,a{font:inherit}button,a,select{touch-action:manipulation}button,select{cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none;color:inherit}aside{position:fixed;inset:0 auto 0 0;width:238px;background:#eef0e8;border-right:1px solid #dee4d8;padding:36px 24px}.brand{display:flex;gap:12px;align-items:center;font-size:27px;font-weight:800}.brand span{font-size:19px}.brand small{display:block;font-size:9px;letter-spacing:2px;color:#7f897c;margin-top:5px}.aside-label{color:#899184;font-size:11px;letter-spacing:2px;margin:64px 16px 15px}nav button{display:block;text-align:left;width:100%;padding:15px;border-radius:9px;color:#677263;margin-bottom:7px}nav .active{background:#dfe7d4;color:#344f28;font-weight:700}.aside-bottom{position:absolute;bottom:34px;font-size:12px;color:#5f7155;line-height:2}.aside-bottom small{color:#8c9685}.dot{display:inline-block;width:7px;height:7px;background:#72935a;border-radius:50%;margin-right:5px}main{margin-left:238px;padding:0 48px;max-width:1600px}header{height:91px;border-bottom:1px solid #e2e6dc;display:flex;align-items:center;justify-content:space-between;font-size:12px}.muted{color:#849080}h1{font-size:36px;letter-spacing:-1.5px;line-height:1.4;margin:12px 0}h2{font-size:18px;margin:0 0 10px}p{color:#788272;line-height:1.9}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#899879}.intro{display:flex;justify-content:space-between;align-items:center;padding:45px 0 20px}.intro p{margin:0}.primary{display:inline-block;background:#496c37;color:white;padding:12px 23px;border-radius:8px;font-weight:600}.primary:hover{background:#365528}.secondary{border:1px solid #dbe1d3;background:#fff;padding:10px 16px;border-radius:8px;color:#617355}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0 34px}.card{background:#fff;border:1px solid #e3e7dc;border-radius:12px;padding:22px}.card h3{font-size:13px;margin:0 0 15px}.card strong{font-size:17px}.card small{display:block;margin-top:8px;color:#8a9383}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 0}.section-heading h2{margin:0}select{border:1px solid #dce2d5;background:#fff;color:#526349;padding:10px 12px;border-radius:7px;max-width:100%}.feed{background:white;border:1px solid #e3e7dc;border-radius:12px;overflow:hidden}.item{padding:22px 25px;border-bottom:1px solid #edf0e7;display:flex;gap:18px;align-items:center}.item:last-child{border:0}.item .badge{font-size:11px;border-radius:5px;padding:6px 9px;background:#eef3e7;color:#6a8055;white-space:nowrap}.item-title{font-size:14px;font-weight:600;margin-bottom:6px}.item time{color:#8f9889;font-size:11px}.item .body{flex:1}.item button{color:#789361;font-size:12px;white-space:nowrap}.empty{padding:50px;text-align:center;color:#86907d;line-height:2}.panel,.setting-row{background:#fff;border:1px solid #e3e7dc;padding:25px;border-radius:12px;margin-bottom:15px}.panel p{font-size:13px}.setting-row{display:grid;grid-template-columns:145px 1fr 1fr 1fr;gap:18px;align-items:center}.setting-row label{font-size:11px;color:#7c8773;display:block}.setting-row select{display:block;width:100%;margin-top:8px}.setting-row input{accent-color:#557a3b}.setting-row h3{font-size:14px}.save-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:25px 0}.save-bar span{font-size:12px;color:#849078}footer{font-size:11px;color:#95a08b;padding:35px 0;display:flex;justify-content:space-between}#notice:not(:empty){background:#edf2e5;border:1px solid #d9e2cb;border-radius:8px;padding:13px 18px;margin-bottom:20px}#welcome{position:relative;min-height:570px;padding:100px 0}#welcome h1{font-size:46px}#welcome .primary{margin-top:18px}#setup-note{font-size:12px}.orb{position:absolute;right:7%;top:140px;font-size:160px;color:#8ca675;transform:rotate(-8deg);text-align:center;text-shadow:0 20px 70px #c6d5b0}.orb span{display:block;font-size:15px;letter-spacing:4px}dialog{border:1px solid #dfe5d7;border-radius:16px;width:700px;max-width:94vw;max-height:85vh;padding:25px}dialog::backdrop{background:#182b2477}#preview-content{margin-top:20px}.message{background:#313338;color:#e5e5e8;padding:18px;border-radius:8px;margin:12px 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.message img{display:block;max-width:100%;max-height:400px;margin:12px 0;object-fit:contain}.message a{color:#a6c87d}.error{color:#b55e44}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #a2be85;outline-offset:3px}[hidden]{display:none!important}@media(max-width:950px){aside{width:190px;padding:25px 15px}main{margin-left:190px;padding:0 25px}.orb{display:none}.cards{grid-template-columns:repeat(2,1fr)}.setting-row{grid-template-columns:1fr 1fr}}@media(max-width:600px){aside{position:static;width:100%;padding:20px;border:0}.aside-label,.aside-bottom{display:none}nav{display:flex;margin-top:20px}nav button{font-size:12px;margin:0}.brand{font-size:20px}main{margin:0;padding:0 20px}header{height:60px}.intro{padding-top:25px}h1{font-size:29px}.cards{gap:10px}.card{padding:15px}.item{padding:17px 14px;gap:10px}.item .badge{font-size:10px}.item-title{font-size:12px}.item button{font-size:10px}footer{display:block;line-height:2}footer span{display:block}.save-bar{align-items:flex-start;flex-direction:column}#welcome{padding:50px 0;min-height:460px}#welcome h1{font-size:37px}}
/* Spacious screens retain a centered, readable login surface. */
body:not(.authenticated){background:radial-gradient(ellipse at 50% 20%,#e7eedb 0%,#f6f7f2 65%)}
body:not(.authenticated) aside{display:none}
body:not(.authenticated) main{margin:0 auto;width:min(1120px,100%);max-width:1120px;padding:0 40px;min-height:100vh;display:flex;flex-direction:column}
body:not(.authenticated) header{height:88px;flex-shrink:0;font-size:14px}
body:not(.authenticated) #welcome{width:min(680px,100%);margin:auto;min-height:0;padding:58px 48px;text-align:center;background:#ffffffd9;border:1px solid #dfe5d7;border-radius:24px;box-shadow:0 24px 80px #35452a0a}
body:not(.authenticated) #welcome .eyebrow{font-size:12px;letter-spacing:2px}
body:not(.authenticated) #welcome h1{font-size:44px;line-height:1.35;margin:22px 0}
body:not(.authenticated) #welcome p{font-size:16px}
body:not(.authenticated) #welcome .primary{display:block;width:100%;max-width:380px;margin:30px auto 0;padding:16px;background:#5865f2;font-size:16px}
body:not(.authenticated) #welcome .primary[aria-disabled=true]{background:#e7eadf;color:#7b8472;cursor:default}
body:not(.authenticated) #welcome #setup-note{font-size:13px;line-height:1.8;margin:18px auto 0;max-width:390px}
body:not(.authenticated) .orb{display:none}
body:not(.authenticated) footer{padding:28px 0;font-size:12px}
body.authenticated main{max-width:none;width:calc(100% - 238px);padding:0 clamp(24px,4vw,80px)}
@media(min-width:1900px){body.authenticated #dashboard{max-width:1600px;margin:auto}body.authenticated header,body.authenticated footer{max-width:1600px;margin:auto}}
@media(max-width:950px){body.authenticated main{width:calc(100% - 190px)}}
@media(max-width:600px){body:not(.authenticated) main{padding:0 20px}body:not(.authenticated) #welcome{padding:36px 22px;margin:32px auto}body:not(.authenticated) #welcome h1{font-size:32px}body:not(.authenticated) header{height:72px}body.authenticated main{width:100%}}

.connection-warning{background:#fff4df;border:1px solid #ead6b3;border-radius:8px;padding:16px;color:#705023;font-size:14px!important;max-width:780px}select:disabled{cursor:not-allowed;opacity:.75}

.guild-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:22px 0}.guild-actions .primary{background:#5865f2}.guild-actions .primary:hover{background:#4752c4}

.guild-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px;margin:20px 0}.guild-card{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid #dfe5d7;border-radius:12px;padding:20px}.guild-card h3{margin:0 0 8px;font-size:16px;overflow-wrap:anywhere}.guild-card small{color:#788272}.guild-card a,.guild-card button{white-space:nowrap;font-size:13px}

/* Server directory: preserve the existing light green palette. */
.server-directory{background:transparent;border:0;padding:0}
.server-directory>h2{font-size:21px}.server-directory>p{margin-top:8px}
.guild-actions{justify-content:flex-end;margin:12px 0 22px}
.guild-cards{display:block;margin:0}
.guild-group{margin:0 0 32px}
.guild-group-title{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;margin:0 0 16px}
.connected-dot{color:#6b9850;font-size:10px}.disconnected-dot{color:#abb2a4;font-size:10px}
.guild-count{background:#e6ecdf;color:#748465;font-size:11px;border-radius:20px;padding:2px 8px}
.guild-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.guild-card{display:flex;flex-direction:column;align-items:stretch;gap:18px;background:#fff;border:1px solid #dfe5d7;padding:22px;border-radius:14px;min-width:0;transition:border-color .15s,box-shadow .15s}
.guild-card:hover{border-color:#a9bc97;box-shadow:0 5px 18px #35452a08}
.guild-card-top{display:flex;align-items:center;gap:14px;min-width:0}
.guild-avatar{flex-shrink:0;position:relative;width:44px;height:44px;border-radius:12px;background:#edf2e5;color:#6a8852;display:grid;place-items:center;font-size:18px;font-weight:700;overflow:hidden}
.guild-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.guild-info{min-width:0}.guild-card h3{font-size:14px;line-height:1.5;margin:0 0 5px;overflow-wrap:anywhere}
.guild-card small{font-size:11px}.guild-card .connected-label{color:#639247}.guild-card .disconnected-label{color:#8c9585}
.guild-card .guild-card-action{display:block;width:100%;border:1px solid #d6e1cb;border-radius:7px;background:#fafcf7;padding:9px 12px;text-align:center;color:#63834a;font-size:12px;font-weight:600}
.guild-card .guild-card-action:hover{background:#eaf1e1;border-color:#a5be91}
.guild-empty{grid-column:1/-1;padding:25px;border:1px dashed #d8e0cf;border-radius:12px;color:#89937f;font-size:13px;margin:0}
#settings-form{scroll-margin-top:30px}
@media(max-width:1200px){.guild-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.guild-grid{grid-template-columns:1fr}.guild-actions{justify-content:flex-start}}

/* Compact notification editor. */
#settings-form{max-width:1160px;margin:32px auto 0}
#selected-guild-title{font-size:22px;padding:0 0 20px;margin:0;border-bottom:1px solid #dfe5d7;letter-spacing:-.5px}
#setting-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}
.setting-row{margin:0;padding:22px;grid-template-columns:1fr 1fr;gap:18px;background:#fff;border-radius:14px;border:1px solid #e0e6d9;box-shadow:0 2px 6px #26332c03}
.setting-row>div:first-child{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid #edf0e8}
.setting-row h3{margin:0;font-size:16px;letter-spacing:-.3px}
.setting-row>label:last-child{grid-column:1/-1}
.setting-row label{font-size:12px;color:#697660}
.setting-row select{font-size:13px;padding:11px 12px;background:#fafbf8;min-height:42px;margin-top:7px}
.setting-row input[type=checkbox]{appearance:none;vertical-align:middle;position:relative;width:34px;height:20px;background:#dbe1d4;border-radius:20px;margin:0 7px 0 0;cursor:pointer;transition:background .15s}
.setting-row input[type=checkbox]::after{content:'';position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:white;box-shadow:0 1px 3px #0002;transition:transform .15s}
.setting-row input[type=checkbox]:checked{background:#66894d}.setting-row input[type=checkbox]:checked::after{transform:translateX(14px)}
.setting-row input[type=checkbox]:focus-visible{outline:3px solid #a2be85;outline-offset:3px}
.save-bar{position:sticky;bottom:16px;background:#fffffff2;backdrop-filter:blur(12px);border:1px solid #dfe5d7;border-radius:12px;padding:16px 20px;box-shadow:0 5px 24px #26332c0a}
.save-bar .primary{padding:12px 26px}.save-bar span{line-height:1.7}
@media(max-width:1000px){#setting-rows{grid-template-columns:1fr}}
@media(max-width:600px){.setting-row{padding:18px;gap:14px}.save-bar{position:static;align-items:stretch}.save-bar .primary{width:100%}}
