.studio-session{min-height:calc(100vh - 4rem);position:relative}.sync-indicator{position:fixed;top:4.5rem;right:var(--space-4);font-size:var(--text-xs);color:var(--color-brass);background:var(--color-paper);padding:var(--space-1) var(--space-3);border:1px solid var(--color-linen);border-radius:var(--radius-sm);z-index:50}.studio-loading,.studio-error{display:flex;align-items:center;justify-content:center;min-height:50vh;font-size:var(--text-lg);color:var(--color-ink-light)}.studio-layout{display:grid;grid-template-columns:280px 1fr 260px;min-height:calc(100vh - 4rem)}.studio-tray{border-right:var(--border-thin);padding:var(--space-6);overflow-y:auto;background:var(--color-paper)}.tray-title{font-family:var(--font-serif);font-size:var(--text-xl);margin-bottom:var(--space-6)}.tray-section{margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:var(--border-thin)}.tray-section:last-child{border-bottom:none}.tray-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.tray-section-header h4{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-brass)}.tray-add{background:none;border:none;font-size:var(--text-xs);color:var(--color-teal-light);cursor:pointer;font-weight:500}.tray-empty{font-size:var(--text-sm);color:var(--color-pencil);line-height:var(--leading-relaxed)}.tray-chip{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--color-paper-cool);border-radius:var(--radius-sm);margin-bottom:var(--space-2);font-size:var(--text-sm)}.chip-text{cursor:pointer}.chip-role{color:var(--color-pencil);font-size:var(--text-xs)}.chip-label{font-size:var(--text-xs);color:var(--color-brass);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-right:var(--space-2)}.chip-remove{background:none;border:none;color:var(--color-pencil);cursor:pointer;font-size:var(--text-lg);line-height:1;padding:0 var(--space-1)}.chip-remove:hover{color:var(--color-error)}.tray-edit-input{font-size:var(--text-sm);border:1px solid var(--color-teal-light);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);width:100%;background:var(--color-paper);outline:none}.tray-add-form{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-2)}.tray-add-form input,.tray-add-form select,.tray-add-form textarea{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border:1px solid var(--color-linen);border-radius:var(--radius-sm);background:var(--color-paper);font-family:var(--font-sans)}.tray-add-form input:focus,.tray-add-form select:focus,.tray-add-form textarea:focus{outline:none;border-color:var(--color-teal-light)}.tray-add-actions{display:flex;gap:var(--space-2)}.tray-add-actions button{font-size:var(--text-sm);padding:var(--space-1) var(--space-3);border:1px solid var(--color-linen);border-radius:var(--radius-sm);background:var(--color-paper);cursor:pointer;font-family:var(--font-sans)}.tray-add-actions button[type=submit]{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink)}.studio-canvas{padding:var(--space-8);display:flex;align-items:center;justify-content:center;background:var(--color-paper-cool)}.canvas-container{width:100%;max-width:36rem}.canvas-preview{background:var(--color-paper);border:1px solid var(--color-linen);border-radius:var(--radius-md);min-height:20rem;display:flex;align-items:center;justify-content:center}.canvas-empty{padding:var(--space-8);text-align:center}.canvas-prompt{color:var(--color-pencil);font-size:var(--text-sm);max-width:28ch;margin:0 auto}.canvas-content{padding:var(--space-6);width:100%}.preview-envelope{margin-bottom:var(--space-6)}.envelope-face{aspect-ratio:2.3 / 1;border:1px solid var(--color-linen);border-radius:var(--radius-sm);padding:var(--space-6) var(--space-8);display:flex;flex-direction:column;justify-content:center}.env-preview-label{font-size:var(--text-xs);color:var(--color-brass);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin-bottom:var(--space-4)}.env-address{margin-bottom:var(--space-2)}.env-name{font-family:var(--font-serif);font-size:var(--text-xl);font-style:italic;margin-bottom:var(--space-1)}.env-line{font-size:var(--text-sm);color:var(--color-ink-light);margin:0}.env-date{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-ink-light);margin-top:var(--space-2)}.env-count{font-size:var(--text-xs);color:var(--color-pencil);margin-top:var(--space-4);text-align:center}.canvas-summary{display:flex;flex-wrap:wrap;gap:var(--space-2)}.summary-chip{font-size:var(--text-xs);padding:var(--space-1) var(--space-3);background:var(--color-paper-cool);border-radius:var(--radius-sm);color:var(--color-ink-light)}.studio-rail{border-left:var(--border-thin);padding:var(--space-6);overflow-y:auto;background:var(--color-paper)}.rail-title{font-family:var(--font-serif);font-size:var(--text-xl);margin-bottom:var(--space-6)}.rail-empty{font-size:var(--text-sm);color:var(--color-pencil);line-height:var(--leading-relaxed)}.rail-label{font-size:var(--text-xs);color:var(--color-brass);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin-bottom:var(--space-3)}.rail-suggestions{display:flex;flex-direction:column;gap:var(--space-3)}.suggestion-card{border:1px solid var(--color-linen);border-radius:var(--radius-sm);overflow:hidden}.suggestion-preview{aspect-ratio:1 / 1;background:var(--color-paper-cool);display:flex;align-items:center;justify-content:center;overflow:hidden}.preview-img{width:100%;height:100%;object-fit:contain;padding:var(--space-2)}.preview-loading,.preview-error{font-size:var(--text-xs);color:var(--color-pencil)}.preview-placeholder{width:100%;height:100%}.suggestion-text{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.suggestion-text strong{font-size:var(--text-sm)}.suggestion-text span{font-size:var(--text-xs);color:var(--color-pencil)}.intake-textarea{width:100%;font-size:var(--text-sm);padding:var(--space-3);border:1px solid var(--color-linen);border-radius:var(--radius-sm);background:var(--color-paper);font-family:var(--font-mono);resize:vertical}.intake-textarea:focus{outline:none;border-color:var(--color-teal-light)}.intake-hint{font-size:var(--text-xs);color:var(--color-pencil);margin-bottom:var(--space-2)}.intake-name{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border:1px solid var(--color-linen);border-radius:var(--radius-sm);background:var(--color-paper);width:100%;margin-bottom:var(--space-2)}.intake-count{font-size:var(--text-sm);color:var(--color-teal);font-weight:500;margin-bottom:var(--space-3)}.intake-preview{max-height:12rem;overflow-y:auto;margin-bottom:var(--space-3)}.intake-row{display:flex;flex-direction:column;padding:var(--space-2) 0;border-bottom:var(--border-thin);font-size:var(--text-xs)}.intake-row strong{margin-bottom:var(--space-1)}.intake-row span{color:var(--color-pencil)}.intake-more{font-size:var(--text-xs);color:var(--color-pencil);text-align:center;padding-top:var(--space-2)}.canvas-svg-wrap{text-align:center}.canvas-svg-img{max-width:100%;max-height:24rem;margin:0 auto var(--space-4)}.canvas-rendering,.canvas-error{padding:var(--space-8);text-align:center;color:var(--color-pencil)}.tray-coords{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.tray-hint{font-size:var(--text-xs);color:var(--color-pencil);line-height:var(--leading-relaxed)}.chip-warning{font-size:var(--text-xs);color:var(--color-brass);font-style:italic}.error-toast{position:fixed;bottom:var(--space-4);right:var(--space-4);font-size:var(--text-sm);color:var(--color-paper);background:var(--color-error);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);z-index:50;animation:fadeIn var(--duration-fast) var(--ease-out)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.studio-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.studio-tray{border-right:none;border-bottom:var(--border-thin)}.studio-rail{border-left:none;border-top:var(--border-thin)}}
