@font-face{font-family:LocalSans;src:local("Pretendard"),local("Noto Sans KR"),local("Malgun Gothic");font-display:swap}
:root{font-family:LocalSans,"Segoe UI",sans-serif;color:#253c37;background:#eff2ee;font-size:14px;--green:#164d43;--muted:#7a8882;--line:#e4e9e4;--pale:#edf5ec;--accent:#d5edbc;--danger:#b34f49;color-scheme:light}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button,input,textarea,select{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #308574}button{color:inherit}button svg{pointer-events:none}a{color:var(--green)}.icon{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.muted{color:var(--muted)}.small{font-size:12px}.hidden{display:none!important}.primary{background:var(--green);color:#fff;border:0;border-radius:10px;padding:12px 18px;font-weight:600}.secondary{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 15px}.danger{color:var(--danger)}.link-button{border:0;background:none;padding:6px;color:var(--green)}.icon-button{width:38px;height:38px;border:0;background:transparent;border-radius:9px;display:grid;place-items:center}.icon-button:hover{background:var(--pale)}.brand-symbol{height:43px;width:43px;display:grid;place-items:center;background:var(--green);color:var(--accent);font-size:28px;font-weight:700;border-radius:13px;font-family:Georgia,serif}.brand{display:flex;gap:12px;align-items:center}.brand strong{font-size:17px;letter-spacing:-.5px}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:600;color:#839188}.loading{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.error-text{color:var(--danger);font-size:13px;margin:8px 0;min-height:18px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.field label{font-size:13px;font-weight:600}.field input,.field select,.field textarea{width:100%;border:1px solid #dce3dd;background:#fff;border-radius:9px;padding:11px 12px;color:#253c37;min-height:43px}.field input::placeholder,.field textarea::placeholder{color:#a0aaa4}.field textarea{resize:vertical;min-height:75px}.button-row{display:flex;gap:9px;justify-content:flex-end;margin-top:22px}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-art{padding:60px 11%;display:flex;flex-direction:column;justify-content:center;background:#164d43;color:#ecf5e7;position:relative;overflow:hidden}.auth-art .brand-symbol{background:#d5edbc;color:#164d43}.auth-art .eyebrow{color:#a1c4ae}.auth-art h1{font-size:clamp(32px,4vw,56px);font-weight:500;line-height:1.35;letter-spacing:-2px;margin:68px 0 22px}.auth-art p{line-height:1.9;color:#b8d0c1;max-width:340px}.auth-demo{margin-top:45px;background:#ffffff0b;border:1px solid #ffffff20;border-radius:16px;max-width:330px;padding:22px}.auth-demo .demo-line{height:9px;border-radius:6px;background:#ffffff16;margin-top:14px;width:85%}.auth-demo .demo-line.short{width:55%}.auth-demo .demo-state{display:flex;gap:8px;align-items:center;font-size:13px;color:#d5edbc}.auth-main{display:flex;align-items:center;justify-content:center;padding:50px 30px;background:#fafbf8}.auth-card{width:100%;max-width:360px}.auth-card h2{font-size:27px;letter-spacing:-1px;margin:0 0 12px}.auth-card>p{line-height:1.7;margin:0 0 32px;color:var(--muted)}.auth-card .primary{width:100%;margin-top:5px}.auth-foot{margin-top:30px;font-size:12px;text-align:center;color:#87968b}
.app-shell{height:100dvh;min-height:500px;display:grid;grid-template-columns:76px 300px minmax(0,1fr);background:#fff;overflow:hidden}.rail{background:#164d43;color:#c7dfd0;display:flex;flex-direction:column;align-items:center;padding:26px 0 18px;gap:20px}.rail .brand-symbol{background:#d5edbc;color:#164d43;width:40px;height:40px;border-radius:13px;margin-bottom:22px}.rail .icon-button{color:#bcd3c5;height:43px;width:43px;border-radius:13px}.rail .icon-button.active{background:#ffffff1a;color:#edfae9}.rail .icon-button:hover{background:#ffffff22}.rail .spacer{flex:1}.rail-label{font-size:9px;letter-spacing:1.5px;writing-mode:vertical-rl;color:#8bad9a;margin-bottom:12px}.sidebar{display:flex;flex-direction:column;min-height:0;background:#fafbf9;border-right:1px solid var(--line)}.sidebar-top{padding:27px 23px 16px}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;margin:14px 0 21px}.sidebar-heading h1{font-size:22px;letter-spacing:-.8px;margin:0}.count-pill{font-size:11px;background:#e4eddf;border-radius:7px;padding:4px 7px;color:#55724f;margin-left:6px}.search-box{display:flex;align-items:center;gap:9px;background:#eef1eb;border-radius:10px;padding:0 12px}.search-box .icon{width:16px;height:16px;color:#8e9b8f}.search-box input{border:0;background:transparent;outline:none;padding:11px 0;width:100%;font-size:13px}.tabs{display:flex;margin-top:17px;border-bottom:1px solid var(--line)}.tabs button{flex:1;background:none;border:0;border-bottom:2px solid transparent;padding:10px 0;color:#829080;font-size:13px}.tabs button.selected{color:var(--green);border-bottom-color:var(--green);font-weight:600}.list-caption{padding:14px 24px 9px;font-size:10px;letter-spacing:1px;color:#97a095;font-weight:600}.sidebar-list{overflow-y:auto;flex:1;padding:0 10px 12px}.room-button{border:0;background:transparent;width:100%;display:flex;gap:11px;text-align:left;padding:13px 12px;border-radius:12px;align-items:center;min-height:76px}.room-button:hover{background:#f0f4ec}.room-button.selected{background:#eaf1e2}.avatar{width:42px;height:42px;background:#e5ece4;border-radius:14px;display:flex;align-items:center;justify-content:center;position:relative;flex:none;font-size:14px;font-weight:600;color:#547253}.avatar.group{background:#d9e9ca;color:#416335}.avatar .icon{height:23px;width:23px}.avatar.own{background:#dbe9df;color:#164d43}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#a4afa6;flex:none}.dot.online{background:#5fa777}.dot.away{background:#dea64c}.dot.busy,.dot.meeting{background:#ca7965}.dot.field{background:#779cb4}.dot.leave{background:#9b8ab0}.avatar .dot{position:absolute;bottom:-1px;right:-1px;width:12px;height:12px;border:2px solid #fafbf9}.room-info{min-width:0;flex:1}.room-name-row{display:flex;align-items:center;gap:5px;justify-content:space-between}.room-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-time{font-size:10px;color:#8e9b8b;white-space:nowrap}.room-preview{display:flex;align-items:center;gap:6px;margin-top:7px;font-size:12px;color:#8a9586;min-width:0}.room-preview>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.unread{font-size:10px;font-weight:600;min-width:18px;height:18px;padding:1px 5px;display:grid;place-items:center;background:#437b54;color:#fff;border-radius:6px}.sidebar-empty{font-size:13px;color:var(--muted);text-align:center;padding:25px 10px;line-height:1.8}.profile-footer{padding:17px 21px;border-top:1px solid var(--line);display:flex;gap:11px;align-items:center}.profile-footer .avatar{width:38px;height:38px;border-radius:12px}.profile-name{font-size:13px;font-weight:600}.profile-status{border:0;background:none;color:#7d8c7d;font-size:11px;padding:5px 0 0;display:flex;align-items:center;gap:5px}.profile-footer .profile-info{flex:1;min-width:0}.connection{padding:8px 20px;font-size:11px;color:#a27035;background:#fff3d9;text-align:center}.chat-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:#fff}.chat-header{min-height:91px;border-bottom:1px solid var(--line);padding:20px 32px;display:flex;align-items:center;gap:12px}.chat-header .head-copy{flex:1;min-width:0}.chat-header h2{font-size:17px;margin:0 0 6px;letter-spacing:-.4px}.chat-header p{font-size:12px;color:#84917f;margin:0;display:flex;align-items:center;gap:6px}.header-badge{font-size:11px;color:#779171;padding:7px 11px;background:#f0f6e9;border-radius:8px}.mobile-back{display:none}.messages{flex:1;overflow-y:auto;padding:26px 36px 28px;background:radial-gradient(ellipse at 90% 4%,#f6f9f1 0,transparent 52%),#fff;scroll-behavior:auto}.day-separator{display:flex;align-items:center;gap:20px;color:#97a08f;font-size:11px;justify-content:center;margin:15px 0 30px}.day-separator:before,.day-separator:after{content:"";height:1px;background:#edf0e8;flex:1;max-width:150px}.message{display:flex;gap:10px;margin:0 0 24px;align-items:flex-start}.message .avatar{height:33px;width:33px;border-radius:11px;font-size:11px}.message-content{max-width:min(75%,660px);min-width:0}.message-author{font-size:11px;color:#7a8d7d;margin:2px 0 7px 2px}.message-line{display:flex;align-items:flex-end;gap:9px}.bubble{padding:12px 16px;line-height:1.75;font-size:13px;border-radius:0 15px 15px 15px;background:#f0f3ee;color:#364b3c;white-space:pre-wrap;overflow-wrap:anywhere;min-width:28px}.bubble a{color:inherit;text-decoration:underline}.message-time{font-size:10px;color:#a0a999;white-space:nowrap;padding-bottom:3px}.message.self{flex-direction:row-reverse}.message.self .message-content{max-width:min(78%,660px)}.message.self .message-line{flex-direction:row-reverse}.message.self .bubble{background:#dcebcf;border-radius:15px 0 15px 15px;color:#304b2b}.empty-chat{height:100%;min-height:220px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#8b9987;padding:20px}.empty-chat .empty-symbol{height:80px;width:80px;border-radius:28px;background:#f0f6e9;color:#72956a;display:grid;place-items:center;margin-bottom:20px}.empty-symbol .icon{width:33px;height:33px}.empty-chat h3{color:#52664b;font-size:20px;letter-spacing:-.5px;margin:0 0 9px;font-weight:500}.empty-chat p{font-size:13px;line-height:1.8;margin:0}.load-more{display:block;margin:0 auto 20px;border:1px solid var(--line);background:#fff;color:#8a9981;border-radius:8px;font-size:11px;padding:7px 13px}.composer-area{padding:0 30px 20px;background:#fff}.composer{border:1px solid #dfe7d9;border-radius:14px;background:#fdfefb;box-shadow:0 5px 15px #1c422b04;overflow:hidden}.composer:focus-within{border-color:#9dbb90}.composer textarea{resize:none;width:100%;border:0;background:transparent;outline:none;display:block;min-height:64px;max-height:130px;padding:17px 18px;font-size:13px;line-height:1.65;color:#304734}.composer textarea::placeholder{color:#a0ad99}.composer-bottom{display:flex;align-items:center;gap:10px;padding:0 12px 12px}.composer-bottom .input-hint{font-size:10px;color:#a2ad9b;flex:1;padding-left:6px}.composer-bottom .counter{font-size:10px;color:#a2ad9b}.send-button{border:0;background:var(--green);color:#edf5e6;border-radius:9px;padding:9px 12px;display:flex;gap:7px;align-items:center;font-size:12px}.send-button .icon{width:16px;height:16px}.composer-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;color:#a8b09e;font-size:10px}.composer-foot .icon{width:11px;height:11px;margin-right:4px;vertical-align:-2px}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.modal-header h2{font-size:20px;letter-spacing:-.6px;margin:4px 0 8px}.modal-header p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.modal-header .icon-button{margin:-7px -8px 0 0;flex:none}dialog{border:1px solid #e2e8dd;border-radius:20px;padding:28px;box-shadow:0 30px 120px #10302430;width:calc(100% - 32px);max-width:470px;max-height:88vh;color:#253c37}dialog::backdrop{background:#102b244f;backdrop-filter:blur(3px)}dialog.wide{max-width:620px}.status-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:22px}.status-choice{display:flex;align-items:center;justify-content:center;gap:7px;background:#f9fbf6;border:1px solid #e6ebe1;border-radius:10px;padding:12px 5px;font-size:12px}.status-choice.selected{background:#eaf4e3;border-color:#7d9f6e;color:#3c6630}.status-note{font-size:11px;color:#8a9782;line-height:1.8;margin:20px 0 0}.admin-create{background:#f6f8f3;border-radius:12px;padding:18px;margin-bottom:22px}.admin-create h3{font-size:13px;margin:0 0 17px}.admin-create .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-create .field{margin-bottom:12px}.admin-create .field label{font-size:11px}.admin-person{display:flex;align-items:center;gap:11px;padding:14px 0;border-bottom:1px solid var(--line)}.admin-person .person-copy{flex:1}.admin-person .person-copy strong{font-size:13px}.admin-person .person-copy p{font-size:11px;color:var(--muted);margin:5px 0 0}.admin-actions{display:flex;gap:5px}.admin-actions button{font-size:11px}.admin-person.inactive{opacity:.65}.notice-box{font-size:12px;line-height:1.8;border-radius:10px;background:#f1f6ec;padding:15px;color:#61765a}.settings-list{display:flex;flex-direction:column;gap:10px}.settings-item{border:1px solid var(--line);border-radius:10px;background:#fff;padding:15px;text-align:left;display:flex;align-items:center;gap:12px}.settings-item .icon{color:#6a8261}.settings-item>span{flex:1}.settings-item small{display:block;color:var(--muted);margin-top:4px;font-size:11px}#toast{position:fixed;bottom:27px;left:50%;transform:translate(-50%,20px);background:#244d3e;color:#fff;padding:12px 20px;border-radius:11px;box-shadow:0 8px 40px #12312222;opacity:0;pointer-events:none;transition:.2s;font-size:13px;max-width:90vw;z-index:1000}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1450px){.messages{padding-left:7%;padding-right:7%}.composer-area{padding-left:6%;padding-right:6%}.chat-header{padding-left:6%;padding-right:6%}}
@media(max-width:1000px){.app-shell{grid-template-columns:63px 270px minmax(0,1fr)}.sidebar-top{padding-left:18px;padding-right:18px}.chat-header{padding:18px 23px}.messages{padding:20px}.composer-area{padding:0 18px 17px}.header-badge{display:none}.message-content,.message.self .message-content{max-width:85%}}
@media(max-width:700px){.auth-shell{grid-template-columns:1fr}.auth-art{display:none}.auth-main{min-height:100vh;padding:35px 26px}.app-shell{grid-template-columns:57px minmax(0,1fr)}.rail{padding-top:22px}.rail .brand-symbol{width:35px;height:35px}.sidebar{border:0}.chat-panel{display:none}.app-shell.mobile-chat{grid-template-columns:1fr}.mobile-chat .rail,.mobile-chat .sidebar{display:none}.mobile-chat .chat-panel{display:flex}.mobile-back{display:grid}.chat-header{min-height:80px;padding:15px 14px;gap:8px}.chat-header h2{font-size:16px}.chat-header .avatar{width:36px;height:36px;border-radius:11px}.messages{padding:18px 15px}.composer-area{padding:0 11px 12px}.message-content,.message.self .message-content{max-width:84%}.message-line{gap:5px}.message-time{font-size:9px}.bubble{padding:10px 12px}.composer-foot{font-size:9px}.composer-bottom .input-hint{font-size:9px}.admin-create .form-grid{grid-template-columns:1fr;gap:0}.admin-actions{flex-direction:column}dialog{padding:22px}.status-options{gap:6px}.status-choice{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.attach-button{display:flex;align-items:center;gap:5px;flex:none;border:0;border-radius:7px;background:#edf4e8;padding:7px 9px;font-size:11px;color:var(--green)}
.attach-button .icon{width:17px;height:17px}.file-policy{font-size:10px;line-height:1.5;color:#75867a;padding:4px 2px 0}
.file-card{display:flex;align-items:center;gap:11px;max-width:420px;min-width:0;padding:15px;border:1px solid #dbe5d6;border-radius:13px;background:#f4f8ef}
.message.self .file-card{background:#e4efd8}.file-symbol{display:grid;place-items:center;flex:none;width:38px;height:44px;border-radius:9px;background:#d6e6c7;color:#526f42}
.file-copy{display:flex;flex-direction:column;gap:5px;min-width:0;overflow-wrap:anywhere}.file-copy strong{font-size:13px;line-height:1.5;font-weight:600}.file-copy span{font-size:11px;color:#60765a}.file-copy small{font-size:10px;line-height:1.5;color:#71856b}
.file-download{flex:none;border:1px solid #cadbc0;border-radius:7px;background:white;padding:8px;font-size:11px}.file-card.expired{background:#f2f3f0!important;border-color:#e2e5df}.expired .file-symbol{background:#e3e6df;color:#889281}.expired .file-copy{color:#7e8778}
.file-confirm{padding:15px;background:#f2f6ed;border-radius:10px;overflow-wrap:anywhere}.file-confirm p{margin-bottom:0;color:#768770;font-size:12px}
.upload-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px;padding:8px 2px;color:var(--green)}.upload-status>span{overflow-wrap:anywhere;min-width:0;flex:1}.upload-status progress{width:90px;accent-color:var(--green)}
@media(max-width:1000px){.composer-bottom .input-hint{display:none}.file-card{gap:8px;padding:11px}.file-symbol{width:29px;height:37px}.file-policy{font-size:9px}}
@media(max-width:700px){.file-card{flex-wrap:wrap}.file-copy{flex:1;min-width:100px}.file-download{margin-left:auto}.file-policy{max-width:100%;line-height:1.6}.composer-bottom{gap:8px}}
