*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #fafaf8;--bg-panel: #ffffff;--bg-hover: #f5f5f0;--bg-selected: #e8f0fe;--border: #e0ddd8;--text: #1a1a1a;--text-secondary: #6b6b6b;--text-dim: #999;--accent: #2563eb;--accent-hover: #1d4ed8;--danger: #dc2626;--tag-bg: #f0eeea;--tag-text: #555;--radius: 6px;--radius-lg: 10px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0;overflow:hidden}.main-row{display:grid;grid-template-columns:220px 1fr 1fr;grid-template-rows:minmax(0,1fr);flex:1 1 0;min-height:0;min-width:0;overflow:hidden}.nav-panel{background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.nav-header{padding:16px;border-bottom:1px solid var(--border)}.nav-header h1{font-size:15px;font-weight:600;margin-bottom:12px;white-space:nowrap}.nav-header select{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;background:var(--bg)}.nav-problem{padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0;height:72px;overflow:hidden}.nav-problem-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:4px}.nav-problem-text{font-size:12px;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nav-steps{flex:1;padding:8px 0}.nav-step{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;font-size:13px;color:var(--text-secondary);border-left:3px solid transparent;transition:all .15s}.nav-step:hover{background:var(--bg-hover)}.nav-step.active{color:var(--accent);border-left-color:var(--accent);background:var(--bg-selected);font-weight:500}.nav-step.disabled{opacity:.4;pointer-events:none}.nav-step-count{margin-left:auto;font-size:11px;background:var(--tag-bg);padding:1px 6px;border-radius:10px}.list-panel{border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;min-height:0}.list-header{padding:0 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;height:46px}.list-header h2{font-size:14px;font-weight:600}.list-body{flex:1;overflow-y:auto;padding:8px}.list-item{padding:10px 12px;border-radius:var(--radius);cursor:pointer;display:flex;align-items:flex-start;gap:10px;margin-bottom:4px;transition:background .1s}.list-item:hover{background:var(--bg-hover)}.list-item.active{background:var(--bg-selected)}.list-item-check{flex-shrink:0;width:18px;height:18px;border:2px solid var(--border);border-radius:4px;margin-top:1px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .1s}.list-item-check.checked{background:var(--accent);border-color:var(--accent);color:#fff}.list-item-content{flex:1;min-width:0}.list-item-title{font-size:13px;font-weight:500;margin-bottom:2px}.list-item-subtitle{font-size:12px;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.tag{font-size:11px;padding:1px 6px;border-radius:4px;background:var(--tag-bg);color:var(--tag-text)}.problem-space{margin-bottom:4px}.problem-space-header{padding:8px 12px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;display:flex;align-items:center;gap:6px;border-radius:var(--radius)}.problem-space-header:hover{background:var(--bg-hover)}.problem-space-count{font-weight:400;color:var(--text-dim)}.detail-panel{display:flex;flex-direction:column;overflow:hidden}.detail-header{padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.detail-header h3{font-size:14px;font-weight:600}.detail-body{flex:1;overflow-y:auto;padding:16px}.detail-section{margin-bottom:16px}.detail-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:4px}.detail-text{font-size:13px;line-height:1.6;white-space:pre-wrap}.btn{padding:6px 14px;font-size:13px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-panel);cursor:pointer;font-weight:500;transition:all .1s}.btn:hover{background:var(--bg-hover)}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-sm{padding:4px 10px;font-size:12px}.btn:disabled{opacity:.4;pointer-events:none}.input{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;font-family:inherit}.input:focus{outline:none;border-color:var(--accent)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;padding:8px;overflow-y:auto;flex:1;align-content:start;min-height:0}.gallery-tile{position:relative;border:2px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;aspect-ratio:4/5;min-height:200px;background:var(--bg-hover);content-visibility:auto;contain-intrinsic-size:250px 320px}.gallery-tile:hover{outline:2px solid var(--text-dim);outline-offset:-2px}.gallery-tile.selected{outline:2px solid var(--accent);outline-offset:-2px}.gallery-tile img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}.gallery-tile .gallery-tile-broken{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px;text-align:center;font-size:12px;color:var(--text-dim);background:var(--bg-hover)}.gallery-tile .gallery-tile-broken strong{color:var(--text-secondary);font-size:13px}.gallery-tile .gallery-tile-broken small{font-size:11px;word-break:break-all;max-width:90%}.gallery-tile-actions{position:absolute;top:6px;left:6px;right:6px;display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}.gallery-tile-action{font-size:11px;padding:2px 6px;background:#ffffffeb;color:var(--text);box-shadow:0 1px 2px #00000014}.gallery-tile-action[data-selected=true]{background:var(--accent);color:#fff;padding:2px 8px}.gallery-tile-action-danger{color:var(--danger)}.warning-box{background:#fef3c7;border:1px solid #f59e0b;border-radius:var(--radius);padding:12px 16px;margin:8px;font-size:13px}.warning-box strong{color:#92400e}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:13px;text-align:center;padding:32px}.loading{display:flex;align-items:center;justify-content:center;padding:32px;color:var(--text-dim);font-size:13px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.shimmer{background:linear-gradient(90deg,#e0ddd8 25%,#ebe8e3,#e0ddd8 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius)}.settings-btn{background:none;border:none;cursor:pointer;font-size:16px;color:var(--text-secondary);padding:0;line-height:1;margin-top:2px}.nav-group-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);padding:10px 16px 2px}.nav-action-panel{padding:12px 16px;border-top:1px solid var(--border)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.placeholder-item{padding:10px 12px;margin-bottom:4px;display:flex;align-items:flex-start;gap:10px}.placeholder-check{width:18px;height:18px;border-radius:4px;flex-shrink:0}.placeholder-line{height:12px;border-radius:4px;margin-bottom:6px}.placeholder-card{border:2px solid #d5d0ca;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5}
