:root{--ink:#173b35;--deep:#102d2a;--green:#0f5a4c;--felt:#16715f;--cream:#f5f0e3;--paper:#fcfaf3;--gold:#d4ad63;--muted:#73877e;--line:#d8ded3;--red:#a94c3d}*{box-sizing:border-box}html{background:#ebe9df;color:var(--ink);font-family:"Segoe UI",Arial,sans-serif}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 0,#fffdf5 0,#f2f0e7 56%,#e8e6dc 100%)}button,input{font:inherit}.pool-loading{min-height:100vh;display:grid;place-content:center;text-align:center;color:#5f766d}.pool-loading span{width:54px;height:54px;margin:auto;border:5px solid #d9dfd3;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.pool-loading p{font-size:14px;letter-spacing:.12em;text-transform:uppercase}.pool-header{height:90px;padding:0 5.5%;display:flex;align-items:center;gap:25px;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:40;box-shadow:0 4px 18px #173f3508}.pool-brand{display:inline-flex;align-items:center;gap:10px;color:var(--deep);font:400 27px Georgia,serif;letter-spacing:-.8px;text-decoration:none;white-space:nowrap}.pool-brand-mark{font:400 28px/1.2 Georgia,serif;color:#b2823d}.pool-brand-club{display:block;margin-top:0;font:400 11px "Segoe UI",sans-serif;letter-spacing:2.5px;text-transform:uppercase}.pool-nav{display:flex;align-items:center;gap:28px;margin-right:auto;margin-left:60px}.pool-nav a{padding:12px 0;color:#8a907f;text-decoration:none;font-size:14px}.pool-nav a.active{color:#284a36}.pool-profile{margin-left:auto;display:flex;align-items:center;gap:10px;color:#47645a;font-weight:600}.pool-avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#d9e5d8;color:#244f42;font-size:12px}.pool-main{width:min(1440px,94vw);margin:auto;padding:42px 0 70px}.pool-hero{min-height:330px;padding:55px clamp(32px,6vw,82px);border-radius:22px;background:linear-gradient(125deg,#113a34 0,#185e50 58%,#0c4039 100%);color:#f8f1dd;display:grid;grid-template-columns:1.15fr .85fr;overflow:hidden;position:relative;box-shadow:0 22px 50px #163a3025}.pool-hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid #fff2;border-radius:50%;right:-170px;top:-150px}.pool-eyebrow{font-size:11px;font-weight:700;letter-spacing:.24em;color:#dfc27b}.pool-hero h1{font:clamp(48px,6.3vw,84px)/.98 Georgia,serif;margin:18px 0 20px;max-width:760px}.pool-hero p{font-size:17px;line-height:1.7;color:#d5e2d6;max-width:620px}.pool-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.pool-button{border:0;border-radius:8px;padding:13px 20px;font-weight:700;font-size:14px;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;gap:8px}.pool-button.primary{background:#f3e8c9;color:#183f36}.pool-button.green{background:#1f6557;color:#fff9e9}.pool-button.outline{background:transparent;color:inherit;border:1px solid currentColor}.pool-button.danger{background:#8d493e;color:#fff}.pool-button:disabled{opacity:.45;cursor:not-allowed}.hero-table{align-self:center;justify-self:center;width:min(440px,100%);aspect-ratio:2;border:18px solid #704327;border-radius:24px;background:radial-gradient(circle at 40% 45%,#20806a,#0d5b4e);box-shadow:inset 0 0 0 4px #bd8b4c,0 25px 45px #071b1755;transform:rotate(-5deg);position:relative}.hero-table:before,.hero-table:after{content:"";position:absolute;border-radius:50%;background:#081a18;width:26px;height:26px;top:-11px}.hero-table:before{left:-11px;box-shadow:calc(100% + 389px) 0 #081a18,205px 0 #081a18,0 207px #081a18,205px 207px #081a18,410px 207px #081a18}.hero-ball{position:absolute;width:34px;height:34px;border:3px solid #eee7d6;border-radius:50%;box-shadow:0 5px 8px #082d2766}.hero-ball.one{background:#d9ae35;left:62%;top:31%}.hero-ball.eight{background:#171919;left:69%;top:48%}.hero-ball.cue{background:#f8f3e7;left:19%;top:46%}.room-section{margin-top:28px;background:#fbfaf4;border:1px solid #cfd9cf;border-radius:18px;padding:35px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-head h2{font:38px Georgia,serif;margin:0}.section-head p{margin:8px 0 0;color:var(--muted);font-size:14px}.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.pool-room-card{border:1px solid #dce1d7;border-radius:13px;padding:21px;background:#fffef9;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.pool-room-card h3{margin:0 0 7px;font:22px Georgia,serif}.pool-room-card p{margin:0;color:#7c8b83;font-size:12px}.room-status{display:inline-flex;margin-left:8px;padding:4px 8px;border-radius:999px;background:#e9efe3;color:#4e704f;font:700 9px "Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.08em}.room-status.playing{background:#ede8df;color:#8b6e46}.room-empty{grid-column:1/-1;text-align:center;padding:65px 20px;border:1px dashed #cfd8cb;border-radius:12px;color:#708379}.room-empty b{display:block;font:30px Georgia,serif;color:#36584c;margin-bottom:10px}.auth-gate{width:min(620px,92vw);margin:80px auto;background:#fffdf7;border:1px solid var(--line);border-radius:18px;padding:45px;text-align:center}.auth-gate h1{font:42px Georgia,serif;margin:15px 0}.auth-gate p{color:#71827a;line-height:1.7}.auth-gate form{display:grid;gap:13px;margin:28px auto 12px;max-width:340px;text-align:left}.auth-gate label,.pool-form label{font-size:12px;font-weight:700;color:#587067}.auth-gate input,.pool-form input{width:100%;border:1px solid #d1d9cf;background:#fff;padding:13px;border-radius:7px;margin-top:6px;color:var(--deep)}.form-error{min-height:20px;color:#a14335;font-size:12px}.pool-table-page{width:min(1480px,96vw);margin:auto;padding:28px 0 60px}.table-top{display:flex;align-items:center;gap:14px;margin-bottom:17px}.table-top h1{font:30px Georgia,serif;margin:0}.table-top .pool-button:last-child{margin-left:auto}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.table-shell{background:linear-gradient(140deg,#54331f,#a2703e 38%,#56311c 75%,#8a5b32);padding:clamp(10px,2vw,25px);border-radius:28px;box-shadow:0 30px 60px #193d3433,inset 0 0 0 2px #d4a462}.canvas-wrap{position:relative;aspect-ratio:2;border-radius:16px;overflow:hidden;box-shadow:inset 0 0 35px #001c1766;background:#0e5c4d}.pool-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.game-panel{background:#fffdf7;border:1px solid #d7ddd3;border-radius:17px;padding:24px;display:flex;flex-direction:column;gap:19px}.turn-card{padding:20px;border-radius:12px;background:#163f37;color:#fff8e8}.turn-card small{display:block;color:#d9bd78;font-size:10px;letter-spacing:.16em;margin-bottom:8px}.turn-card strong{font:25px Georgia,serif}.turn-card p{font-size:12px;line-height:1.55;color:#cbdad2;margin:9px 0 0}.players{display:grid;gap:9px}.player-row{border:1px solid #e0e3db;border-radius:10px;padding:12px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.player-row.current{border-color:#c7a766;background:#f8f1dc}.player-row .pool-avatar{width:30px;height:30px}.player-row b{font-size:13px}.player-row span{font-size:10px;color:#7e8c84}.group-dot{width:24px;height:24px;border-radius:50%;border:2px solid #eee;box-shadow:0 1px 3px #0003;background:#aaa}.group-dot.solids{background:#d9ad30}.group-dot.stripes{background:linear-gradient(#faf6e9 28%,#a74739 28% 72%,#faf6e9 72%)}.power-control label{display:flex;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:.08em}.power-control input{width:100%;margin:14px 0;accent-color:#b47a3f}.game-help{font-size:12px;line-height:1.6;color:#74847c;background:#f2f3ec;padding:13px;border-radius:8px}.winner-card{text-align:center;padding:18px;background:#f5ead0;border-radius:11px}.winner-card strong{display:block;font:27px Georgia,serif;margin-bottom:7px}.waiting-room{min-height:540px;background:linear-gradient(135deg,#123c35,#1a594c);border-radius:22px;color:#f8f2df;display:grid;place-items:center;text-align:center;padding:35px}.waiting-room .rack-mark{width:90px;height:78px;margin:auto;position:relative}.waiting-room .rack-mark:before{content:"";position:absolute;inset:0;border:3px solid #d7bb75;clip-path:polygon(50% 0,100% 100%,0 100%)}.waiting-room h2{font:44px Georgia,serif;margin:22px 0 12px}.waiting-room p{color:#c7d7ce}.waiting-pulse{display:inline-block;width:10px;height:10px;border-radius:50%;background:#e0c273;box-shadow:0 0 0 0 #e0c27377;animation:pulse 1.6s infinite}dialog{border:1px solid #d4dbd0;border-radius:16px;padding:30px;width:min(470px,calc(100vw - 30px));background:#fcfaf3;color:var(--ink);box-shadow:0 30px 100px #102d2a55}dialog::backdrop{background:#102d2a99;backdrop-filter:blur(4px)}dialog h2{font:32px Georgia,serif;margin:0 0 8px}.pool-form{display:grid;gap:16px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}#pool-toast{position:fixed;z-index:20;bottom:25px;left:50%;transform:translateX(-50%);background:#173e35;color:#fff9e8;padding:13px 20px;border-radius:8px;box-shadow:0 10px 30px #112e2766;font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{70%{box-shadow:0 0 0 13px #e0c27300}}@media(max-width:950px){.pool-hero{grid-template-columns:1fr}.hero-table{display:none}.game-layout{grid-template-columns:1fr}.game-panel{display:grid;grid-template-columns:1fr 1fr}.turn-card{grid-column:1/-1}}@media(max-width:800px){.pool-nav{display:none}}@media(max-width:650px){.pool-header{height:74px;padding:0 4%}.pool-brand{font-size:24px}.pool-profile span:not(.pool-avatar){display:none}.pool-main{width:calc(100% - 24px);padding:18px 0 35px}.pool-hero{min-height:330px;padding:34px 25px;border-radius:16px}.pool-hero h1{font-size:47px}.pool-hero p{font-size:14px}.room-section{padding:23px 17px}.section-head{align-items:start;flex-direction:column}.section-head h2{font-size:32px}.room-grid{grid-template-columns:1fr}.pool-room-card{grid-template-columns:1fr}.pool-room-card .pool-button{justify-self:start}.pool-table-page{width:100%;padding:12px 10px 30px}.table-top{padding:0 3px}.table-top h1{font-size:22px}.table-shell{border-radius:15px;padding:7px}.canvas-wrap{border-radius:9px}.game-panel{grid-template-columns:1fr;padding:15px}.waiting-room{min-height:480px;border-radius:15px}.waiting-room h2{font-size:35px}.auth-gate{padding:32px 22px;margin:35px auto}.auth-gate h1{font-size:35px}}

.pool-account{margin-left:auto;position:relative}.pool-account summary{display:flex;align-items:center;gap:10px;color:#47645a;font-weight:600;cursor:pointer;list-style:none}.pool-account summary::-webkit-details-marker{display:none}.pool-account summary i{font-style:normal;color:#84968d}.pool-account>div{position:absolute;right:0;top:48px;width:215px;padding:8px;background:#fffdf7;border:1px solid #d9ded5;border-radius:10px;box-shadow:0 18px 45px #173b3528;display:grid}.pool-account a,.pool-account button{border:0;background:transparent;text-align:left;text-decoration:none;color:#456158;padding:11px;border-radius:6px;font-size:12px;cursor:pointer}.pool-account a:hover,.pool-account button:hover{background:#eef1e7;color:#234d40}.pool-canvas:focus-visible{outline:3px solid #f2d38a;outline-offset:4px}@media(max-width:650px){.pool-account summary>span:not(.pool-avatar),.pool-account summary>i{display:none}}

.pool-form select{width:100%;border:1px solid #d1d9cf;background:#fff;padding:13px;border-radius:7px;margin-top:6px;color:var(--deep);font:inherit}.pool-form label small{display:block;margin-top:7px;color:#7c8b83;font-weight:400;line-height:1.45}.pool-form [hidden]{display:none}.turn-card.thinking strong:after{content:"";display:inline-block;width:5px;height:5px;margin-left:8px;border-radius:50%;background:#e3c479;box-shadow:9px 0 #e3c479,18px 0 #e3c479;animation:thinking 1.1s infinite alternate}@keyframes thinking{to{opacity:.25;transform:translateY(-2px)}}
.gesture-control{padding:15px;border-radius:10px;background:#f2f3ec}.gesture-control.disabled{opacity:.55}.gesture-control label{display:flex;justify-content:space-between;font-size:11px;font-weight:800;letter-spacing:.08em}.gesture-control p{margin:11px 0 0;color:#6f8178;font-size:12px;line-height:1.55}.power-meter{height:8px;margin-top:12px;border-radius:99px;background:#d7ddd3;overflow:hidden}.power-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3c8b67 0 62%,#d2a94f 82%,#a84c3d 100%);transition:width .04s linear}.pool-canvas{user-select:none;-webkit-user-select:none}
