.bookshelf-standalone{margin:0;background:#090e1b;color:#eee4ce;font-family:system-ui,sans-serif}.bookshelf-return{display:inline-block;margin:32px;color:#e2c788}
#shelf-share .daily-host{max-width:560px;margin:auto;padding:16px 24px 28px}
#shelf-share .daily-host[hidden],#shelf-share .daily-host [hidden]{display:none!important}
.daily-days{display:flex;gap:8px;margin-bottom:14px}.daily-days button{flex:1}
#shelf-share .daily-days button{font-size:13px;min-height:40px;padding:8px}
#shelf-share .daily-days button[aria-pressed=true]{background:#dcebcf;color:#294d40}
#shelf-share .daily-days button[aria-pressed=true]:hover{background:#e9f3df}
.daily-settings{margin:8px 0 15px;font-size:13px;color:#d6d7ce}.daily-settings summary{cursor:pointer;padding:6px 0}
.daily-settings label{display:flex;flex-direction:column;gap:7px;margin:12px 0}
.daily-settings input{font:16px system-ui;width:100%;min-height:44px;border:1px solid #bfa46d70;border-radius:8px;padding:9px 12px;background:#fff9ec;color:#294d40}
.daily-genders{display:flex;gap:8px}.daily-genders button{flex:1}#shelf-share .daily-genders button{font-size:13px}
#shelf-share .daily-genders button[aria-pressed=true]{background:#dcebcf;color:#294d40}
#shelf-share .daily-genders button[aria-pressed=true]:hover{background:#e9f3df}
#shelf-share .daily-primary{width:100%;background:#e7d6af;color:#263c36;margin-bottom:14px;font-size:15px}
#shelf-share .daily-primary:hover:not(:disabled){background:#f0dfb8}
.daily-canvas{display:block;width:100%;height:auto;aspect-ratio:9/16;border-radius:16px;background:#fff9ec;box-shadow:0 10px 30px #0003}
.daily-preview-title{font-size:14px;color:#e7d6af;margin:12px 0}
.daily-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
#shelf-share .daily-actions button{font-size:14px}#shelf-share .daily-actions button:first-child{grid-column:1/-1;background:#e7d6af;color:#263c36}
#shelf-share .daily-actions button:first-child:hover:not(:disabled){background:#f0dfb8}
.daily-status,.daily-caption,.daily-fallback p{font-size:12px;color:#d6d7ce;line-height:1.7;margin:10px 0}
.daily-caption{text-align:center}.daily-fallback img{width:100%;height:auto;margin-top:15px}.daily-fallback textarea{width:100%;min-height:220px;font:14px/1.7 system-ui;padding:12px}
@media(max-width:400px){#shelf-share .daily-host{padding:14px 15px 24px}}
/* Daily dinner sits beside the personal card and keeps its own dated share snapshot. */
#shelf-share .share-views{display:flex;gap:8px;padding:14px 24px 0}
#shelf-share .share-views button{flex:1;font-size:14px}
#shelf-share .share-views button[aria-pressed=true]{background:#e7d6af;color:#263c36;border-color:#e7d6af}
#shelf-share .share-views button[aria-pressed=true]:hover{background:#f0dfb8}
#shelf-share .share-sheet[hidden],#shelf-share .dinner-host[hidden]{display:none}
#shelf-share .dinner-host [hidden]{display:none!important}
.dinner-host{max-width:560px;margin:auto;padding:22px 24px 28px;color:#eee6d7}
.dinner-intro h3{margin:4px 0 8px;font-size:25px;line-height:1.4;font-weight:600}
.dinner-intro p{margin:0 0 10px;font-size:13px;color:#c7c8c1}
.dinner-intro .dinner-eyebrow{font-size:10px;letter-spacing:.17em;color:#dfc89a}
.dinner-filter{display:flex;align-items:center;gap:9px;margin:18px 0;font-size:14px;cursor:pointer;min-height:36px}
.dinner-filter input{width:19px;height:19px;accent-color:#4c8066}
.dinner-card{background:#fff9ec;color:#294d40;border-radius:24px;padding:28px 25px;text-align:center;overflow-wrap:anywhere;border:8px solid var(--dinner-color)}
.dinner-date{margin:0 0 26px;font-size:12px;letter-spacing:.03em;color:#627361}
.dinner-theme{display:inline-block;background:var(--dinner-color);padding:5px 13px;border-radius:30px;font-size:13px;margin:0 0 12px}
.dinner-card h4{font-size:clamp(28px,7vw,42px);line-height:1.3;letter-spacing:-.04em;margin:0 0 14px;word-break:keep-all}
.dinner-note{font-size:15px;line-height:1.8;margin:0 0 27px;word-break:keep-all}
.dinner-basis{text-align:left;border-top:1px solid #294d402b;padding-top:22px}
.dinner-basis strong{font-size:12px;letter-spacing:.02em}.dinner-basis p{font-size:14px;line-height:1.85;margin:9px 0;word-break:keep-all}
.dinner-invite{font-size:20px;margin:26px 0 0;font-weight:600}
.dinner-alternatives{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.dinner-alternatives>p{flex-basis:100%;font-size:13px;margin:0 0 3px;color:#c7c8c1}
#shelf-share .dinner-alternatives button{font-size:13px;padding:9px 13px;min-height:42px}
#shelf-share .dinner-alternatives button[aria-pressed=true]{background:#dcebcf;color:#294d40}
#shelf-share .dinner-alternatives button[aria-pressed=true]:hover{background:#e7f4dd}
.dinner-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#shelf-share .dinner-actions button{font-size:14px}
#shelf-share .dinner-actions button:first-child{grid-column:1/-1;background:#e7d6af;color:#263c36}
#shelf-share .dinner-actions button:first-child:hover:not(:disabled){background:#f0dfb8}
.dinner-status,.dinner-fallback p{font-size:13px;color:#d6d7ce;margin:12px 0;line-height:1.7}
.dinner-preview{margin-top:18px;font-size:12px;color:#d6d7ce}.dinner-preview summary{cursor:pointer;padding:10px 0}
.dinner-preview img{display:block;width:100%;height:auto;margin-top:12px;border-radius:14px}
.dinner-fallback textarea{width:100%;min-height:180px;padding:14px;font:14px/1.7 system-ui;color:#294d40;background:#fff9ec;border:1px solid #e7d6af;border-radius:12px}
.dinner-empty{padding:25px 0;line-height:1.9}
@media(max-width:400px){.dinner-host{padding:20px 15px}.dinner-card{padding:24px 18px}#shelf-share .share-views{padding:14px 15px 0}}
/* Natal share: one fitted sheet, with social-style share/save actions above it.
   Reading exports retain their separate multi-page/zoom/ZIP controls. */
#mansion-bookshelf .shelf-export[data-kind=natal]{width:min(680px,calc(100vw - 24px));height:min(920px,calc(100dvh - 24px));padding:20px;border-color:#665c46;border-radius:20px;background:#111a27;box-shadow:0 24px 90px #0008}
#mansion-bookshelf .shelf-export[data-kind=natal][open]{gap:12px}
.shelf-export[data-kind=natal] .shelf-export-head h3{font-size:19px;letter-spacing:-.025em;font-weight:600;outline:none}
.shelf-export[data-kind=natal] svg{width:21px;height:21px;flex:none}
.shelf-export[data-kind=natal] button{gap:8px;border-radius:11px;font-size:14px!important;min-height:46px;transition:background .15s,border-color .15s}
.shelf-export[data-kind=natal] .shelf-export-close{width:44px;min-height:44px;padding:10px;background:transparent;border-color:transparent;color:#bcb7aa}
.shelf-export[data-kind=natal] .shelf-export-close:hover{background:#ffffff0a;border-color:#605a4e}
.shelf-export[data-kind=natal] .shelf-export-actions{max-height:none;overflow:visible;padding:0;gap:8px}
.shelf-export-toolbar{display:grid;grid-template-columns:1.25fr 1fr;gap:10px}
.shelf-export[data-kind=natal] button.shelf-export-primary{min-height:46px;font-size:14px!important;background:#ddc38d;border-color:#ddc38d;color:#182331}
.shelf-export[data-kind=natal] button.shelf-export-primary:hover:not(:disabled){background:#eed4a0}
.shelf-export[data-kind=natal] .shelf-export-save{background:#1c293a;border-color:#576172}
.shelf-export[data-kind=natal].is-fallback .shelf-export-save{border-color:#d8bc82}
.shelf-export[data-kind=natal] .shelf-export-preview{position:relative;flex:1 1 0;min-height:0;overflow:hidden;padding:12px;border:1px solid #ffffff0a;border-radius:12px;background:radial-gradient(ellipse at 50% 35%,#263143,#0b1320);display:flex;align-items:center;justify-content:center}
.shelf-export[data-kind=natal] .shelf-export-preview img{width:auto;height:auto;max-width:100%;max-height:100%;margin:0;object-fit:contain;box-shadow:0 8px 28px #0005}
.shelf-export[data-kind=natal] .shelf-export-status{min-height:0;line-height:1.45;font-size:12px;color:#b7b4aa;overflow-wrap:anywhere}
.shelf-export[data-kind=natal] .shelf-export-hint{font-size:12px;color:#b9c0ca;line-height:1.5}
.shelf-export[data-kind=natal] .shelf-export-privacy{font-size:11px!important;color:#989fAA;line-height:1.5}
@media(max-width:480px){#mansion-bookshelf .shelf-export[data-kind=natal]{width:calc(100vw - 16px);height:calc(100dvh - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:14px;border-radius:16px}#mansion-bookshelf .shelf-export[data-kind=natal][open]{gap:10px}.shelf-export[data-kind=natal] .shelf-export-preview{padding:8px}.shelf-export-toolbar{gap:8px}.shelf-export[data-kind=natal] .shelf-export-head h3{font-size:18px}}
@media(max-height:520px){#mansion-bookshelf .shelf-export[data-kind=natal]{padding:10px}#mansion-bookshelf .shelf-export[data-kind=natal][open]{gap:6px}.shelf-export[data-kind=natal] .shelf-export-preview{padding:5px}.shelf-export[data-kind=natal] .shelf-export-hint,.shelf-export[data-kind=natal] .shelf-export-privacy{display:none}}
.shelf-unread-label{color:#ff948c;font:600 12px/1.5 system-ui,sans-serif}.shelf-unread-label:before{content:'●';margin-right:5px}#mansion-menu-bookshelf[data-unread=true]:after{content:'';width:9px;height:9px;border-radius:50%;background:#ff685e;box-shadow:0 0 0 2px #12192c;flex-shrink:0}
.shelf-export-button{min-height:44px;padding:9px 16px;margin:0 0 12px;border:1px solid #566b5f;border-radius:8px;background:#2e4943;color:#fff3d7}
.shelf-availability{font-size:12px;line-height:1.6;color:#74674c;margin:-9px 0 15px;overflow-wrap:anywhere}
.shelf-status button{margin-left:10px;min-height:40px;padding:6px 14px;border:1px solid #ae9259;border-radius:7px;background:#1d2b3a;color:#f0e4c9}
#mansion-bookshelf .shelf-export{width:min(760px,calc(100vw - 24px));max-width:calc(100vw - 24px);height:min(1000px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);padding:18px;border:1px solid #ae9259;border-radius:12px;background:#101a28;color:#f0e4c9;overflow:hidden;overscroll-behavior:contain}
#mansion-bookshelf .shelf-export[open]{display:flex;flex-direction:column;gap:10px}
.shelf-export::backdrop{background:#030711e8}.shelf-export-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}.shelf-export-head h3{font-size:20px;margin:0}.shelf-export p{font-size:13px;line-height:1.6;margin:0}.shelf-export-status{color:#e7ce96;min-height:22px;flex:none}.shelf-export progress{width:100%;accent-color:#e2c68b;flex:none}
.shelf-export-preview{flex:1;min-height:90px;overflow:auto;overscroll-behavior:contain;text-align:center;border-radius:5px;background:#080f1b}.shelf-export-preview img{display:block;width:100%;height:auto;margin:0 auto}.shelf-export-preview.is-zoomed img{width:max(150%,680px);height:auto;max-width:none}
.shelf-export-actions{flex:none;display:flex;flex-direction:column;gap:9px;max-height:48%;overflow:auto;padding:2px}.shelf-export-navigation{display:flex;align-items:center;gap:8px}.shelf-export-navigation>span{flex:1;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}.shelf-export-navigation button{min-width:44px}.shelf-export button,.shelf-export a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid #ae9259;border-radius:7px;background:#1d2b3a;color:#f0e4c9;text-decoration:none;font-size:14px!important;flex-shrink:0;line-height:1.4}.shelf-export button.shelf-export-primary{width:100%;min-height:50px;background:#e2c68b;color:#142729;border-color:#f6e3b7;font-weight:700;font-size:16px!important}.shelf-export-hint{color:#e1d4bb}.shelf-export-privacy{font-size:11px!important;color:#b3ab99;flex:none}.shelf-export summary{cursor:pointer;font-size:13px;color:#d2c5aa;min-height:32px;padding:5px 2px}.shelf-export-extras{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.shelf-export details>p{font-size:12px;color:#b3ab99}
@media(max-height:520px){#mansion-bookshelf .shelf-export{padding:10px;gap:6px}.shelf-export-head h3{font-size:17px}.shelf-export-actions{max-height:46%}.shelf-export-hint,.shelf-export-privacy{display:none}}
#mansion-bookshelf{--ink:#292a28;--muted:#6d6658;--gold:#ceb17b;box-sizing:border-box;width:100vw;max-width:none;height:100dvh;max-height:none;inset:0;margin:0;border:0;padding:clamp(12px,3vw,36px);padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom));background:rgba(6,11,22,.97);color:#eee5d2;font:16px/1.65 system-ui,-apple-system,"Malgun Gothic",sans-serif;overflow:auto}
#mansion-bookshelf::backdrop{background:#070b15dd}#mansion-bookshelf *{box-sizing:border-box}#mansion-bookshelf [hidden]{display:none!important}
#mansion-bookshelf button:not(.shelf-term),#mansion-bookshelf input,#mansion-bookshelf select{font:inherit}#mansion-bookshelf button{cursor:pointer}#mansion-bookshelf button:disabled{cursor:default;opacity:.45}#mansion-bookshelf button:focus-visible,#mansion-bookshelf a:focus-visible,#mansion-bookshelf input:focus-visible,#mansion-bookshelf select:focus-visible{outline:3px solid #b38940;outline-offset:3px}
.shelf-shell{max-width:1180px;margin:0 auto;min-height:0}.shelf-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.shelf-brand{margin:0;color:#c9ad73;font-size:11px;letter-spacing:.15em}.shelf-title{font-family:Georgia,"Batang",serif;font-size:clamp(23px,3.5vw,34px);font-weight:500;letter-spacing:.08em;margin:0}.shelf-tools{display:flex;gap:8px;position:relative;align-items:center}.shelf-tools>button{display:flex;align-items:center;gap:6px;border:1px solid #79653f;background:#141b29;color:#ede1c7;border-radius:9px;min-height:44px;padding:8px 12px}.shelf-tools>button[aria-expanded=true]{background:#433b2b}.shelf-tools svg{width:19px;height:19px;flex:none}.shelf-search{display:flex;gap:8px;align-items:center;padding:0 0 14px;justify-content:flex-end}.shelf-search input{width:min(100%,420px);padding:10px 14px;border:1px solid #9b875c;background:#141b29;color:#fff4de;border-radius:8px}.shelf-search button{min-height:44px;padding:8px 14px;border:1px solid #9b875c;background:#dac28f;color:#202629;border-radius:8px}
.shelf-calendar{position:absolute;right:0;top:calc(100% + 10px);width:300px;max-width:calc(100vw - 24px);padding:16px;background:#eee3c9;color:var(--ink);border:1px solid #b69b61;border-radius:12px;z-index:5;box-shadow:0 10px 35px #0008}.shelf-calendar-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.shelf-calendar button{border:0;background:transparent;color:var(--ink);border-radius:6px;min-width:34px;min-height:38px}.shelf-calendar button:hover{background:#d4c499}.shelf-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;font-size:14px}.shelf-calendar-grid>span{padding:7px 0;color:#766849;font-size:12px}.shelf-calendar-grid button{position:relative;padding:6px 0 10px}.shelf-calendar-grid button[data-records=true]::after{content:"";position:absolute;bottom:3px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#64785b}.shelf-calendar-grid button[aria-pressed=true]{background:#384d49;color:#fff5d6}.shelf-calendar-clear{width:100%;margin-top:10px;border-top:1px solid #c9b88f!important;border-radius:0!important}
.shelf-book{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.7fr);height:clamp(420px,76dvh,850px);border:7px solid #332f29;border-radius:12px 16px 16px 12px;box-shadow:0 0 0 1px #897045,0 12px 40px #0007;color:var(--ink);overflow:hidden;background:#f1e6cd;position:relative}.shelf-index{min-width:0;min-height:0;display:flex;flex-direction:column;background:linear-gradient(90deg,#eadfc4 94%,#d0c3a6 100%);padding:22px 20px 15px}.shelf-index h3{font-family:Georgia,"Batang",serif;font-weight:500;margin:0 0 12px;font-size:23px}.shelf-filters{display:flex;gap:6px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid #beac83}.shelf-filters button{padding:5px 8px;min-height:36px;border:1px solid #cbb98e;border-radius:5px;background:transparent;color:#5e5a4d;font-size:13px!important}.shelf-filters button[aria-pressed=true]{background:#354b46;color:#fbf2d8;border-color:#354b46}.shelf-sortline{display:flex;justify-content:space-between;align-items:center;gap:5px;margin:12px 0;color:var(--muted);font-size:12px}.shelf-sortline select{border:0;background:transparent;color:#534c3c;max-width:95px;padding:4px}.shelf-date-filter{display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:5px;margin-bottom:8px}.shelf-date-filter button{border:0;background:transparent;color:#634a1d;min-height:32px}
.shelf-entries{overflow:auto;min-height:0;flex:1;overscroll-behavior:contain;padding-right:4px}.shelf-entry{display:block;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid #cebf9c;padding:14px 10px!important;color:var(--ink);border-radius:4px}.shelf-entry[aria-current=true]{background:#ddceb0;border-left:3px solid #497467;padding-left:7px!important}.shelf-entry time{display:block;color:#665f50;font-size:12px}.shelf-entry strong{display:block;font-size:15px;font-weight:500;line-height:1.65;overflow-wrap:anywhere;margin:5px 0}.shelf-tag{font-size:12px;color:#6a501f;letter-spacing:.035em}.shelf-entry small{display:block;font-size:11px;color:#77705f}.shelf-paging{display:flex;align-items:center;justify-content:space-between;gap:6px;padding-top:10px;font-size:12px}.shelf-paging button{border:0;background:transparent;padding:6px;color:#5f543d;min-height:38px}
.shelf-detail{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;padding:clamp(22px,4vw,52px);background:linear-gradient(90deg,#cfc3a8 0,#f2e8d1 3%,#f5ecd7 100%);scrollbar-gutter:stable}.shelf-detail:focus{outline:none}.shelf-back{display:none;border:1px solid #a49471;border-radius:6px;background:transparent;color:#5a513d;padding:8px 12px;margin-bottom:20px;min-height:44px}.shelf-date{font-size:14px;color:#74674c;margin:0 0 15px}.shelf-detail h3{font-family:Georgia,"Batang",serif;line-height:1.55;font-size:clamp(23px,3vw,31px);font-weight:500;margin:8px 0 18px;overflow-wrap:anywhere}.shelf-note{font-size:12px;color:#776a4f;padding:12px 14px;background:#e7ddc4;border-left:2px solid #a58a53;margin:18px 0;line-height:1.8}.shelf-question{border-top:1px solid #c5b48b;border-bottom:1px solid #c5b48b;padding:17px 0;margin:20px 0 26px}.shelf-section-label{font-size:12px;color:#746548;letter-spacing:.08em;margin:0 0 8px}.shelf-question p:last-child{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.shelf-answer p{white-space:pre-wrap;overflow-wrap:anywhere;font-family:Georgia,"Batang",serif;font-size:clamp(16px,1.65vw,19px);line-height:1.95;margin:0 0 22px}.shelf-answer .shelf-section-label{font-family:system-ui,sans-serif;font-size:12px;line-height:1.5;margin-bottom:10px}.shelf-answer .shelf-slot{color:#5a4a28;font-weight:600;letter-spacing:.14em;border-left:2px solid #a58a53;padding-left:8px;margin-top:4px}.shelf-answer .shelf-speaker{color:#3d3629;font-weight:700;font-size:13px;letter-spacing:.12em;border-left:3px solid #a58a53;padding-left:8px;margin:0 0 14px}.shelf-answer .shelf-lead strong{font-weight:700;color:#253e3b}.shelf-empty{display:flex;min-height:75%;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#756c56;gap:10px;padding:30px 10px}.shelf-empty svg{width:58px;height:58px;stroke:#897447}.shelf-empty p{max-width:300px;margin:0;font-size:14px;line-height:1.9}.shelf-status{min-height:24px;margin:12px 0 0;text-align:center;font-size:12px;color:#c5b898}.shelf-status a{color:#eed190}.shelf-footer{text-align:center;font-size:11px;color:#8f897b;margin:4px 0}
@media(max-width:700px){#mansion-bookshelf{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.shelf-top{gap:8px}.shelf-tools{gap:5px}.shelf-tools>button{padding:8px 10px}.shelf-tools>button span{display:none}.shelf-brand{font-size:9px;letter-spacing:.1em}.shelf-title{font-size:26px}.shelf-book{display:block;height:calc(100dvh - 156px);min-height:280px;border-width:5px}.shelf-index{height:100%;padding:20px 16px;background:#eee3c8}.shelf-detail{height:100%;padding:22px;background:linear-gradient(90deg,#ddd0b1,#f5ecd7 4%)}.shelf-book[data-view=list] .shelf-detail{display:none}.shelf-book[data-view=detail] .shelf-index{display:none}.shelf-back{display:inline-block}.shelf-entry{padding:17px 10px!important}.shelf-entry strong{font-size:16px}.shelf-filters{gap:7px}.shelf-filters button{padding:5px 9px;min-height:38px}.shelf-status{margin-top:9px}.shelf-search:not([hidden])+.shelf-book{height:calc(100dvh - 218px)}.shelf-detail h3{font-size:25px}.shelf-calendar{right:0}}
@media(max-height:520px){#mansion-bookshelf{padding-top:8px;padding-bottom:8px}.shelf-book{height:calc(100dvh - 114px);min-height:170px}.shelf-top{margin-bottom:8px}.shelf-brand,.shelf-footer{display:none}.shelf-title{font-size:23px}.shelf-status{margin-top:6px}.shelf-search:not([hidden])+.shelf-book{height:calc(100dvh - 180px)}.shelf-calendar{max-height:calc(100dvh - 68px);overflow:auto}.shelf-index{padding:10px 12px}.shelf-detail{padding:20px}.shelf-index h3{margin-bottom:5px}.shelf-filters{padding-bottom:5px}.shelf-sortline{margin:5px 0}}
@media(prefers-reduced-motion:reduce){#mansion-bookshelf *{scroll-behavior:auto!important}}
.shelf-tarot{margin:24px -10px 28px}.shelf-tarot>.shelf-section-label{margin-left:10px}.shelf-tarot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(5px,1vw,12px);align-items:start}.shelf-tarot-card{margin:0;min-width:0;text-align:center}.shelf-card-button{display:block;width:100%;aspect-ratio:2/3;overflow:hidden;padding:0;border:1px solid #9b814d;border-radius:7px;background:#101426;box-shadow:0 3px 8px #3a302122}.shelf-card-image{display:block;width:100%;height:100%;object-fit:contain}.shelf-card-image.is-reversed{transform:rotate(180deg)}.shelf-tarot-card figcaption{display:flex;flex-direction:column;align-items:center;gap:5px;margin-top:10px;line-height:1.5}.shelf-card-slot{font-size:11px;color:#776a4f;word-break:keep-all}.shelf-tarot-card strong{font:600 clamp(11px,1.1vw,14px)/1.4 Georgia,serif;overflow-wrap:anywhere;letter-spacing:.02em}.shelf-card-direction{font-size:12px;color:#394f49;background:#e3dbc4;border:1px solid #c5b794;border-radius:20px;padding:2px 8px;white-space:nowrap}.shelf-card-hint{margin:14px 0 0;text-align:center;color:#7b6d51;font-size:11px}.shelf-cards-missing{font-size:13px;color:#776a4f;margin:8px 10px;line-height:1.8}.shelf-card-error{display:block;padding:8px;color:#eee4cf;font-size:12px}
#mansion-bookshelf .shelf-card-zoom{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);width:min(530px,calc(100vw - 24px));padding:16px;border:1px solid #ae9259;border-radius:12px;background:#0f1625;color:#f0e4c9;overflow:auto}#mansion-bookshelf .shelf-card-zoom::backdrop{background:#030711e8}.shelf-card-zoom-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.shelf-card-zoom-head strong{font:500 16px/1.5 Georgia,serif}.shelf-card-zoom-head button{flex:none;min-height:44px;padding:7px 14px;border:1px solid #9b814d;border-radius:7px;background:#1d2738;color:#f0e4c9}.shelf-card-zoom .shelf-card-image{max-height:calc(100dvh - 170px);height:auto;aspect-ratio:2/3;object-fit:contain}.shelf-card-zoom>p{margin:12px 0 0;text-align:center;font-size:14px}
@media(max-width:700px){.shelf-tarot{margin-left:-14px;margin-right:-14px}.shelf-tarot-grid{gap:6px}.shelf-card-button{border-radius:5px}.shelf-card-direction{padding:2px 6px}}

/* 첫 장 「나의 명식」 (2026-09-16) */
@font-face{font-family:CardSerif;src:url('/welcome/assets/MaruBuri-Regular.otf') format('opentype');font-display:swap}
.shelf-entry.shelf-first{background:#e6dcc2;border-left:3px solid #a58a53}.shelf-entry.shelf-first strong{font-family:Georgia,"Batang",serif}
.shelf-share-button{margin-left:8px;border:1px solid #a49471;border-radius:6px;background:transparent;color:#5a513d;padding:8px 14px;min-height:44px}
.shelf-link{display:inline-block;margin-top:10px;color:#3a5a55;text-decoration:underline}.shelf-chart-calc{font-size:12px;color:#746548;margin:6px 0 0!important}
.shelf-detail:has(.shelf-chart-title){padding-top:24px}.shelf-chart-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.shelf-chart-title .shelf-date{margin:0;font-size:11px}.shelf-chart-title h3{margin:2px 0;font-size:26px}.shelf-chart-title .shelf-share-button{margin:0;flex:none}
.shelf-detail:has(.shelf-chart-title)>.shelf-back{margin-bottom:12px}
.shelf-chart-birth{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0 16px;padding:10px 0 12px;border-bottom:1px solid #c5b48b}
.shelf-chart-birth svg{width:17px;height:17px;color:#766647;flex:none}.shelf-chart-birth .shelf-section-label{margin:0;font-size:12px;letter-spacing:0}.shelf-chart-birth strong{font-size:13px;font-weight:500;color:#4e4535}
.shelf-chart-overview,.shelf-elements{container-type:inline-size;margin:20px 0 24px}
.shelf-chart-heading{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-bottom:12px}.shelf-chart-heading h4{margin:0;font:600 17px/1.5 CardSerif,Georgia,serif;color:#354b46}.shelf-chart-heading>span{font-size:11px;color:#6d6658}
.shelf-chart{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}
.shelf-pillar{min-width:0;text-align:center;border:1px solid #cfbf9a;border-radius:12px;background:#fbf6e9;overflow:hidden;display:grid;grid-template-rows:34px auto auto 1fr auto}
.shelf-pillar[data-self=true]{border-color:#648477;box-shadow:0 0 0 1px #648477}.shelf-pillar-head{display:flex;align-items:center;justify-content:center;gap:5px;background:#eae0c9;border-bottom:1px solid #cfbf9a}.shelf-pillar[data-self=true] .shelf-pillar-head{background:#354f47;color:#fff7e5;border-color:#354f47}
.shelf-pillar-position{margin:0;font:600 14px/1.4 system-ui,sans-serif;color:inherit;letter-spacing:.06em}.shelf-self-tag{font-size:10px;line-height:16px;padding:0 4px;border:1px solid #bdd1c4;border-radius:4px;color:#f6eddb}
.shelf-glyph{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 6px;border-bottom:1px solid #e4dac1}.shelf-glyph-caption{display:flex;width:100%;align-items:center;justify-content:space-between;gap:2px}.shelf-symbol{display:flex;align-items:center;justify-content:center;gap:5px}
.shelf-glyph-label{font:500 11px/1.5 system-ui,sans-serif;color:#76684c;white-space:nowrap}
.shelf-hanja{font:600 32px/1.1 Georgia,"Batang",serif;color:var(--element-ink,#544c3d);text-align:right}.shelf-ko{font-size:13px;color:#4e4535;text-align:left}
.shelf-glyph-meta{font-size:11px;line-height:1.4;color:#6d6658}.shelf-pillar-god{font-size:12px;font-weight:600;line-height:1.6;border-radius:4px;padding:1px 5px;background:var(--element-tint,#eee6d5);color:var(--element-ink,#4e4535);white-space:nowrap}
[data-element=wood]{--element-ink:#3e694e;--element-tint:#e1eddf;--element-fill:#5d8b6a}[data-element=fire]{--element-ink:#a54e39;--element-tint:#f5e2d8;--element-fill:#b55f49}[data-element=earth]{--element-ink:#806025;--element-tint:#efe4be;--element-fill:#9a792e}[data-element=metal]{--element-ink:#526774;--element-tint:#e3e9eb;--element-fill:#728695}[data-element=water]{--element-ink:#416489;--element-tint:#dfe9f2;--element-fill:#5d80a5}
.shelf-pillar-hidden{padding:6px 4px;border-bottom:1px solid #e4dac1}.shelf-hidden-stems{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:3px;margin-top:4px}.shelf-hidden-stem{white-space:nowrap;border-radius:4px;padding:1px 4px;color:var(--element-ink,#544c3d);background:var(--element-tint,#eee6d5);font-size:12px;line-height:1.6}
.shelf-pillar-stage{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:3px 6px;padding:5px 3px}.shelf-pillar-stage strong{font-size:12px;font-weight:600;color:#54472f}
.shelf-chart-key{font-size:11px;line-height:1.7;color:#6d6658;margin:10px 0 0}
.shelf-element-bars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.shelf-element{display:grid;justify-items:center;align-content:start;gap:2px;min-width:0;padding:12px 6px 10px;border:1px solid #d9ccb0;border-radius:10px;background:#fcf7e9;color:var(--element-ink);font-size:12px}
.shelf-element-icon{width:30px;height:30px;padding:5px;border-radius:50%;background:var(--element-tint);margin-bottom:3px}.shelf-element-sign{font-size:13px;font-weight:600}.shelf-element-name{font-size:11px;color:#6d6658}.shelf-element-count{font-size:23px;line-height:1.3;font-weight:600;font-variant-numeric:tabular-nums}
.shelf-element[data-empty=true]{background:#f3efdf}.shelf-element[data-empty=true] .shelf-element-icon{background:transparent;outline:1px dashed #b6ac97;color:#797465}.shelf-element[data-empty=true] .shelf-element-count{color:#6d6658}
.shelf-element-meter{display:flex;width:100%;gap:2px;margin-top:6px}.shelf-element-meter i{flex:1;height:7px;border-radius:1px;background:#e2dbc9}.shelf-element-meter i[data-level=filled]{background:var(--element-fill)}.shelf-element-meter i[data-level=range]{background:repeating-linear-gradient(135deg,var(--element-fill) 0 2px,var(--element-tint) 2px 4px)}
@container(max-width:420px){.shelf-chart{gap:5px}.shelf-pillar{border-radius:8px;grid-template-rows:34px auto auto 1fr auto}.shelf-pillar-head{gap:3px}.shelf-pillar-position{font-size:12px}.shelf-self-tag{font-size:10px;padding:0 2px;line-height:14px}.shelf-glyph{gap:3px;padding:6px 3px}.shelf-hanja{font-size:28px;text-align:center}.shelf-ko{font-size:12px;text-align:center}.shelf-glyph-meta{font-size:11px}.shelf-pillar-god{padding:1px 2px;font-size:12px}.shelf-hidden-stems{flex-direction:column;flex-wrap:nowrap;align-items:center}.shelf-hidden-stem{padding:1px 2px;font-size:11px}.shelf-pillar-stage{flex-direction:column;gap:1px}.shelf-element-bars{gap:4px}.shelf-element{padding:9px 3px 8px;border-radius:8px}.shelf-element-count{font-size:21px}.shelf-element-meter{gap:1px}}
@container(max-width:300px){.shelf-glyph-caption{gap:1px}.shelf-pillar-god{padding:1px 0}}
@container(min-width:560px){.shelf-element{grid-template-columns:28px 1fr auto;gap:2px 4px;padding:10px 7px}.shelf-element-icon{grid-column:1;grid-row:1/3;margin:0;width:28px;height:28px;align-self:center}.shelf-element-sign{grid-column:2;grid-row:1}.shelf-element-name{grid-column:2;grid-row:2}.shelf-element-count{grid-column:3;grid-row:1/3;align-self:center}.shelf-element-meter{grid-column:1/-1}}
@media(max-width:380px){.shelf-book[data-view=detail] .shelf-detail:has(.shelf-chart-overview){padding-left:12px;padding-right:12px}.shelf-chart-heading h4{font-size:16px}.shelf-chart-heading>span{font-size:11px}}
/* 용신(2026-09-29) — 오행의 분포 다음 칸. 필요한 기운의 그림과 한 줄, 까닭·원문 한 줄·고양이 길잡이. 색은 그 오행의 옅은 바탕. */
.shelf-yongsin{container-type:inline-size;margin:20px 0 24px;padding:14px 16px;border:1px solid #e4dac1;border-radius:10px;background:var(--element-tint,#f7f1e3)}.shelf-yongsin .shelf-chart-heading{margin-bottom:8px}
.shelf-yongsin-need{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:15px;line-height:1.6}.shelf-yongsin-need .shelf-element-icon{flex:none;margin:0;background:#fffaf0;color:var(--element-ink,#4e4535)}.shelf-yongsin-need strong{font-weight:600;color:var(--element-ink,#4e4535)}
.shelf-yongsin-reason{margin:0 0 6px;font-size:14px;line-height:1.7;color:#4a4232}.shelf-yongsin-balance{margin:0 0 6px;font-size:13px;line-height:1.7;color:#5a4a28}
.shelf-yongsin-source{margin:8px 0 0;padding-top:8px;border-top:1px dashed #cfc2a0;font-size:12px;line-height:1.6;color:#6d6658}
.shelf-yongsin-cat{margin:10px 0 0;font-size:13px;line-height:1.7}.shelf-yongsin-cat a{color:#5a4a28;text-decoration:underline;text-underline-offset:3px}
/* 풀이의 근거(2026-09-29) — 답 아래 작은 목록. 처음엔 펼쳐 두고 제목을 누르면 접힌다. */
.shelf-evidence{margin:10px 0 16px;padding:8px 12px;border-left:3px solid #c5b48b;background:#f7f1e3;border-radius:0 8px 8px 0}.shelf-evidence summary{cursor:pointer;color:#5a4a28;font-size:14px;font-weight:600}.shelf-evidence p{margin:6px 0 0;font-size:14px;line-height:1.65;color:#4a4232;white-space:pre-wrap}
.shelf-fold{margin:18px 0;border-top:1px solid #c5b48b;padding-top:12px}.shelf-fold summary{cursor:pointer;color:#5a4a28;font-size:14px}.shelf-detail-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;font-size:12px;color:#5a513d;margin:8px 0}.shelf-detail-label{font-weight:600}.shelf-detail-basis p,.shelf-notes li{font-size:12px;color:#5a513d;line-height:1.7}.shelf-notes{padding-left:18px}
/* 공유하기 — 카드 한 장(1080×1350) 미리보기. 「나의 저택 카드」의 판을 잇는다. */
#shelf-share{color:#eee6d7;background:#101a29;border:1px solid #776b51;border-radius:22px;padding:0;width:min(620px,calc(100% - 28px));max-width:none;max-height:calc(100dvh - 28px);font:16px/1.6 system-ui,sans-serif;box-sizing:border-box;overflow:auto}
#shelf-share *,#shelf-share *::before{box-sizing:border-box}#shelf-share::backdrop{background:#040810d9}
.share-top{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 26px;background:#101a29f5;border-bottom:1px solid #cfb47830;z-index:2}.share-top h2{font:22px/1.4 CardSerif,Georgia,serif;margin:0;color:#e6d4a8}
#shelf-share button,#shelf-share a.share-button{font:inherit;min-height:46px;padding:10px 17px;border:1px solid #bfa46d70;border-radius:12px;background:#1a2939;color:#efe6d3;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.4}
#shelf-share button:disabled{opacity:.45;cursor:default}#shelf-share button:hover:not(:disabled){background:#27384a}#shelf-share :focus-visible{outline:3px solid #edce88;outline-offset:3px}
.share-sheet{max-width:520px;margin:0 auto;padding:18px 24px 28px}.share-stage{position:relative;container-type:inline-size}.share-stage canvas{display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 14px 36px #0007;background:#ece5d5}.share-caption{margin:12px 0 0;color:#aeb8c5;font-size:12px;text-align:center}.share-summary{padding:12px 0;color:#dfd4bd;font-size:14px}
.share-muted{color:#afb8c4;font-size:14px;line-height:1.65}
/* 카드 위 문장 자리 — 캔버스 문장 칸(x 90~990 · y 785~1095)에 겹치는 단추. 점선은 DOM 이라 PNG 엔 찍히지 않는다 (2026-09-17) */
#shelf-share .share-quote-zone{position:absolute;left:8.33%;top:58.15%;width:83.34%;height:22.96%;min-height:0;padding:0;border:0;border-radius:8px;background:transparent;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer}
#shelf-share .share-quote-zone[data-state=empty]{border:2px dashed #b49c6b;background:#f7f1e3d9}#shelf-share .share-quote-zone[data-state=empty]:hover{background:#efe6d0}
/* 잠긴 저장·공유를 누르면 점선 상자가 세 번 깜빡인다 */
@keyframes share-nudge{0%,100%{background:#f7f1e3d9;border-color:#b49c6b;box-shadow:none}50%{background:#ead9a4;border-color:#8a6d3b;box-shadow:0 0 0 6px #d3bd8966}}
#shelf-share .share-quote-zone.is-nudge{animation:share-nudge .5s ease-in-out 3}@media(prefers-reduced-motion:reduce){#shelf-share .share-quote-zone.is-nudge{animation:none;background:#ead9a4;border-color:#8a6d3b;box-shadow:0 0 0 6px #d3bd8966}}
#shelf-share .share-actions button.is-locked{opacity:.45}
.share-quote-zone[data-state=empty] .share-quote-label{font:500 clamp(14px,4.6cqw,27px)/1.4 CardSerif,Georgia,serif;color:#78623b;padding:0 8%}
#shelf-share .share-quote-zone[data-state=filled]:hover,#shelf-share .share-quote-zone[data-state=filled]:focus-visible{border:2px dashed #b49c6b99;background:transparent}
.share-quote-zone[data-state=filled] .share-quote-label{position:absolute;right:6px;bottom:6px;opacity:0;font:12px/1.4 system-ui,sans-serif;color:#fff6e2;background:#3a3126d9;padding:4px 10px;border-radius:14px;transition:opacity .15s}
.share-quote-zone[data-state=filled]:hover .share-quote-label,.share-quote-zone[data-state=filled]:focus-visible .share-quote-label{opacity:1}@media(hover:none){.share-quote-zone[data-state=filled] .share-quote-label{opacity:.85}}
/* 종이 판 — 카드 자리 그대로 위에 펼친다. 카드의 종이색·금선·명조를 잇는다. 첫 장 점사 목록, 다음 장 그 점사의 문장 */
.share-stage[data-picker] canvas{visibility:hidden}.share-stage[data-picker] .share-quote-zone{display:none}
.share-picker{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;border-radius:14px;background:#eee7d8;color:#302c27;box-shadow:0 14px 36px #0007;font:15px/1.6 system-ui,sans-serif}.share-picker[hidden]{display:none!important}
.share-picker-frame{min-height:calc(100% - 20px);margin:10px;border:1px solid #b49c6b;padding:12px 14px 18px;display:flex;flex-direction:column;gap:10px}
.share-picker-brand{margin:0;text-align:center;font:11px/1.4 system-ui,sans-serif;letter-spacing:.14em;color:#736344}
.share-picker-head{display:flex;align-items:center;gap:10px}.share-picker-head h3{flex:1;min-width:0;margin:0;font:600 clamp(16px,5cqw,22px)/1.4 CardSerif,Georgia,serif;color:#302c27;overflow-wrap:anywhere;outline:none}
#shelf-share .share-picker button{background:#f8f3e8;border:1px solid #c8b58a;color:#3d3629;border-radius:9px;min-height:44px;font-size:14px}#shelf-share .share-picker button:hover:not(:disabled){background:#e9dfc8}#shelf-share .share-picker :focus-visible{outline-color:#8a6d3b}
#shelf-share .share-picker-back{flex:none;padding:8px 12px;white-space:nowrap}
.share-picker-note{margin:0;font:13px/1.6 system-ui,sans-serif;color:#786a54}.share-picker-error{margin:0;font:13px/1.6 system-ui,sans-serif;color:#a54e39}
.share-picker-list{display:flex;flex-direction:column;gap:8px}
#shelf-share .share-pick-reading{display:block;width:100%;text-align:left;padding:10px 12px;line-height:1.5}.share-pick-meta{display:flex;gap:8px;flex-wrap:wrap;font:12px/1.5 system-ui,sans-serif;color:#78623b}.share-pick-reading strong{display:block;margin-top:2px;font:500 15px/1.5 CardSerif,Georgia,serif;color:#302c27;overflow-wrap:anywhere}
#shelf-share .share-sentence{display:block;width:100%;text-align:left;padding:10px 12px;font:16px/1.65 CardSerif,Georgia,serif;color:#302c27;overflow-wrap:anywhere}#shelf-share .share-sentence[aria-pressed=true]{background:#dfe6dc;border-color:#648477}
.share-picker-empty{text-align:center;padding:24px 8px;color:#786a54;font:14px/1.8 system-ui,sans-serif}.share-picker-empty p{margin:0 0 10px}.share-picker-empty a{color:#3a5a55;text-decoration:underline}
#shelf-share .share-picker-more{align-self:center;padding:8px 16px}
.shelf-gloss-head{flex-wrap:wrap}.shelf-gloss-head h5{margin-right:auto}.shelf-gloss-card{font:inherit;background:#f6edda;color:#51452d;border:1px solid #c5b48b;border-radius:7px;min-height:44px;padding:7px 12px;cursor:pointer}.shelf-gloss-card:hover{background:#e9dabc}
#my-card-status{max-width:min(460px,calc(100% - 32px));border:1px solid #bfa46d70;border-radius:18px;padding:28px;background:#101a29;color:#efe6d3;font:16px/1.7 system-ui}#my-card-status::backdrop{background:#020714cc}#my-card-status h2{font:26px CardSerif,serif;color:#e6d4a8}#my-card-status button,#my-card-status a{display:inline-block;min-height:44px;padding:8px 15px;margin:8px 8px 0 0;border:1px solid #bfa46d70;border-radius:10px;background:#1a2939;color:#efe6d3;font:inherit;text-decoration:none;cursor:pointer}
.share-actions{display:flex;gap:10px;margin:0 0 12px}#shelf-share .share-actions button{flex:1;min-width:0;padding:12px 10px;font-size:15px;white-space:nowrap}.share-actions svg{width:20px;height:20px;flex:none}#shelf-share .share-primary{background:#d3bd89;color:#20282e;border-color:#e0c994;font-weight:600}#shelf-share .share-primary:hover:not(:disabled){background:#e4cc92}
.share-status{padding:0;margin:12px 0 0;color:#e6cd92;font-size:14px;overflow-wrap:anywhere}.share-status:empty{display:none}.share-privacy{color:#afb8c4;font-size:12px;line-height:1.6;margin:8px 0 0}.share-top h2:focus{outline:none!important}.share-transfer{margin-top:16px;border-top:1px solid #c4ad7933;padding-top:16px}.share-transfer[hidden]{display:none!important}.share-download{max-width:100%;max-height:65vh;display:block;margin:12px auto;border-radius:8px}
@media(max-width:720px){#shelf-share{width:calc(100% - 12px);max-height:calc(100dvh - 12px);border-radius:16px}.share-top{padding:12px 16px}.share-sheet{padding:14px 14px 22px}.shelf-chart{gap:4px}.shelf-detail-row{grid-template-columns:1fr;gap:2px}}
/* 용어 툴팁 · 끝 장 「용어 사전」 (2026-09-16) — 낱말은 누를 수 있는 단추, 겉모양은 칩 그대로 */
/* 리셋은 우선순위 0(:where) — 칩·라벨의 원래 규칙(여백·글자 크기·좁은 화면 축소)이 그대로 이긴다. */
:where(.shelf-term){appearance:none;-webkit-appearance:none;border:0;font:inherit;color:inherit;background:transparent;padding:0;margin:0;cursor:pointer;text-align:inherit;line-height:inherit;letter-spacing:inherit}
.shelf-term:not(.shelf-pillar-god):not(.shelf-hidden-stem){text-decoration:underline dotted #a58a53;text-decoration-thickness:1px;text-underline-offset:3px}
.shelf-term[aria-expanded=true]{box-shadow:0 0 0 2px #648477}
.shelf-pillar-position .shelf-term{font:inherit;color:inherit;letter-spacing:inherit}.shelf-pillar-stage .shelf-pillar-stage-value{font-size:12px;font-weight:600;color:#54472f}
.shelf-element .shelf-term{cursor:pointer}.shelf-element{cursor:pointer}
.shelf-detail{position:relative}
.shelf-tip{position:absolute;z-index:6;padding:14px 16px 12px;border:1px solid #a58a53;border-radius:12px;background:#fffaf0;color:#2b2a26;box-shadow:0 10px 30px #2b1f0a33;font-size:14px;line-height:1.75;text-align:left}
.shelf-tip-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}.shelf-tip-head strong{font:600 15px/1.5 CardSerif,Georgia,serif;color:#354b46;overflow-wrap:anywhere}
.shelf-tip-close{flex:none;border:1px solid #c5b48b;border-radius:6px;background:transparent;color:#5a513d;padding:4px 10px;min-height:32px;font-size:12px}
.shelf-tip-plain{margin:0 0 6px;font-weight:600;color:#3d3629}.shelf-tip-body{margin:0 0 6px;color:#4e4535}.shelf-tip-mine{margin:8px 0 0;padding:8px 10px;border-left:2px solid #648477;background:#eef3ec;color:#2f4a44;font-size:13px}
.shelf-tip-foot{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px}.shelf-tip-link{border:0;background:transparent;color:#3a5a55;text-decoration:underline;padding:4px 0;min-height:32px;font-size:13px}
.shelf-entry.shelf-last{background:#e9e3d4;border-left:3px solid #648477;border-bottom:0;margin-top:6px}.shelf-entry.shelf-last strong{font-family:Georgia,"Batang",serif}
/* 끝 장은 목록 바닥에 붙어 늘 보인다 — 한 줄로 접어서(320×568 처럼 목록이 120px 남는 화면에서는 붙이지 않는다) */
@media(min-height:640px){.shelf-entry.shelf-last{position:sticky;bottom:0;z-index:1;box-shadow:0 -6px 12px -8px #4a3d2a66;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;padding:11px 10px!important}.shelf-entry.shelf-last strong{margin:0;font-size:15px}.shelf-entry.shelf-last small{display:none}}
/* 날짜별 접기 — 오늘만 펼침(2026-09-16). 날 제목은 summary, 안의 기록은 들여쓴다 */
.shelf-day{border-bottom:1px solid #cebf9c}.shelf-day>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 10px 8px 6px;font-size:13px;color:#5a4a28;border-radius:4px;-webkit-tap-highlight-color:transparent}.shelf-day>summary::-webkit-details-marker{display:none}.shelf-day>summary::before{content:"";width:7px;height:7px;border-right:1.5px solid #8a7550;border-bottom:1.5px solid #8a7550;transform:rotate(-45deg);flex:none;margin:0 6px 0 4px;transition:transform .15s}.shelf-day[open]>summary::before{transform:rotate(45deg);margin-top:-3px}.shelf-day>summary:hover{background:#e4d8bb}.shelf-day>summary:focus-visible{outline:2px solid #497467;outline-offset:-2px}
.shelf-day-name{font-weight:600;flex:1;min-width:0}.shelf-day-count{color:#77705f;font-size:12px;flex:none}.shelf-day-unread{flex:none;font-size:11px;color:#fbf2d8;background:#5b4b2b;border-radius:10px;padding:1px 7px}
.shelf-day>.shelf-entry{border-bottom:1px solid #e0d5b8;padding-left:24px!important;border-radius:0}.shelf-day>.shelf-entry:last-child{border-bottom:0}.shelf-day>.shelf-entry[aria-current=true]{padding-left:21px!important}
.shelf-gloss-group{margin:22px 0 28px}.shelf-gloss-title{margin:0 0 8px;font:600 17px/1.5 CardSerif,Georgia,serif;color:#354b46;border-bottom:1px solid #c5b48b;padding-bottom:6px}.shelf-gloss-intro{font-size:13px;color:#5a513d;line-height:1.8;margin:0 0 12px}
.shelf-gloss-entry{padding:12px 12px 12px 14px;margin:0 0 8px;border-left:2px solid #d9ccb0;border-radius:0 8px 8px 0;background:#fbf6e9}.shelf-gloss-entry.is-focused{border-left-color:#648477;box-shadow:0 0 0 1px #648477}
.shelf-gloss-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.shelf-gloss-head h5{margin:0;font:600 15px/1.5 CardSerif,Georgia,serif;color:#2b2a26;outline:none}
.shelf-gloss-share{flex:none;border:1px solid #a49471;border-radius:6px;background:transparent;color:#5a513d;padding:5px 12px;min-height:34px;font-size:12px}
.shelf-gloss-plain{margin:6px 0 4px;font-weight:600;color:#3d3629;font-size:14px}.shelf-gloss-body{margin:0;font-size:13px;color:#4e4535;line-height:1.8}.shelf-gloss-mine{margin:8px 0 0;padding:6px 10px;border-left:2px solid #648477;background:#eef3ec;color:#2f4a44;font-size:12.5px;line-height:1.7}
.shelf-fig{display:block;width:100%;max-width:372px;height:auto;margin:8px auto 6px;font-family:system-ui,sans-serif}.shelf-tip .shelf-fig{max-width:100%}.shelf-fig[viewBox="0 0 220 134"]{max-width:220px}.shelf-fig[viewBox="0 0 260 160"]{max-width:260px}
@media(max-width:700px){.shelf-tip{font-size:13px}.shelf-gloss-entry{padding:10px 10px 10px 12px}}

/* 2026-09-18 — 「명식이 누를 수 있는 리스트로 안 보인다」(사용자). 두 자리를 고친다.
   ① 목록의 줄에 갈매기표를 달아 눌러 넘어가는 줄임을 보인다.
   ② 원국의 십성·지장간·12운성 칩은 배경 tint 뿐이라 라벨로 읽혔다 — title 툴팁은 폰에서 뜨지 않는다.
   outline 으로 손잡이를 만든다(테두리와 달리 레이아웃을 밀지 않아 좁은 폰에서도 칸이 안 깨진다). */
.shelf-entry{position:relative;padding-right:26px!important}
.shelf-entry::after{content:"";position:absolute;right:11px;top:50%;width:7px;height:7px;border-top:1.5px solid #9a8154;border-right:1.5px solid #9a8154;transform:translateY(-50%) rotate(45deg);pointer-events:none}
.shelf-entry[aria-current=true]::after{border-color:#3f6357}
.shelf-term.shelf-pillar-god,.shelf-term.shelf-hidden-stem,.shelf-pillar-stage-value .shelf-term{outline:1px dashed #b0955f;outline-offset:-1px;border-radius:4px}
.shelf-term.shelf-pillar-god:hover,.shelf-term.shelf-hidden-stem:hover,.shelf-pillar-stage-value .shelf-term:hover{outline-style:solid;outline-color:#6d5a2f}
.shelf-term:active{opacity:.65}

/* 시기별로 보기 — 네 기둥이 맡는 초년·청년·중년·말년 */
.shelf-stages{margin:20px 0}
.shelf-stage-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.shelf-stage{border:1px solid #cfbf9a;border-left:4px solid #a58a53;border-radius:10px;background:#fbf6e9;padding:13px 15px}
.shelf-stage[data-unknown=true]{background:#f1ebdd;border-left-color:#c4b794}
.shelf-stage-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:7px}
.shelf-stage-period{font:700 17px/1.4 Georgia,"Batang",serif;color:#42351d;letter-spacing:.02em}
.shelf-stage-age{font-size:12px;color:#77705f}
.shelf-stage-pillar{margin-left:auto;font-size:12px;color:#6d6658;white-space:nowrap}
.shelf-stage-summary{font-size:15px;font-weight:600;line-height:1.7;color:#3a3220}
.shelf-stage-scope{font-size:12px;line-height:1.65;color:#77705f;margin-top:3px}
.shelf-stage-body{font-size:14px;line-height:1.85;color:#4c4433;margin-top:7px}
@media(max-width:700px){.shelf-stage{padding:12px 13px}.shelf-stage-period{font-size:16px}.shelf-stage-summary{font-size:15px}.shelf-stage-body{font-size:14px}}

/* 총운 — 네 시기에 걸치는 것을 앞에서 한 번만. 시기 카드와 같은 틀을 쓰되 색으로 가른다. */
.shelf-stage.shelf-overall{background:#f3efe1;border-left-color:#5c7f72}
.shelf-overall-line{margin-top:9px;font-size:14px;line-height:1.7}
.shelf-overall-phrase{font-weight:600;color:#3a3220}
.shelf-overall-where{color:#6d6658;font-size:13px}
.shelf-overall .shelf-stage-body{margin-top:3px}
.shelf-overall-flow{margin-top:11px;padding-top:9px;border-top:1px solid #d9cba6;font-size:13px;line-height:1.75;color:#5a513d}

/* 대운 — 십 년의 큰 계절. 표처럼 읽히되 지금 지나는 장만 또렷하게. */
.shelf-fortune{margin:20px 0}
.shelf-fortune-list{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:3px}
.shelf-fortune-step{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:4px 12px;padding:9px 11px;border-radius:8px;background:#f8f2e3;color:#4c4433}
.shelf-fortune-step[data-now=true]{background:#e6efe8;box-shadow:inset 3px 0 0 #5c7f72}
.shelf-fortune-when{display:flex;flex-direction:column;line-height:1.35;min-width:62px}
.shelf-fortune-age{font-size:14px;font-weight:600;color:#3a3220;font-variant-numeric:tabular-nums}
.shelf-fortune-years{font-size:11px;color:#77705f;font-variant-numeric:tabular-nums}
.shelf-fortune-glyph{display:flex;align-items:baseline;gap:5px;min-width:62px}
.shelf-fortune-hanja{font-size:17px;font-family:Georgia,"Batang",serif;color:#3a3220}
.shelf-fortune-ko{font-size:11px;color:#77705f}
.shelf-fortune-role{font-size:13px;line-height:1.6}
.shelf-fortune-now{font-size:11px;padding:2px 7px;border-radius:999px;background:#5c7f72;color:#f4efe1;white-space:nowrap}
.shelf-fortune-current{margin-top:11px;font-size:14px;line-height:1.8;color:#4c4433}
@container(max-width:460px){.shelf-fortune-step{grid-template-columns:auto 1fr auto}.shelf-fortune-role{grid-column:1/-1;color:#5a513d}}

/* 내 사주 미리보기(2026-09-19) — 로그인 밖 한 장짜리 화면. 목록 칸이 없어 본문이 책을 다 쓴다. */
.shelf-book[data-only=detail]{grid-template-columns:minmax(0,1fr)}
.shelf-preview-form{display:flex;flex-direction:column;gap:14px;max-width:460px}
.shelf-preview-form h3{margin:2px 0 0}
.shelf-preview-field{display:flex;flex-direction:column;gap:5px}
.shelf-preview-field input,.shelf-preview-field select{font:inherit;font-size:17px;padding:11px 12px;border:1px solid #a58a53;border-radius:6px;background:#fbf6e8;color:#33291a;min-height:46px}
.shelf-preview-field input:focus-visible,.shelf-preview-field select:focus-visible{outline:2px solid #6f5a2c;outline-offset:1px}
.shelf-preview-check{display:flex;align-items:center;gap:8px;font-size:15px;color:#4a3f27}
.shelf-preview-check input{width:20px;height:20px}
.shelf-preview-submit{align-self:flex-start;margin-top:4px;font-size:17px;padding:13px 26px}
.shelf-preview-error{color:#8a3227;font-weight:600}
/* 미리보기 첫머리의 직함(2026-09-20). 그림은 내 카드의 원화(3:2) 그대로 — 좁은 화면에서는 그림이 위로 간다. */
.shelf-role{margin:4px 0 18px;padding:4px 0 6px;border-bottom:1px solid #c5b48b}
.shelf-role-card{margin:0 0 12px;display:grid;grid-template-columns:minmax(0,210px) minmax(0,1fr);gap:16px;align-items:center}
.shelf-role-card img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:10px;border:1px solid #b9a577;background:#101a28}
.shelf-role-card strong{display:block;font-family:Georgia,"Batang",serif;font-size:clamp(24px,3.2vw,32px);font-weight:500;color:#253e3b;line-height:1.35;overflow-wrap:anywhere}
.shelf-role-card span{display:block;margin-top:6px;font-family:Georgia,"Batang",serif;font-size:clamp(15px,1.6vw,18px);color:#4e4535;line-height:1.8;overflow-wrap:anywhere}
.shelf-role-either{margin:0 0 12px;font-size:14px;color:#5a4a28;line-height:1.7}
.shelf-role-pair{display:grid;gap:4px}
.shelf-role .shelf-note{margin:6px 0 14px}
/* 생시 미상으로 세운 판의 단서 — 노트보다 한 단 진하게, 첫 화면에서 눈에 걸리게. */
.shelf-edge-note{margin:0 0 18px;padding:14px 16px;background:#ecdfbf;border:1px solid #b9a068;border-left:4px solid #9a7a35;border-radius:6px}
.shelf-edge-note .shelf-section-label{margin:0 0 6px;color:#5a4a28;font-weight:600}.shelf-edge-note>p:not(.shelf-section-label){margin:0 0 12px;font-size:14px;line-height:1.8;color:#453b28}
.shelf-edge-note>p:last-child{margin-bottom:0}
.shelf-role-hint{padding-bottom:16px}.shelf-role-hint>p:not(.shelf-section-label){margin:0 0 12px;font-size:15px;line-height:1.8;color:#4e4535}
@media (max-width:480px){.shelf-role-card{grid-template-columns:1fr;gap:10px}}
.shelf-preview-end{margin-top:26px;padding-top:20px;border-top:1px solid #c3b596}
.shelf-preview-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.shelf-preview-again{font:inherit;background:none;border:1px dashed #a58a53;border-radius:6px;padding:12px 18px;color:#5a4a28;cursor:pointer}
/* 책장의 설문(2026-09-26) — 배웅 전에 나간 판도 여기서 의견을 남긴다. 종이 위 한 칸. */
.shelf-survey{margin:28px 0 8px;padding:16px 16px 14px;border:1px solid #a58a53;border-radius:10px;background:#efe5cc;color:#2f2b22}
.shelf-survey-title{margin:0 0 2px;font-family:Georgia,"Batang",serif;font-size:18px;color:#3d3629}
.shelf-survey-lead{margin:0 0 12px;font-size:13px;color:#6d6048}
.shelf-survey-open,.shelf-survey-send{min-height:44px;padding:9px 18px;border:1px solid #566b5f;border-radius:8px;background:#2e4943;color:#fff3d7;font:inherit;font-size:15px;cursor:pointer}
.shelf-survey-open[hidden]{display:none}
.shelf-survey-send{width:100%;margin-top:6px}
.shelf-survey-send:disabled{opacity:.5;cursor:default}
.shelf-survey-row{margin:0 0 14px}
.shelf-survey-question{margin:0 0 6px;font-size:15px;line-height:1.6;color:#2f2b22}
.shelf-survey-scale{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.shelf-survey-scale button{min-height:44px;border:1px solid #b9a577;border-radius:8px;background:#f7f0de;color:#3d3629;font:inherit;font-size:16px;cursor:pointer}
.shelf-survey-scale button[aria-pressed="true"]{background:#2e4943;border-color:#2e4943;color:#fff3d7;font-weight:700}
.shelf-survey-low{margin:4px 0 10px;padding-top:10px;border-top:1px dashed #b9a577}
.shelf-survey-low[hidden],.shelf-survey-reason[hidden],.shelf-survey-form[hidden]{display:none}
.shelf-survey-reason{display:block;width:100%;min-height:40px;margin:0 0 6px;padding:6px 12px;border:1px solid #c8b788;border-radius:8px;background:#f7f0de;color:#4e4535;font:inherit;font-size:14px;text-align:left;cursor:pointer}
.shelf-survey-reason[aria-pressed="true"]{background:#e2d3ac;border-color:#a58a53;color:#2f2b22}
.shelf-survey-note{box-sizing:border-box;width:100%;min-height:72px;padding:10px;border:1px solid #c8b788;border-radius:8px;background:#fbf7ec;color:#2f2b22;font:inherit;font-size:14px;resize:vertical}
.shelf-survey-status{margin:8px 0 0;font-size:13px;color:#6d6048}
.shelf-survey-done{margin:0;font-size:14px;color:#3d5a4f}
.shelf-survey :focus-visible{outline:2px solid #2e4943;outline-offset:2px}
/* 이 일 이어 묻기(2026-10-04) — 판 발치의 한 칸. 단추는 그 방으로 가는 링크다. 답 없이 남은 되물음 밑에는 글자 링크 「답하러 가기」. */
.shelf-continue{margin:28px 0 8px;padding:16px 16px 14px;border:1px solid #a58a53;border-radius:10px;background:#efe5cc;color:#2f2b22}
.shelf-continue .shelf-section-label{margin:0 0 10px}
.shelf-continue-button{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box;padding:9px 18px;border:1px solid #566b5f;border-radius:8px;background:#2e4943;color:#fff3d7;font-size:15px;text-decoration:none}
.shelf-continue-note{margin:10px 0 0;font-size:13px;line-height:1.7;color:#6d6048}
.shelf-continue-button:focus-visible,.shelf-answer-back:focus-visible{outline:2px solid #2e4943;outline-offset:2px}
.shelf-answer-back{display:inline-block;margin:-10px 0 22px;padding:6px 0;color:#3a5a55;font-size:14px;text-decoration:underline;text-underline-offset:3px}

/* 2026-10-11: 지난 오방기 기록은 전체에 남기고, 미리엘의 해몽으로 들어간다. */

/* Quiet illustrations belong to empty/idle states; loading and errors keep the small icon. */
.shelf-empty-art{display:block;width:200px;max-width:100%;height:auto;object-fit:contain;flex:none}
.shelf-detail .shelf-empty-art{width:290px}
.shelf-empty-illustrated{gap:14px}
.shelf-entries .shelf-empty-illustrated{min-height:0;padding:22px 10px}
@media(max-width:600px){.shelf-empty-art{width:160px}.shelf-entries .shelf-empty-illustrated{padding:18px 10px}}
@media(max-width:360px){.shelf-empty-art{width:120px}.shelf-entries .shelf-empty-illustrated{padding:8px 10px}}
