:root{--bg: #f5f0eb;--surface: #ffffff;--text: #1a1a1a;--muted: #666666;--border: #e0d8cf;--primary: #e8825a;--danger: #c0392b;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}main{padding:24px}main.centered{max-width:32rem;margin:12vh auto;background:var(--surface);border:1px solid var(--border);border-radius:10px}h1{font-size:1.375rem;margin:0 0 12px}.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.bar div{display:flex;align-items:center;gap:12px}form{display:grid;gap:8px;max-width:22rem}label{font-size:.8125rem;font-weight:600;color:var(--muted)}input{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font:inherit;background:var(--surface)}button{padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:var(--primary);color:var(--surface);font:inherit;font-weight:600;cursor:pointer}button:disabled{opacity:.55;cursor:default}.muted{color:var(--muted)}.error{color:var(--danger)}.metadata{max-width:1100px;margin:28px auto 0}.metadata-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.metadata-tabs .tab{border:0;border-radius:8px 8px 0 0;background:transparent;color:var(--muted)}.metadata-tabs .tab.active{background:var(--surface);color:var(--text);border:1px solid var(--border);border-bottom-color:var(--surface);margin-bottom:-1px}.metadata-panel{background:var(--surface);border:1px solid var(--border);border-top:0;padding:24px;overflow-x:auto}.section-heading{display:flex;justify-content:space-between;margin-bottom:20px}h2{margin:0;font-size:1.25rem}.section-heading p{margin:4px 0 0}.add-row{display:flex;gap:8px;max-width:none;margin-bottom:20px}.add-row input{flex:1;min-width:12rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-top:1px solid var(--border);vertical-align:middle}th{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.inline-input{width:min(100%,24rem);padding:8px 10px}.actions{white-space:nowrap;text-align:right}.actions button{margin-left:8px;padding:7px 10px}.danger-button{background:transparent;color:var(--danger);border-color:transparent}.color-picker{display:inline-flex;flex-wrap:wrap;gap:5px;vertical-align:middle}.swatch{width:22px;height:22px;padding:0;border:2px solid transparent;border-radius:50%}.swatch.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--surface);outline:1px solid var(--text)}.tag-preview{display:inline-block;margin-left:12px;padding:3px 8px;border-radius:10px;font-size:.8rem;font-weight:600}.empty{color:var(--muted);text-align:center;padding:20px}@media(max-width:700px){main{padding:16px}.metadata-panel{padding:16px 10px}.actions button{display:block;margin:4px 0 4px auto}}.review-page{max-width:1500px;margin:auto}.review-page .bar>div{display:flex;align-items:center;gap:16px}.review-layout{display:grid;grid-template-columns:minmax(320px,2fr) minmax(300px,1fr);gap:16px;align-items:start}.review-layout>.photo-pane{grid-column:1 / -1}.photo-pane,.grid-pane,.editor-panel,.book-stub{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px}.photo-pane{max-height:46vh;overflow:auto}.photo-pane img{display:block;width:100%;margin-bottom:12px;cursor:zoom-in}.phrase-grid{align-content:flex-start;min-height:300px;padding:16px;border:2px solid transparent;outline:none}.phrase-grid:focus{border-color:var(--primary)}.phrase-line{display:flex;flex-wrap:wrap;gap:8px;min-height:62px;align-items:flex-start}.phrase-chip{background:transparent;color:var(--text);border:1px solid transparent;padding:6px 9px;font-weight:600}.chip-chinese{font-size:1.3rem;line-height:1.2}.phrase-chip.settled{opacity:.55}.phrase-chip.new{font-weight:700}.phrase-chip.second-look .chip-chinese{text-decoration:underline 2px #d99400;text-decoration-style:wavy;text-underline-offset:3px}.phrase-chip.missing .chip-chinese{text-decoration:underline 2px var(--danger);text-decoration-style:wavy;text-underline-offset:3px}.phrase-chip.focused{outline:2px solid var(--primary)}.books-view{padding:14px 2px}.scope-toggle{display:flex;gap:6px;margin-bottom:12px}.scope-toggle .scope{background:transparent;color:var(--muted);border-color:var(--border);font-weight:500}.scope-toggle .scope.active{background:var(--primary);color:var(--surface);border-color:var(--primary);font-weight:700}.scope-toggle .count{opacity:.75;margin-left:5px}.book-list{list-style:none;padding:0;margin:0}.book-list li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid var(--border)}.mode-label{color:var(--primary);font-size:.75rem;font-weight:700;letter-spacing:.08em}.key-help{color:var(--muted);font-size:.8rem}.editor-panel{display:grid;gap:14px;opacity:.72}.editor-panel.editing{opacity:1;border-color:var(--primary)}.panel-hint{font-size:.78rem;margin:-6px 0 0}.phrase-chip{display:grid;gap:1px;justify-items:center}.chip-pinyin{font-size:.72rem;font-weight:500;color:var(--muted)}.chip-level{font-size:.66rem;font-weight:600;color:var(--muted);opacity:.8}.editor-panel label{display:grid;gap:5px}.editor-panel input{width:100%}.editor-panel .chinese-input{font-size:1.9rem;line-height:1.35;padding:8px 10px}.editor-panel fieldset{border:0;padding:0}.pill-group{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.pinyin-rows{display:grid;gap:5px}.pinyin-rows .row-label{font-size:1.05rem;min-width:1.4em;color:var(--muted)}.add-pinyin{min-width:2.2em}.pill-group button{padding:6px 9px;background:transparent;color:var(--text);border-color:var(--border);font-weight:500}.pill-group button:hover{border-color:var(--text)}.pill-group button.selected{background:var(--primary);color:var(--surface);border-color:var(--primary);font-weight:700}.editor-actions{display:flex;gap:8px}.success{color:#277a45}.book-stub{max-width:700px;margin:40px auto}.book-stub li{padding:9px 0}@media(max-width:900px){.review-layout{grid-template-columns:1fr}.photo-pane{max-height:35vh}}.row-error{margin:4px 0 0;font-size:.8125rem;color:var(--danger)}
