.modal[data-modal=chat]{width:min(1120px,96vw);max-width:1120px;padding:20px;overflow:hidden}
.messenger{display:grid;grid-template-columns:205px minmax(0,1fr) 190px;min-height:400px;height:min(650px,calc(100dvh - 170px));border-top:1px solid #d9e3d5}
.conversation-list{overflow:auto;border-right:1px solid #d9e3d5;padding:14px 10px 8px 0}
.conversation-label{font-size:13px;color:#71806b;padding:12px 10px}
.conversation{display:flex;width:100%;align-items:center;gap:10px;padding:12px 10px;min-height:56px;background:transparent;text-align:left;border:0;border-radius:6px;color:#334c3a;cursor:pointer}
.conversation.active{background:#e3eddb;box-shadow:inset 3px 0 #668557}.conversation:hover{background:#edf2e8}
.conversation>span:last-child{min-width:0}.conversation b{display:block;font-size:14px}.conversation small{display:block;font-size:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-top:5px;color:#73816c;max-width:135px}
.conversation-avatar{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:8px;background:#e7eadf;color:#597452;font-size:18px}
.conversation-main{display:flex;flex-direction:column;min-width:0;min-height:0;padding:0 16px}
.conversation-header{display:flex;align-items:center;gap:10px;min-height:65px;border-bottom:1px solid #e0e6dc;flex:none}
.conversation-header>div{flex:1;min-width:0}.conversation-header small{display:block;font-size:12px;color:#71806b;line-height:1.5;margin-top:4px}.conversation-header b{font-size:16px}
.conversation-back{display:none}.messenger .chat-window{flex:1;min-height:100px;height:auto;overflow:auto;background:transparent;padding:14px 0;border:0;border-radius:0}
.messenger .chat-compose{position:static;flex:none;bottom:auto;margin:0;padding:10px 0;background:transparent}.messenger .chat-meta{font-size:12px;line-height:1.6;flex:none;padding-bottom:8px}
.messenger .chat-message p{overflow-wrap:anywhere;font-size:14px;white-space:pre-line}.messenger .chat-message small{font-size:12px}.messenger .chat-message .pixel-art{width:150px;height:150px;margin-top:8px}
.conversation-info{border-left:1px solid #d9e3d5;padding:18px 0 10px 16px;overflow:auto}.conversation-info h3{font-size:15px;margin-top:4px}.npc-life{padding:14px 0;border-bottom:1px solid #e0e6dc}.npc-life b{font-size:14px}.npc-life p,.conversation-info p{font-size:13px;line-height:1.7}.npc-life small{font-size:12px;color:#71806b}.conversation-info button{margin-top:18px}.friend-empty{font-size:13px;line-height:1.8;padding:0 10px;color:#71806b}
.quest-panel{padding:14px 0;border-top:1px solid #d9e3d5;flex:none}.quest-panel h3{font-size:15px;margin:6px 0}.quest-panel small,.quest-panel p{font-size:13px;line-height:1.6}.quest-panel progress{width:100%;height:5px}.quest-panel button{min-height:40px;font-size:13px;white-space:normal}.quest-panel p{margin:8px 0}
.quest-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.quest-list>article{min-width:0}.quest-list>article>h3{font-size:18px}.quest-list>article>p{font-size:13px}
.atlas-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.atlas-entry{min-width:0;border:1px solid #d9e3d5;border-radius:8px;padding:12px;background:#f7f9f2}.atlas-entry b,.atlas-entry small{display:block;margin-top:9px}.atlas-entry p{font-size:13px;line-height:1.7}.pixel-art{image-rendering:pixelated;width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#e8eee2;border-radius:6px}.atlas-unknown{aspect-ratio:1;display:grid;place-items:center;background:#e8eee2;color:#899681}.atlas-entry small,.asset-credit{font-size:12px;color:#71806b}.asset-credit{line-height:1.7;margin-top:20px}.world-event-text{white-space:pre-line}.modal[data-modal=world-event]>.pixel-art{display:block;width:210px;max-width:100%;margin:0 auto 20px}
.mahjong-table{background:#e6efe3;border:1px solid #c6d7c0;padding:16px;border-radius:8px}.mahjong-seats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mahjong-seat{min-width:0;border-bottom:1px solid #c6d7c0;padding-bottom:10px}.mahjong-seat h3{font-size:14px;margin:0 0 6px}.tile-river{display:flex;flex-wrap:wrap;gap:3px;min-height:33px}.tile{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:34px;min-width:34px;height:46px;background:#fffef5;color:#334c3a;border:1px solid #bec8b5;border-bottom:3px solid #829a73;border-radius:4px;font-size:16px;font-weight:bold;line-height:1.1}.tile small{font-size:11px}.tile.p{color:#b34d4d}.tile.s{color:#33724b}.tile.z{color:#5d597e}.tile.red{color:#cd4545}.tile-river .tile{width:24px;min-width:24px;height:32px;font-size:13px}.tile-river .tile small{font-size:9px}.mahjong-hand{display:flex;gap:4px;overflow-x:auto;padding:16px 0;max-width:100%;min-height:80px}.mahjong-hand button{height:58px;width:40px;min-width:40px;cursor:pointer}.mahjong-hand button:disabled{opacity:.75}.mahjong-hand button:hover:not(:disabled){transform:translateY(-4px);outline:2px solid #688e56}.mahjong-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.mahjong-status{min-height:28px;font-size:14px;line-height:1.6}.mahjong-scoreboard{display:flex;flex-wrap:wrap;gap:12px;font-size:14px}.mahjong-meld{font-size:13px;line-height:1.6}.mahjong-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
@media(max-width:950px){.messenger{grid-template-columns:180px minmax(0,1fr)}.conversation-info{display:none}}
@media(max-width:600px){
 .modal[data-modal=chat]{width:100%;max-width:none;padding:12px;max-height:var(--keyboard-height,100dvh);height:var(--keyboard-height,100dvh)}
 .modal[data-modal=chat]>.modal-heading{margin-bottom:6px}.messenger{display:flex;height:calc(var(--keyboard-height,100dvh) - 92px);min-height:0}.conversation-list{display:none;border:0;width:100%;padding:0}.conversation-main{width:100%;padding:0}.conversation-back{display:inline-flex}.messenger.show-list .conversation-list{display:block}.messenger.show-list .conversation-main{display:none}.conversation small{max-width:240px;font-size:13px}.conversation b{font-size:16px}.conversation{min-height:68px}.conversation-avatar{width:42px;height:42px}.messenger .chat-window{min-height:40px;padding:10px 0}.messenger .chat-compose input{font-size:16px;min-height:46px}.messenger .chat-message p{font-size:15px}.messenger .chat-meta{font-size:12px}.conversation-header small{font-size:13px}.messenger .quest-panel{padding:8px 0;max-height:190px;overflow:auto}.messenger .quest-panel p{margin:4px 0}.quest-panel button{min-height:44px}.quest-list{grid-template-columns:1fr;gap:12px}.atlas-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.atlas-entry{padding:9px}.atlas-entry b{font-size:14px}.atlas-entry p{font-size:13px}.mahjong-table{padding:10px}.mahjong-seats{gap:8px}.mahjong-hand{gap:3px}.mahjong-hand button{min-width:36px;width:36px}.mahjong-controls button,.mahjong-actions button{min-height:44px;font-size:14px}
 .schedule-row small,.schedule-row>div small,.schedule-panel small,.week-schedule small{font-size:14px!important;line-height:1.6}.schedule-row b,.schedule-panel h3,.week-schedule b{font-size:16px!important}.schedule-row time,.schedule-row .schedule-time,.week-schedule p span{font-size:14px!important}.schedule-row{min-height:76px}.week-schedule{display:flex;flex-direction:column;gap:14px}.week-schedule>div{width:100%}.week-schedule p{padding:12px}.life-panel,.log-row{font-size:14px}.modal .option small{font-size:13px}.modal .option b{font-size:15px}.schedule-panel .timeline{margin-bottom:20px}.day-controls button{font-size:14px}
}

.chat-avatar img,.conversation-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.chat-avatar{overflow:hidden;flex:none}
.calendar-date{padding:4px 0;text-align:left;cursor:pointer}.calendar-date:hover b{text-decoration:underline;text-underline-offset:4px}
.week-schedule>div{min-width:0}.week-schedule>div>small{display:block;margin-top:6px;min-height:16px;color:#80612d}.week-schedule>div>b{display:block}
@media(max-width:700px){.week-schedule>div{display:block}.week-schedule>div>small:empty{display:none}.week-schedule>div>p{margin-top:10px}.week-schedule>div>small{margin-bottom:8px}}
.calendar-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px}.calendar-toolbar h3{flex:1;text-align:center;font-size:18px}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{margin-bottom:8px;text-align:center;font-size:12px;color:#71806b}
.calendar-cell,.calendar-blank{min-width:0;height:65px}.calendar-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid #d9e3d5;border-radius:4px;background:#fff;color:#334c3a}.calendar-cell b{font-size:17px}.calendar-cell small{height:14px;font-size:11px;line-height:14px;white-space:nowrap}.calendar-cell.weekend{background:#eff4ec}.calendar-cell.holiday{background:#fff1f0;color:#9b4145}.calendar-cell.makeup{background:#fff5d9;color:#75541c}.calendar-cell.today{box-shadow:inset 0 -3px #668557}.calendar-cell[aria-pressed=true]{outline:2px solid #426e56;outline-offset:0}.calendar-cell:hover{border-color:#426e56}
.calendar-day-detail{border-top:1px solid #d9e3d5;margin-top:20px;padding-top:16px}.calendar-day-detail h3{font-size:16px;margin-bottom:8px}.calendar-day-detail p{font-size:13px;line-height:1.8;display:flex;align-items:center;gap:8px}.calendar-day-detail ul{list-style:none;margin:12px 0;padding:0}.calendar-day-detail li{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:13px;padding:9px 0;border-bottom:1px solid #e5ebe0}.calendar-day-detail time{font-variant-numeric:tabular-nums}.holiday-label{color:#9b4145}
.intro-story .chat-window{height:min(440px,55dvh);overflow:auto}.intro-story .chat-message p{white-space:pre-line;overflow-wrap:anywhere}.intro-story .modal-actions{flex-wrap:wrap}.intro-story .chat-avatar{width:34px;height:34px;flex:none}
@media(max-width:400px){.calendar-grid,.calendar-weekdays{gap:3px}.calendar-cell,.calendar-blank{height:52px}.calendar-cell b{font-size:15px}.calendar-cell small{font-size:10px}.calendar-toolbar{gap:6px}.calendar-toolbar h3{font-size:16px}.calendar-day-detail li{gap:8px}.intro-story .chat-message p{font-size:14px}}
.sleep-duration{display:grid;gap:10px}.sleep-duration select{padding:12px;border:1px solid #a9b9a0;border-radius:8px;background:#fff;color:#334c3a}.sleep-preview{line-height:1.8;background:#edf2e8;border-radius:8px;padding:16px}
.release-dialog{width:min(440px,calc(100vw - 32px));box-sizing:border-box;border:1px solid #a9b9a0;border-radius:8px;padding:24px;color:#334c3a;background:#fff;max-height:calc(100dvh - 32px);overflow:auto}
.release-dialog::backdrop{background:#18271acc}.release-dialog h2{font-size:22px;margin:0 0 16px}.release-dialog p{line-height:1.7;overflow-wrap:anywhere}.release-dialog button{width:100%;justify-content:center;white-space:normal}
.release-changes{padding-left:20px;font-size:14px;line-height:1.8}.release-changes li{margin:10px 0}.release-changes:empty{display:none}
.mahjong-table h3{font-size:16px;margin:16px 0 8px}.mahjong-dora{display:flex;gap:6px;align-items:center;margin:12px 0;font-size:13px}.mahjong-rivers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mahjong-rivers>section{min-width:0;border-top:1px solid #b8ccb0;padding-top:8px}.mahjong-rivers b{font-size:13px}.river-tiles{display:flex;flex-wrap:wrap;gap:3px;min-height:66px;margin-top:8px}.river-tiles .tile{width:23px;min-width:23px;height:31px;font-size:12px}.river-tiles .tile small{font-size:9px}.riichi-tile{box-shadow:inset 0 -3px #d85555}.tile.red-five{color:#c43232}.mahjong-node>p,.mahjong-win p{font-size:14px;line-height:1.7;overflow-wrap:anywhere}.mahjong-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.mahjong-controls .option{min-width:0;padding:8px;gap:8px;justify-content:flex-start;min-height:62px}.mahjong-controls .option b{font-size:12px;overflow-wrap:anywhere}.mahjong-controls .option .tile{width:27px;min-width:27px;height:38px}.mahjong-controls .riichi,.mahjong-controls .win{background:#f5edd8}.mahjong-win{padding:14px 0;border-top:1px solid #b8ccb0}.mahjong-recap{margin-top:16px;font-size:13px}.mahjong-recap p{line-height:1.6}.yaku-collection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.yaku-collection article{padding:14px;border:1px solid #d9e3d5;border-radius:6px}.yaku-collection article.collected{background:#edf4e8;border-color:#8da683}.yaku-collection article>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.yaku-collection h3{font-size:15px}.yaku-collection span,.yaku-collection small{font-size:12px}.yaku-collection p{font-size:13px;line-height:1.7;margin:8px 0}
@media(max-width:600px){.mahjong-rivers{gap:8px}.mahjong-scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:12px}.mahjong-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.mahjong-hand{flex-wrap:wrap;overflow:visible;min-height:0}.mahjong-hand .tile{width:29px;min-width:29px;height:40px}.yaku-collection{grid-template-columns:1fr}}
.phone-launch{display:flex;align-items:center;gap:10px;padding:5px 12px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.phone-launch>span:last-child{display:grid;text-align:left;gap:3px;font-size:14px}.phone-launch small{font-size:11px;color:#718078}.pixel-phone{width:35px;height:53px;border:3px solid #414b48;border-radius:2px;background:#5b6762;padding:5px 3px 8px;box-shadow:3px 3px 0 #ccd4cd;position:relative}.pixel-phone:after{content:'';position:absolute;bottom:3px;left:12px;width:6px;height:3px;background:#adb8af}.phone-screen{display:flex;position:relative;align-items:center;justify-content:center;width:100%;height:100%;background:#37413c;color:#78887e}.phone-screen svg{width:17px;height:17px}.has-unread .phone-screen{background:#c8edb1;color:#315b40;box-shadow:0 0 9px #badc9d}.phone-screen i,.unread-dot{display:inline-block;width:7px;height:7px;background:#dd695e;margin-left:6px}.phone-screen i{position:absolute;right:1px;top:1px;margin:0}.chat-phone-shell{border:4px solid #49544e;border-radius:3px;background:#f0f5eb;box-shadow:4px 4px 0 #a7b7ac;min-width:0}.chat-phone-status{display:flex;justify-content:space-between;align-items:center;padding:5px 12px;border-bottom:2px solid #667b64;background:#dbe9d0;font:12px monospace;color:#354b38}.chat-phone-status>span:last-child{display:flex;gap:6px}.chat-phone-status svg{width:14px;height:14px}.phone-home-indicator{width:38px;height:5px;background:#57685b;margin:7px auto}.chat-phone-shell .messenger{height:min(600px,calc(100dvh - 215px));border:0}.chat-phone-shell .chat-message p{border-radius:2px;border:1px solid #b9cbb0;box-shadow:2px 2px 0 #d5dfcf;background:#fbfdf8}.chat-phone-shell .chat-message.self p{background:#dceec8;border-color:#9db58e}.chat-phone-shell .chat-avatar,.chat-phone-shell .conversation-avatar{border-radius:2px;image-rendering:pixelated}.chat-phone-shell .chat-compose input,.chat-phone-shell .chat-compose button{border-radius:2px}.mahjong-hand .hand-tile{padding:0;border:0;background:transparent;touch-action:manipulation;display:flex;align-items:center;justify-content:center}.mahjong-hand .hand-tile.selected{outline:2px solid #457657;transform:translateY(-4px)}.mahjong-lesson{margin-top:16px;border-left:3px solid #799859;padding:4px 12px;background:#f6faed;font-size:13px;line-height:1.7}.mahjong-lesson p{margin:3px 0}.ready-label{display:block;margin:12px 0 6px}.supply-strip+.drowsiness-strip{margin:10px 0}
@media(max-width:600px){.modal[data-modal=chat]{display:flex;flex-direction:column}.modal[data-modal=chat]>.modal-heading{flex:none}.chat-phone-shell{flex:1;height:auto;min-height:0;display:flex;flex-direction:column}.chat-phone-shell .messenger{height:auto;flex:1;min-height:0;overflow:hidden}.chat-phone-shell .conversation-main{padding:0 8px}.chat-phone-shell .conversation-list{padding:0 8px}.chat-phone-status{flex:none}.phone-home-indicator{flex:none}.mahjong-hand .hand-tile{width:29px;min-width:29px;height:44px}.chat-phone-shell .chat-message{gap:7px}.chat-phone-shell .chat-meta{font-size:11px}}
.best-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.best-title .game-version{font-size:11px;font-weight:400;color:#788377;overflow-wrap:anywhere;letter-spacing:0}.lin-panel{font-size:13px;line-height:1.7}.lin-panel .relationship-summary{display:flex;gap:12px;flex-wrap:wrap}.lin-location{margin:6px 0;color:#6b7e74}.lin-request{border-left:3px solid #c190a2;padding:5px 10px;margin:8px 0}.lin-request p{overflow-wrap:anywhere}.lin-request small{font-size:12px}.lin-actions,.lin-at-arcade{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0}.lin-actions button{min-height:44px}.lin-detail .relationship-memories{margin-top:18px}.lin-at-arcade{justify-content:space-between;padding:8px 0;font-size:13px}
@media(max-width:600px){.messenger .lin-panel.quest-panel{max-height:min(260px,35dvh);padding:8px 0}.lin-panel .lin-request{margin:6px 0}.lin-panel .lin-actions{margin:6px 0}}
