.chat-page{background:var(--soot);padding-top:56px}.auth-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;padding:var(--space-lg)}.auth-container h1{font-size:var(--text-2xl);margin-bottom:var(--space-sm)}.auth-subtitle{font-family:var(--font-body);font-size:var(--text-sm);color:var(--smoke);margin-bottom:var(--space-lg)}.auth-tabs{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg)}.tab{background:none;border:none;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;color:var(--smoke);cursor:pointer;padding-bottom:var(--space-xs);border-bottom:2px solid transparent}.tab.active{color:var(--tobacco);border-bottom-color:var(--tobacco)}.auth-form{display:flex;flex-direction:column;gap:var(--space-md);width:100%;max-width:360px}.error{font-family:var(--font-mono);font-size:var(--text-sm);color:#c44}.input{background:var(--iron);border:var(--border-thin);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);color:var(--bone);font-family:var(--font-mono);font-size:1rem}.input::placeholder{color:var(--smoke)}.input:focus{outline:none;border-color:var(--tobacco)}.btn{background:var(--tobacco);color:var(--soot);border:none;border-radius:var(--radius);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.btn:hover{filter:brightness(1.1)}.chat-layout{display:flex;height:calc(100dvh - 56px)}.sidebar{width:320px;min-width:320px;border-right:var(--border-thin);display:flex;flex-direction:column;overflow-y:auto}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-md);border-bottom:var(--border-thin)}.sidebar-title{font-size:var(--text-lg)}.logout-btn{background:none;border:none;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--smoke);cursor:pointer}.logout-btn:hover{color:var(--bone)}.empty-state{font-family:var(--font-body);font-size:var(--text-sm);color:var(--smoke);padding:var(--space-lg);text-align:center}.convo-list{list-style:none}.convo-item{display:flex;flex-direction:column;gap:4px;padding:var(--space-md);border-bottom:var(--border-thin);text-decoration:none;transition:background var(--duration) var(--ease-out)}.convo-item:hover{background:var(--iron)}.convo-item.active{background:var(--iron);border-left:2px solid var(--tobacco)}.convo-name{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;color:var(--bone)}.convo-preview{font-family:var(--font-body);font-size:var(--text-xs);color:var(--smoke);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-area{flex:1;display:flex;flex-direction:column;min-width:0}.no-convo{flex:1;display:flex;align-items:center;justify-content:center}.no-convo .display{font-size:var(--text-lg);color:var(--ash)}.chat-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border-bottom:var(--border-thin)}.back-btn{display:none;color:var(--tobacco);text-decoration:none;font-size:var(--text-lg)}.chat-title{font-size:var(--text-base)}.booking-notice{flex-shrink:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--iron);border-top:var(--border-thin);font-family:var(--font-body);font-size:var(--text-xs)}.booking-notice-text{color:var(--smoke);letter-spacing:.02em}.booking-notice-accepted{border-color:var(--tobacco)}.booking-notice-accepted .booking-notice-text{color:var(--bone)}.booking-notice-confirmed{border:1px solid var(--bone);margin:var(--space-sm) var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius)}.booking-notice-confirmed .booking-notice-text{color:var(--bone);font-weight:500}.booking-notice-declined .booking-notice-text{font-style:italic}.booking-notice-btn{background:var(--tobacco);color:var(--soot);border:none;border-radius:var(--radius);padding:4px 10px;font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.1em;cursor:not-allowed;opacity:.5;text-decoration:none}.booking-notice-btn-live{cursor:pointer;opacity:1;display:inline-block}.booking-notice-paid{font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--moss)}.booking-notice-actions{display:flex;align-items:center;gap:var(--space-sm)}.booking-notice-cancel{background:transparent;color:var(--smoke);border:1px solid var(--ash);border-radius:var(--radius);padding:4px 10px;font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:color .15s,border-color .15s}.booking-notice-cancel:hover:not(:disabled){color:var(--bone);border-color:var(--smoke)}.booking-notice-cancel:disabled{opacity:.5;cursor:wait}.booking-notice-cancelled .booking-notice-text{color:var(--smoke);font-style:italic}.messages-container{flex:1;overflow-y:auto;padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.empty-thread-prompt{margin:auto;max-width:320px;text-align:center;color:var(--smoke);font-size:var(--text-sm);line-height:1.5}.message{max-width:75%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius)}.message-mine{align-self:flex-end;background:var(--ash);border:1px solid var(--tobacco)}.message-theirs{align-self:flex-start;background:var(--iron);border:var(--border-thin)}.message-system{align-self:center;max-width:100%;background:none;border:none;padding:var(--space-xs) 0;text-align:center}.message-system .message-content{font-style:italic;font-size:var(--text-xs);color:var(--smoke)}.message-content{font-family:var(--font-body);font-size:var(--text-sm);color:var(--bone);line-height:1.5;white-space:pre-wrap;word-break:break-word}.message-time{font-family:var(--font-mono);font-size:10px;color:var(--smoke);display:block;margin-top:4px}.message-mine .message-time{text-align:right}.compose-bar{display:flex;gap:var(--space-sm);padding:var(--space-md);border-top:var(--border-thin)}.compose-input{flex:1}.send-btn{background:var(--tobacco);color:var(--soot);border:none;border-radius:var(--radius);padding:var(--space-sm) var(--space-md);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;cursor:pointer;white-space:nowrap}.send-btn:hover{filter:brightness(1.1)}.board-section{border-bottom:var(--border-thin)}.board-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--ash);position:relative}.board-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--smoke);position:absolute;left:50%;transform:translate(-50%)}.board-header-btn{background:none;border:none;color:var(--smoke);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.board-header-btn:hover{color:var(--bone)}.board-upload-btn{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--tobacco);cursor:pointer;padding:2px 8px;border:1px solid var(--ash);border-radius:var(--radius)}.board-upload-btn:hover{border-color:var(--tobacco)}.board-select-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-xs) var(--space-md);background:var(--ash);border-bottom:1px solid var(--ash)}.board-select-cancel{background:none;border:none;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--smoke);cursor:pointer}.board-select-cancel:hover{color:var(--bone)}.board-select-count{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--smoke)}.board-select-delete{background:none;border:1px solid var(--oxblood);border-radius:var(--radius);font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--oxblood);cursor:pointer;padding:2px 8px}.board-select-delete:hover:not(:disabled){background:var(--oxblood);color:var(--bone)}.board-select-delete:disabled{opacity:.4;cursor:default}.board-container{position:relative;height:72px;overflow:auto;background:var(--iron);cursor:default}.board-resize-handle{height:12px;display:flex;align-items:center;justify-content:center;cursor:ns-resize;background:var(--iron);border-top:1px solid var(--ash);flex-shrink:0}.board-resize-handle:hover .board-resize-grip,.board-resize-handle:active .board-resize-grip{background:var(--tobacco)}.board-resize-grip{width:40px;height:3px;border-radius:2px;background:var(--ash);transition:background .15s ease}.board-dragover{outline:2px dashed var(--tobacco);outline-offset:-2px}.board-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:var(--text-sm);color:var(--smoke);opacity:.5;pointer-events:none}.board-img-wrap{position:absolute;width:200px;border-radius:var(--radius);border:1px solid var(--ash);cursor:grab;user-select:none;transition:box-shadow .15s ease}.board-img-wrap:hover{border-color:var(--tobacco)}.board-img-wrap.dragging{cursor:grabbing;box-shadow:0 4px 20px #00000080;border-color:var(--tobacco)}.board-img{width:100%;height:auto;display:block;border-radius:var(--radius);-webkit-user-drag:none;pointer-events:none}.board-img-resize-handle{position:absolute;top:0;right:0;width:16px;height:16px;cursor:nwse-resize;background:var(--tobacco);opacity:0;transition:opacity .15s ease;z-index:1;border-bottom-left-radius:var(--radius)}.board-img-wrap:hover .board-img-resize-handle,.board-img-wrap.img-resizing .board-img-resize-handle{opacity:.8}.board-img-resize-handle:hover{opacity:1!important}.board-img-wrap.img-resizing{box-shadow:0 0 0 2px var(--tobacco)}.board-select-mode .board-img-wrap{cursor:pointer}.board-select-mode .board-img-resize-handle{display:none}.board-img-wrap.selected{outline:3px solid var(--tobacco);outline-offset:-3px;box-shadow:inset 0 0 0 999px #bd967026}.board-lightbox{position:fixed;inset:0;z-index:9999;background:#0f0d0beb;display:flex;align-items:center;justify-content:center;cursor:pointer}.board-lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius);cursor:default}.board-lightbox-close{position:absolute;top:var(--space-md);right:var(--space-md);background:none;border:none;color:var(--bone);font-size:var(--text-2xl);cursor:pointer;line-height:1}@media(max-width:640px){.board-section{flex-shrink:0;z-index:10;background:var(--soot);overflow:hidden;max-height:180px}.chat-area{height:calc(100dvh - 76px);max-height:calc(100dvh - 76px);overflow:hidden}.board-container{display:flex;flex-direction:row;align-items:center;gap:var(--space-sm);padding:var(--space-sm);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;height:88px!important}.board-resize-handle{display:none}.board-container .board-img-wrap{position:static!important;flex-shrink:0;width:auto!important;height:80%;left:auto!important;top:auto!important}.board-container .board-img{height:100%;width:auto}.board-container .board-img-resize-handle{display:none}.board-container .board-empty{position:static;flex-shrink:0;width:100%}}@media(max-width:768px){.chat-page{padding-top:48px}.chat-layout{flex-direction:column;height:calc(100dvh - 48px)}.sidebar{width:100%;min-width:100%;border-right:none;border-bottom:var(--border-thin)}.chat-layout[data-has-active=true] .sidebar,.chat-layout[data-has-active=false] .chat-area{display:none}.back-btn{display:block}}
