/* AsySandbox — styles for the behaviour layer (assets/app.js). */
[hidden]{display:none !important}
html.modal-open{overflow:hidden}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:9999;max-width:min(92vw,420px);background:#0E1116;color:#fff;font:500 .88rem/1.4 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding:12px 18px;border-radius:12px;box-shadow:0 12px 32px rgba(14,17,22,.28)}
.toast--error{background:#B42318}
.is-invalid{border-color:#D64545 !important;box-shadow:0 0 0 3px rgba(214,69,69,.14)}
button.is-busy{opacity:.6;cursor:progress}
th.is-sortable{cursor:pointer;user-select:none;white-space:nowrap}
th.is-sortable::after{content:" \2195";opacity:.35;font-size:.8em}
th.is-sortable[aria-sort="ascending"]::after{content:" \2191";opacity:.9}
th.is-sortable[aria-sort="descending"]::after{content:" \2193";opacity:.9}
th.is-sortable:focus-visible{outline:2px solid #2451FF;outline-offset:-2px}
.dropzone.is-over{outline:2px dashed #2451FF;background:rgba(36,81,255,.05)}
.qc.is-dragging{opacity:.45}
.qc-head{cursor:grab}
.qc-head :is(input,select,textarea,button,summary,label,a){cursor:auto}
.pw-wrap{position:relative;display:block}
.pw-wrap input{padding-right:68px;width:100%}
.pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#2451FF;font:600 .78rem system-ui,sans-serif;cursor:pointer;padding:6px 8px;border-radius:8px}
.pw-toggle:hover{background:rgba(36,81,255,.08)}
.counter.is-over{color:#B42318}
.strength{display:flex;gap:6px;margin-top:8px}
.strength span{flex:1;height:4px;border-radius:2px;background:#E7EAEE}
.strength span.on.s1{background:#D64545}.strength span.on.s2{background:#E29A1E}.strength span.on.s3{background:#3B8E5A}.strength span.on.s4{background:#1E7A46}

/* ===== messages pages: one fixed full-viewport layout, only the conversation scrolls ===== */
html:has(body.msg-fixed){height:100%;overflow:hidden}
body.msg-fixed{height:100vh;height:100dvh;overflow:hidden}
.msg-fixed .app-shell,.msg-fixed .dash-shell,.msg-fixed .d-shell,.msg-fixed .app{height:100vh;height:100dvh;overflow:hidden}
.msg-fixed .main-col,.msg-fixed .app-main,.msg-fixed .d-main,.msg-fixed .dash-main,.msg-fixed .app > .main{height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.msg-fixed main.page,.msg-fixed .main-col > .page,.msg-fixed main.app-content,.msg-fixed main.d-content,.msg-fixed main.dash-body-pad,.msg-fixed main.content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:20px}
.msg-fixed .page-head,.msg-fixed .d-head,.msg-fixed .d-crumbs{flex:none;margin-bottom:14px}
.msg-fixed .page-head h1,.msg-fixed .d-head h1,.msg-fixed .page-head p,.msg-fixed .d-head p{margin-top:0;margin-bottom:4px}
/* the conversation card fills what is left */
.msg-fixed main > .card,.msg-fixed main > section.panel,.msg-fixed main > .d-card,.msg-fixed .panel:has(.chat-variants),.msg-fixed .chat-variants,.msg-fixed .chat-variant{flex:1;min-height:0;display:flex;flex-direction:column}
.msg-fixed .chat-variant{display:none}
.msg-fixed .chat-variant:target{display:flex}
.msg-fixed .chat-variants:not(:has(:target)) > .chat-variant:first-child{display:flex}
/* admin */
.msg-fixed .inbox{flex:1;min-height:0;height:auto;display:flex}
.msg-fixed .inbox-list{overflow-y:auto;min-height:0}
.msg-fixed .thread-panels{min-height:0;display:flex;flex-direction:column;flex:1}
.msg-fixed .thread-panels > .inbox-thread:target,.msg-fixed .thread-panels:not(:has(:target)) > .inbox-thread:first-child{display:flex;flex-direction:column;flex:1;min-height:0}
.msg-fixed .it-body{flex:1;min-height:0;overflow-y:auto}
.msg-fixed .it-head,.msg-fixed .it-form{flex:none}
/* investor */
.msg-fixed .ibox{flex:1;min-height:0;height:auto}
.msg-fixed .ibox-list{overflow-y:auto;min-height:0}
.msg-fixed .ibox-thread{min-height:0;flex-direction:column}
/* applicant / trainee / stealth */
.msg-fixed .mbox{flex:1;min-height:0;display:flex;flex-direction:column;height:100%}
.msg-fixed .mbox-body{flex:1;min-height:0;overflow-y:auto}
.msg-fixed .mbox-head,.msg-fixed .mform{flex:none}
/* mentor */
.msg-fixed .chat-shell{flex:1;min-height:0;height:100%}
.msg-fixed .chat-list,.msg-fixed .chat-info{overflow-y:auto;min-height:0}
.msg-fixed .chat-main{min-height:0;height:100%}
.msg-fixed .chat-messages{flex:1;min-height:0;overflow-y:auto}
.msg-fixed .chat-main-head,.msg-fixed .chat-composer{flex:none}
/* ceo */
.msg-fixed .chat-variant > .grid{flex:1;min-height:0}
.msg-fixed .chat-window{height:100%;min-height:0}
.msg-fixed .chat-channels{overflow-y:auto}
/* founder / team */
.msg-fixed .chat-wrap{flex:1;min-height:0;height:100%}
.msg-fixed .chat-wrap > .card{min-height:0;height:100%}
.msg-fixed .chat-body{display:flex;flex-direction:column}
.msg-fixed .chat-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:16px 20px}
.msg-fixed .chat-body .card-head,.msg-fixed .chat-body .composer{flex:none}
.msg-fixed .chan-list{overflow-y:auto}
/* round avatars, everywhere a person or team mark appears in a chat */
.team-mark,.chat-thread-item .avatar,.mbox-head .avatar,.it-head .avatar,.ibox-item .avatar,.chan-list .avatar,.msg .avatar,.mrow .avatar{border-radius:50% !important}
