#catConversation{position:fixed;right:20px;bottom:18px;z-index:1200;display:flex;align-items:flex-end;gap:8px;max-width:min(460px,94vw)}#catConversation>img{width:72px;height:72px;object-fit:contain}.cat-speech{border:1px solid var(--line,#ddd);border-radius:18px 18px 2px 18px;background:var(--surface,#fff);color:var(--text,#222);box-shadow:0 6px 25px #0002;padding:14px 16px;display:flex;gap:12px;align-items:center;font-size:14px;line-height:1.5}.cat-heart{border:0;background:none;color:var(--faint,#777);white-space:nowrap;cursor:pointer;padding:5px}.cat-heart.on{color:#e75368}.dz-check{position:absolute!important;top:6px;right:6px;width:20px!important;height:20px!important;z-index:6;accent-color:var(--accent,#ef755e)}.dz-picked{outline:3px solid var(--accent,#ef755e)!important}.dz-selecting .node-menu{display:none!important}.inbox-range{padding:8px 0 12px}.inbox-range input{width:145px}.inbox-grid{min-height:0}.main-body:has(.inbox-range){display:flex;flex-direction:column}.main-body>.inbox-grid{flex:1}.chat-panel{height:100%;display:flex;flex-direction:column;max-width:100%;min-height:0;background:var(--surface-2)}.chat-head{padding:18px;border-bottom:1px solid var(--line)}.chat-messages{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:14px}.chat-msg{max-width:85%;align-self:flex-start}.chat-msg.mine{align-self:flex-end;text-align:right}.chat-bubble{background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px 14px 14px 2px;padding:10px 14px;white-space:pre-wrap;overflow-wrap:anywhere;text-align:left}.mine .chat-bubble{background:var(--normal-bg,#e1e9f8);color:var(--normal-tx,#2f4c8a);border-radius:14px 14px 2px 14px}.chat-msg small{color:var(--faint);font-size:11px}.chat-compose{padding:15px;display:flex;align-items:flex-end;gap:8px;border-top:1px solid var(--line)}.chat-compose textarea{flex:1;min-width:0;resize:vertical;height:70px}.record-welcome{height:100%;display:flex;align-items:center;justify-content:center;padding:28px}.record-welcome-inner{max-width:660px;width:100%}.record-welcome h2{font-size:24px}.record-welcome .quick{display:flex;gap:8px;border:1px solid var(--line);border-radius:18px;padding:15px;background:var(--surface)}.record-welcome .quick input{flex:1;min-width:0;border:0;background:transparent}.record-welcome .quick button{flex:none}.rl-head .row1{flex-wrap:nowrap}.rl-head .row1 h2{white-space:normal;overflow:visible;overflow-wrap:anywhere;flex:1}.rl-head .row1 .btn{flex:none}.rl-head .row2{display:flex;gap:6px;align-items:center;flex-wrap:wrap}#catLines{width:100%;resize:vertical}.chat-msg a{color:var(--accent,#c85a47)}@media(max-width:640px){#catConversation{right:10px;bottom:12px}#catConversation>img{width:52px;height:52px}.chat-msg{max-width:95%}.rl-head .row1 h2{font-size:16px}.record-welcome{padding:18px}}

.mine .chat-bubble a{color:inherit;text-decoration:underline}

.rec.chat-open #recList{display:none}.rec.chat-open #recDetail{grid-column:2/-1;min-height:0;overflow:hidden}.chat-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media(max-width:900px){.rec.chat-open,.rec.chat-open.auto{height:100dvh;min-height:0;grid-template-rows:minmax(0,1fr)}.rec.chat-open #recDetail{grid-column:1/-1}.chat-head .faint{font-size:12px}}

