:root{color-scheme:dark;--bg:#0c1115;--panel:#151e24;--line:#2c3941;--muted:#a1b1ba;--mint:#74e0c1;--red:#ff9b9b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#f3f5f6;font:15px/1.5 system-ui,sans-serif}header{display:flex;gap:24px;align-items:center;padding:20px 4%;border-bottom:1px solid var(--line)}.brand{font-size:27px;font-weight:850;letter-spacing:-1px}.brand span{font-size:12px;letter-spacing:2px;margin-left:14px}#connection{margin-left:auto;color:var(--muted);font-size:13px}main{max-width:1600px;margin:auto;padding:30px 4%}h1{font-size:clamp(32px,4vw,52px);letter-spacing:-1.7px;margin:0}h2{font-size:21px;margin:0}p{margin:7px 0;color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--mint);font-weight:700}.intro{margin:6px 0 30px}button,input,select{font:inherit;border:1px solid var(--line);border-radius:7px;padding:10px;background:#0c141a;color:inherit}button{cursor:pointer;font-weight:650}button:hover{border-color:var(--mint)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--mint);border-color:var(--mint);color:#09281e}button.danger{background:#391f25;border-color:#79424a;color:#ffc2c2}label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:5px}input[type=number]{width:100%}input[type=checkbox]{accent-color:var(--mint);width:17px;height:17px;margin:0}.check{flex-direction:row;align-items:center;gap:9px}.hint{font-size:12px}details{border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--panel)}summary{cursor:pointer;font-weight:600}.setup{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin:16px 0}.setup input{width:100%}#message{margin:18px 0;padding:12px 16px;background:#172721;border-left:3px solid var(--mint);font-size:14px}#message.error{border-color:var(--red);background:#301e23}.toolbar{display:flex;gap:14px;align-items:center;margin:30px 0 18px;flex-wrap:wrap}.toolbar>div{flex:1;min-width:250px}.toolbar>label{max-width:130px}.camera-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.camera{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.card-head{display:flex;justify-content:space-between;align-items:center;padding:15px 18px}.name{font-size:15px;color:#fff}.badge{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.badge.online{color:var(--mint)}.monitor{aspect-ratio:16/7;background:radial-gradient(ellipse at top,#253945,#10171e 80%);position:relative;display:grid;place-items:center;overflow:hidden}.monitor img{width:100%;height:100%;object-fit:contain;position:absolute}.placeholder{font-size:11px;letter-spacing:3px;color:#8096a4}.cam-number{position:absolute;bottom:10px;left:14px;color:#e4f3ed;font:600 12px monospace;background:#0c1115cc;border-radius:4px;padding:3px 7px}.card-body{padding:18px}.status{color:#eef4f2;font-size:13px;min-height:20px}.automation{min-height:18px;margin-bottom:16px}.directions,.speeds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.speeds{margin-top:12px}.actions{display:flex;gap:8px;margin:18px 0;flex-wrap:wrap}.actions .run{flex:1}.save-speed{font-size:12px}.shot-row{display:flex;gap:8px;margin:16px 0}.shots{min-width:0;flex:1}.auto{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:28px;padding:25px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.auto-controls{display:grid;grid-template-columns:1fr 1fr;gap:15px}.auto-controls>button,.auto-controls>.check{grid-column:1/-1}footer{margin:25px 0;font-size:12px}footer p{max-width:900px} :focus-visible{outline:2px solid #baf9e5;outline-offset:3px}@media(min-width:1400px){.camera-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.monitor{aspect-ratio:16/9}.actions button{font-size:12px}.directions,.speeds{gap:6px}}@media(max-width:700px){.camera-grid,.auto,.setup{grid-template-columns:1fr}header{gap:10px}.brand span{display:none}main{padding:20px 16px}.toolbar{align-items:stretch}.toolbar>div{flex-basis:100%}.toolbar>label{max-width:none}.auto{padding:18px}.actions button{padding:9px}}
