@media (max-width: 999px) {
    .shell-room .side { display: none; }
    .shell-room .boards { display: flex; }
}

@media (min-width: 1000px) {
    main:has(.shell) { max-width: var(--shell); padding: 0 16px 30px; }
    main:has(.admin) { max-width: 900px; }
    .shell { display: grid; grid-template-columns: 240px minmax(0, 1fr); align-items: start; }
    .side {
        position: sticky;
        top: var(--head);
        max-height: calc(100vh - var(--head));
        overflow-y: auto;
        padding: 14px 14px 30px 0;
        border-right: 1px solid var(--line);
    }
    .content { min-width: 0; padding: 14px 0 30px 14px; }
    .side .rooms { border-top: 0; }
    .side .room { margin: 0; }
    .shell-rooms .content { display: grid; place-items: center; min-height: 55vh; }
    .send { max-width: 808px; transform: translateX(calc(-50% + 120px)); }
}

@media (max-width: 600px) {
    :root { --head: 45px; --r-step: 14px; }
    body { font-size: 13px; }
    main { padding: 10px 10px 16px; }
    .head-in { padding: 7px 12px; }
    .nav { gap: 11px; }
    .room-time { display: none; }
    .room-head { padding: 7px 0; }
    .m { grid-template-columns: 1fr; }
    .m.reply { margin-left: calc(10px + var(--d, 0) * 14px); }
    .m-user {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 8px;
        border-right: 0;
        border-bottom: 1px solid var(--line);
        background: none;
        padding: 6px 8px;
        text-align: left;
    }
    .m-user .ava { width: 26px; height: 26px; font-size: 12px; }
    .m-user .m-stat.since { display: none; }
    .m-badges { justify-content: flex-start; }
    .m-main { padding: 6px 8px 8px; }
    .m-acts { opacity: 1; }
    .m-body { font-size: 16px; }
    .m-img img { max-width: 150px; max-height: 150px; }
    .send { padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); }
    .send input, .send textarea { font-size: 16px; }
    .send button { width: 36px; height: 34px; }
    .admin th, .admin td { padding: 5px 4px; }
    .admin .mini { padding: 6px 9px; }
    .admin-search { flex-wrap: wrap; }
    .admin-search input { flex: 1; min-width: 120px; }
    .msg-body { max-width: 200px; }
    .room-edit { flex-direction: column; align-items: stretch; }
    .room-edit input[name=name] { width: 100%; }
    .room-edit input[type=file] { max-width: none; }
    .room-edit .mini { width: 100%; }
    .badge-edit, .badge-grant { width: 100%; }
    .badge-edit input[name=name] { flex: 1; width: auto; }
    .badge-del { margin-left: 0; }
    .replies, .reply-to { min-height: 26px; }
    button.link { min-height: 24px; }
    .apost-info { flex-direction: column; align-items: flex-start; gap: 8px; }
    .a-stats { margin-left: 0; }
    .foot { padding: 9px 12px calc(12px + env(safe-area-inset-bottom)); }
}
