/* DMS V1.12 — consolidated stability and navigation layer. */
html,body{overflow-x:clip!important;overflow-y:auto!important;min-height:100%!important;scrollbar-width:auto!important}
body{overscroll-behavior-y:auto;touch-action:pan-x pan-y!important}
.app-shell{overflow:visible!important;min-height:100dvh!important}
#main{overflow:visible!important;min-height:180px}
.bottom-nav{grid-template-columns:repeat(3,minmax(0,1fr))!important;z-index:80}
.bottom-nav button{min-height:42px!important}
.v22-page{padding:9px 14px 32px;color:#eaf7ff;max-width:100%;min-width:0}
.v22-head{display:flex;align-items:center;gap:8px;margin:0 0 18px;min-height:48px}
.v22-head h1{font-size:25px;font-weight:800;margin:0;flex:1}
.v22-back,.v22-standardback{width:40px!important;height:44px!important;min-width:40px!important;display:grid!important;place-items:center!important;padding:0!important;background:transparent!important;border:none!important;color:#d2eaf4!important;box-shadow:none!important;font-size:0!important}
.v22-back svg,.v22-standardback svg{display:block!important;width:28px!important;height:28px!important;stroke:currentColor!important;fill:none!important}
.v22-arrow{display:grid!important;place-items:center!important;padding:0!important;font-size:0!important;line-height:0!important;vertical-align:middle!important}
.v22-arrow svg{display:block!important;width:25px!important;height:25px!important;margin:0 auto!important}
.v22-choose{display:flex;align-items:center;gap:8px;margin-bottom:18px}
.v22-grow{flex:1}.v22-pick,.v22-iconbtn{border:1px solid #2f667c;background:#142e3d;color:#c2dcea;border-radius:11px;padding:10px 12px;min-height:42px;font-weight:750;font-size:12px;white-space:nowrap}
.v22-pick.selected,.v22-iconbtn.selected{background:#1e6a84;border-color:#5eb7d4;color:#fff}
.v22-iconbtn{display:grid;place-items:center;width:42px;height:42px;flex:none;padding:0;font-size:23px}
.v22-iconbtn svg{width:22px;height:22px}
.v22-sectiontitle{font-size:18px;margin:21px 0 12px;color:#f0fbff;font-weight:800;display:flex;align-items:center;gap:10px}.v22-sectiontitle small{font-size:11px;color:#8dbbcd;border:1px solid #355468;border-radius:9px;padding:4px 7px}
.v22-list{display:grid;gap:8px}
.v22-member{width:100%;display:flex;gap:12px;align-items:center;min-width:0;text-align:left;border:1px solid #2b5064;background:#132c3c;color:#f0faff;border-radius:13px;padding:11px;min-height:65px}
.v22-member-avatar{width:40px;height:40px;border-radius:12px;flex:none;display:grid;place-items:center;background:#204c62;color:#aee9ff;font-weight:900}
.v22-member-copy{min-width:0;display:grid;gap:5px;flex:1}.v22-member-copy b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.v22-member-copy small{color:#94c2d4;font-size:11px}.v22-chevron{font-size:26px;color:#8fc2d5}.v22-empty{padding:12px;color:#91aebc}
.v22-group{background:#102837;border:1px solid #2d566a;border-radius:13px;overflow:hidden}
.v22-group>summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;padding:15px 12px}.v22-group>summary::-webkit-details-marker{display:none}.v22-group>summary strong{color:#78e0f4;min-width:39px;font-size:16px}.v22-group>summary span{flex:1;color:white;font-weight:750}.v22-group>summary small{font-size:11px;color:#a4bdcb}
.v22-groupmembers{padding:9px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border-top:1px solid #2d566a}.v22-groupmembers button{min-width:0;display:grid;gap:5px;text-align:left;padding:10px;background:#173648;border:1px solid #2c5368;border-radius:9px;color:white}.v22-groupmembers button b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v22-groupmembers small{color:#9fc6d6}
.v22-perf{background:#122d3c;border:1px solid #2b5468;border-radius:14px;padding:15px;display:grid;gap:12px}.v22-perf-head{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;gap:8px}.v22-perf-head strong{font-size:16px}.v22-perf-head small{font-size:11px;color:#accede}.v22-done{color:#68e6b5}.v22-miss{color:#f4a4a4}.v22-balls{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:7px}.v22-balls span{width:100%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:17px}.v22-balls .pass{background:#124e48;color:#6be2af;border:1px solid #2c9b78}.v22-balls .fail{background:#582830;color:#ffa8b1;border:1px solid #b25e67}
.v22-friends{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.v22-friend{display:grid;gap:8px;text-align:left;padding:9px;border-radius:14px;background:#132b3c;border:1px solid #355b70;color:white;min-width:0}.v22-friend img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;border-radius:10px}.v22-friend strong{font-size:13px;padding-inline:5px}.v22-friend span{font-size:11px;color:#88c6dc;padding:0 5px 6px}.v22-selectedfriend{max-width:450px;margin:auto;display:grid;gap:13px}.v22-selectedfriend img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:16px}.v22-inline-back{border:0;background:transparent;color:#80dcf6;font-size:14px;text-align:left;padding:10px 0}.v22-action{padding:13px 18px;border:1px solid #3993b1;background:#166d87;border-radius:12px;color:white;font-weight:800}
.v22-titlerow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 13px}.v22-titlerow h2{font-size:19px;margin:0}.v22-plus{display:grid;place-items:center;background:#17657e;border:1px solid #4599b6;border-radius:50%;width:45px;height:45px;padding:0;color:white}.v22-plus svg{width:25px;height:25px;fill:none}.v22-oc{border:1px solid #34566a;background:#122e3e;border-radius:13px;padding:15px;display:flex;gap:10px;justify-content:space-between}.v22-oc>div{flex:1;min-width:0;display:grid;gap:9px}.v22-oc small{font-size:12px;color:#aac7d6;line-height:1.5}.v22-oc>span{color:#79cde9;font-size:11px;white-space:nowrap}.v22-empty-large{text-align:center;border:1px dashed #355b70;border-radius:14px;background:#112a39;color:#8ab0c4;padding:27px 16px;font-size:13px}
.v22-overlay{position:fixed;inset:0;z-index:900;background:#01060bcf;display:grid;place-items:center;padding:15px}.v22-dialog{display:grid;gap:14px;width:min(510px,100%);max-height:90dvh;overflow:auto;background:#122c3d;color:white;border:1px solid #3b6b83;border-radius:18px;padding:19px}.v22-dialog header{display:flex;justify-content:space-between;align-items:center}.v22-dialog h2{margin:0;font-size:20px}.v22-dialog header button{background:transparent;border:0;font-size:30px;color:white}.v22-dialog>label{display:grid;gap:6px;font-weight:690;font-size:13px}.v22-dialog input:not([type=checkbox]),.v22-dialog textarea,.v22-dialog select{padding:11px;min-height:42px;border:1px solid #42697c;border-radius:11px;background:#0e2230;color:white;user-select:text!important}.v22-dialog textarea{min-height:108px}.v22-hint{font-weight:400;color:#8bb5c8;font-size:11px}.v22-recipientgrid{display:grid;grid-template-columns:repeat(2,1fr);max-height:170px;overflow:auto;gap:6px}.v22-recipientgrid label{display:flex;align-items:center;gap:6px;background:#163b4e;border-radius:8px;padding:8px;font-size:12px}
/* iframe is independently scrollable with a bounded viewport; media modal can temporarily cover the page. */
.v21-spy-frame{border:0!important;overflow:visible!important;border-radius:0!important;padding:0!important;background:#080e16!important}
.v21-spy-frame iframe{width:100%!important;height:clamp(440px,72dvh,900px)!important;max-height:900px!important;overflow:auto!important;border:0!important;border-radius:12px}
.v21-spy-frame iframe.v22-fullmedia{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-height:none!important;z-index:9999!important;border-radius:0!important}
body.v22-media-open{overflow:hidden!important}
/* Three bottom navigation controls; override inherited four-column fallbacks. */
.bottom-nav:has(button[data-nav="search"]){grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media(max-width:420px){.v22-page{padding:9px 11px 35px}.v22-balls{gap:4px}.v22-balls span{font-size:15px}.v22-pick{padding:10px 8px}.v21-spy-frame iframe{height:70dvh!important;min-height:390px!important}}

.v22-restore{width:100%;background:#194d49;border:1px solid #39847e;color:#b6fae6;font-weight:800;padding:10px;border-radius:10px}
.v22-undo{position:fixed;bottom:90px;z-index:9000;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 16px;width:min(92%,420px);background:#12374a;border:1px solid #56adc7;color:white;border-radius:14px;box-shadow:0 10px 30px #0008}.v22-undo button{background:#176d88;border:1px solid #48b7db;border-radius:9px;color:#fff;font-weight:800;padding:8px 13px}
