/* Cycle choices own only this phase root; combat, real loot and tavern remain
   with the owner. Natural scrolling is deliberate at constrained heights. */
.cycle-view {height:100%;min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;color:#ecddba;background:#132126;font:14px/20px system-ui,sans-serif}
.cycle-view[hidden] {display:none!important}
.cycle-view * {box-sizing:border-box}
.cycle-view .cycle-shell {display:flex;flex-direction:column;gap:8px;min-height:100%;padding:8px 10px 12px}
.cycle-view .cycle-heading {display:flex;align-items:center;justify-content:space-between;gap:8px 18px;flex:none;padding:0 2px 6px;border-bottom:1px solid #7f7955}
.cycle-view .cycle-heading h2 {margin:0;color:#f4e0ae;font:700 23px/26px Georgia,serif;white-space:nowrap}
.cycle-view .cycle-eyebrow {margin:0;color:#bfc9b8;font:12px/16px system-ui}
.cycle-view .cycle-main {display:flex;flex-direction:column;gap:2px;min-width:0;text-align:right}
.cycle-view .cycle-main strong {font:700 16px/20px Georgia,serif;color:#f3dda5}
.cycle-view .cycle-main span {font:14px/18px system-ui;color:#ecdfbd}
.cycle-view .cycle-policy {display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 18px;flex:none;font:14px/18px system-ui}
.cycle-view .cycle-policy > span {display:flex;align-items:center;gap:4px}
.cycle-view .cycle-icon {display:inline-block;flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-4px}
.cycle-view .cycle-choice-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:12px;flex:1;min-width:0;min-height:0;padding:3px 4px 7px}
.cycle-view .cycle-card {display:flex;flex-direction:column;gap:5px;position:relative;min-width:0;min-height:245px;padding:8px;border:2px solid #99845c;border-radius:3px;background:#e7d8b4;color:#243129;box-shadow:0 3px 0 #071317;scroll-snap-align:start}
.cycle-view .cycle-card[data-cycle-card="main"] {border-color:#d7ac53}
.cycle-view .cycle-card-title {display:flex;align-items:center;gap:6px;min-width:0;flex:none}
.cycle-view .cycle-card h3 {margin:0;color:#233128;font:700 19px/22px Georgia,serif;overflow-wrap:normal}
.cycle-view .cycle-card-art {display:block;align-self:center;flex:1 1 85px;min-height:60px;max-height:130px;width:100%;height:100px;object-fit:contain;background:#f0e2c1;border-bottom:1px solid #b9aa83;pointer-events:none}
.cycle-view .cycle-subject {display:block;flex:none;font:700 16px/19px Georgia,serif;color:#2c3c2c}
.cycle-view .cycle-keywords,.cycle-view .cycle-cost,.cycle-view .cycle-payoff {margin:0;font:14px/18px system-ui;flex:none}
.cycle-view .cycle-cost {padding:3px 5px;background:#d7c49b;border-left:3px solid #876341}
.cycle-view .cycle-payoff {font-weight:650}
.cycle-view .cycle-forecast {display:flex;flex-direction:column;gap:3px;flex:none;color:#23352c;font:14px/18px system-ui}
.cycle-view .cycle-forecast p {margin:0;white-space:normal}
.cycle-view .cycle-forecast ul {display:flex;flex-direction:column;gap:2px;padding:0;margin:0;list-style:none}
.cycle-view .cycle-forecast li {display:flex;align-items:flex-start;gap:5px;min-width:0}
.cycle-view .cycle-forecast li .cycle-icon {width:17px;height:17px;margin-top:1px}
.cycle-view .cycle-forecast li span {min-width:0;overflow-wrap:anywhere}
.cycle-view .cycle-unavailable {color:#7c342f;font-weight:600}
.cycle-view .cycle-inspect {flex:none;margin-top:auto;color:#354b39;font:14px/18px system-ui}
.cycle-view .cycle-inspect summary {width:max-content;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:3px 1px}
.cycle-view .cycle-inspect p {margin:4px 0;padding:5px;background:#f1e5c7;color:#263a2e;font:14px/20px system-ui;user-select:text;-webkit-user-select:text}
.cycle-view .cycle-commit {display:block;flex:none;min-height:34px;padding:5px 8px;border:1px solid #415b3c;border-radius:2px;background:#334e39;color:#f8e8c5;font:700 14px/20px system-ui;white-space:normal;cursor:pointer;box-shadow:none}
.cycle-view .cycle-commit:disabled {background:#b4b49d;border-color:#969b81;color:#464f3e;cursor:default}
.cycle-view :is(button,select,summary):focus-visible {outline:3px solid #ca792d;outline-offset:2px}
.cycle-view .cycle-commit:not(:disabled):hover {background:#496443;border-color:#203e2a}
.cycle-view .cycle-hero-label {display:flex;flex-direction:column;gap:2px;flex:none;font:14px/18px system-ui}
.cycle-view select {width:100%;min-width:0;min-height:34px;padding:4px;font:14px/20px system-ui;color:#24382b;background:#f1e5c7;border:1px solid #7d8560;border-radius:2px}
.cycle-view .cycle-page-nav {display:none}
.cycle-view .cycle-situation {flex:none;min-width:0;text-align:center}
.cycle-view .cycle-situation h3 {margin:0;font:700 20px/24px Georgia,serif;color:#f0dbac}
.cycle-view .cycle-situation p {margin:3px 0;font:14px/19px system-ui}
.cycle-view .cycle-notice {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;flex:1;padding:20px;text-align:center}
.cycle-view .cycle-notice h3 {margin:0;color:#efd9a6;font:700 23px/27px Georgia,serif}
.cycle-view .cycle-notice p {margin:0;max-width:36rem;font:16px/24px system-ui}
.cycle-view .cycle-error {margin:0;flex:none;padding:6px 8px;background:#572f29;color:#ffe6c9;font:14px/20px system-ui}
@media(max-width:700px) and (min-height:501px) {
 .cycle-view .cycle-shell {padding:6px 5px 10px;gap:7px}
 .cycle-view .cycle-heading {gap:6px;align-items:flex-start}
 .cycle-view .cycle-heading h2 {font-size:21px;line-height:25px}
 .cycle-view .cycle-main strong {font-size:16px;line-height:19px}
 .cycle-view .cycle-main span {font-size:14px;line-height:18px}
 .cycle-view .cycle-policy {justify-content:flex-start;gap:3px 12px}
 .cycle-view .cycle-page-nav {display:flex;align-items:center;justify-content:center;gap:6px;flex:none}
 .cycle-view .cycle-page-nav button {width:36px;min-height:34px;padding:3px;border:1px solid #a79560;border-radius:2px;background:#293c32;color:#f6e5be;font:700 16px/22px system-ui}
 .cycle-view .cycle-page-nav span {font:12px/16px system-ui;color:#c4cbb9}
 .cycle-view .cycle-choice-grid {display:flex;flex:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:3px 4px 10px;scroll-padding-inline:4px}
 .cycle-view .cycle-card {flex:0 0 100%;width:100%;min-height:300px}
 .cycle-view .cycle-card-art {max-height:110px;height:90px;flex:0 0 90px}
}
@media(max-height:500px) {
 .cycle-view .cycle-shell {padding:5px 6px 10px;gap:6px}
 .cycle-view .cycle-heading h2 {font-size:20px;line-height:23px}
 .cycle-view .cycle-choice-grid {gap:8px;flex:none}
 .cycle-view .cycle-card {min-height:250px;padding:6px;gap:4px}
 .cycle-view .cycle-card h3 {font-size:17px;line-height:20px}
 .cycle-view .cycle-card-art {height:60px;min-height:50px;max-height:70px;flex:0 0 60px}
}
@media(prefers-reduced-motion:reduce) {.cycle-view .cycle-choice-grid {scroll-behavior:auto}}
