:root{--color-paper: #FAF8F5;--color-paper-dark: #F0EDE6;--color-paper-darker: #E5E1D8;--color-paper-warm: #F5F0E8;--color-ink: #2C2825;--color-ink-light: #5C5752;--color-ink-lighter: #8C877F;--color-umber: #6B5344;--color-sienna: #8B6B4F;--color-tan: #C4A882;--color-success: #5B7355;--color-active: #7B8B6B;--shadow-sm: 0 2px 10px rgba(44, 40, 37, .05);--shadow-md: 0 4px 20px rgba(44, 40, 37, .08);--shadow-lg: 0 8px 30px rgba(44, 40, 37, .12);--font-heading: Georgia, "Times New Roman", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", Consolas, "Liberation Mono", monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--transition-fast: .1s ease;--transition-normal: .15s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--color-paper);color:var(--color-ink);height:100vh;display:flex}.sidebar{width:220px;min-width:220px;background:var(--color-paper-dark);display:flex;flex-direction:column;height:100vh}.sidebar-header{padding:var(--space-6) var(--space-6) var(--space-5)}.logo{font:600 22px var(--font-heading);color:var(--color-ink);margin-bottom:var(--space-1)}.tagline{font-size:11px;color:var(--color-ink-lighter)}.sidebar-divider{height:1px;background:var(--color-paper-darker);margin:0 var(--space-6)}.sidebar-spacer{flex:1}.sidebar-footer{padding:var(--space-4) var(--space-4) var(--space-6)}.sidebar-footer .nav-item{color:var(--color-ink-lighter);font-size:13px}.mobile-header{display:none;position:fixed;top:0;left:0;right:0;height:56px;background:var(--color-paper-dark);border-bottom:1px solid var(--color-paper-darker);padding:0 var(--space-4);align-items:center;justify-content:space-between;z-index:100}.mobile-header .logo{font:600 18px var(--font-heading);margin:0}.hamburger-btn{background:none;border:none;padding:var(--space-2);cursor:pointer;color:var(--color-ink)}.hamburger-btn svg{display:block;width:24px;height:24px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:199}.sidebar-overlay.visible{display:block}@media (max-width: 768px){.mobile-header{display:flex}.sidebar{position:fixed;left:0;top:0;bottom:0;height:auto;z-index:200;transform:translate(-100%);transition:transform .3s ease}.sidebar.open{transform:translate(0)}.main{margin-left:0;padding-top:56px}.hero-image{width:100%}.hero-image img{max-height:50vh;max-width:100%;width:auto;margin:0 auto}.thumbnail-nav{max-width:100%}.detail-header,.content-body{padding-left:var(--space-4);padding-right:var(--space-4)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--color-paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:320px;max-width:90vw}.modal-header{font:600 18px var(--font-heading);padding:var(--space-5) var(--space-5) var(--space-3);color:var(--color-ink)}.modal-body{padding:var(--space-3) var(--space-5)}.modal-body input{width:100%;padding:var(--space-3);border:1px solid var(--color-paper-darker);border-radius:var(--radius-sm);font:14px var(--font-body);background:var(--color-paper)}.modal-body input:focus{outline:none;border-color:var(--color-umber)}.login-error{color:var(--color-error, #c53030);font-size:13px;margin-top:var(--space-2)}.modal-footer{padding:var(--space-4) var(--space-5) var(--space-5);display:flex;justify-content:flex-end;gap:var(--space-3)}.nav{padding:var(--space-5) var(--space-3)}.nav-item{display:block;padding:10px var(--space-3);margin-bottom:var(--space-2);border-radius:var(--radius-md);font-size:14px;color:var(--color-ink-light);text-decoration:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.nav-item:hover{background:var(--color-paper);color:var(--color-ink)}.nav-item.active{background:var(--color-paper);color:var(--color-umber);font-weight:500}.status-text-pulse{animation:text-pulse 2s ease-in-out infinite}@keyframes text-pulse{0%,to{opacity:1}50%{opacity:.4}}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.view{position:relative;height:100%;overflow-y:auto}.content-header{position:sticky;top:0;background:var(--color-paper);z-index:10;padding:var(--space-6) var(--space-8);display:flex;justify-content:space-between;align-items:center}.content-header h1{font:600 28px var(--font-heading);color:var(--color-ink)}.content-header .subtitle{font-size:14px;color:var(--color-ink-light);margin-left:var(--space-3)}.content-body{padding:var(--space-2) var(--space-8) var(--space-8)}.btn{padding:10px 20px;border-radius:var(--radius-md);font:500 14px var(--font-body);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.btn-primary{background:var(--color-umber);color:var(--color-paper);border:none}.btn-primary:hover{background:var(--color-sienna)}.btn-secondary{background:transparent;color:var(--color-umber);border:1px solid var(--color-umber)}.btn-secondary:hover{background:var(--color-paper-dark)}.btn-text{background:transparent;color:var(--color-sienna);border:none;padding:10px 8px}.btn-text:hover{color:var(--color-umber)}.btn:disabled{opacity:.5;cursor:not-allowed}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}.gallery-card{background:var(--color-paper-dark);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:14px;cursor:pointer;transition:transform var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-normal);border:1px solid transparent}.gallery-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--color-sienna)}.gallery-card:hover .card-title{color:var(--color-umber)}.card-image{width:100%;aspect-ratio:4/3;background:#f5f2eb;border-radius:var(--radius-sm);overflow:hidden;position:relative;margin-bottom:var(--space-3)}.card-image img{width:100%;height:100%;object-fit:cover}.card-badge{position:absolute;top:8px;right:8px;background:var(--color-paper-darker);padding:4px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--color-ink-light)}.card-title{font:600 16px var(--font-heading);color:var(--color-ink);margin-bottom:var(--space-1);transition:color var(--transition-fast)}.card-meta{font-size:12px;color:var(--color-ink-light);margin-bottom:var(--space-1)}.card-date{font-size:11px;color:var(--color-ink-lighter)}.empty-state{text-align:center;padding:var(--space-8);color:var(--color-ink-lighter)}.context-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-6);border-bottom:1px solid var(--color-paper-darker);padding-bottom:var(--space-3)}.context-tab{padding:var(--space-2) var(--space-4);background:none;border:none;font:500 14px var(--font-body);color:var(--color-ink-light);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s,color .15s}.context-tab:hover{background:var(--color-paper-darker);color:var(--color-ink)}.context-tab.active{background:var(--color-umber);color:#fff}.context-content{max-width:800px}.session-list{display:flex;flex-direction:column;gap:var(--space-4);max-width:700px}.session-entry{background:var(--color-paper-dark);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5);display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-4);cursor:pointer;transition:box-shadow var(--transition-normal),transform var(--transition-normal);border:1px solid transparent}.session-entry:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);border-color:var(--color-sienna)}.session-number{font:600 24px var(--font-heading);color:var(--color-umber);display:flex;align-items:flex-start;gap:var(--space-2)}.new-session-card{background:var(--color-paper-dark);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5);cursor:pointer;transition:box-shadow var(--transition-normal),transform var(--transition-normal),border-color var(--transition-normal);border:2px dashed var(--color-ink-lighter)}.new-session-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);border-color:var(--color-sienna)}.new-session-card-title{font:600 16px var(--font-heading);color:var(--color-ink);margin-bottom:var(--space-1)}.new-session-card:hover .new-session-card-title{color:var(--color-umber)}.new-session-card-desc{font-size:13px;color:var(--color-ink-light)}.new-session-card.waiting,.new-session-card.checkpoint{pointer-events:none}.session-content{min-width:0}.session-entry-title{font:600 16px var(--font-heading);color:var(--color-ink);margin-bottom:var(--space-1)}.session-entry:hover .session-entry-title{color:var(--color-umber)}.session-direction{font-size:13px;color:var(--color-ink-light);margin-bottom:var(--space-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-date{font-size:12px;color:var(--color-ink-lighter)}.session-badge{background:var(--color-paper-darker);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:12px;color:var(--color-ink-light);height:fit-content;white-space:nowrap}.detail-back{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-ink-light);text-decoration:none;font-size:14px;cursor:pointer;transition:color var(--transition-fast)}.detail-back:hover{color:var(--color-umber)}.detail-header{margin-bottom:var(--space-6)}.detail-title{font:600 32px var(--font-heading);color:var(--color-ink);margin:var(--space-3) 0 var(--space-2)}.detail-meta{font-size:14px;color:var(--color-ink-light);display:flex;align-items:center;gap:var(--space-3)}.detail-meta span{display:flex;align-items:center;gap:var(--space-1)}.detail-content{display:grid;grid-template-columns:1fr 320px;gap:var(--space-8)}@media (max-width: 900px){.detail-content{grid-template-columns:1fr}}.detail-images{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.hero-image{background:var(--color-paper-dark);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);width:fit-content}.hero-image img{max-height:60vh;display:block}.thumbnail-nav{display:flex;align-items:center;gap:var(--space-2);max-width:800px}.thumbnail-arrow{flex-shrink:0;width:32px;height:32px;border:none;background:var(--color-paper-dark);color:var(--color-ink-light);border-radius:50%;font-size:20px;line-height:1;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast);display:flex;align-items:center;justify-content:center;opacity:0}.thumbnail-arrow.visible{opacity:1;cursor:pointer}.thumbnail-arrow.visible:hover{background:var(--color-paper-darker);color:var(--color-ink)}.thumbnail-strip{display:flex;gap:var(--space-3);overflow-x:auto;padding:var(--space-1);scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;flex:1;min-width:0}.thumbnail-strip::-webkit-scrollbar{display:none}.thumbnail{width:80px;height:80px;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;flex-shrink:0;border:2px solid transparent;transition:border-color var(--transition-fast)}.thumbnail:hover,.thumbnail.active{border-color:var(--color-umber)}.thumbnail img{width:100%;height:100%;object-fit:cover}.detail-notes{background:var(--color-paper-dark);border-radius:var(--radius-lg);padding:var(--space-5);height:fit-content}.detail-notes h3{font:600 16px var(--font-heading);color:var(--color-ink);margin-bottom:var(--space-4)}.detail-notes-content{font-size:14px;line-height:1.6;color:var(--color-ink-light)}.detail-notes-content p{margin-bottom:var(--space-3)}.detail-notes-content ul,.detail-notes-content ol{margin-left:var(--space-4);margin-bottom:var(--space-3)}.detail-notes-content code{font-family:var(--font-mono);font-size:13px;background:var(--color-paper);padding:2px 4px;border-radius:2px}.session-detail-body{display:flex;flex-direction:column;gap:var(--space-16);width:100%}.session-images{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);width:100%}.session-report,.session-transcript{width:100%;max-width:800px;margin:0 auto}.section-title{font:600 20px/1.3 var(--font-heading);color:var(--color-ink);margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-paper-darker)}.prose{font:400 15px/1.7 var(--font-body);color:var(--color-ink)}.prose h1{font:600 28px/1.3 var(--font-heading);color:var(--color-ink);margin-top:var(--space-8);margin-bottom:var(--space-4)}.prose h2{font:600 22px/1.3 var(--font-heading);color:var(--color-ink);margin-top:var(--space-8);margin-bottom:var(--space-4)}.prose h3{font:500 18px/1.4 var(--font-heading);color:var(--color-ink);margin-top:var(--space-6);margin-bottom:var(--space-3)}.prose h4{font:500 16px/1.4 var(--font-heading);color:var(--color-ink);margin-top:var(--space-5);margin-bottom:var(--space-2)}.prose p{margin-bottom:var(--space-4)}.prose ul,.prose ol{margin-left:var(--space-5);margin-bottom:var(--space-4)}.prose li{margin-bottom:var(--space-2)}.prose blockquote{border-left:3px solid var(--color-tan);padding-left:var(--space-4);margin:var(--space-4) 0;color:var(--color-ink-light);font-style:italic}.prose code{font-family:var(--font-mono);font-size:13px;background:var(--color-paper-dark);padding:2px 6px;border-radius:3px;color:var(--color-umber)}.prose pre{background:var(--color-paper-dark);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-4) 0;overflow-x:auto}.prose pre code{background:none;padding:0;font-size:13px;line-height:1.5;color:var(--color-ink)}.prose strong{font-weight:600;color:var(--color-ink)}.prose em{font-style:italic}.prose a{color:var(--color-umber);text-decoration:underline;text-decoration-color:var(--color-tan);text-underline-offset:2px}.prose a:hover{color:var(--color-sienna)}.prose hr{border:none;border-top:1px solid var(--color-paper-darker);margin:var(--space-8) 0}.prose>*:first-child{margin-top:0}.prose>*:last-child{margin-bottom:0}.transcript-messages{display:flex;flex-direction:column;gap:var(--space-4)}.transcript-message{background:var(--color-paper-dark);border-radius:var(--radius-lg);padding:var(--space-4);border-left:4px solid var(--color-umber)}.transcript-message-body{font:400 15px/1.6 var(--font-body);color:var(--color-ink)}.transcript-message-body p{margin-bottom:var(--space-3)}.transcript-message-body p:last-child{margin-bottom:0}.transcript-message-body ul,.transcript-message-body ol{list-style-position:inside;margin-bottom:var(--space-3);padding-left:0}.transcript-message-body li{margin-bottom:var(--space-1)}.transcript-message-body code{font-family:var(--font-mono);font-size:13px;background:var(--color-paper);padding:2px 5px;border-radius:3px}.transcript-message-body pre{background:var(--color-paper);border-radius:var(--radius-sm);padding:var(--space-3);margin:var(--space-3) 0;overflow-x:auto}.transcript-message-body pre code{background:none;padding:0}.transcript-image{margin:var(--space-4) 0;position:relative}.transcript-image img{max-width:100%;max-height:400px;display:block;border-radius:var(--radius-md)}.transcript-image .image-caption{padding:var(--space-2) 0;text-align:left}.image-caption{font:400 12px/1.4 var(--font-mono);color:var(--color-ink-lighter);padding:var(--space-2) var(--space-3);text-align:center}.gallery-notes-meta{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-paper-darker)}.detail-notes-content .gallery-session-link{font:600 14px var(--font-body);color:var(--color-umber);text-decoration:none;transition:color var(--transition-fast)}.detail-notes-content .gallery-session-link:hover{color:var(--color-sienna)}.gallery-notes-section{margin-bottom:var(--space-5)}.gallery-notes-section h4{font:500 12px var(--font-body);color:var(--color-ink-lighter);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2)}.gallery-notes-section p{font-size:14px;line-height:1.6;color:var(--color-ink-light);margin-bottom:var(--space-2)}.gallery-notes-section ul{font-size:14px;line-height:1.6;color:var(--color-ink-light);margin-left:var(--space-4)}.gallery-notes-pieces{margin-bottom:0}.gallery-piece-item{font-size:13px;line-height:1.5;padding:var(--space-2) 0;cursor:pointer;transition:color var(--transition-fast)}.gallery-piece-item:hover{color:var(--color-umber)}.gallery-piece-name{font-family:var(--font-mono);font-size:12px;color:var(--color-umber)}.gallery-piece-desc{color:var(--color-ink-light)}.feedback-popover{position:absolute;background:var(--color-ink);color:var(--color-paper);padding:6px 12px;border-radius:var(--radius-md);font:500 13px var(--font-body);cursor:pointer;z-index:1000;box-shadow:var(--shadow-md);transform:translate(-50%)}.feedback-popover:hover{background:var(--color-umber)}.feedback-popover:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--color-ink)}.feedback-popover:hover:after{border-top-color:var(--color-umber)}.feedback-comment{background:var(--color-paper-warm);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-3) 0;border-left:3px solid var(--color-sienna)}.feedback-comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.feedback-comment-author{font:500 11px var(--font-body);color:var(--color-ink-lighter);text-transform:uppercase;letter-spacing:.5px}.feedback-comment-time{font:400 11px var(--font-body);color:var(--color-ink-lighter)}.feedback-comment-body{font:400 14px/1.5 var(--font-body);color:var(--color-ink)}.feedback-comment-quote{font:400 13px/1.4 var(--font-body);color:var(--color-ink-light);font-style:italic;padding-left:var(--space-3);border-left:2px solid var(--color-paper-darker);margin-bottom:var(--space-2)}.feedback-comment-delete{opacity:0;background:none;border:none;color:var(--color-ink-lighter);cursor:pointer;font-size:14px;padding:4px;transition:opacity var(--transition-fast)}.feedback-comment:hover .feedback-comment-delete{opacity:1}.feedback-comment-delete:hover{color:var(--color-sienna)}.feedback-input-container{margin:var(--space-3) 0}.feedback-input{width:100%;background:var(--color-paper-warm);border:1px solid var(--color-sienna);border-radius:var(--radius-md);padding:var(--space-3);font:400 14px/1.5 var(--font-body);color:var(--color-ink);resize:vertical;min-height:80px}.feedback-input:focus{outline:none;border-color:var(--color-umber)}.feedback-input::placeholder{color:var(--color-ink-lighter)}.feedback-input-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.feedback-btn-submit{background:var(--color-umber);color:var(--color-paper);border:none;padding:8px 16px;border-radius:var(--radius-md);font:500 13px var(--font-body);cursor:pointer}.feedback-btn-submit:hover{background:var(--color-sienna)}.feedback-btn-cancel{background:none;color:var(--color-sienna);border:none;padding:8px 12px;font:500 13px var(--font-body);cursor:pointer}.feedback-btn-cancel:hover{color:var(--color-umber)}.feedback-add-image-btn{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;border:none;background:var(--color-umber);color:var(--color-paper);cursor:pointer;opacity:0;transition:opacity var(--transition-fast),background var(--transition-fast);display:flex;align-items:center;justify-content:center;padding:0}.feedback-add-image-btn svg{width:14px;height:14px}.transcript-image:hover .feedback-add-image-btn{opacity:1}.feedback-add-image-btn:hover{background:var(--color-sienna)}.waiting-spinner{width:32px;height:32px;border:3px solid var(--color-paper-darker);border-top-color:var(--color-umber);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-4)}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}.flex-center{display:flex;align-items:center}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.transcript-gallery-entry .transcript-image a{display:block}.transcript-gallery-entry .image-caption a{color:var(--color-sienna);text-decoration:none}.transcript-gallery-entry .image-caption a:hover{text-decoration:underline}.transcript-script{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-paper-dark);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:13px;margin:var(--space-2) 0}.transcript-script .script-icon{color:var(--color-ink-faint)}.transcript-script .script-name{color:var(--color-sienna);font-weight:500}.transcript-script .script-desc{color:var(--color-ink-light);font-style:italic}