/* Keep progress at the right edge and selection at the left edge. */
.dz-check{left:6px;right:auto;cursor:pointer;pointer-events:auto}.dz-selecting .mc .mt,.dz-selecting .nd .nt{padding-left:24px}.dz-selecting .mc,.dz-selecting .nd{cursor:pointer}.dz-picked{outline-offset:-3px}
.inbox-range{padding:0;gap:6px;font-size:12px;flex-wrap:wrap}.inbox-range input{width:136px;height:32px}.main-body>.inbox-grid{height:100%}
.home-right{min-height:0;position:sticky;top:0}.home-right .news-home{max-height:var(--news-max,calc(100dvh - 280px));display:flex;flex-direction:column;min-height:0;width:100%}.home-news-feed{overflow:auto;min-height:0;overscroll-behavior:contain}.home-news-more{padding:12px;text-align:center;display:grid;gap:8px}.home-grid .dlog-card{flex:none}.home-grid .dl-ed{min-height:150px;max-height:260px;overflow:auto}
#catConversation{z-index:2147483001}.cat-speech{position:relative}.cat-speech:after{content:'';position:absolute;right:-7px;bottom:13px;width:12px;height:12px;background:var(--surface);border-right:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}body:has(#catConversation) .home-cat,body:has(#catConversation) .toast-cat{visibility:hidden}body:has(#toasts:not(:empty)) .toast-cat{z-index:2147483000}.toasts.cat-say{z-index:2147483001}
.chat-byline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}.mine .chat-byline{justify-content:flex-end}.chat-author{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 3px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);font-size:12px;color:var(--text)}.chat-avatar{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--normal-bg);color:var(--normal-tx);font-weight:800}.chat-byline time{font-size:10px;color:var(--muted)}.chat-emoji-wrap{position:relative;flex:none}.chat-emoji-picker{position:absolute;left:0;bottom:45px;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow-lg);padding:8px;display:grid;grid-template-columns:repeat(6,34px);z-index:10}.chat-emoji-picker[hidden]{display:none}.chat-emoji-picker button{font-size:22px;padding:4px;border-radius:6px}.chat-emoji-picker button:hover{background:var(--surface-2)}
@media(max-width:980px){.home-right{position:static}.home-right .news-home{max-height:min(65dvh,620px)}}
@media(max-width:640px){.inbox-range input{width:119px}.chat-compose{gap:5px;padding:10px}.chat-compose .btn{padding-left:10px;padding-right:10px}}
.chat-emoji-picker{left:auto;right:0}
#catPet{position:fixed;right:16px;bottom:8px;width:117px;height:115px;background:none;border:0;padding:0;z-index:0;cursor:pointer}#catPet img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.home-cat>img,.toast-cat>img{opacity:0}body:has(#toasts:not(:empty)) #catPet{z-index:2147483000}body:has(#catConversation) #catPet{visibility:hidden}#catConversation>img{cursor:pointer;pointer-events:auto}#catPet:focus-visible,#catConversation>img:focus-visible{outline:2px solid var(--accent);border-radius:12px}@media(max-width:640px){#catPet{width:80px;height:80px}}
.chat-msg{position:relative}.chat-actions{display:flex;gap:4px;opacity:0;justify-content:flex-start;margin-bottom:3px}.mine .chat-actions{justify-content:flex-end}.chat-msg:hover .chat-actions,.chat-msg:focus-within .chat-actions{opacity:1}.chat-actions button{font-size:11px;border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:3px 6px;color:var(--muted)}.chat-actions button:hover{color:var(--text);border-color:var(--accent)}.chat-pins{padding:9px 16px;border-bottom:1px solid var(--line);background:var(--normal-bg);color:var(--normal-tx);font-size:12px;max-height:145px;overflow:auto}.chat-pins>div{display:flex;gap:8px}.chat-pins button:first-child{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px}.chat-pins[hidden]{display:none}.chat-quote{display:flex;flex-direction:column;gap:2px;border-left:3px solid var(--accent);padding:5px 8px;text-align:left;font-size:11px;background:var(--surface-2);border-radius:4px;margin-bottom:8px;color:var(--muted);max-width:100%;overflow-wrap:anywhere}.chat-quote span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-reactions{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.mine .chat-reactions{justify-content:flex-end}.chat-reactions button{font-size:12px;padding:2px 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text)}.chat-reactions button.on{border-color:var(--normal-tx);background:var(--normal-bg)}.chat-reaction-menu{position:fixed;display:grid;grid-template-columns:repeat(6,34px);padding:8px;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow-lg);z-index:10000}.chat-reaction-menu button{padding:4px;font-size:22px;border-radius:6px}.chat-reaction-menu button:hover{background:var(--surface-2)}.chat-reply-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 15px;border-top:1px solid var(--line);background:var(--surface);font-size:12px}.chat-reply-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-reply-bar button{flex:none;color:var(--muted)}.chat-edit textarea{min-width:220px;width:100%;min-height:90px;white-space:pre-wrap}.chat-edit .row{margin-top:6px}.chat-flash .chat-bubble{outline:2px solid var(--accent)}.cm-reply-to{margin:4px 0 5px 34px;font-size:11px;color:var(--muted);border-left:2px solid var(--line-2);padding-left:7px}@media(hover:none),(pointer:coarse){.chat-actions{opacity:1}}@media(max-width:640px){.chat-actions button{padding:4px}.chat-edit textarea{min-width:150px}}
body:has(.rec.chat-open) #catConversation{bottom:112px}body:has(.rec.chat-open) #catPet{bottom:112px}
.chat-actions{position:absolute;left:0;right:auto;top:-23px;z-index:3;white-space:nowrap}.mine .chat-actions{left:auto;right:0}.chat-actions button{height:auto;line-height:1.4}.chat-messages{padding-top:26px}@media(hover:none),(pointer:coarse){.chat-actions{position:static;white-space:normal;flex-wrap:wrap}}@media(max-width:900px){.rec.chat-open,.rec.chat-open.auto{grid-template-rows:minmax(0,1fr)!important}.rec.chat-open #recDetail{grid-row:1}}
/* One geometry for the idle body, speech body and notification spacing. */
:root{--cat-width:117px;--cat-height:115px;--cat-right:16px;--cat-bottom:8px;--cat-retreat-factor:0}#catDock{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}#catPet{position:absolute;right:var(--cat-right);bottom:var(--cat-bottom);width:var(--cat-width);height:var(--cat-height);pointer-events:auto;transition:transform .7s ease-in-out}body:has(#toasts:not(:empty)) #catDock{z-index:2147483000}#catConversation{right:var(--cat-right);bottom:var(--cat-bottom);display:grid;grid-template-columns:minmax(0,1fr) var(--cat-width);gap:18px;align-items:end;width:max-content;max-width:min(560px,calc(100vw - var(--cat-right) - 12px))}#catConversation>img{width:var(--cat-width);height:var(--cat-height);min-width:var(--cat-width);grid-column:2;grid-row:1}.cat-speech{grid-column:1;grid-row:1;min-width:0;max-width:360px;margin-bottom:calc(var(--cat-height)*.25);gap:8px}.cat-speech>span{min-width:0;overflow-wrap:anywhere;white-space:pre-wrap;max-height:55dvh;overflow:auto}.cat-heart{flex:none}.cat-speech:after{right:-7px}body .toasts.cat-say,body:has(.home-cat) .toasts.cat-say{right:calc(var(--cat-right) + var(--cat-width) + 18px);bottom:calc(var(--cat-bottom) + var(--cat-height)*.25);max-width:calc(100vw - var(--cat-right) - var(--cat-width) - 36px)}
body:has(.rec.chat-open){--cat-bottom:112px}body:has(.rec.chat-open) #catConversation{bottom:var(--cat-bottom)}body:has(.rec.chat-open) #catPet{bottom:var(--cat-bottom);width:var(--cat-width);height:var(--cat-height)}
body.cat-burrowed #catDock{z-index:0!important}body.cat-burrowed #catPet{transform:translateY(calc((var(--cat-height) + var(--cat-bottom) + 8px)*var(--cat-retreat-factor)));pointer-events:none}body.cat-burrowed .home-cat .thought,body.cat-burrowed .home-cat .tb{opacity:0}body.cat-burrowed .toasts.cat-say,body.cat-burrowed:has(.home-cat) .toasts.cat-say{right:18px;bottom:18px;max-width:calc(100vw - 36px)}body.cat-burrowed .toasts.cat-say .toast:before,body.cat-burrowed .toasts.cat-say .toast:after{display:none}
@media(max-width:640px){:root{--cat-width:80px;--cat-height:80px;--cat-right:10px;--cat-bottom:12px}.cat-speech{padding:10px 12px;font-size:13px}#catConversation{gap:14px}#catPet{width:var(--cat-width);height:var(--cat-height)}}@media(prefers-reduced-motion:reduce){#catPet{transition:none}}

/* A single cautious line at minute three; the peeking cat keeps its position. */
#catPeekConversation{position:fixed;right:calc(var(--cat-right) + var(--cat-width) + 18px);bottom:calc(var(--cat-bottom) + var(--cat-height)*.25);max-width:min(340px,calc(100vw - var(--cat-width) - 50px));z-index:2147483001;pointer-events:none}#catPeekConversation .cat-speech{margin:0;pointer-events:auto}

/* Operational actions stay above speech so both remain readable and clickable. */
body:has(#catConversation) .toasts.cat-say,body:has(#catPeekConversation) .toasts.cat-say{bottom:var(--cat-dialog-clearance,150px)}

.doing-access-hidden{display:none!important}#doingAccessGate{position:fixed;inset:0;z-index:2147483004;display:grid;place-items:center;padding:24px;background:var(--bg,#fff);color:var(--text,#252525)}#doingAccessGate>div{max-width:520px;width:100%;padding:24px;border:1px solid var(--line,#ddd);border-radius:14px;background:var(--surface,#fff)}#doingAccessGate p{line-height:1.7;white-space:pre-wrap}#doingAccessGate>div>div{display:flex;gap:10px;flex-wrap:wrap}.doing-access-blocked #modal.open{z-index:2147483005}.doing-access-blocked #catDock,.doing-access-blocked #catConversation,.doing-access-blocked #catPeekConversation,.doing-access-blocked #toasts,.doing-access-blocked .toast-cat{display:none!important}
/* Read counts are distinct from total counts, in both widgets. */
.new-item-label,.new-count{display:inline-flex;align-items:center;flex:none;background:#e8705a20;color:#d4543f;border-radius:5px;padding:1px 5px;font-size:10px;font-weight:800;line-height:1.5;white-space:nowrap;vertical-align:middle}
.new-item-label{margin-left:6px}.nav-item .new-count{margin-left:auto}.nav-item .badge+.new-count{margin-left:4px}
:root[data-theme=dark] .new-item-label,:root[data-theme=dark] .new-count{color:#ffaf9e;background:#e8705a2c}
.widget-switch{padding:7px 4px}.widget-switch a{display:block;font-size:12px;color:var(--side-text,var(--text));text-decoration:none;padding:7px 8px;border:1px solid var(--side-2,var(--line));border-radius:7px}.widget-switch a:hover{background:var(--side-2,var(--surface-2))}.app.collapsed:not(.peek) .widget-switch a{font-size:0;text-align:center;padding:7px 2px}.app.collapsed:not(.peek) .widget-switch a::after{content:'↔';font-size:18px}.guide-icon{width:28px;height:28px;display:grid;place-items:center;text-decoration:none;color:var(--side-text);border:1px solid var(--side-muted);border-radius:50%;font-weight:800}.side-tools .guide-icon:hover{background:var(--side-2)}

#rec.collapsed:not(.peek) .widget-switch a{font-size:0;text-align:center;padding:7px 2px}#rec.collapsed:not(.peek) .widget-switch a::after{content:"↔";font-size:18px}
.widget-switch a .new-count{margin-left:6px}#rec.collapsed:not(.peek) .widget-switch a,.app.collapsed .widget-switch a{position:relative}#rec.collapsed:not(.peek) .widget-switch .new-count,.app.collapsed .widget-switch .new-count{position:absolute;top:3px;right:4px;width:7px;height:7px;font-size:0;padding:0;margin:0;border-radius:50%;background:var(--accent)}
.app.collapsed .nav-item .new-count,.rec.collapsed .nav-item .new-count{display:block;position:absolute;top:4px;right:5px;width:7px;height:7px;font-size:0;line-height:0;padding:0;margin:0;border-radius:50%;background:var(--accent)}
.rec-side .nav-item>span:not(.new-count){min-width:0;overflow:hidden;text-overflow:ellipsis}
/* 설정 › 고양이 대화: 문장 하나씩 등록(시간·요일 조건) */
#catSettings .cat-add,#catSettings .cat-row{display:grid;grid-template-columns:minmax(0,1fr) 168px 112px auto;gap:6px;align-items:center}#catSettings .cat-row{grid-template-columns:minmax(0,1fr) 168px 112px 44px auto auto;padding:6px;border-radius:10px;border-left:3px solid transparent}#catSettings .cat-row:hover{background:var(--surface-2)}
#catSettings .cat-add input,#catSettings .cat-row input,#catSettings select{min-width:0;height:32px;font-size:13px}#catSettings .cat-h{font-size:12px;color:var(--muted);text-align:right;white-space:nowrap}
#catSettings .cat-row.k-slot,#catSettings .cat-row.k-both{border-left-color:var(--normal-dot,#5b73b5)}#catSettings .cat-row.k-dow{border-left-color:var(--delegate-tx,#b5835b)}
#catSettings .cat-bar{display:flex;align-items:center;gap:8px;margin:16px 0 6px;flex-wrap:wrap}#catSettings .cat-bar select{width:auto}#catSettings .cat-list{display:flex;flex-direction:column;gap:2px;max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:4px}
#catSettings [data-del].armed{color:#fff;background:var(--danger,#d44c47);border-color:transparent}#catSettings .cat-rank p{margin:4px 0;font-size:13px}
@media(max-width:720px){#catSettings .cat-add{grid-template-columns:1fr 1fr}#catSettings .cat-add input{grid-column:1/-1}#catSettings .cat-row{grid-template-columns:repeat(4,minmax(0,1fr))}#catSettings .cat-row .cat-t{grid-column:1/-1}#catSettings .cat-row .cat-s{grid-column:1/3}#catSettings .cat-row .cat-d{grid-column:3/5}#catSettings .cat-row .cat-h{grid-column:1/3;text-align:left}}
/* 창(모달)이 떠 있을 때: 고양이는 창 뒤 · 새 안내/대화가 나올 때만(body.cat-up, 최대 10초) 위로 · 창 위에 있어도 창 버튼 누르기를 막지 않음 (cat-voice.js watchLayers) */
body:has(#modal.open):not(.cat-up) #catDock,body:has(#modal.open):not(.cat-up) #catPet,body:has(#modal.open):not(.cat-up) .toast-cat{z-index:0!important}
body:has(#modal.open) #catPet,body:has(#modal.open) #catConversation>img{pointer-events:none}
