@import url('https://fonts.googleapis.com/css2?family=DM+Mono&family=Noto+Sans+JP:wght@400;500;700&family=Shippori+Mincho+B1:wght@600;700&display=swap');
:root{--ink:#13271f;--muted:#687a72;--green:#075d4a;--deep:#063d33;--line:#d8e2dc;--paper:#f8f8f4;--cream:#fffdf7;--gold:#d3ab42;--red:#b83e36}*{box-sizing:border-box}html,body{overscroll-behavior:none}body::after{content:'';position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top);background:#eef2eee8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:4}body{margin:0;background:#eef2ee;color:var(--ink);-webkit-text-size-adjust:100%;text-size-adjust:100%;font-family:'Noto Sans JP',sans-serif}.app-shell{max-width:760px;margin:auto;padding:0 16px 35px}.topbar{height:calc(64px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);display:flex;align-items:center;border-bottom:1px solid var(--line);gap:10px}.brand{font:700 22px 'Shippori Mincho B1',serif;text-decoration:none;color:var(--ink)}.brand span{color:var(--green)}button,input{font:inherit}button{cursor:pointer}.room-status{margin-left:auto;border:1px solid var(--line);background:#fff;border-radius:18px;padding:7px 12px;color:var(--green);font-size:11px;font-weight:700}.menu{border:0;background:transparent;font-size:25px;color:var(--muted)}.round-info{text-align:center;padding:26px 0 18px}.round-info p{margin:0;color:var(--green);font-size:11px;font-weight:700}.round-info h1{margin:4px 0;font:700 32px 'Shippori Mincho B1',serif}.round-info span{color:var(--muted);font-size:12px}.mahjong-table{height:430px;position:relative;border:12px solid #8c5d38;border-radius:32px;background:radial-gradient(circle,#16846a,#075342 70%);box-shadow:inset 0 0 0 3px #c99765,0 10px 25px #1a3b2f35}.player{position:absolute;width:190px;padding:10px 12px;border:1px solid #e2d8c9;border-radius:9px;background:var(--cream);box-shadow:0 4px 10px #001f1866}.player.dealer{border-color:var(--gold);background:#fffdf3}.player .wind{float:right;width:21px;height:21px;border-radius:50%;background:#e3eee8;color:var(--green);display:grid;place-items:center;font-size:11px;font-weight:700}.player b,.player strong,.player em{display:block}.player b{font-size:12px}.player strong{margin:4px 0;font:700 18px 'DM Mono',monospace}.player strong small{font-size:10px}.player em{font:10px 'DM Mono',monospace;color:#238365;font-style:normal}.player em.minus{color:var(--red)}.seat-東{top:15px;left:50%;transform:translateX(-50%)}.seat-南{right:15px;top:50%;transform:translateY(-50%)}.seat-西{bottom:15px;left:50%;transform:translateX(-50%)}.seat-北{left:15px;top:50%;transform:translateY(-50%)}.table-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:118px;height:118px;background:#f5e7c7;border:5px double #ac8349;display:flex;flex-direction:column;align-items:center;justify-content:center}.table-center b{font:700 44px 'Shippori Mincho B1',serif;line-height:.8;color:#b63931}.table-center span{margin-top:8px;font-size:10px;font-weight:700}.table-center small{margin-top:3px;font-size:9px;color:var(--muted)}.actions{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px;margin-top:16px}.actions button,.primary,.full{border:1px solid var(--line);border-radius:9px;background:#fff;padding:13px 8px;color:var(--ink);font-size:12px;font-weight:700}.primary{background:var(--green);border-color:var(--green);color:#fff}.history{margin-top:30px}.history header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.history h2{margin:0 0 8px;font:700 18px 'Shippori Mincho B1',serif}.history header button{border:0;background:transparent;color:var(--green);font-size:12px;font-weight:700}.history p{padding:11px 2px;margin:0;border-bottom:1px solid var(--line);font-size:12px}.history p b{margin-right:10px}.empty{color:var(--muted)}.welcome{min-height:calc(100vh - 100px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.welcome div{width:94px;height:94px;border:5px double #ab8248;background:#f4e5c4;display:grid;place-items:center;color:#b63931;font:700 46px 'Shippori Mincho B1',serif}.welcome p{margin:26px 0 5px;color:var(--green);font-size:12px;font-weight:700}.welcome h1{margin:0;font:700 36px 'Shippori Mincho B1',serif}.welcome span{margin:12px 0 24px;color:var(--muted);font-size:12px}.welcome .primary{width:min(310px,100%)}.link{margin-top:9px;border:0;background:transparent;color:var(--green);font-size:13px;font-weight:700}dialog{width:min(520px,calc(100vw - 24px));border:0;border-radius:15px;padding:0;box-shadow:0 20px 60px #132c2255}dialog::backdrop{background:#0c282077}.sheet{max-height:90vh;overflow:auto;padding:24px}.close{float:right;border:0;background:transparent;color:var(--muted);font-size:24px}.eyebrow{margin:0;color:var(--green);font-size:11px;font-weight:700}.sheet h2{margin:5px 0 18px;font:700 25px 'Shippori Mincho B1',serif}.sheet h3{margin:18px 0 8px;font-size:13px}.sheet label{display:grid;gap:6px;margin:12px 0;color:var(--muted);font-size:12px;font-weight:700}.sheet input{border:1px solid var(--line);border-radius:8px;padding:11px;color:var(--ink);background:#fff}.full{width:100%;margin-top:14px}.name-grid,.choice-grid,.method{display:grid;grid-template-columns:1fr 1fr;gap:8px}.choice-grid button,.method button,.open-hand,.yaku-group button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:11px 7px;font-size:12px;font-weight:700}.choice-grid small,.yaku-group small{display:block;margin-top:3px;color:var(--muted);font-weight:400}.selected{border-color:var(--green)!important;background:#e3f2ea!important;color:var(--green)!important}.status{margin:13px 0;padding:11px;border-radius:8px;background:#e2f0e9;color:var(--green);font-size:12px}.open-hand{width:100%;margin-top:14px}.yaku-group{margin:10px 0}.yaku-group h4{margin:0 0 6px;color:var(--green);font-size:12px}.yaku-group>div{display:flex;flex-wrap:wrap;gap:6px}.calculation{margin:16px 0;padding:13px;border-radius:9px;background:var(--deep);color:#cce9da}.calculation b{display:block;margin:3px 0;color:#fff;font:700 24px 'DM Mono',monospace}.calculation small,.calculation span{font-size:10px}.calculation em{display:block;margin-top:7px;font-style:normal;font-size:11px;font-weight:700;color:#9fd8bf}.leave-room{color:var(--red);border-color:#e5cac6}.guide article{padding:10px 0;border-bottom:1px solid var(--line)}.guide article h3{margin:0;font-size:14px}.guide article p{margin:5px 0 0;color:var(--muted);font-size:12px}.toast{position:fixed;z-index:5;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 16px;border-radius:8px;background:#15372d;color:#fff;font-size:12px}@media(max-width:480px){.app-shell{padding:0 11px 25px}.mahjong-table{height:390px;border-width:9px}.player{min-width:105px;padding:7px 8px}.player strong{font-size:14px}.seat-東{top:10px}.seat-西{bottom:10px}.seat-南{right:9px}.seat-北{left:9px}.table-center{width:94px;height:94px}.actions{grid-template-columns:1.25fr 1fr 1fr}.actions button{font-size:10px;padding:12px 4px}}
.topbar{height:calc(64px + clamp(0px,env(safe-area-inset-top),44px));padding-top:clamp(0px,env(safe-area-inset-top),44px)}
button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.service-alert{margin:12px 0 0;padding:12px 14px;border:1px solid #d49232;border-radius:10px;background:#fff5dc;color:#6d3a00;font-size:12px;font-weight:700;line-height:1.65}.service-alert::before{content:'共有卓のお知らせ';display:block;margin-bottom:3px;font-size:11px;color:#9b5800}
.room-status:disabled{cursor:not-allowed;border-color:#d8e2dc;background:#eef2ee;color:#687a72}.sharing-paused{margin:13px 0 0;color:#687a72;font-size:12px;font-weight:700}
.mahjong-table .fixed-seat-0{bottom:15px;left:50%;transform:translateX(-50%)}
.mahjong-table .fixed-seat-1{left:15px;top:50%;transform:translateY(-50%)}
.mahjong-table .fixed-seat-2{top:15px;left:50%;transform:translateX(-50%)}
.mahjong-table .fixed-seat-3{right:15px;top:50%;transform:translateY(-50%)}
.dora-native-input{display:none}
.dora-stepper{display:grid;grid-template-columns:42px 1fr 42px;gap:8px;margin-top:6px}
.dora-stepper strong{display:grid;place-items:center;border:1px solid #d8e2dc;border-radius:8px}
.yakuman-toggle-button{width:100%;padding:0;border:0;background:transparent;color:#07604d;text-align:left;font-size:12px;font-weight:700}
@media(max-width:480px){.mahjong-table .fixed-seat-0{bottom:10px}.mahjong-table .fixed-seat-1{left:9px}.mahjong-table .fixed-seat-2{top:10px}.mahjong-table .fixed-seat-3{right:9px}}
.edit-names{display:block;margin:10px auto 0;border:1px solid #bdd0c7;border-radius:16px;background:#fff;padding:6px 11px;color:#075d4a;font-size:11px;font-weight:700}
.player-name{display:block;width:calc(100% - 26px);border:0;border-bottom:1px dashed #9fb9ad;border-radius:0;background:transparent;padding:0 0 2px;color:#13271f;font:700 12px 'Noto Sans JP',sans-serif}.player-name:focus{outline:0;border-bottom:2px solid #075d4a;background:#fffdf7}
.player.dealer{border:3px solid #c99427;background:#fff9e8;box-shadow:0 0 0 2px #f3d98c,0 5px 13px #52380c88}.player.dealer .player-role{color:#8a5700}.dealer-label{display:inline-block;margin-right:3px;border-radius:4px;background:#b57b16;padding:1px 4px;color:#fff;font-size:10px;line-height:1.35;font-weight:700}.dealer-center-label{display:inline-block!important;margin-top:7px!important;border:0;border-radius:7px;background:#b57b16;padding:2px 9px;color:#fff!important;font-size:11px!important;line-height:1.25;font-weight:700;letter-spacing:.12em}.table-center button.dealer-center-label{cursor:pointer}.setup-note{margin:0 0 10px;color:#687a72;font-size:12px;line-height:1.55}.start-dealer-grid button{min-height:58px}
.table-menu{border:1px solid #bdd0c7;border-radius:15px;background:#fff;padding:5px 8px;color:#075d4a;font-size:11px;font-weight:700;line-height:1}.player.self{box-shadow:0 0 0 2px #9fd5c3,0 4px 10px #001f1866}.player.self.dealer{box-shadow:0 0 0 2px #f3d98c,0 5px 13px #52380c88}.self-label{display:inline-block;margin-right:3px;border-radius:4px;background:#075d4a;padding:1px 4px;color:#fff;font-size:10px;line-height:1.35;font-weight:700}@media(max-width:480px){.table-menu{padding:5px 7px;font-size:10px}.player.self{box-shadow:0 0 0 2px #9fd5c3,0 3px 8px #001f1866}.player.self.dealer{box-shadow:0 0 0 2px #f3d98c,0 4px 10px #52380c88}}
.seat-name-table{display:grid;grid-template-columns:minmax(0,1fr) 74px minmax(0,1fr);grid-template-rows:auto 84px auto;gap:8px;align-items:center;margin:4px 0 18px}.sheet .setup-seat-name{min-width:0;margin:0;gap:4px}.setup-seat-name>span{color:#075d4a;font-size:11px}.setup-seat-name input{min-width:0;padding:9px!important}.setup-seat-top{grid-column:1/4;grid-row:1;justify-self:center;width:min(190px,100%)}.setup-seat-left{grid-column:1;grid-row:2}.setup-seat-right{grid-column:3;grid-row:2}.setup-seat-bottom{grid-column:1/4;grid-row:3;justify-self:center;width:min(190px,100%)}.setup-seat-center{grid-column:2;grid-row:2;display:grid;place-items:center;align-content:center;gap:3px;width:74px;height:74px;border:4px double #ab8248;background:#f4e5c4;color:#b63931;font:700 26px 'Shippori Mincho B1',serif;line-height:1}.setup-seat-center small{color:#687a72;font:500 9px 'Noto Sans JP',sans-serif}@media(max-width:480px){.seat-name-table{grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);grid-template-rows:auto 76px auto;gap:7px}.setup-seat-center{width:62px;height:62px;font-size:22px}.setup-seat-name input{padding:8px!important;font-size:12px}.setup-seat-top,.setup-seat-bottom{width:min(176px,100%)}}
@media(max-width:480px){.mahjong-table{height:410px}.mahjong-table .player{min-width:0;width:clamp(100px,calc((100% - 150px)/2),112px);padding:7px 8px}.mahjong-table .player .wind{width:32px;height:32px}.mahjong-table .table-center{width:90px;height:90px}.player-name{width:calc(100% - 36px);max-width:68px;font-size:11px}.player.dealer{border-width:3px}.player.dealer .player-role{margin-top:3px}.table-center .dealer-center-label{margin-top:5px!important;padding:2px 7px;font-size:10px!important}.table-center strong{max-width:100%;overflow:hidden;padding:0 4px;text-overflow:ellipsis;white-space:nowrap}.start-dealer-grid button{min-height:56px}}
@media(max-width:370px){.mahjong-table{height:400px}.mahjong-table .player{width:84px;padding:6px}.mahjong-table .table-center{width:72px;height:80px}.mahjong-table .table-center b{font-size:38px}.player-name{width:calc(100% - 34px);max-width:42px;font-size:10px}.player strong{font-size:13px}.dealer-label{padding:1px 3px;font-size:9px}.player .wind{width:30px;height:30px}}
.guide .note{margin:0 0 18px;color:#687a72;font-size:12px;line-height:1.6}.guide-group{margin:24px 0 0}.guide-group>header{display:flex;align-items:baseline;gap:10px;padding:0 0 8px;border-bottom:2px solid #c8ddd2}.guide-group>header h3{margin:0;color:#075d4a;font-size:17px}.guide-group>header p{margin:0;color:#687a72;font-size:10px}.guide-card{margin:0!important;padding:15px 0!important;border-bottom:1px solid #d8e2dc!important}.guide-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border:0!important}.guide-card h4{margin:0!important;color:#13271f;font-size:16px!important}.guide-card ruby rt{color:#687a72;font-size:9px;font-weight:500}.guide-han{flex:0 0 auto;border-radius:12px;background:#e3f2ea;padding:4px 7px;color:#075d4a;font-size:10px;font-weight:700;white-space:nowrap}.guide-tiles{display:flex;flex-wrap:wrap;gap:5px 8px;margin:10px 0 7px;padding:9px 10px;border:1px solid #d8e2dc;border-radius:8px;background:#fbfdfb;line-height:1.2}.tile-set{display:inline-block;letter-spacing:1px;color:#13271f;font-family:'Segoe UI Symbol','Noto Sans Symbols 2',sans-serif;font-variant-emoji:text;font-size:25px;white-space:nowrap}.guide-card p{margin:0!important;color:#52685e!important;font-size:12px!important;line-height:1.65}.yakuman-guide>header{border-color:#c99a57}.yakuman-guide .guide-han{background:#fbefd9;color:#8b5a19}@media(max-width:480px){.tile-set{font-size:22px}.guide-card h4{font-size:15px!important}.guide-card>header{gap:6px}.guide-han{font-size:9px;padding:4px 6px}}
.share-qr{display:grid;place-items:center;width:fit-content;max-width:100%;margin:18px auto;padding:10px;background:#fff;border:1px solid #cfded7;border-radius:14px}
.share-qr svg{display:block;width:min(64vw,260px);height:auto;max-width:100%}
.share-qr p{max-width:260px;margin:8px;text-align:center;color:#5c6f67;font-size:.9rem}
.seat-choice-table{display:grid;grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr);grid-template-rows:auto 78px auto;gap:8px;align-items:center;margin:8px 0 18px}.seat-choice-table button{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;padding:11px 7px;font-size:12px;font-weight:700}.seat-choice-table button small{display:block;margin-top:3px;color:var(--muted);font-weight:400}.seat-choice-0{grid-column:1/4;grid-row:3;justify-self:center;width:min(180px,100%)}.seat-choice-1{grid-column:1;grid-row:2}.seat-choice-2{grid-column:1/4;grid-row:1;justify-self:center;width:min(180px,100%)}.seat-choice-3{grid-column:3;grid-row:2}.seat-choice-center{grid-column:2;grid-row:2;display:grid;place-items:center;align-content:center;width:70px;height:70px;border:4px double #ab8248;background:#f4e5c4;color:#075d4a;font-size:12px;font-weight:700;line-height:1.15}.seat-choice-center small{margin-top:4px;color:var(--muted);font-size:9px;font-weight:500}@media(max-width:370px){.seat-choice-table{grid-template-columns:minmax(0,1fr) 60px minmax(0,1fr);grid-template-rows:auto 68px auto;gap:6px}.seat-choice-center{width:60px;height:60px}.seat-choice-table button{padding:9px 5px;font-size:11px}}
.one-han-group>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.one-han-group button{min-width:0;padding:10px 2px;font-size:10px;white-space:nowrap}@media(max-width:370px){.one-han-group>div{gap:4px}.one-han-group button{padding:9px 1px;font-size:9px}}
.guide{padding-bottom:82px}.guide #closeGuide{position:fixed;z-index:3;bottom:calc(5vh + 12px);left:50%;width:min(472px,calc(100vw - 72px));margin:0;transform:translateX(-50%);box-shadow:0 -5px 18px #132c2233}
.brand{color:var(--green)}
.table-menu-seat-map{margin-bottom:22px}.table-menu-seat-map button{min-height:58px}.table-menu-seat-map [data-seat-player]{cursor:grab;touch-action:none;transition:opacity .15s,transform .15s}.table-menu-seat-map [data-seat-player].dragging{z-index:2;cursor:grabbing;opacity:.55;transform:scale(.95)}
.legal-footer{display:flex;justify-content:center;gap:14px;padding:20px 16px 4px;text-align:center;font-size:12px}.legal-footer a,.legal-footer button{border:0;background:transparent;padding:0;color:#527069;text-decoration:none;font:inherit}.legal-footer a:hover,.legal-footer button:hover{text-decoration:underline}
.privacy-page{margin:0;background:#f3f7f4;color:#102d27}.privacy-content{box-sizing:border-box;max-width:760px;margin:auto;padding:32px 20px 64px;line-height:1.8}.privacy-content h1{font-size:1.75rem}.privacy-content h2{margin-top:2rem;font-size:1.15rem}.privacy-content a{color:#006a55}.privacy-content small{color:#58716b}
