.landscape-entry {
  position:relative; display:flex; align-items:center; gap:16px; width:100%; min-height:126px;
  margin:20px 0; padding:20px 22px; overflow:hidden; text-align:left; text-decoration:none;
  color:#514b3a; border:1px solid #b6a38470; border-radius:5px;
  background:linear-gradient(110deg,#f6efdf 35%,#e5e7d9); box-shadow:0 4px 18px #69573808;
}
.landscape-entry-art { width:92px; flex:none; opacity:.9; }
.landscape-entry-art svg { display:block; width:100%; height:auto; }
.landscape-entry-copy { position:relative; display:flex; flex-direction:column; gap:8px; }
.landscape-entry-copy small { font:11px/1.4 "Microsoft YaHei",sans-serif; letter-spacing:.15em; color:#93846c; }
.landscape-entry-copy strong { font:23px/1.4 "Noto Serif SC","Songti SC",SimSun,serif; color:#4e5846; }
.landscape-entry-copy>span { font:12px/1.6 "Microsoft YaHei",sans-serif; color:#8b826b; }
.landscape-entry-arrow { margin-left:auto; color:#857a60; font-size:20px; }
.landscape-entry:hover { border-color:#8a9071; box-shadow:0 5px 20px #69573814; }
.landscape-entry:focus-visible { outline:2px solid #80543e; outline-offset:3px; }
body.bazi-body.landscape-open { padding:0!important; margin:0; overflow:hidden; background:#eee9dc; }
.landscape-open .chart-return-bar, .landscape-open .study-close-book,
.landscape-open .study-room-label, .landscape-open .primary-nav { display:none!important; }
.bazi-body.landscape-open #app { padding:0!important; margin:0; max-width:none; width:100%; }
.landscape-view[hidden] { display:none!important; }
.landscape-view {
  display:flex; flex-direction:column; height:100vh;
  height:100dvh;
  width:100%; max-width:1000px; margin:0 auto; color:#514b3a; background:#eee9dc;
}
.landscape-heading { display:flex; align-items:center; gap:12px; flex:none; padding:calc(12px + env(safe-area-inset-top,0px)) 22px 12px; }
.landscape-heading p { font:10px/1.5 "Microsoft YaHei",sans-serif; letter-spacing:.18em; color:#9a8870; margin:0 0 3px; }
.landscape-heading h1 { font:22px/1.4 "Noto Serif SC","Songti SC",SimSun,serif; color:#535a47; margin:0; letter-spacing:.04em; }
.landscape-back { display:grid; place-items:center; width:36px; height:44px; flex:none; font:30px/1 SimSun,serif; text-decoration:none; color:#88745d; }
.landscape-seal { margin-left:auto; border:1px solid #a18b6b70; color:#9b805b; padding:5px 6px; max-width:70px; font:14px/1.2 SimSun,serif; }
.landscape-chart-paper { position:relative; flex:none; padding:3px 22px 11px; border-bottom:1px solid #b6a3844a; background:#f6efdf; box-shadow:0 4px 14px #4b4c3510; z-index:2; }
.landscape-chart { width:100%; max-width:580px; margin:0 auto; table-layout:fixed; border-collapse:collapse; text-align:center; }
.landscape-chart th { font:12px/1.5 "Microsoft YaHei",sans-serif; color:#9b8b70; font-weight:400; padding:5px 0; border:0; background:none; }
.landscape-chart th:first-child { width:42px; font-size:10px; text-align:left; }
.landscape-chart td { padding:1px 0; border:0; background:none; }
.landscape-chart button { cursor:pointer; }
.landscape-glyph {
  position:relative; display:inline-flex; align-items:center; justify-content:center; vertical-align:middle;
  width:42px; height:40px; padding:0; border:1px solid transparent; border-radius:8px;
  background:transparent; color:#666047; font:28px/1 "Noto Serif SC","Songti SC",SimSun,serif;
  transition:background .2s,color .2s,box-shadow .2s;
}
.landscape-glyph[data-element="木"] { color:#596a4f; }
.landscape-glyph[data-element="火"] { color:#a26146; }
.landscape-glyph[data-element="土"] { color:#977b48; }
.landscape-glyph[data-element="金"] { color:#847e6b; }
.landscape-glyph[data-element="水"] { color:#4c6b7c; }
.landscape-glyph.landscape-self { border:1px solid #9c84677a; border-radius:50%; }
.landscape-glyph.is-lit { color:#fff9ea; background:#987248; border-color:#987248; box-shadow:0 0 0 4px #bda06e2a; }
.landscape-glyph:focus-visible { outline:2px solid #96704a; outline-offset:3px; }
.landscape-me { position:absolute; right:-9px; bottom:-1px; font:9px/14px "Microsoft YaHei",sans-serif; border-radius:8px; padding:0 3px; color:#8d7354; background:#f6efdf; }
.landscape-hidden-stems td { height:24px; }
.landscape-hidden-stems td span { display:inline-block; padding:3px 4px; font:12px/1.3 SimSun,serif; color:#a1937b; border-radius:3px; }
.landscape-hidden-stems td span[data-hidden-main="true"] { color:#786b55; }
.landscape-hidden-stems td span.is-lit { color:#8e5e27; background:#e4cba166; box-shadow:0 0 0 1px #b5965c77; }
.landscape-selection { min-height:34px; max-width:580px; margin:7px auto 0; color:#8b795f; font:12px/1.65 "Microsoft YaHei",sans-serif; text-align:center; }
.landscape-pending { color:#b6aa94; font:14px SimSun,serif; }
.landscape-scene { position:relative; flex:1; min-height:140px; overflow:hidden; background:#e9e8df; }
.landscape-frame { display:block; width:100%; height:100%; border:0; }
.landscape-state { position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:15px; padding:30px; text-align:center; color:#7d816b; background:#e9e8df; }
.landscape-state[hidden] { display:none!important; }
.landscape-state p { font:20px/1.6 "Songti SC",SimSun,serif; margin:0; }
.landscape-state>span:not(.landscape-loading-mark) { font:13px/1.8 "Microsoft YaHei",sans-serif; }
.landscape-state button,.landscape-state a { padding:10px 20px; border:1px solid #a1927366; border-radius:5px; color:#71634b; background:#f6efdf; text-decoration:none; font:14px/1.5 "Microsoft YaHei",sans-serif; cursor:pointer; }
.landscape-loading-mark { font-size:36px; animation:landscape-turn 4s linear infinite; }
.landscape-gesture { flex:none; padding:8px 12px; margin:0; text-align:center; font:10px/1.5 "Microsoft YaHei",sans-serif; letter-spacing:.08em; color:#95917a; border-top:1px solid #b6a38433; }
.landscape-footer { flex:none; padding:0 18px calc(12px + env(safe-area-inset-bottom,0px)); background:#eee9dc; }
.landscape-word-entry[hidden] { display:none!important; }
.landscape-word-entry { display:flex; align-items:center; justify-content:space-between; gap:12px; max-width:580px; min-height:64px; margin:0 auto; padding:10px 16px; border:1px solid #a38b5c80; border-radius:5px; color:#625139; background:#f6efdf; text-decoration:none; box-shadow:0 3px 12px #69573808; }
.landscape-word-entry>span:first-child { min-width:0; display:flex; flex-direction:column; gap:5px; }
.landscape-word-entry small { color:#938166; font:11px/1.5 "Microsoft YaHei",sans-serif; }
.landscape-word-entry strong { color:#535a47; font:19px/1.4 "Noto Serif SC","Songti SC",SimSun,serif; overflow-wrap:anywhere; }
.landscape-word-arrow { flex:none; font-size:21px; color:#9b805b; }
.landscape-word-entry:hover { border-color:#8a7650; background:#faf3e3; }
.landscape-word-entry:focus-visible { outline:2px solid #96704a; outline-offset:3px; }
@keyframes landscape-turn { to { transform:rotate(360deg); } }
@media(max-width:430px) {
  .landscape-entry { gap:9px; padding:18px 14px; }
  .landscape-entry-art { width:65px; }
  .landscape-entry-copy strong { font-size:21px; }
  .landscape-entry-copy>span { font-size:11px; }
  .landscape-heading { padding-left:12px; padding-right:17px; }
  .landscape-heading h1 { font-size:21px; }
  .landscape-chart-paper { padding:2px 18px 8px; }
}
@media(max-height:690px) {
  .landscape-heading { padding-top:calc(5px + env(safe-area-inset-top,0px)); padding-bottom:5px; }
  .landscape-heading p { display:none; }
  .landscape-glyph { height:34px; width:36px; font-size:25px; }
  .landscape-chart th { padding:2px 0; }
  .landscape-selection { margin-top:3px; min-height:32px; }
  .landscape-gesture { padding:4px; }
}
.landscape-opening-entry {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 9px;padding:10px 13px;border:1px solid #b8ad8a;border-radius:6px;background:linear-gradient(110deg,#eee5ce,#f9f3e6);color:#354d40;text-decoration:none;font:600 15px/1.4 "Microsoft YaHei",sans-serif;}
.landscape-opening-entry span:last-child {font-size:12px;font-weight:400;color:#7c6a4c;white-space:nowrap;}
.landscape-opening-entry:hover {background:#e9dfc7;}
.landscape-opening-entry:focus-visible {outline:2px solid #577361;outline-offset:3px;}
.landscape-opening {box-sizing:border-box;width:min(640px,calc(100vw - 28px));max-height:85dvh;padding:0;border:1px solid #bcae8b;border-radius:12px;background:#f7f1e4;color:#3b3b30;box-shadow:0 24px 100px #15271b55;}
.landscape-opening::backdrop {background:#172b24a8;backdrop-filter:blur(4px);}
.landscape-opening-top {position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:12px 22px;background:#f7f1e4;border-bottom:1px solid #b7aa893d;font:12px/1.5 "Microsoft YaHei",sans-serif;letter-spacing:2px;color:#817357;}
.landscape-opening-top button {border:0;background:transparent;color:#625942;font-size:28px;line-height:1;cursor:pointer;width:38px;height:38px;}
.landscape-opening-body {padding:12px 32px 30px;}
.landscape-opening-body h2 {font:600 25px/1.6 "Songti SC","SimSun",serif;color:#344c3d;margin:15px 0 24px;}
.landscape-opening-body p {font:17px/2 "Microsoft YaHei",sans-serif;white-space:pre-line;margin:0 0 18px;}
@media(max-width:480px) {.landscape-opening-body {padding:8px 22px 20px;}.landscape-opening-body h2 {font-size:22px;}.landscape-opening-body p {font-size:16px;}.landscape-opening-entry {padding:8px 10px;margin-bottom:6px;}}
@media(prefers-reduced-motion:reduce) {
  .landscape-loading-mark { animation:none; }
  .landscape-glyph { transition:none; }
}

/* Compact scene navigation: keep the model as the main view. */
.landscape-view .landscape-heading {gap:8px;padding:calc(5px + env(safe-area-inset-top,0px)) 14px 5px;min-height:0;}
.landscape-view .landscape-heading p {display:none;}
.landscape-view .landscape-heading h1 {font-size:17px;line-height:1.35;letter-spacing:.02em;}
.landscape-view .landscape-back {box-sizing:border-box;width:28px;height:32px;min-height:0;padding:0;margin:0;font-size:25px;}
.landscape-view .landscape-seal {padding:3px 5px;font-size:12px;}
.landscape-view .landscape-footer {padding:0 12px calc(7px + env(safe-area-inset-bottom,0px));}
.landscape-view .landscape-gesture {padding:4px 6px;font-size:9px;line-height:1.4;}
.landscape-view .landscape-word-entry {box-sizing:border-box;min-height:44px;gap:8px;padding:6px 12px;}
.landscape-view .landscape-word-entry>span:first-child {gap:1px;}
.landscape-view .landscape-word-entry small {font-size:10px;line-height:1.3;}
.landscape-view .landscape-word-entry strong {font-size:15px;line-height:1.4;}
.landscape-view .landscape-word-arrow {font-size:18px;}

/* Let the scene yield height before pushing navigation off screen. */
.landscape-view {min-height:0;overflow:hidden;}
.landscape-view .landscape-scene {flex:1 1 0;min-height:0;}
.landscape-view .landscape-footer {position:relative;z-index:4;flex:0 0 auto;}
.landscape-view .landscape-word-entry {height:auto;flex:none;}

/* Floating tools share the scene instead of reserving a footer row. */
.landscape-view .landscape-footer {position:absolute;top:10px;right:10px;bottom:auto;z-index:5;display:flex;align-items:center;gap:5px;padding:0;background:none;pointer-events:none;}
.landscape-scene-tools {display:flex;gap:0;padding:3px;border:1px solid #a495784a;border-radius:10px;background:#f8f5e8ed;box-shadow:0 3px 12px #323c3014;pointer-events:auto;}
.landscape-scene-tools button {min-width:30px;min-height:34px;padding:5px 9px;border:0;background:transparent;color:#4c5e50;font:12px/1.2 "Microsoft YaHei",sans-serif;cursor:pointer;}
.landscape-scene-tools button+button {border-left:1px solid #a495782f;}
.landscape-scene-tools button:focus-visible {outline:2px solid #80543e;}
.landscape-view .landscape-gesture,.landscape-view .landscape-word-entry small {display:none;}
.landscape-view .landscape-word-entry {min-height:42px;margin:0;padding:7px 10px;border-radius:10px;background:#f8f5e8ed;pointer-events:auto;gap:5px;}
.landscape-view .landscape-word-entry strong {font-size:13px;white-space:nowrap;}
.landscape-view .landscape-word-arrow {font-size:15px;}

/* Keep reading access at the bottom without taking scene height. */
.landscape-view .landscape-footer {inset:10px;display:block;pointer-events:none;}
.landscape-view .landscape-scene-tools {position:absolute;top:0;right:0;pointer-events:auto;}
.landscape-view .landscape-word-entry {position:absolute;right:0;bottom:calc(2px + env(safe-area-inset-bottom,0px));pointer-events:auto;}

/* Missing birth positions remain visible and never act as chart nodes. */
.hour-unknown{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#9a8f7c;font-weight:400;line-height:1.1}.hour-unknown small{font-size:10px;line-height:1.2;letter-spacing:0;white-space:nowrap}
