:root{--bg:#f7f7f5;--panel:#fff;--line:#dcdcd6;--text:#1c1c1a;--muted:#6d6d66;--accent:#2f6f4f;--accent-soft:#e6f0ea;--danger:#a33;color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px}*{box-sizing:border-box}body{background:var(--bg);margin:0}button{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:5px;padding:4px 9px}button:hover{border-color:#b9b9b1}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.active{background:var(--accent-soft);border-color:var(--accent)}button.icon{color:var(--muted);background:0 0;border:none;padding:2px 5px}button.icon:hover{color:var(--text)}button.icon.danger:hover{color:var(--danger)}button.add{color:var(--muted);border-style:dashed;margin:4px 0 4px 22px}input,textarea{font:inherit;border:1px solid var(--line);background:var(--panel);border-radius:5px;width:100%;padding:5px 8px}.spacer{flex:1}.muted{color:var(--muted)}.center{text-align:center;margin-top:3rem}.app{flex-direction:column;height:100vh;display:flex}header{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 14px;display:flex}.columns{flex:1;min-height:0;display:flex}aside{border-right:1px solid var(--line);background:var(--panel);width:380px;min-width:280px;padding:10px;overflow:auto}main{flex:1;min-width:0;padding:14px 18px;overflow:auto}.banner{background:#fdf3e3;border-bottom:1px solid #e9d5ab;align-items:center;gap:8px;padding:8px 14px;display:flex}.tree .row{padding-left:22px;display:block;position:relative}.tree .row.dragging{opacity:.55}.handle{color:#b6b6ae;cursor:grab;touch-action:none;background:0 0;border:none;padding:2px 4px;position:absolute;top:3px;left:0}.handle:active{cursor:grabbing}.node-header{align-items:center;gap:4px;min-height:26px;padding:2px 0;display:flex}.twisty{color:var(--muted);background:0 0;border:none;width:20px;padding:0 3px}.title{cursor:pointer;border-radius:4px;padding:1px 3px}.title:hover{background:var(--accent-soft)}.title.strong{font-weight:600}.title-input{max-width:260px}.children{border-left:1px solid #ecece6;margin-left:16px;padding-left:6px}.node.lesson.selected .title{background:var(--accent);color:#fff}.revision{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.add-row{max-width:280px;margin:4px 0 4px 22px}.editor-head{align-items:baseline;gap:10px;display:flex}.editor-head h2{margin:0 0 4px;font-size:19px}.toolbar{border-bottom:1px solid var(--line);background:var(--bg);z-index:2;flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:10px;padding:8px 0;display:flex;position:sticky;top:0}.toolbar .sep{background:var(--line);width:1px;height:20px;margin:0 4px}.toolbar-label{color:var(--muted);font-size:13px}.status{background:var(--accent-soft);border-radius:5px;margin-bottom:10px;padding:6px 10px;font-size:13px}.import{border:1px solid var(--line);background:var(--panel);border-radius:6px;margin-bottom:12px;padding:10px}.import p{color:var(--muted);margin:0 0 8px;font-size:13px}.import-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.editor-surface{background:var(--panel);border:1px solid var(--line);border-radius:6px;min-height:50vh;padding:16px 20px}.tiptap{outline:none;line-height:1.55}.tiptap p{margin:0 0 .5em}.tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--muted);float:left;pointer-events:none;height:0}.login{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:10px;max-width:300px;margin:14vh auto;padding:22px;display:flex}.login h1{margin:0 0 6px;font-size:20px}.error{color:var(--danger);margin:0;font-size:13px}.pairing section{margin-top:20px}.pairing h3{color:var(--muted);margin:0 0 8px;font-size:14px;font-weight:600}.pairing input{max-width:460px}.chips{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;display:flex}.chips button{font-size:13px}.row-inline{align-items:center;gap:8px;max-width:460px;display:flex}.warn{background:#fdf3e3;border:1px solid #e9d5ab;border-radius:5px;max-width:520px;margin:8px 0 0;padding:8px 10px;font-size:13px}.qr-box{background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;align-items:flex-start;gap:20px;padding:16px;display:flex}.qr-box canvas{background:#fff;border-radius:4px}.qr-manual{flex:1;min-width:260px}.qr-manual p{color:var(--muted);margin:0 0 10px;font-size:13px}.qr-manual label{color:var(--muted);margin-top:8px;font-size:12px;display:block}.qr-manual code{border:1px solid var(--line);word-break:break-all;-webkit-user-select:all;user-select:all;background:#f1f1ec;border-radius:4px;padding:6px 8px;font-size:13px;display:block}.qr-manual code.token{font-size:12px}table.devices{border-collapse:collapse;width:100%;max-width:640px}table.devices th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:4px 8px 4px 0;font-size:12px;font-weight:600}table.devices td{border-bottom:1px solid #ecece6;padding:6px 8px 6px 0;font-size:14px}
