*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--brand: #d97846;--brand-dark: #b85e2e;--brand-light: rgba(217,120,70,.12);--sb-bg: #1a1410;--sb-hover: rgba(255,255,255,.06);--sb-active: rgba(217,120,70,.18);--sb-border: rgba(255,255,255,.08);--sb-text: #e8ddd0;--sb-muted: #7a6e65;--sb-width: 260px;--chat-bg: #f9f6f2;--chat-border: rgba(83,62,40,.1);--user-bg: #d97846;--user-text: #fff;--ai-bg: #ffffff;--ai-text: #2a211b;--ai-border: rgba(83,62,40,.1);--input-bg: #ffffff;--input-border: rgba(83,62,40,.18);--input-radius: 16px;--text: #2a211b;--muted: #706257;--line: rgba(83,62,40,.1);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--card-bg: #ffffff;--card-border: rgba(83,62,40,.12);--card-shadow: 0 2px 12px rgba(83,62,40,.08)}html,body,#root{height:100%;font-family:SUIT,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.6;color:var(--text);background:var(--chat-bg);-webkit-font-smoothing:antialiased}.app-loading{height:100%;display:flex;align-items:center;justify-content:center;background:var(--sb-bg)}.app-loading__spinner{width:32px;height:32px;border:3px solid rgba(217,120,70,.2);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.chat-layout{display:flex;height:100%;overflow:hidden}.sidebar{width:var(--sb-width);min-width:var(--sb-width);background:var(--sb-bg);display:flex;flex-direction:column;border-right:1px solid var(--sb-border);transition:transform .25s ease,width .25s ease;overflow:hidden;position:relative;z-index:10}.sidebar.collapsed{width:0;min-width:0;border-right:none}.sidebar__header{display:flex;align-items:center;gap:8px;padding:16px 12px 12px;border-bottom:1px solid var(--sb-border)}.sidebar__logo{height:28px;width:auto;flex-shrink:0}.sidebar__toggle{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--sb-muted);padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.sidebar__toggle:hover{background:var(--sb-hover);color:var(--sb-text)}.sidebar__new-btn{margin:12px;display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--brand-light);border:1px solid rgba(217,120,70,.25);border-radius:var(--radius-md);color:var(--brand);font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.sidebar__new-btn:hover{background:#d9784633}.sidebar__new-btn svg{flex-shrink:0}.sidebar__section-label{padding:8px 16px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--sb-muted)}.sidebar__list{flex:1;overflow-y:auto;padding:4px 8px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.sidebar__list::-webkit-scrollbar{width:4px}.sidebar__list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.sidebar__item{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--radius-md);cursor:pointer;color:var(--sb-text);font-size:14px;transition:background .12s;text-decoration:none;overflow:hidden;border:none;background:none;width:100%;text-align:left}.sidebar__item:hover{background:var(--sb-hover)}.sidebar__item.active{background:var(--sb-active);color:var(--brand)}.sidebar__item-icon{flex-shrink:0;opacity:.6}.sidebar__item.active .sidebar__item-icon{opacity:1}.sidebar__item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__item-date{font-size:11px;color:var(--sb-muted);flex-shrink:0}.sidebar__item-del{flex-shrink:0;opacity:0;background:none;border:none;cursor:pointer;color:var(--sb-muted);padding:2px;border-radius:4px;display:flex;align-items:center;transition:opacity .12s,color .12s}.sidebar__item:hover .sidebar__item-del{opacity:1}.sidebar__item-del:hover{color:#ef4444}.sidebar__footer{padding:12px;border-top:1px solid var(--sb-border)}.sidebar__user{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);cursor:pointer;transition:background .12s}.sidebar__user:hover{background:var(--sb-hover)}.sidebar__avatar{width:32px;height:32px;border-radius:50%;background:var(--brand);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700;flex-shrink:0}.sidebar__user-info{flex:1;overflow:hidden}.sidebar__user-name{font-size:13px;font-weight:600;color:var(--sb-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__user-email{font-size:11px;color:var(--sb-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__signout{background:none;border:none;cursor:pointer;color:var(--sb-muted);padding:4px;border-radius:4px;display:flex;align-items:center;transition:color .12s}.sidebar__signout:hover{color:#ef4444}.chat-main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--chat-bg);position:relative}.chat-topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--chat-border);background:var(--chat-bg);min-height:56px;flex-shrink:0}.chat-topbar__toggle{background:none;border:none;cursor:pointer;color:var(--muted);padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:background .12s,color .12s}.chat-topbar__toggle:hover{background:var(--line);color:var(--text)}.chat-topbar__title{font-size:15px;font-weight:600;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-list{flex:1;overflow-y:auto;padding:24px 0;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(83,62,40,.12) transparent}.message-list::-webkit-scrollbar{width:6px}.message-list::-webkit-scrollbar-thumb{background:#533e281f;border-radius:6px}.message-list__inner{max-width:760px;margin:0 auto;padding:0 20px;display:flex;flex-direction:column;gap:4px}.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:40px 24px}.welcome__logo{height:52px;margin-bottom:20px;opacity:.8}.welcome__title{font-size:26px;font-weight:800;color:var(--text);margin-bottom:8px}.welcome__sub{font-size:15px;color:var(--muted);margin-bottom:32px;line-height:1.7}.welcome__chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:480px}.welcome__chip{padding:8px 16px;border:1px solid var(--chat-border);border-radius:999px;background:var(--card-bg);color:var(--text);font:inherit;font-size:14px;cursor:pointer;transition:background .12s,border-color .12s}.welcome__chip:hover{background:var(--brand-light);border-color:#d978464d;color:var(--brand-dark)}.message-row{display:flex;gap:12px;padding:6px 0}.message-row--user{flex-direction:row-reverse}.message-row--system{justify-content:center}.message-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;margin-top:2px}.message-avatar--ai{background:var(--brand);color:#fff}.message-avatar--user{background:#e8ddd0;color:var(--text)}.message-content{max-width:72%;display:flex;flex-direction:column;gap:6px}.message-row--user .message-content{align-items:flex-end}.message-bubble{padding:12px 16px;border-radius:var(--radius-xl);font-size:15px;line-height:1.65;word-break:break-word}.message-bubble--ai{background:var(--ai-bg);color:var(--ai-text);border:1px solid var(--ai-border);border-radius:var(--radius-xl) var(--radius-xl) var(--radius-xl) 4px;box-shadow:var(--card-shadow)}.message-bubble--user{background:var(--user-bg);color:var(--user-text);border-radius:var(--radius-xl) var(--radius-xl) 4px var(--radius-xl)}.message-bubble--system{background:#533e280f;color:var(--muted);font-size:13px;padding:6px 12px;border-radius:999px}.message-time{font-size:11px;color:var(--sb-muted);padding:0 4px}.typing-indicator{display:flex;gap:4px;align-items:center;padding:14px 16px}.typing-indicator span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:bounce .9s infinite}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.5}40%{transform:translateY(-6px);opacity:1}}.chat-input-wrap{padding:12px 16px 20px;background:var(--chat-bg);flex-shrink:0}.chat-input-inner{max-width:760px;margin:0 auto}.chat-input-box{display:flex;align-items:flex-end;gap:8px;background:var(--input-bg);border:1.5px solid var(--input-border);border-radius:var(--input-radius);padding:10px 12px;box-shadow:0 2px 8px #533e280f;transition:border-color .15s}.chat-input-box:focus-within{border-color:var(--brand)}.chat-input-attach{background:none;border:none;cursor:pointer;color:var(--muted);padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:color .12s;flex-shrink:0}.chat-input-attach:hover{color:var(--brand)}.chat-input-textarea{flex:1;border:none;outline:none;resize:none;font:inherit;font-size:15px;line-height:1.5;color:var(--text);background:transparent;max-height:160px;overflow-y:auto;scrollbar-width:thin}.chat-input-textarea::placeholder{color:var(--muted)}.chat-input-send{background:var(--brand);border:none;border-radius:var(--radius-sm);cursor:pointer;color:#fff;width:34px;height:34px;display:flex;align-items:center;justify-content:center;transition:background .12s,opacity .12s;flex-shrink:0}.chat-input-send:hover{background:var(--brand-dark)}.chat-input-send:disabled{opacity:.4;cursor:not-allowed}.chat-input-hint{text-align:center;font-size:11px;color:var(--muted);margin-top:8px}.chat-input-attachments{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 8px}.chat-input-attachment-item{display:flex;align-items:center;gap:6px;background:var(--brand-light);border:1px solid rgba(217,120,70,.2);border-radius:var(--radius-sm);padding:4px 8px;font-size:12px;color:var(--brand-dark)}.chat-input-attachment-item button{background:none;border:none;cursor:pointer;color:var(--brand);display:flex;padding:0}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--card-shadow);max-width:360px}.card__title{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:12px;text-transform:uppercase;letter-spacing:.04em}.date-card__inputs{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.date-card__input{width:100%;padding:10px 12px;border:1.5px solid var(--input-border);border-radius:var(--radius-md);font:inherit;font-size:15px;color:var(--text);background:var(--input-bg);outline:none;transition:border-color .15s}.date-card__input:focus{border-color:var(--brand)}.address-card__input-wrap{position:relative;margin-bottom:8px}.address-card__input{width:100%;padding:10px 12px;border:1.5px solid var(--input-border);border-radius:var(--radius-md);font:inherit;font-size:15px;color:var(--text);background:var(--input-bg);outline:none;transition:border-color .15s}.address-card__input:focus{border-color:var(--brand)}.address-card__search-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:var(--brand);border:none;border-radius:var(--radius-sm);color:#fff;padding:6px 10px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s}.address-card__search-btn:hover{background:var(--brand-dark)}.address-card__detail{width:100%;padding:8px 12px;border:1.5px solid var(--input-border);border-radius:var(--radius-md);font:inherit;font-size:14px;color:var(--text);background:var(--input-bg);outline:none;transition:border-color .15s;margin-bottom:8px}.address-card__detail:focus{border-color:var(--brand)}.estimate-card{max-width:400px}.estimate-card__header{display:flex;align-items:center;gap:8px;margin-bottom:16px}.estimate-card__badge{background:var(--brand-light);color:var(--brand-dark);font-size:12px;font-weight:700;padding:3px 8px;border-radius:999px}.estimate-card__service{font-size:16px;font-weight:700;color:var(--text)}.estimate-card__rows{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;border-top:1px solid var(--line);padding-top:12px}.estimate-card__row{display:flex;justify-content:space-between;font-size:14px}.estimate-card__row-label{color:var(--muted)}.estimate-card__row-value{font-weight:600;color:var(--text)}.estimate-card__total{display:flex;justify-content:space-between;align-items:center;padding:12px 0 0;border-top:1.5px solid var(--line);margin-bottom:14px}.estimate-card__total-label{font-size:14px;font-weight:700;color:var(--text)}.estimate-card__total-price{font-size:22px;font-weight:800;color:var(--brand)}.estimate-card__deposit-note{font-size:12px;color:var(--muted);margin-bottom:14px}.service-select-card__grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.service-select-card__item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border:1.5px solid var(--card-border);border-radius:var(--radius-md);background:var(--card-bg);cursor:pointer;font:inherit;transition:background .12s,border-color .12s;text-align:center}.service-select-card__item:hover{background:var(--brand-light);border-color:#d978464d}.service-select-card__emoji{font-size:24px}.service-select-card__name{font-size:13px;font-weight:600;color:var(--text)}.service-select-card__desc{font-size:11px;color:var(--muted)}.card-btn{width:100%;padding:12px;background:var(--brand);border:none;border-radius:var(--radius-md);color:#fff;font:inherit;font-size:15px;font-weight:700;cursor:pointer;transition:background .12s;text-align:center;text-decoration:none;display:block}.card-btn:hover{background:var(--brand-dark)}.card-btn--outline{background:transparent;border:1.5px solid var(--brand);color:var(--brand)}.card-btn--outline:hover{background:var(--brand-light)}.card-btn--ghost{background:transparent;color:var(--muted);font-size:13px;padding:8px}.card-btn--ghost:hover{background:var(--line);color:var(--text)}.login-page{min-height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#1a1410,#2a1e15);padding:24px}.login-card{width:100%;max-width:420px;background:#fffaf4f7;border:1px solid var(--line);border-radius:28px;padding:40px 36px;box-shadow:0 32px 80px #00000059}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px;text-decoration:none}.login-brand img{height:36px}.login-brand span{font-size:18px;font-weight:800;color:var(--text)}.login-title{font-size:22px;font-weight:800;color:var(--text);margin-bottom:6px}.login-sub{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:28px}.login-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;border-radius:14px;border:1px solid var(--line);background:#fff;font:inherit;font-weight:700;font-size:15px;cursor:pointer;transition:box-shadow .15s;color:var(--text);margin-bottom:10px}.login-btn:hover{box-shadow:0 4px 16px #5a3f221a}.login-btn--kakao{background:#fee500;border-color:#fee500;color:#191919}.login-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:16px 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--line)}.login-status{font-size:13px;color:var(--muted);text-align:center;margin-top:16px;min-height:20px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:9;opacity:0;transition:opacity .25s}.sidebar-overlay.visible{opacity:1}@media(max-width:768px){.sidebar{position:fixed;top:0;left:0;height:100%;transform:translate(-100%);z-index:20;box-shadow:4px 0 24px #00000040;width:var(--sb-width)!important;min-width:var(--sb-width)!important}.sidebar.open{transform:translate(0)}.sidebar.collapsed{transform:translate(-100%);width:var(--sb-width)!important}.sidebar-overlay{display:block}.chat-main{width:100%}.message-list__inner{padding:0 12px}.message-content{max-width:86%}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
