:root{--bg:#f4efe6;--panel:#fffaf2;--ink:#2b2420;--muted:#8a7f74;--line:#e2d8c8;--accent:#9b2c3a;--gold:#b8860b;--territory:#3f7d4e;--action:#2f5f9e;--succession:#7a4ea3;--calamity:#5b5b5b;--princess:#c0577a;--support:#a06a2c;color:var(--ink);background:var(--bg);-webkit-tap-highlight-color:transparent;font-family:system-ui,Segoe UI,Hiragino Sans,Meiryo,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#1b1816;--panel:#26211e;--ink:#eee5da;--muted:#a39686;--line:#3b332d}}*{box-sizing:border-box}body{background:var(--bg);margin:0}button{font:inherit;color:inherit}.app{max-width:1000px;margin:0 auto;padding:0 12px 84px}.topbar{justify-content:space-between;align-items:center;padding:10px 0;display:flex}.topbar h1{color:var(--accent);letter-spacing:.05em;margin:0;font-size:1.2rem}.topbar__btns{gap:6px;display:flex}.topbar__btns button,.actionbar button,.slot button,.modal button:not(:where(.card)){border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:8px;padding:6px 12px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.is-active{border-color:var(--gold);color:#2b2420;background:#f5e4b8}.status{background:var(--panel);border:1px solid var(--line);font-variant-numeric:tabular-nums;z-index:5;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 12px;display:flex;position:sticky;top:0}.phase{color:#fff;border-radius:99px;padding:1px 10px;font-size:.85em}.phase--main{background:var(--action)}.phase--second{background:var(--gold)}.muted{color:var(--muted);font-size:.85em}.error{color:#8a1f1f;cursor:pointer;background:#fbe3e3;border-radius:8px;margin-top:8px;padding:8px 12px}.zone{margin-top:14px}.zone h2{color:var(--muted);margin:0 0 6px;font-size:.9rem;font-weight:600}.zone p{margin:0}.princess,.hint{margin-left:1em}.princess{color:var(--princess)}.hint{color:var(--gold);font-weight:400}.row{flex-wrap:wrap;gap:8px;display:flex}.card{--c:var(--muted);background:var(--panel);border:2px solid var(--c);text-align:center;border-radius:10px;flex-direction:column;flex:none;align-items:center;gap:4px;width:104px;min-height:132px;padding:22px 6px 6px;transition:transform .12s,box-shadow .12s;display:flex;position:relative}.card--small{width:84px;min-height:104px;font-size:.85em}.card--territory{--c:var(--territory)}.card--action{--c:var(--action)}.card--succession{--c:var(--succession)}.card--calamity{--c:var(--calamity)}.card--princess{--c:var(--princess)}.card--support{--c:var(--support)}.card:disabled{opacity:1;cursor:default}.card.is-unavailable{opacity:.45}.card.is-clickable{cursor:pointer}.card.is-clickable:hover{transform:translateY(-3px);box-shadow:0 4px 10px #00000026}.card.is-selected{box-shadow:0 0 0 3px var(--gold);transform:translateY(-6px)}.card__cost{background:var(--c);color:#fff;border-radius:50%;width:20px;height:20px;font-size:.8rem;font-weight:700;line-height:20px;position:absolute;top:4px;left:4px}.card__badge{color:var(--muted);font-size:.75rem;position:absolute;top:4px;right:6px}.card__name{word-break:keep-all;overflow-wrap:anywhere;font-weight:700;line-height:1.2}.card__type{color:var(--c);font-size:.7rem}.card__stats{flex-wrap:wrap;justify-content:center;gap:2px 6px;margin-top:auto;font-size:.8rem;display:flex}.slot{flex-direction:column;align-items:center;gap:4px;display:flex}.slot__kept{flex-direction:column;align-items:center;gap:4px;margin-top:-40px;display:flex;transform:scale(.9)}.zone--hand .row{min-height:140px}.actionbar{z-index:10;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--panel) 92%, transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:center;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.actionbar button{padding:10px 18px}.modal{z-index:20;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal__body{background:var(--panel);border-radius:12px;gap:10px;width:100%;max-width:640px;max-height:calc(100dvh - 32px);padding:16px;display:grid;overflow-y:auto}.modal__body h2{margin:0;font-size:1rem}@media (width<=480px){.card{width:88px;min-height:116px;font-size:.85em}.card--small{width:72px;min-height:96px;font-size:.75em}}.turn-owner{font-weight:600}.turn-owner.is-me{color:var(--accent)}.opponents{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:8px;display:grid}.opp{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:.9em}.opp.is-turn{border-color:var(--gold);box-shadow:0 0 0 2px color-mix(in srgb, var(--gold) 40%, transparent)}.opp__head{justify-content:space-between;display:flex}.opp__princess{color:var(--princess);font-size:.9em}.opp__domain{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.chip{--c:var(--muted);border:1px solid var(--c);color:var(--c);border-radius:99px;padding:1px 6px;font-size:.75em}.chip--territory{--c:var(--territory)}.chip--succession{--c:var(--succession)}.chip--action{--c:var(--action)}.log{background:var(--panel);border:1px solid var(--line);max-height:120px;color:var(--muted);border-radius:10px;margin:8px 0 0;padding:6px 10px 6px 28px;font-size:.8em;overflow-y:auto}.seg{gap:6px;display:flex}.seg button{flex:1;padding:10px 0}.modal__btns{justify-content:flex-end;gap:8px;display:flex}.badge{background:var(--line);border-radius:99px;margin-left:6px;padding:1px 8px;font-size:.75em;font-weight:600}.badge--crown{background:var(--gold);color:#fff}.badge--out{background:var(--calamity);color:#fff}.opp.is-out{opacity:.55}.result-line{align-self:center;font-weight:600}.result-title{text-align:center;font-size:1.6rem!important}.result-title.is-win{color:var(--gold)}.result-table{border-collapse:collapse;width:100%}.result-table td{border-bottom:1px solid var(--line);padding:6px 4px}.result-table tr.is-winner td{font-weight:700}.princess-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;display:grid}.princess-row{align-items:flex-start;gap:8px;display:flex}.princess-row p,.princess-text{color:var(--muted);margin:0;font-size:.8em;line-height:1.5}.princess-text{margin-bottom:6px!important}.ability{margin-bottom:8px}.ability button{border:1px solid var(--princess);color:var(--princess);background:var(--panel);cursor:pointer;border-radius:8px;padding:6px 12px}.ability button.is-active{background:var(--princess);color:#fff}.card__cost.is-discount{background:var(--gold)}button.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 0 0 8px;text-decoration:underline}.card--text{width:150px}.card--text.card--small{width:130px}.card__text{color:var(--muted);text-align:left;font-size:.68rem;line-height:1.4}.options{gap:8px;display:grid}.options button{text-align:left;padding:10px 14px}.labeled{flex-direction:column;align-items:center;gap:2px;display:flex}.check{align-items:center;gap:6px;margin-bottom:6px;font-size:.85em;display:flex}.set-list{flex-wrap:wrap;gap:6px;display:flex}.set-item{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.modal .set-item button{border:none;border-radius:0}.set-item.is-active{border-color:var(--gold)}.set-item.is-active button{color:#2b2420;background:#f5e4b8}.modal .set-item button.set-item__del{color:var(--muted);border-left:1px solid var(--line);padding:6px 8px}.set-cards{flex-wrap:wrap;gap:4px;display:flex}.picker{border:1px solid var(--line);border-radius:10px;gap:8px;padding:10px;display:grid}.picker__head,.picker__save{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.picker__save input{min-width:120px;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;flex:1;padding:6px 10px}.picker .card:not(.is-selected){opacity:.5}
