:root{font-family:Inter,Pretendard,"Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#292831;background:#faf9f7;font-synthesis:none;--plum:#342b40;--green:#386b58;--line:#e9e7eb;--muted:#83808a}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid #b7a1d5;outline-offset:3px}input,textarea{width:100%;border:1px solid #dedce2;border-radius:8px;padding:12px;background:white;color:#292831;outline:none}input:focus,textarea:focus{border-color:#80708f;box-shadow:0 0 0 3px #80708f18}textarea{resize:vertical}label{display:block;font-size:13px;font-weight:600;margin:18px 0 8px}label input{margin-top:8px}h1,h2,p{margin-top:0}[hidden]{display:none!important}.brand{display:flex;align-items:center;gap:10px;font-weight:750;letter-spacing:1.6px;font-size:18px}.brand small{font-size:9px;font-weight:500;letter-spacing:2px;opacity:.55}.mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#c9dbb7;color:#342b40;font-size:22px;font-weight:900;letter-spacing:-3px;padding-right:3px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted)}.auth{min-height:100dvh;display:grid;grid-template-columns:1.05fr 1fr}.auth-story{background:var(--plum);color:#fff;padding:48px 64px;display:flex;flex-direction:column;justify-content:space-between;min-height:100dvh}.auth-story .eyebrow{color:#c9dbb7}.auth-story h1{font-size:clamp(32px,3.2vw,52px);letter-spacing:-2.4px;line-height:1.45;margin:24px 0}.auth-story p{color:#c2bacb;line-height:1.9;font-size:14px}.auth-story>small{color:#a098ab;font-size:10px;letter-spacing:2px}.story-card{border:1px solid #ffffff24;border-radius:12px;padding:20px;margin-top:42px;display:flex;gap:12px;align-items:center;font-size:13px}.story-card>span:last-child{margin-left:auto;color:#c9dbb7}.status-dot{width:7px;height:7px;display:inline-block;border-radius:100%;background:#a5c18a;flex-shrink:0}.auth-panel{display:grid;place-items:center;padding:36px}.auth-panel form{width:min(100%,370px)}.auth-panel h2{font-size:29px;letter-spacing:-1.1px;margin:18px 0 12px}.auth-panel p{font-size:13px;line-height:1.7;color:var(--muted)}.primary{background:var(--green);color:white;border-radius:8px;padding:13px 20px;font-size:13px;font-weight:650}.auth-panel .primary{width:100%;margin-top:24px}.error{color:#a43d4e!important;font-size:13px;line-height:1.6}.hint{font-size:12px;color:var(--muted);line-height:1.7}.workspace{height:100dvh;display:grid;grid-template-columns:248px minmax(0,1fr);overflow:hidden}aside{background:var(--plum);color:#e0dbe6;padding:26px 14px 14px;display:flex;flex-direction:column;overflow:auto}aside .brand{padding:0 14px}.workspace-label{display:flex;align-items:center;gap:7px;font-size:10px;color:#afa6b9;margin:22px 14px}.connection{margin-left:auto;font-size:9px;color:#b9cbac}.nav-action{background:#ffffff0c;border:1px solid #ffffff12;border-radius:8px;text-align:left;padding:12px 14px;font-size:12px;margin-bottom:23px}.nav-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;letter-spacing:.5px;color:#a79db2;margin:10px 14px}.nav-heading button{font-size:20px}nav{display:grid;gap:3px;margin-bottom:22px}nav button{display:flex;align-items:center;text-align:left;gap:10px;padding:10px 14px;border-radius:7px;font-size:13px;color:#c9c1d2}nav button:hover{background:#ffffff09}nav button.active{background:#d4e1c7;color:#2c3c2e;font-weight:650}nav button .hash{font-size:17px;opacity:.6;width:16px}nav button .badge{margin-left:auto;background:#fff2;color:inherit;border-radius:4px;padding:1px 5px;font-size:10px}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff14;padding-top:12px}.sidebar-bottom>button{display:block;font-size:12px;color:#bcb3c6;padding:9px 14px}.profile{display:flex;align-items:center;gap:10px;margin:16px 10px 0}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#e6deed;color:#594c67;font-size:13px;font-weight:750;flex-shrink:0}.profile .avatar{background:#c9dbb7;color:#3f5035}.profile strong{font-size:12px}.profile small{display:block;font-size:9px;color:#a69bad;margin-top:4px}.profile .icon{margin-left:auto}main{display:flex;flex-direction:column;min-width:0;background:#fff}.room-header{height:92px;padding:22px 32px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:20px}.room-heading h1{font-size:21px;letter-spacing:-.8px;margin:5px 0 0}.room-heading .eyebrow{font-size:9px}.member-button{font-size:11px;color:#7e7785;border:1px solid var(--line);border-radius:7px;padding:7px 10px}.search{margin-left:auto;display:flex;align-items:center;background:#f6f5f7;border-radius:8px;padding-right:10px;width:230px}.search input{background:none;border:0;font-size:11px;padding:11px}.search button{font-size:23px}.chat-layout{display:flex;flex:1;min-height:0}.conversation{display:flex;flex-direction:column;flex:1;min-width:0}.messages{flex:1;overflow-y:auto;padding:24px 30px;scroll-behavior:auto}.welcome{padding:50px 0 28px;border-bottom:1px solid var(--line);margin-bottom:24px}.welcome .welcome-icon{background:#f0edf4;border-radius:18px;width:58px;height:58px;display:grid;place-items:center;font-size:28px;color:#7e6d8e;margin-bottom:20px}.welcome h2{font-size:25px;letter-spacing:-1px}.welcome p{font-size:13px;color:var(--muted);line-height:1.8}.date-label{text-align:center;color:#9a949f;font-size:10px;margin:15px 0 26px}.message{display:flex;gap:12px;margin:0 -10px;padding:12px 10px;border-radius:8px}.message:hover{background:#faf9fb}.message-main{min-width:0;flex:1}.message-author{font-size:12px;font-weight:700}.message time{font-size:10px;color:#a09aa5;margin-left:9px}.message-body{font-size:13px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:5px}.message-body a{color:#386b58}.reply-button{font-size:10px;color:#6d5a84;padding:5px 0;margin-top:4px}.file-link{display:block;color:var(--green);padding:9px 12px;background:#f3f6f2;border:1px solid #e3eadf;border-radius:6px;margin-top:8px;text-decoration:none;font-size:12px;overflow-wrap:anywhere}.composer-wrap{padding:12px 30px 0}.composer{border:1px solid #d8d3de;border-radius:12px;overflow:hidden;background:white;box-shadow:0 3px 15px #342b4004}.composer:focus-within{border-color:#9b8ba8}.composer textarea{border:0;box-shadow:none;font-size:13px;padding:17px 18px;resize:none;min-height:75px}.composer-tools{padding:8px 12px;display:flex;align-items:center;gap:14px;border-top:1px solid #f1eff3}.composer-tools>span{font-size:9px;color:#a09aa5}.attach{margin:0;font-size:23px;font-weight:400;cursor:pointer;color:#8e8398}.send{margin-left:auto;background:var(--green);color:white;border-radius:6px;padding:8px 13px;font-size:11px;font-weight:600}.composer-hint{font-size:9px;color:#aaa3b0;text-align:center;margin:10px 0 12px}.attachments{display:flex;gap:6px;flex-wrap:wrap;padding:0 10px}.attachments button{font-size:11px;background:#eff3ec;border-radius:5px;padding:7px;margin-top:10px}.thread{width:350px;border-left:1px solid var(--line);display:flex;flex-direction:column;background:#fdfcfe}.thread header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:18px 20px;font-size:13px}.thread .messages{padding:15px}.thread form{padding:18px}.thread textarea{font-size:12px;resize:none}.thread .primary{width:100%;margin-top:8px}.icon{font-size:20px;padding:4px 7px;line-height:1}.context,.search-status{background:#f3f6ef;padding:10px 30px;font-size:12px;color:#57694c}.search-status button{float:right;text-decoration:underline}dialog{border:1px solid var(--line);border-radius:16px;padding:28px;width:min(440px,92vw);box-shadow:0 25px 100px #21182b30}dialog::backdrop{background:#21182b66;backdrop-filter:blur(3px)}dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}dialog h2{font-size:20px;margin:0}dialog .primary{width:100%;margin-top:16px}dialog select{width:100%;padding:12px;border:1px solid var(--line);border-radius:7px;background:white}dialog label:has(input[type=checkbox]){display:flex;align-items:center;gap:9px}dialog input[type=checkbox]{width:auto;margin:0}.person{display:flex;gap:12px;padding:10px 0;align-items:center;font-size:13px}.person small{color:var(--muted);margin-left:auto}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#342b40;color:white;padding:13px 22px;border-radius:9px;font-size:13px;z-index:20;box-shadow:0 7px 30px #0002;max-width:90vw}.load-more{display:block;font-size:11px;color:#8a7b98;margin:0 auto 15px}.mobile{display:none}.empty-nav{font-size:11px;color:#998ca7;padding:4px 14px}.embed aside{display:none}.embed.workspace{grid-template-columns:1fr}.embed .room-header{padding:16px}.embed .search{display:none}@media(max-width:1000px){.thread{width:310px}.room-header{padding:20px}.messages{padding:20px}.composer-wrap{padding:12px 20px 0}.search{width:180px}.auth-story{padding:40px}}@media(max-width:760px){.auth{display:block}.auth-story{min-height:auto;padding:24px}.auth-story>div:nth-child(2),.auth-story>small{display:none}.auth-panel{min-height:80dvh;padding:32px 24px}.workspace{grid-template-columns:1fr}.workspace aside{display:none;position:fixed;inset:0 25% 0 0;z-index:10;box-shadow:15px 0 80px #0006}.workspace.nav-open aside{display:flex}.mobile{display:block}.brand .mobile{margin-left:auto}.room-header{height:77px;padding:14px;gap:12px}.room-heading h1{font-size:18px}.room-header .search{width:125px}.room-header .search input{font-size:10px}.member-button{margin-left:auto;font-size:10px}.messages{padding:16px}.composer-wrap{padding:8px 12px 0}.composer-tools>span{display:none}.thread{position:absolute;inset:77px 0 0;width:100%;z-index:5}.composer-hint{font-size:8px}.message-body{font-size:14px}.auth-panel h2{font-size:26px}.workspace.embed .mobile{display:none}}@media(max-width:430px){.room-header .search{width:90px}.room-header .search input{padding:8px}.member-button{padding:6px}.room-header{gap:8px}}
.message-tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.message-tools button{font-size:11px;border:1px solid #e5e0e8;border-radius:6px;padding:3px 7px;color:#716378;background:#fff}.message-tools button:hover{background:#f2edf6}.collection-item{padding:12px 0;border-bottom:1px solid #e8e2eb}.collection-item p{white-space:pre-wrap;overflow-wrap:anywhere}#dialog-body>button{margin:6px;padding:8px;border:1px solid #ddd;border-radius:6px}#dialog-body textarea{width:100%}.room-header{flex-wrap:wrap}@media(max-width:700px){.room-header{gap:6px}.room-header>button{font-size:11px}.room-header .search{width:100%}}

.nav-action{margin-bottom:7px;padding:10px 14px}.room-header{flex-shrink:0}@media(max-width:760px){.room-header{height:120px;gap:6px}.room-header .search{width:100%;margin-left:0}.thread{inset:120px 0 0}.room-header>button{font-size:11px}}
select{font:inherit;max-width:100%;padding:10px;border:1px solid #dedce2;border-radius:8px;background:white;color:#292831}input[type=checkbox]{width:auto;margin-right:8px}.nav-action{margin-bottom:7px;flex-shrink:0}.room-header{flex-wrap:wrap;height:auto;min-height:82px;padding-top:12px;padding-bottom:12px;gap:10px}.room-heading{min-width:100px;flex:1}.room-header>button{font-size:12px;white-space:nowrap}.room-header .search{margin-left:auto}.collection-item{overflow-wrap:anywhere}.collection-item>button{border:1px solid var(--line);border-radius:6px;padding:6px 10px;margin:3px;font-size:12px}#dialog-body>button{border:1px solid var(--line);border-radius:6px;padding:8px 12px;margin:4px}#dialog-body textarea{display:block}#dialog-body select{display:block;width:100%;margin:8px 0 14px}@media(max-width:760px){.room-header{gap:8px}.room-heading{flex-basis:calc(100% - 50px)}.room-header .search{display:none}.room-header>button{padding:5px}#dialog{max-height:88dvh;width:calc(100vw - 24px)}.nav-action{padding:8px 12px}}

.composer.dragging{outline:3px dashed var(--green);background:#eef5ef}.file-link{overflow-wrap:anywhere}.attachments button{max-width:100%;overflow-wrap:anywhere;text-align:left}
.message-menu{position:relative;display:inline-block}.message-menu summary{cursor:pointer;font-size:12px;padding:4px 8px;color:var(--muted)}.message-menu-content{display:flex;flex-wrap:wrap;gap:5px;border:1px solid var(--line);padding:8px;border-radius:8px;background:#fff;max-width:500px}.message-menu-content button{border:1px solid var(--line);border-radius:5px;padding:4px 8px}.room-heading h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55vw}.nav-action{margin-bottom:4px;padding:8px 12px}.sidebar-bottom{padding-top:10px}
.nav-more{margin-bottom:10px}.nav-more summary{cursor:pointer;font-size:12px;padding:9px 12px;color:#c9c2d2}.nav-more[open] summary{margin-bottom:4px}.nav-more .nav-action{display:block;width:100%}
.attachment-preview{display:block;max-width:min(100%,420px);max-height:240px;border:1px solid var(--line);border-radius:8px;object-fit:contain;margin:8px 0;background:#faf9f7}
.message-body pre{white-space:pre;overflow:auto;max-width:min(65vw,800px);background:#f2f1f4;padding:12px;border-radius:8px;font-size:12px}.message-body code{font-family:Consolas,monospace;background:#f0eef3;padding:2px 4px;border-radius:4px}.message-body pre code{padding:0;background:none}.message-body blockquote{margin:3px 0;border-left:3px solid #b4a5c2;padding-left:10px;color:#6b6174}.format-tools{display:flex;gap:4px;padding:4px 8px}.format-tools button{font-size:11px;padding:4px 7px;color:var(--muted);border-radius:4px}.format-tools button:hover{background:#f0eef3}
/* Bound each flex/grid level so long histories never push the composer off screen. */
.workspace{grid-template-rows:minmax(0,1fr)}.workspace>main,.workspace>aside{min-height:0}.chat-layout{position:relative;overflow:hidden}.conversation,.thread,.messages{min-height:0}.conversation{overflow:hidden}.messages{overscroll-behavior:contain}.composer-wrap{flex-shrink:0;max-height:48dvh;overflow-y:auto}.thread>header,.thread>form{flex-shrink:0}.profile small{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){.thread{inset:0}.room-header>button{min-height:36px}.room-header{padding:8px 12px}.room-heading h1{max-width:68vw}.composer-tools{gap:10px}}
@media(max-width:760px){.thread form{max-height:48dvh;overflow-y:auto}.thread form label{font-size:12px;margin:8px 0}.thread .attachments{padding:0}}

.outbox:empty{display:none}.outbox{max-height:24dvh;overflow:auto;margin:0 20px}.pending-message{border:1px solid #dfcda5;background:#fff9ec;border-radius:10px;padding:10px;margin:8px 0}.pending-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0}.pending-message button{margin:6px 8px 0 0}.pending-message .hint{display:block}

.message-highlight{background:#fff2c9;outline:2px solid #d8b769}.linked-message{border-bottom:2px solid var(--line)}.new-messages{align-self:center;background:var(--green);color:white;padding:8px 16px;border-radius:20px;margin:4px;flex-shrink:0}.upload-cancel{padding:8px 12px;color:#8d3131}.outbox{flex-shrink:0}

.messages{overflow-anchor:none}

@media(max-width:760px){.workspace{height:var(--app-height,100dvh)}.composer-wrap{padding-bottom:env(safe-area-inset-bottom,0px)}.thread form{padding-bottom:max(14px,env(safe-area-inset-bottom,0px))}input,textarea,select{font-size:16px}}

/* Agent hub: scoped approval and result controls. */
.hub-panel{display:grid;gap:12px;max-width:100%}.hub-panel pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f5f8;padding:12px;border-radius:8px;font-size:12px}.hub-panel>button,.hub-panel .collection-row button{border:1px solid #d8d2e2;border-radius:8px;padding:10px 14px;text-align:left;background:#f8f7fa}.hub-panel>button:hover{background:#eeebf3}.hub-panel .collection-row{border-bottom:1px solid #e5e1eb;padding:12px 0}.hub-panel a{overflow-wrap:anywhere}.hub-panel label{display:grid;gap:6px}.hub-panel p{margin:0;overflow-wrap:anywhere}

.presence-line{font-size:11px;color:var(--muted);margin:3px 0;min-height:14px}.task-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.task-column{background:#f4f2f6;padding:10px;border-radius:10px}.board-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.task-column .collection-item{background:white;padding:10px;border-radius:8px}

.format-tools{flex-wrap:nowrap;overflow-x:auto;gap:6px}.format-tools>button{flex:0 0 auto;white-space:nowrap;min-height:34px;padding:6px 8px}.message-check-item{display:flex;align-items:baseline;gap:8px;white-space:normal}.message-check-item input{flex:0 0 auto}
