:root{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-surface: #0f3460;--bg-hover: #1a3a6e;--bg-input: #1e2a4a;--text-primary: #e0e0e0;--text-secondary: #a0a0b8;--text-muted: #6c6c8a;--border: #2a2a4a;--accent: #4a90d9;--accent-hover: #5aa0e9;--success: #4caf50;--success-hover: #5cbf60;--danger: #e74c3c;--danger-hover: #f75c4c;--warning: #f39c12;--sidebar-width: 220px;--topbar-height: 50px;--radius: 6px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;background:var(--bg-primary);color:var(--text-primary);line-height:1.5}.layout{display:flex;height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.sidebar-header{padding:16px 20px;border-bottom:1px solid var(--border)}.sidebar-header h2{font-size:16px;font-weight:600;color:var(--accent)}.sidebar-nav{display:flex;flex-direction:column;padding:8px 0;flex:1;overflow-y:auto}.nav-link{display:block;padding:10px 20px;color:var(--text-secondary);text-decoration:none;font-size:13px;transition:background .15s,color .15s}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{background:var(--bg-surface);color:var(--accent);border-right:3px solid var(--accent)}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:var(--topbar-height);background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0}.topbar-status{display:flex;align-items:center;gap:8px;font-size:13px}.topbar-actions{display:flex;gap:8px}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.status-dot.running{background:var(--success);box-shadow:0 0 6px var(--success)}.status-dot.stopped{background:var(--danger)}.content{flex:1;overflow-y:auto;padding:24px}.page{max-width:1200px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-header h1{font-size:22px;font-weight:600}.page-header-actions{display:flex;align-items:center;gap:12px}.page-loading{padding:40px;text-align:center;color:var(--text-muted)}.empty-state{padding:40px;text-align:center;color:var(--text-muted);font-size:15px}.empty-row{text-align:center;color:var(--text-muted);padding:20px}.btn{padding:8px 16px;border:none;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;transition:background .15s;color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-success{background:var(--success)}.btn-success:hover:not(:disabled){background:var(--success-hover)}.btn-danger{background:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-secondary{background:#555}.btn-secondary:hover:not(:disabled){background:#666}.btn-sm{padding:4px 10px;font-size:12px}.data-table{width:100%;border-collapse:collapse;background:var(--bg-secondary);border-radius:var(--radius);overflow:hidden}.data-table th{text-align:left;padding:10px 14px;font-size:12px;font-weight:600;text-transform:uppercase;color:var(--text-muted);background:var(--bg-surface);border-bottom:1px solid var(--border)}.data-table td{padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#ffffff05}.clickable-cell{cursor:pointer}.clickable-cell:hover{color:var(--accent);text-decoration:underline}.actions{white-space:nowrap;display:flex;gap:6px}.mono{font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px}.masked-key{font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;color:var(--text-muted)}.error-cell{color:var(--danger);font-size:12px;max-width:200px;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase}.badge-parsing{background:#2a4a6a;color:#6ac}.badge-placing{background:#4a3a2a;color:#ca6}.badge-both{background:#2a4a3a;color:#6ca}.badge-type1{background:#2a3a5a;color:#8af}.badge-type2{background:#4a2a4a;color:#c8a}.badge-status-active{background:#1a3a1a;color:var(--success)}.badge-status-cancelled{background:#3a1a1a;color:var(--danger)}.badge-status-filled{background:#2a3a1a;color:var(--warning)}.status-indicator{font-weight:500}.status-indicator.active{color:var(--success)}.status-indicator.inactive{color:var(--text-muted)}.count-badge{background:var(--bg-surface);color:var(--text-secondary);padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:12px;color:var(--text-secondary);font-weight:500}input,select,textarea{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;color:var(--text-primary);font-size:13px;font-family:inherit;outline:none;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.inline-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:20px}.form-row{display:flex;gap:12px;align-items:flex-end;margin-bottom:12px}.inline-input{width:100%;padding:4px 8px;font-size:13px}.price-input{width:80px}.inline-edit{display:flex;gap:4px;align-items:center}.textarea-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.help-text{font-size:12px;color:var(--text-muted);margin-bottom:8px}.items-textarea{width:100%;resize:vertical;min-height:300px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;line-height:1.6}.textarea-actions{display:flex;align-items:center;gap:12px;margin-top:12px}.save-success{color:var(--success);font-size:13px}.error-msg{background:#e74c3c26;border:1px solid var(--danger);border-radius:var(--radius);padding:10px 14px;color:var(--danger);margin-bottom:16px;font-size:13px}.login-page{display:flex;justify-content:center;align-items:center;height:100vh;background:var(--bg-primary)}.login-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:32px;width:360px}.login-form h1{text-align:center;margin-bottom:24px;font-size:20px;color:var(--accent)}.login-form .form-group{margin-bottom:16px}.login-form .btn{width:100%;padding:10px;font-size:14px}.login-form .error-msg{margin-top:0}
