:root{color-scheme:dark;--bg: #111;--bg-elevated: #1a1a1a;--border: #333;--text: #eee;--text-dim: #999;--accent: #4ea1ff;--danger: #ff6b6b;font-family:-apple-system,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--accent)}h1,h2,h3{margin-top:0}button,input,select,textarea{font:inherit;color:inherit;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:6px 10px}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:hover:not(:disabled){border-color:var(--accent)}.button{display:inline-block;text-decoration:none}code{background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;padding:2px 5px;font-size:.9em}.app-shell{min-height:100vh}.navbar{display:flex;align-items:center;gap:24px;padding:12px 20px;border-bottom:1px solid var(--border)}.navbar-brand{height:32px;width:auto;display:block}.navbar-links{display:flex;gap:16px;flex:1}.navbar-links a{text-decoration:none;color:var(--text-dim)}.navbar-links a.active,.navbar-links a:hover{color:var(--text)}.navbar-user{display:flex;align-items:center;gap:10px}.navbar-email{color:var(--text-dim);font-size:.9em}.app-content{max-width:1000px;margin:0 auto;padding:24px 20px 64px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.auth-page{max-width:380px;margin:64px auto;padding:0 16px}.auth-page form{display:flex;flex-direction:column;gap:12px;margin:20px 0}.auth-page label{display:flex;flex-direction:column;gap:4px;font-size:.9em;color:var(--text-dim)}.form-error{color:var(--danger);font-size:.9em}.text-dim{color:var(--text-dim);font-size:.9em}.save-confirm{color:#6bcf6b}.inline-form{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}label{display:block;margin-bottom:14px;font-size:.9em;color:var(--text-dim)}label input,label select,label textarea{display:block;margin-top:4px;width:100%}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.data-table th{color:var(--text-dim);font-weight:500;font-size:.85em}.device-list{list-style:none;padding:0}.device-list li{padding:8px 0;border-bottom:1px solid var(--border)}.callout{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:14px;margin-bottom:16px}.secret{display:block;word-break:break-all;margin:8px 0}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.media-card{border:1px solid var(--border);border-radius:8px;padding:10px;text-align:center}.media-thumbnail{background:#000;border:1px solid var(--border);max-width:100%}.media-card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:.8em;color:var(--text-dim)}.frame-editor-layout{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.canvas-box-editor{position:relative;background:#000;border:2px solid var(--border);background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:10px 10px;touch-action:none;-webkit-user-select:none;user-select:none}.canvas-box{position:absolute;border:1px solid rgba(255,255,255,.4);cursor:move}.canvas-box.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.canvas-box-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.canvas-box-content{font-size:9px;color:#fff;text-shadow:0 0 2px #000;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 2px}.resize-handle{position:absolute;width:10px;height:10px;background:var(--accent);border-radius:50%}.resize-nw{top:-5px;left:-5px;cursor:nwse-resize}.resize-ne{top:-5px;right:-5px;cursor:nesw-resize}.resize-sw{bottom:-5px;left:-5px;cursor:nesw-resize}.resize-se{bottom:-5px;right:-5px;cursor:nwse-resize}.box-inspector{width:280px;border:1px solid var(--border);border-radius:8px;padding:14px}.box-inspector-header{display:flex;justify-content:space-between;align-items:center}.color-markup-field{display:flex;flex-direction:column;gap:8px}.color-markup-span{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--border);border-radius:6px}.color-markup-span input[type=text],.color-markup-span input:not([type]){width:100%}.swatches{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.swatch{width:18px;height:18px;border-radius:50%;padding:0;border:2px solid transparent}.swatch.active{border-color:#fff}.color-picker{display:flex;flex-direction:column;gap:6px}.color-picker-row{display:flex;gap:6px}.color-picker-native{width:36px;height:32px;padding:2px;cursor:pointer}.color-picker-hex{width:90px;font-family:monospace;text-transform:uppercase}.color-picker-group{display:flex;align-items:center;gap:8px}.color-picker-label{color:var(--text-dim);font-size:.75em;width:56px;flex-shrink:0}.timeline{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.timeline-card{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:6px;padding:8px 10px;background:var(--bg-elevated)}.drag-handle{cursor:grab;color:var(--text-dim)}.timeline-card-name{flex:1}.timeline-card-kind{color:var(--text-dim);font-size:.85em}
