:root{color-scheme:light;--green:#06965d;--green-dark:#006940;--ink:#0b3226;--muted:#698278;--line:#dfebe5;--mint:#e4f7ee;--canvas:#f2f8f4;--white:#fff;--shadow:0 22px 55px rgba(9,65,38,.065);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:15px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--canvas)}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.56;cursor:wait}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid #ffbd4a!important;outline-offset:3px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:10px;top:-80px;background:#003a28;color:white;padding:12px;z-index:20}.skip-link:focus{top:8px}.shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.rail{padding:28px 20px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-size:28px;font-weight:850;letter-spacing:-1.4px}.brand img{border-radius:13px}.brand-dot{color:var(--green)}.brand small{display:block;font-size:9px;letter-spacing:3.2px;font-weight:750;margin-top:-3px;color:var(--muted)}.railnav{margin-top:63px;display:grid;gap:11px}.railnav a{display:flex;gap:13px;align-items:center;padding:14px 16px;border-radius:16px;font-weight:700;color:#557567}.railnav a.current{background:var(--mint);color:#00794a}.railnav a:hover{background:#f3faf6}.rail-foot{margin-top:auto;background:linear-gradient(130deg,#f4fbef,#ddfbe8);border-radius:20px;padding:20px;font-size:13px}.rail-foot p{font-weight:750}.rail-foot small{color:var(--muted);line-height:1.7}.workbench{min-width:0;display:flex;flex-direction:column;min-height:100vh}.topbar{height:96px;background:white;border-bottom:1px solid var(--line);padding:16px 36px;display:flex;align-items:center;justify-content:space-between}.eyebrow{margin:0;font-size:10px;letter-spacing:2.1px;font-weight:800;color:#587e6b}.topbar h1{font-size:27px;margin:6px 0 0;letter-spacing:-1px}.top-actions{display:flex;align-items:center;gap:12px}.icon-button{background:white;color:var(--ink);border:1px solid var(--line);width:38px;height:38px;border-radius:13px}.icon-button:hover,.quiet-action:hover{background:#eef9f3}.avatar{width:42px;height:42px;background:linear-gradient(145deg,#62bed0,#3685a3);color:white;display:grid;place-items:center;border-radius:50%;font-weight:800;flex-shrink:0}.avatar.small{width:40px;height:40px;background:linear-gradient(130deg,#a0e8b8,#1fad68);color:#00472c}.notice{padding:12px 20px;margin:14px 25px 0;border:1px solid #f1c4a4;background:#fff5eb;border-radius:14px;color:#79522b}.notice.success{background:#e5f9ed;border-color:#99dfaf;color:#116a41}.messenger{height:calc(100vh - 96px);min-height:500px;padding:25px 28px;display:grid;grid-template-columns:minmax(275px,355px) minmax(0,1fr);gap:20px}.inbox,.thread{background:var(--white);border:1px solid var(--line);border-radius:25px;box-shadow:var(--shadow);min-height:0;overflow:hidden}.inbox{display:flex;flex-direction:column;padding:22px 12px 14px}.inbox-heading{display:flex;align-items:center;justify-content:space-between;padding:1px 9px 20px}.inbox h2{margin:5px 0 0;font-size:23px;letter-spacing:-.9px}.round-action{width:41px;height:41px;background:var(--mint);color:var(--green-dark);border:0;border-radius:13px;font-size:25px}.round-action:hover{background:#c8f0d9}.search-label{position:absolute;clip:rect(0,0,0,0)}.search-bar{background:#f6faf7;border:1px solid var(--line);margin:0 8px;border-radius:15px;display:flex;align-items:center;gap:10px;padding:12px 14px}.search-bar span{font-size:23px;color:#819b90}.search-bar input{width:100%;border:0;outline:none;background:none;min-width:0}.inbox-switch{display:flex;gap:8px;margin:16px 8px}.pill{border:1px solid var(--line);background:white;padding:8px 12px;border-radius:20px;color:#526d62;font-size:12px;font-weight:750}.pill.active{border-color:transparent;background:var(--mint);color:var(--green-dark)}.conversation-list{overflow-y:auto;min-height:0;flex:1}.conversation{width:100%;display:flex;align-items:center;gap:12px;background:transparent;border:0;text-align:left;padding:13px 11px;border-radius:17px;margin:2px 0}.conversation.active,.conversation:hover{background:#e3f7ed}.conversation-content{flex:1;min-width:0}.conversation-content strong{display:block;font-size:13px}.conversation-content small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);margin-top:5px;font-size:12px}.conversation .meta{display:flex;flex-direction:column;align-items:end;gap:6px;color:var(--muted);font-size:10px}.unread{background:var(--green);color:white;font-size:11px;padding:3px 7px;border-radius:14px}.inbox-hint{padding:10px;font-size:11px;color:var(--muted);line-height:1.5}.thread{display:flex;min-width:0}.empty-state{margin:auto;text-align:center;max-width:360px;padding:24px}.empty-icon{width:82px;height:82px;display:grid;place-items:center;margin:auto;background:#def8eb;border-radius:26px;color:var(--green);font-size:38px}.empty-state h2{font-size:28px;letter-spacing:-1px}.empty-state p{color:var(--muted);line-height:1.7}.primary,.primary-link,.send{border:0;background:var(--green);color:white;padding:13px 18px;border-radius:13px;font-weight:750;display:inline-block}.primary:hover,.primary-link:hover,.send:hover{background:#007947}.active-thread{display:flex;flex-direction:column;width:100%;min-width:0}.thread-header{height:82px;display:flex;align-items:center;gap:13px;padding:14px 19px;border-bottom:1px solid var(--line)}.thread-person{flex:1;min-width:0}.thread-person h2{font-size:15px;margin:0;overflow:hidden;text-overflow:ellipsis}.thread-person p{font-size:11px;margin:6px 0 0;color:var(--muted)}.thread-actions{display:flex;gap:4px}.quiet-action,.back{background:none;border:0;border-radius:10px;padding:9px;color:#59776a;font-size:12px;font-weight:700}.quiet-action.danger{color:#bb4545}.back{display:none;font-size:22px}.timeline{overflow-y:auto;min-height:0;flex:1;background:radial-gradient(circle at 40% 20%,rgba(220,246,233,.6),transparent 55%),#f8fcf9;padding:23px}.message-line{display:flex;margin-bottom:13px}.message-line.mine{justify-content:flex-end}.bubble{background:white;box-shadow:0 3px 12px #1460390b;border-radius:18px 18px 18px 5px;padding:12px 15px;max-width:min(76%,520px);min-width:90px;overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.5;font-size:14px}.mine .bubble{background:#d5f9e0;border-radius:18px 18px 5px 18px}.bubble-meta{display:block;text-align:right;color:#66857a;font-size:10px;margin-top:6px}.older{display:block;margin:0 auto 18px;border:1px solid var(--line);background:white;border-radius:14px;padding:9px 13px;color:var(--green-dark)}.composer{display:flex;align-items:end;gap:12px;padding:13px 18px;background:#fff;border-top:1px solid var(--line)}.composer textarea{flex:1;max-height:150px;resize:vertical;min-height:46px;background:#f7faf8;border:1px solid var(--line);border-radius:14px;padding:13px;line-height:1.4}.send{min-height:47px}.footer-hint{font-size:10px;color:var(--muted);padding:0 19px 10px;background:white}.gate{text-align:center;max-width:520px;margin:auto;padding:40px;line-height:1.6}.gate h2{font-size:32px}.gate p{color:var(--muted)}.gate-mark{font-size:60px;color:var(--green)}dialog{border:1px solid var(--line);box-shadow:0 30px 100px #1436263b;border-radius:24px;max-width:min(95vw,480px);width:100%;padding:24px}dialog::backdrop{background:#0d29219c}.dialog-form{display:grid;gap:15px}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top h2{margin:0;font-size:22px}.dialog-form label{font-weight:650}.dialog-form input{border-radius:12px;padding:14px;border:1px solid var(--line)}.secondary{background:#e0f4e8;border:0;border-radius:12px;padding:13px;color:var(--green-dark);font-weight:750}.search-results{display:grid;gap:8px}.user-option{display:flex;justify-content:space-between;align-items:center;text-align:left;border:1px solid var(--line);background:white;padding:12px;border-radius:12px}.helper{font-size:12px;color:var(--muted);margin:0}.muted{color:var(--muted);font-size:13px;padding:14px}.high-contrast{--green:#00643b;--green-dark:#003e26;--ink:#001c11;--muted:#284a3a;--line:#678575;--mint:#c1e9cf;--canvas:#fff}.big-text{font-size:19px}.big-text .bubble{font-size:1rem}.big-text .conversation-content strong{font-size:.88rem}.big-text .conversation-content small{font-size:.8rem}@media(max-width:1000px){.shell{grid-template-columns:76px 1fr}.rail{padding:22px 9px}.brand{justify-content:center}.brand>span,.railnav a span,.rail-foot{display:none}.railnav{margin-top:55px}.railnav a{justify-content:center;font-size:21px}.messenger{padding:15px;gap:12px;grid-template-columns:minmax(245px,300px) minmax(0,1fr)}}@media(max-width:710px){.shell{display:block}.rail{display:none}.topbar{height:73px;padding:11px 19px}.topbar h1{font-size:22px}.messenger{height:calc(100dvh - 73px);min-height:350px;padding:9px;display:block}.inbox,.thread{height:100%;border-radius:20px}.thread{display:none}.messenger.thread-open .inbox{display:none}.messenger.thread-open .thread{display:flex}.back{display:block}.thread-header{padding:8px}.thread-actions{gap:0}.quiet-action{font-size:11px;padding:8px 6px}.timeline{padding:15px}.bubble{max-width:91%}.composer{padding:10px}.footer-hint{padding:0 12px 7px}.inbox-heading{padding-bottom:10px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
[hidden]{display:none!important}

/* Batch 4.5: accessible desktop menu and phone-first bottom action sheet. */
.message-line{position:relative;gap:7px;align-items:flex-end}
.bubble{user-select:text;-webkit-user-select:text;touch-action:pan-y}
.bubble.deleted{font-style:italic;opacity:.78}
.bubble-reply{display:block;padding:6px 8px;margin-bottom:8px;border-left:3px solid var(--green);border-radius:6px;background:rgba(9,150,91,.09);color:var(--ink);font-size:12px;max-width:100%}
.bubble-forwarded{display:block;font-size:11px;font-style:italic;color:var(--muted);margin-bottom:5px}
.msg-menu-trigger{border:0;border-radius:50%;background:white;color:var(--ink);height:32px;width:32px;display:grid;place-items:center;opacity:.28;flex-shrink:0}
.message-line:hover .msg-menu-trigger,.msg-menu-trigger:focus-visible{opacity:1}
.reply-bar{border-top:1px solid var(--line);background:#f1faf3;padding:10px 16px;display:flex;align-items:center;gap:10px;justify-content:space-between}
.reply-bar p{margin:4px 0 0;color:var(--muted);font-size:12px;max-width:60ch;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.reply-bar button{border:0;background:#e0efe6;width:36px;height:36px;border-radius:50%;font-size:18px}
.message-menu,.forward-dialog{max-width:min(95vw,430px);width:100%;border-radius:22px;padding:20px}
.message-menu h2,.forward-dialog h2{font-size:19px;margin:10px 0}
.menu-preview{max-height:3.2em;overflow:hidden;color:var(--muted);line-height:1.6}
.menu-actions{display:grid;gap:5px}
.menu-actions button{border:0;background:transparent;padding:13px;text-align:left;border-radius:12px;color:var(--ink);font-size:15px;min-height:46px}
.menu-actions button:hover,.menu-actions button:focus-visible{background:var(--mint)}
.menu-actions .danger{color:#aa312d}.menu-actions .cancel{background:#f1f6f3;text-align:center}
.sheet-handle{display:none}
.forward-dialog form{display:grid;gap:12px}.forward-dialog select{width:100%;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:16px}
.dialog-buttons{display:flex;gap:10px;justify-content:flex-end}.dialog-buttons button{padding:12px;border:0;border-radius:12px}
@media(max-width:710px){
  html,body{height:100%;height:100dvh;overflow:hidden}
  .workbench{height:100dvh;min-height:0}
  .messenger{height:calc(var(--kedu-vvh,100dvh) - 73px);min-height:0;padding:0;overflow:hidden}
  .inbox,.thread{border-radius:0;border-left:0;border-right:0;border-bottom:0}
  .inbox-heading{padding:8px 12px 18px}
  .conversation{min-height:72px}
  .thread-header{height:70px;min-height:70px;gap:8px;padding:8px 10px}
  .thread-actions{display:flex;gap:3px}.quiet-action{font-size:11px;padding:7px 4px;min-height:38px}
  .timeline{padding:12px 10px 20px;overscroll-behavior:contain}
  .message-line{margin-bottom:14px;gap:3px}
  .bubble{max-width:88%;font-size:15px}
  .msg-menu-trigger{width:32px;height:42px;opacity:.68;align-self:center}
  .composer{padding:8px 8px max(8px,env(safe-area-inset-bottom));gap:7px}
  .composer textarea{font-size:16px;min-height:44px}
  .send{min-height:44px;padding:11px 13px}
  .footer-hint{display:none}
  .message-menu{position:fixed;top:auto;bottom:0;left:0;right:0;margin:0;max-width:none;width:100%;max-height:82dvh;overflow:auto;border-radius:25px 25px 0 0;padding:12px 18px max(17px,env(safe-area-inset-bottom));box-shadow:0 -14px 45px #0002}
  .message-menu[open]{animation:kedu-sheet-up .2s ease-out}
  .sheet-handle{display:block;background:#c5d5cc;width:42px;height:5px;border-radius:10px;margin:0 auto 12px}
  .menu-actions button{font-size:16px;min-height:48px}
  .topbar{height:73px}
}
@keyframes kedu-sheet-up{from{transform:translateY(25%);opacity:.6}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.message-menu[open]{animation:none}}
