:root{--bg:#07100d;--panel:#0d1b16;--panel2:#10251d;--felt:#0d5b3a;--felt2:#083e29;--green:#21b66f;--green2:#15965a;--gold:#d7ad58;--gold2:#f0cb79;--text:#f2f6f3;--muted:#8da49a;--line:#1d3a2f;--danger:#e05252;--warn:#e2ad45;--white:#fff}
*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 75% 10%,#123326 0,#07100d 38%,#050a08 100%);color:var(--text)}button,input,select{font:inherit}.app{display:flex;min-height:100vh}.sidebar{width:252px;background:linear-gradient(180deg,#09130f,#07100d);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;box-shadow:12px 0 40px #0005}.brand{display:flex;gap:12px;align-items:center;padding:5px 9px 28px}.logo{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#f6d58b,#c9963c 60%,#8b6323);color:#111;font-weight:950;font-size:21px;box-shadow:0 0 0 4px #d7ad5820,0 7px 20px #0008}.brand b{display:block;font-size:19px;letter-spacing:2px}.brand span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.nav{width:100%;border:1px solid transparent;background:transparent;color:#a9bdb4;text-align:left;padding:13px 14px;border-radius:12px;margin:4px 0;font-size:14px;cursor:pointer;transition:.18s}.nav:hover{background:#123025;color:#fff}.nav.active{background:linear-gradient(90deg,#124b34,#0e3225);border-color:#205d44;color:#fff;box-shadow:inset 3px 0 0 var(--green),0 6px 18px #0004}.sidebar-foot{margin-top:auto;color:#708b80;font-size:11px;padding:12px 8px;border-top:1px solid var(--line)}.mini{border:1px solid #315344;background:#11261e;color:#d9eee4;border-radius:8px;padding:6px 9px;margin-top:8px;cursor:pointer}.mini:hover{border-color:var(--green)}main{flex:1;padding:25px;min-width:0}header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}h1{margin:0 0 5px;font-size:30px;letter-spacing:-.5px}header p{margin:0;color:var(--muted)}.clock{font-weight:750;background:#0c1a14;border:1px solid var(--line);color:#d8e8e0;padding:10px 14px;border-radius:12px;box-shadow:0 5px 18px #0004}.page{display:none}.page.active{display:block}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.btn{border:1px solid transparent;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:750;transition:.16s}.btn:hover{transform:translateY(-1px);filter:brightness(1.08)}.primary{background:linear-gradient(135deg,var(--green),var(--green2));color:#06130d;box-shadow:0 6px 18px #0a9f5b30}.dark{background:#d7ad58;color:#10150f;border-color:#e7c778}.light{background:#10231b;border-color:#27483a;color:#dcebe5}.danger{background:#a93232;color:#fff;border-color:#d04b4b}.success{background:#167d4e;color:#fff}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.card{position:relative;background:linear-gradient(145deg,#0e2119,#0b1813);border:1px solid var(--line);border-radius:18px;padding:17px;box-shadow:0 12px 30px #0005;overflow:hidden}.card:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,#ffffff06,transparent 35%)}.card.running{border-color:#2b825d;box-shadow:0 0 0 1px #21b66f20,0 15px 35px #0006}.table-head{display:flex;justify-content:space-between;align-items:center;position:relative}.table-name{font-size:19px;font-weight:850}.badge{font-size:11px;padding:6px 9px;border-radius:20px;background:#1a2a24;color:#91a89f}.badge.running{background:#0e5639;color:#7df0b5}.badge.paused{background:#5b481e;color:#f0ca76}.timer{font-size:38px;font-weight:850;letter-spacing:1px;font-variant-numeric:tabular-nums;margin:20px 0 4px;color:#f6faf7;text-shadow:0 0 20px #21b66f18}.money{font-size:22px;font-weight:850;color:var(--gold2);margin-top:7px}.muted{color:var(--muted);font-size:13px}.actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.actions .btn{flex:1;min-width:90px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat{background:linear-gradient(145deg,#10261d,#0b1914);border:1px solid var(--line);border-radius:15px;padding:16px;box-shadow:0 8px 24px #0004}.stat span{display:block;color:var(--muted);font-size:12px}.stat b{font-size:22px;display:block;margin-top:7px;color:#f4f8f5}.table{width:100%;border-collapse:separate;border-spacing:0;background:#0d1c16;border:1px solid var(--line);border-radius:14px;overflow:hidden}.table th,.table td{padding:13px;border-bottom:1px solid #193328;text-align:left;font-size:13px}.table th{background:#10251d;color:#9eb4aa;font-weight:750}.table tr:last-child td{border-bottom:0}.table tr:hover td{background:#10271e}.form{display:grid;gap:12px}.form label{font-size:12px;color:#a8bbb3}.form input,.form select,.date{width:100%;padding:11px 12px;border:1px solid #29493c;background:#0a1712;color:#eef6f2;border-radius:9px;font-size:14px;outline:none}.form input:focus,.form select:focus,.date:focus{border-color:var(--green);box-shadow:0 0 0 3px #21b66f18}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-bg{position:fixed;inset:0;background:#000b;display:grid;place-items:center;padding:20px;z-index:10;backdrop-filter:blur(4px)}.modal{width:min(560px,100%);max-height:90vh;overflow:auto;background:linear-gradient(145deg,#11271e,#09140f);border:1px solid #315544;border-radius:18px;padding:21px;box-shadow:0 25px 70px #000b}.modal h2{margin-top:0;color:#f5faf7}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.empty{padding:45px;text-align:center;color:#7f988e;background:#0d1c16;border:1px dashed #315244;border-radius:14px}.low,.minus{color:#ff7373;font-weight:800}.plus{color:#55df99;font-weight:800}.movement{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #193328}.items{margin-top:12px;padding:10px;background:#09150f;border:1px solid #173126;border-radius:10px;font-size:12px}.items div,.receipt>div{display:flex;justify-content:space-between;gap:10px;margin:7px 0}.scroll{max-height:55vh;overflow:auto}.receipt hr{border:0;border-top:1px solid #294337;margin:14px 0}.periods{margin-bottom:12px}.history-filters{flex-wrap:wrap;align-items:center}.history-filters select,.history-filters input{min-height:40px;border:1px solid #29493c;border-radius:10px;padding:0 12px;background:#0a1712;color:#eef6f2;font:inherit}.history-filters input:not(.date){min-width:220px}.table-scroll{overflow-x:auto}.event-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:#172720;white-space:nowrap;font-size:12px;font-weight:750}.event-badge.plus{background:#0e3d2b;color:#55df99}.event-badge.minus{background:#451d1d;color:#ff7b7b}.event-badge.writeoff{background:#252a28;color:#a9b4af}.plus{color:#55df99}.minus{color:#ff7373}small.muted{font-size:11px}
/* visual billiard feel */
#tables .card{background:linear-gradient(145deg,#103d2b 0%,#0b2a1e 52%,#081b14 100%);border-color:#276448}#tables .card:after{content:"";position:absolute;left:14px;right:14px;top:54px;height:4px;border-radius:10px;background:linear-gradient(90deg,transparent,#36b779,transparent);opacity:.28}.card.running .timer{color:#baffd9}.card.running .table-name:before{content:"●";color:#34d483;font-size:9px;margin-right:8px;vertical-align:middle}.badge.running{box-shadow:0 0 14px #21b66f22}
@media(max-width:900px){.sidebar{width:210px}.stats{grid-template-columns:1fr 1fr}}@media(max-width:680px){.sidebar{width:68px;padding:14px 8px}.brand{justify-content:center;padding-bottom:18px}.brand div:not(.logo){display:none}.nav{font-size:0;text-align:center;padding:13px 8px}.nav:first-letter{font-size:17px}.sidebar-foot{display:none}main{padding:16px}header{gap:10px}.clock{font-size:11px}.grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.row{grid-template-columns:1fr}.history-filters input:not(.date){min-width:150px;flex:1}}
/* v7 — mini billiard tables and game control panel */
.table-hint{margin-left:auto}.table-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}.pool-card{cursor:pointer;padding:16px}.pool-card:hover{transform:translateY(-3px);border-color:#3a8f68;box-shadow:0 18px 40px #0008}.table-meta{font-size:11px;color:#8da49a;margin-top:3px}.pool-visual{padding:13px 8px 7px}.pool-cloth{height:142px;position:relative;border:11px solid #513a1d;border-radius:18px;background:radial-gradient(circle at 50% 50%,#12734b 0,#0d5b3a 58%,#08442c 100%);box-shadow:inset 0 0 0 2px #7a572a,0 12px 22px #0007}.pool-cloth:before{content:"";position:absolute;inset:8px;border:1px solid #54b78a55;border-radius:10px}.pocket{position:absolute;width:17px;height:17px;border-radius:50%;background:#050806;box-shadow:inset 0 2px 3px #000,0 0 0 2px #342513}.p1{left:-9px;top:-9px}.p2{right:-9px;top:-9px}.p3{left:-9px;bottom:-9px}.p4{right:-9px;bottom:-9px}.p5{left:50%;top:-10px;transform:translateX(-50%)}.p6{left:50%;bottom:-10px;transform:translateX(-50%)}.ball{position:absolute;width:13px;height:13px;border-radius:50%;box-shadow:2px 3px 4px #0008,inset 2px 2px 3px #fff8}.ball-white{left:32%;top:45%;background:#f4f2e8}.ball-red{left:56%;top:34%;background:#b73434}.ball-gold{left:62%;top:57%;background:#d8ad54}.pool-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:12px;font-weight:900;letter-spacing:2px;color:#ffffff2b}.pool-card-info{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:5px 2px}.pool-card-info>div{display:flex;flex-direction:column;gap:3px}.timer.compact{font-size:18px;margin:0;letter-spacing:.5px}.money.compact-money{font-size:18px;margin:0}.pool-actions{margin-top:11px}.pool-actions .btn{min-width:0}.game-panel{display:grid;gap:14px}.game-top{display:grid;grid-template-columns:1fr 1fr;gap:12px}.game-top>div,.score-box>div{background:#0a1913;border:1px solid #1e3d30;border-radius:12px;padding:11px}.game-top span,.score-box span{display:block;color:var(--muted);font-size:11px}.game-top strong{display:block;margin-top:5px;font-size:15px}.game-status.running{color:#55df99}.game-status.paused{color:#f0ca76}.game-timer{font-size:48px;text-align:center;font-weight:900;letter-spacing:2px;padding:10px 0;color:#caffdf;text-shadow:0 0 24px #21b66f33}.score-box{display:grid;grid-template-columns:1fr 1fr;gap:8px}.score-box b{display:block;margin-top:5px;font-size:17px;color:#f1f7f3}.score-box .score-total{grid-column:1/-1;background:linear-gradient(135deg,#123c2b,#0b2419);border-color:#2c7554}.score-total span{color:#76dbaa;font-weight:800}.score-total b{font-size:25px;color:var(--gold2)}.panel-section{background:#0b1913;border:1px solid #1e3d30;border-radius:13px;padding:12px}.section-title{display:flex;justify-content:space-between;align-items:center;font-weight:800;margin-bottom:9px}.small-btn{padding:6px 9px;font-size:11px}.panel-items>div,.game-history>div{display:flex;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid #183126;font-size:13px}.panel-items>div:last-child,.game-history>div:last-child{border-bottom:0}.panel-items em{font-style:normal;color:var(--muted);margin-left:4px}.game-history time{color:#718d81;font-size:11px;min-width:42px}.game-history span{flex:1}.panel-empty{padding:12px;color:#728c81;font-size:12px}.game-actions{display:flex;gap:8px}.game-actions .btn{flex:1}.empty-panel{text-align:center}.pool-mini{max-width:300px;margin:0 auto 15px}.pool-mini .pool-cloth{height:115px}.panel-note{font-size:15px;margin-bottom:7px}.panel-rate{color:var(--muted)}.panel-rate b{color:#fff}@media(max-width:680px){.table-hint{width:100%;margin-left:0}.table-grid{grid-template-columns:1fr}.game-timer{font-size:38px}}


/* BS-BILLIGO backend additions */
.header-right{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.user-chip{display:flex;align-items:center;gap:9px;background:#0c1a14;border:1px solid var(--line);padding:8px 10px;border-radius:12px;font-size:12px}.user-chip span{font-weight:800}.user-chip a{color:#86b5a1;text-decoration:none;padding-left:8px;border-left:1px solid #254336}.user-chip a:hover{color:#fff}.shift-open,.shift-closed{display:grid;gap:5px}.shift-open b{color:#dff7ea}.shift-open small{color:#6e8b7e}.shift-closed span{margin-bottom:2px}.login-body{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 50% 0,#14392a 0,#07100d 43%,#040806 100%)}.login-wrap{width:min(430px,100%)}.login-card{background:linear-gradient(145deg,#10251d,#09140f);border:1px solid #2b4d3e;border-radius:22px;padding:30px;box-shadow:0 30px 80px #000b}.login-brand{display:flex;gap:12px;align-items:center;margin-bottom:32px}.login-brand b{display:block;font-size:20px;letter-spacing:2px}.login-brand span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.login-title h1{margin:0 0 6px;font-size:27px}.login-title p{margin:0;color:var(--muted)}.login-form{display:grid;gap:15px;margin-top:24px}.login-form label{font-size:12px;color:#a8bbb3;display:grid;gap:7px}.login-form input{width:100%;padding:13px 14px;border:1px solid #29493c;background:#09160f;color:#eef6f2;border-radius:11px;font-size:14px;outline:none}.login-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px #21b66f18}.login-btn{width:100%;padding:13px;margin-top:3px}.login-error,.error-box{background:#3a1919;border:1px solid #6f2e2e;color:#ffb1b1;border-radius:11px;padding:11px 12px;font-size:12px;margin-top:18px}.login-note{margin-top:18px;color:#718c80;font-size:11px;text-align:center}.form-help{font-size:11px;color:#6f8a7e;background:#0a1712;border:1px dashed #29483c;padding:10px;border-radius:10px}.employee-note{margin-top:14px;background:#0b1913;border:1px solid #1e3d30;border-radius:14px;padding:12px;display:grid;gap:5px;font-size:12px}.employee-note span{color:var(--muted);line-height:1.5}.employee-note code{color:#a9d9c1}.modal .table{margin-top:8px}.btn:disabled{opacity:.6;cursor:wait;transform:none!important}.modal .stats{grid-template-columns:1fr 1fr}.empty-panel{padding-top:2px}@media(max-width:900px){.header-right{width:100%;justify-content:flex-start}header{flex-direction:column}.user-chip{display:none}}@media(max-width:680px){.login-card{padding:23px}.login-brand{margin-bottom:25px}.header-right{align-items:flex-start}.clock{flex:1}.app .nav[data-page="employees"]{font-size:0}}

/* Static frontend demo notice */
.demo-banner{display:flex;align-items:center;gap:11px;padding:10px 18px;background:#0b1a13;border-bottom:1px solid #214332;color:#cfe3d8;font-size:12px}
.demo-banner>div{display:grid;gap:2px;flex:1}.demo-banner>div span{color:#8eaa9c;font-size:11px}.demo-banner b{letter-spacing:.6px;color:#79e6ad}.demo-dot{width:8px;height:8px;flex:none;border-radius:50%;background:#e7b85b;box-shadow:0 0 0 4px #e7b85b1a}.demo-note{display:flex;align-items:flex-start;gap:10px;margin-top:19px;padding:12px;border:1px solid #254737;background:#0a1711;border-radius:12px;text-align:left}.demo-note .demo-dot{margin-top:4px}.demo-note b{display:block;color:#cde5d8;font-size:11px;margin-bottom:4px}.demo-note small{display:block;color:#789486;font-size:10px;line-height:1.55}.demo-banner .btn{padding:8px 10px;white-space:nowrap}@media(max-width:680px){.demo-banner{align-items:flex-start;flex-wrap:wrap;padding:10px 12px}.demo-banner>div{min-width:calc(100% - 25px)}.demo-banner .btn{margin-left:19px}}
