:root{--bg: #f8fafc;--card: #ffffff;--text: #1e293b;--muted: #64748b;--border: #e2e8f0;--primary: #b45309;--primary-hover: #92400e;--danger: #dc2626;--danger-hover: #b91c1c;--success: #16a34a;--radius: 12px;--shadow: 0 1px 3px rgba(0, 0, 0, .08)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-form{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;width:100%;max-width:360px}.login-form h1{margin:0 0 .25rem;font-size:1.5rem}.subtitle{margin:0 0 1.5rem;color:var(--muted)}.login-form label{display:block;margin-bottom:.4rem;font-weight:500;font-size:.9rem}.login-form input,.field input,.field textarea{width:100%;padding:.6rem .8rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;outline:none}.login-form input:focus,.field input:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #b453091f}.primary-button,.start-btn,.stop-btn,.logout-btn{border:none;border-radius:8px;padding:.65rem 1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s ease}.primary-button{width:100%;margin-top:1rem;background:var(--primary);color:#fff}.primary-button:hover:not(:disabled){background:var(--primary-hover)}button:disabled{opacity:.6;cursor:not-allowed}.error{color:var(--danger);font-size:.9rem;margin:.75rem 0 0}.publish-page{max-width:720px;margin:0 auto;padding:1.5rem}.publish-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.publish-header h1{margin:0;font-size:1.4rem}.logout-btn{background:var(--bg);color:var(--muted);border:1px solid var(--border)}.logout-btn:hover{background:var(--border)}.preview-card,.status-card,.controls-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;margin-bottom:1.25rem}.preview-card h2,.controls-card h2{margin:0 0 .75rem;font-size:1.1rem}.preview-video{width:100%;aspect-ratio:16 / 9;background:#000;border-radius:8px}.hint{color:var(--muted);font-size:.85rem;margin:.5rem 0 0}.status-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border)}.status-row:last-child{border-bottom:none}.status-label{color:var(--muted)}.status-badge{font-weight:600;padding:.2rem .6rem;border-radius:20px;font-size:.85rem}.status-badge.live{background:#fee2e2;color:var(--danger)}.status-badge.offline{background:#f1f5f9;color:var(--muted)}.field{margin-bottom:1rem}.field label{display:block;margin-bottom:.35rem;font-weight:500;font-size:.9rem}.field textarea{resize:vertical;font-family:inherit}.actions{margin-top:1.25rem}.start-btn,.stop-btn{width:100%;color:#fff}.start-btn{background:var(--success)}.start-btn:hover:not(:disabled){background:#15803d}.stop-btn{background:var(--danger)}.stop-btn:hover:not(:disabled){background:var(--danger-hover)}.feedback{margin:.75rem 0 0;color:var(--primary);font-weight:500}.error-box{margin-top:1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.75rem 1rem;color:#7f1d1d}.error-box strong{display:block;margin-bottom:.25rem}.error-box p{margin:0;font-size:.9rem;word-break:break-word}.thumbnail-preview{width:100%;max-width:320px;aspect-ratio:16 / 9;object-fit:cover;border-radius:8px;border:1px solid var(--border)}.thumbnail-placeholder{width:100%;max-width:320px;aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-size:.9rem}.thumbnail-upload{display:flex;gap:.5rem;align-items:center;margin-top:.5rem}.thumbnail-upload input[type=file]{flex:1;font-size:.85rem}.secondary-btn{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;font-size:.9rem;font-weight:500;cursor:pointer}.secondary-btn:hover:not(:disabled){background:var(--border)}.secondary-btn:disabled{opacity:.6;cursor:not-allowed}
