*{box-sizing:border-box}body{margin:0;background:#111;color:#eee;font-family:Inter,Arial,sans-serif}.app{max-width:1320px;margin:auto;padding:28px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}h1{margin:0;font-size:30px}p{color:#aaa;margin:6px 0 0}button,.fileBtn{border:0;border-radius:10px;padding:10px 14px;background:#2b2b2b;color:#eee;display:inline-flex;gap:8px;align-items:center;cursor:pointer}button:hover,.fileBtn:hover{background:#3a3a3a}.primary{background:#f1c232;color:#111;font-weight:700;margin-top:12px}input,textarea{width:100%;background:#1b1b1b;color:#eee;border:1px solid #333;border-radius:8px;padding:10px}textarea{min-height:72px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.cards div{background:#1d1d1d;border:1px solid #2d2d2d;border-radius:16px;padding:18px}.cards b{font-size:28px;display:block}.cards span{color:#aaa}.toolbar{display:flex;gap:10px;margin-bottom:16px}.toolbar input{flex:1}.fileBtn input{display:none}table{width:100%;border-collapse:separate;border-spacing:0 8px}th{text-align:left;color:#aaa;font-weight:500;padding:8px 12px}td{background:#1b1b1b;padding:14px 12px;border-top:1px solid #2b2b2b;border-bottom:1px solid #2b2b2b}td:first-child{border-left:1px solid #2b2b2b;border-radius:12px 0 0 12px}td:last-child{border-right:1px solid #2b2b2b;border-radius:0 12px 12px 0}tr{cursor:pointer}small{display:block;color:#888;margin-top:3px}.ok,.bad{display:inline-flex;align-items:center;gap:6px}.ok{color:#8fd18f}.bad{color:#ff9a9a}.warn{color:#f1c232;display:inline-flex;align-items:center;gap:6px}.okText{color:#8fd18f}.badText{color:#ff9a9a}.muted{color:#777}.url{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#bbb}.icon{padding:8px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:min(900px,96vw);max-height:92vh;overflow:auto;background:#171717;border:1px solid #333;border-radius:18px;padding:22px;box-shadow:0 18px 80px #000}.modalHead{display:flex;justify-content:space-between;align-items:center}.modalHead h2{margin:0}.modalHead button{font-size:28px;padding:4px 12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wide{grid-column:1/-1}label{color:#aaa;font-size:13px}label input,label textarea{margin-top:5px}.statusBox{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;background:#202020;border-radius:12px;padding:14px}.actions{display:flex;flex-wrap:wrap;gap:8px}.full{margin-top:10px}.inline{display:flex;gap:8px}.message,.error{margin:12px 0;padding:12px;border-radius:10px;background:#2b2415;border:1px solid #5a4312}.hint{font-size:13px;line-height:1.4}.error{background:#321e1e;border-color:#623030;color:#ffb3b3}@media (max-width:800px){.cards{grid-template-columns:1fr 1fr}.grid2,.statusBox{grid-template-columns:1fr}.toolbar{flex-wrap:wrap}table{font-size:13px}.url{max-width:180px}}.modal.large{max-width:980px}.groupSection{margin-bottom:32px}.groupHeader{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:8px}.groupHeader h2{margin:0;font-size:18px;white-space:nowrap}.groupCount{color:#888;font-weight:400}.groupActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.groupMsg{color:#aaa;font-size:13px}.groupSep{width:1px;background:#333;align-self:stretch;margin:0 4px}.brightnessInput{width:64px;padding:10px 8px}label select{display:block;width:100%;margin-top:5px;background:#1b1b1b;color:#eee;border:1px solid #333;border-radius:8px;padding:10px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.groupAutomations{display:flex;flex-direction:column;gap:8px;padding:10px 14px;background:#161616;border-radius:10px;margin-bottom:10px}.toggle{display:flex;align-items:center;gap:10px;cursor:pointer;color:#bbb;font-size:13px;-webkit-user-select:none;user-select:none}.toggle input{display:none}.toggleTrack{width:36px;height:20px;background:#333;border-radius:10px;flex-shrink:0;position:relative;transition:background .2s}.toggleThumb{position:absolute;top:2px;left:2px;width:16px;height:16px;background:#555;border-radius:50%;transition:transform .2s,background .2s}.toggle input:checked+.toggleTrack{background:#f1c232}.toggle input:checked+.toggleTrack .toggleThumb{transform:translate(16px);background:#111}.cloneTargets{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto;background:#1b1b1b;border-radius:8px;padding:10px;margin:8px 0}.checkLabel{display:flex;align-items:center;gap:8px;color:#ccc;font-size:14px;cursor:pointer}.checkLabel input{width:auto;cursor:pointer}.loginOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d0d0d;display:flex;align-items:center;justify-content:center;z-index:9999}.loginBox{background:#171717;border:1px solid #333;border-radius:18px;padding:36px 40px;width:min(380px,90vw);display:flex;flex-direction:column;gap:14px}.loginBox h2{margin:0;font-size:22px}.loginBox p{color:#888;margin:0;font-size:14px}.loginBox form{display:flex;flex-direction:column;gap:10px}.loginError{color:#ff9a9a;font-size:13px}.headerActions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.authorTag{color:#555;font-size:12px;white-space:nowrap}.notifyToggleRow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.notifyChip{font-size:11px;padding:2px 8px;border-radius:20px;white-space:nowrap}.notifyChip.granted{background:#1a3a1a;color:#8fd18f;border:1px solid #2d5a2d}.notifyChip.denied{background:#3a1a1a;color:#ff9a9a;border:1px solid #622}.notifyChip.default{background:#2a2a1a;color:#f1c232;border:1px solid #554}.inlineField{display:flex;gap:8px;align-items:center}.inlineField input{flex:1}.inlineField button{flex-shrink:0;margin-top:0;padding:10px 14px}.cuescoreCell{white-space:nowrap}.cuescoreCell select{width:auto;padding:6px 8px;font-size:13px;display:inline}.cuescoreCell button{margin-left:6px;padding:6px 10px;font-size:13px}.grid4{display:grid;grid-template-columns:2fr 1fr 1fr 2fr;gap:12px;margin:14px 0}.scanTable input{width:100%}@media (max-width: 800px){.grid4{grid-template-columns:1fr}}
