:root{--wine:#9c1723;--wine-dark:#680d19;--scarlet:#d32935;--gold:#eab75d;--gold-light:#fff4d9;--ink:#251e24;--muted:#737079;--surface:#fff;--shadow:0 18px 48px rgba(96,46,43,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:'Be Vietnam Pro',system-ui,-apple-system,sans-serif;color:var(--ink)}button,input,textarea{font-family:inherit}.fw-black{font-weight:900}.page-bg{background:#faf7f4;min-height:100vh;background-image:radial-gradient(ellipse at 5% 0,rgba(229,189,120,.13),transparent 35%),radial-gradient(ellipse at 94% 5%,rgba(162,28,43,.06),transparent 35%)}.section-eyebrow,.red-label{font-size:.73rem;letter-spacing:.18em;font-weight:800;color:#b21d29}.shadow-soft{box-shadow:var(--shadow)}.rounded-4{border-radius:1.05rem!important}
.btn-heritage{background:linear-gradient(135deg,#b6232f,#8c1422);color:white!important;border:1px solid #981723;border-radius:.75rem;font-weight:700;box-shadow:0 8px 20px rgba(156,23,35,.15)}.btn-heritage:hover{background:linear-gradient(135deg,#8b1020,#660d18);transform:translateY(-1px)}.btn{transition:all .18s}.btn:disabled{opacity:.45}.form-control,.form-select{border-radius:.7rem;border-color:#e3dce0;padding:.75rem .85rem}.form-control:focus{border-color:#b62435;box-shadow:0 0 0 .25rem rgba(182,36,53,.12)}.modal-content{border:0;border-radius:1.15rem;box-shadow:0 32px 90px rgba(37,15,18,.2)}.modal-header,.modal-footer{border-color:#f3eaf0}.badge{padding:.45rem .6rem;border-radius:50rem;font-weight:600}
.topbar{background:#fff;box-shadow:0 6px 27px rgba(30,16,18,.04);border-bottom:1px solid #f3e7e5;min-height:77px}.topbar .navbar-brand{margin-right:2.3rem}.topbar .nav-link{font-weight:650;font-size:.85rem;color:#5c5360;border-radius:.5rem;padding:.6rem .8rem!important}.topbar .nav-link:hover,.topbar .nav-link.active{background:#fff0ef;color:#a31826}.brand-mark{width:56px;height:56px;border-radius:17px;background:radial-gradient(circle at 30% 20%,#d83b44,#950f20 70%);color:#ffe7a4;display:grid;place-items:center;font-size:2rem;line-height:1;box-shadow:0 6px 15px rgba(119,20,31,.24)}.small-mark{width:43px;height:43px;font-size:1.55rem;border-radius:12px}.brand-text{display:flex;flex-direction:column}.brand-text b{font-size:.89rem;letter-spacing:.02em;color:#80121d}.brand-text small{font-size:.58rem;letter-spacing:.04em;color:#918588;font-weight:700;margin-top:.15rem}
.login-wrapper{min-height:100vh;background:radial-gradient(ellipse at 11% 22%,rgba(255,230,163,.13),transparent 26%),radial-gradient(ellipse at 92% 85%,rgba(250,173,132,.13),transparent 26%),linear-gradient(125deg,#7a0d1b,#b3212b 55%,#951b21);display:flex;align-items:center;padding:3rem 0;position:relative;overflow:hidden}.login-wrapper:before{content:'★';position:absolute;top:8%;left:3%;font-size:450px;line-height:1;color:rgba(255,233,188,.035);transform:rotate(-18deg);pointer-events:none}.login-intro{position:relative}.flag-emblem{font-size:4.8rem;color:#ffdc8d;text-shadow:0 4px 18px rgba(81,21,21,.15);line-height:1.5}.eyebrow{letter-spacing:.2em;font-size:.75rem;font-weight:700}.tiny-chip{border:1px solid rgba(255,255,255,.22);padding:.5rem .85rem;border-radius:30px;color:#ffe5d2;font-size:.78rem}.login-card{background:#fff;border-radius:1.5rem;padding:2.5rem 2.2rem;position:relative}.input-icon{position:relative}.input-icon i{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#9f8b8d}.input-icon input{padding-left:2.8rem}.login-card .btn{padding:1rem}.app-container{max-width:1500px}.hero-card{border:0;border-radius:1.15rem;background:linear-gradient(115deg,#8e1522 0,#b82b37 70%,#9b1627 100%);color:#fff;overflow:hidden;box-shadow:0 16px 45px rgba(136,16,34,.15);position:relative}.hero-card:after{content:'★';position:absolute;right:2%;top:-95px;font-size:290px;color:rgba(255,255,255,.05);pointer-events:none}.hero-card .card-body{position:relative;z-index:1}.glass-pill,.session-status{display:inline-block;font-size:.69rem;letter-spacing:.09em;font-weight:800;padding:.45rem .75rem;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.14);color:#fff;border-radius:100px}.session-status{letter-spacing:0;white-space:nowrap}.metric-card{min-height:154px;background:#fff;border:1px solid #f6efed;border-radius:1rem;box-shadow:var(--shadow);padding:1.4rem 1.55rem;position:relative}.metric-card p{font-size:.68rem;letter-spacing:.07em;color:#766b74;font-weight:800;margin:0 0 .55rem}.metric-card strong{font-size:2.6rem;letter-spacing:-.07em;line-height:1;font-weight:900}.metric-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;margin-bottom:.75rem}.metric-icon.rose{background:#ffe7e6;color:#ae2430}.metric-icon.green{background:#e7f6ea;color:#168d51}.metric-icon.orange{background:#fff0dd;color:#ae722b}.action-tile{height:205px;border:1px solid #f0dfd7;background:linear-gradient(150deg,#fff9f6,#fff);border-radius:1rem;text-align:left;padding:1.25rem;position:relative;display:flex;flex-direction:column;align-items:flex-start;box-shadow:0 5px 19px rgba(90,40,35,.035);transition:all .22s}.action-tile:hover{box-shadow:0 14px 35px rgba(80,36,30,.13);transform:translateY(-3px);border-color:#e5babb}.action-tile-icon{background:#ebf8f0;color:#168d51;width:49px;height:49px;border-radius:13px;display:grid;place-items:center;font-size:1.35rem;margin-bottom:1rem}.voting-tile .action-tile-icon{background:#fff0e9;color:#b12532}.action-tile b{font-size:.88rem;color:#3b2530}.action-tile small{font-size:.73rem;color:#7d7780;margin-top:.35rem;line-height:1.5}.tile-arrow{position:absolute;right:1rem;top:1rem;font-size:1.3rem;color:#ae9da2}.detail-counter{padding:1.2rem;border-radius:.9rem;display:flex;flex-direction:column}.detail-counter.yes{background:#e9f8f0;color:#147d4d}.detail-counter.no{background:#fff0ef;color:#b3222b}.detail-counter span{font-size:.74rem;font-weight:700}.detail-counter strong{font-size:2.2rem;font-weight:900}.detail-counter small{font-weight:800}.online-icon{font-size:.45rem}.roster-table{max-height:460px;overflow:auto}.table thead th{font-size:.73rem;color:#837880;text-transform:uppercase;letter-spacing:.06em;background:#fbf7f5;padding:1rem}.table td{font-size:.88rem;padding:1rem}.history-round{background:#faf7f5;border:1px solid #f0e8e6;padding:1rem;border-radius:.8rem;font-size:.84rem;min-height:104px}.btn-vote-yes{background:#18784d;color:white;border:0;border-radius:.8rem;padding:1rem;font-weight:700}.btn-vote-yes:hover{background:#0d5e38;color:white}.btn-vote-no{background:#af2b32;color:white;border:0;border-radius:.8rem;padding:1rem;font-weight:700}.btn-vote-no:hover{background:#881d27;color:white}
/* Full-screen projection: formal but readable at a distance. */
.projector-body{background:radial-gradient(ellipse at 50% 0,rgba(173,47,49,.22),transparent 55%),linear-gradient(155deg,#740d19,#910f1d 45%,#670a14);min-height:100vh;color:#fff5e5}.projection-topline{padding:12px 3.3vw;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.71rem;font-weight:700;letter-spacing:.08em;background:rgba(40,0,0,.18);border-bottom:1px solid rgba(255,226,169,.17)}.live-dot{width:7px;height:7px;border-radius:50%;background:#76dc9a;display:inline-block;margin-right:9px;box-shadow:0 0 14px rgba(118,220,154,.8)}.projector-main{width:min(1450px,94vw);margin:0 auto;padding:2.1rem 0 5rem}.projector-hero{border-bottom:1px solid rgba(241,196,117,.29);padding-bottom:1.8rem}.projector-institution{font-size:clamp(.66rem,1.05vw,1.08rem);letter-spacing:.06em;font-weight:700;line-height:1.8;color:#ffeed6}.projector-institution .fw-black{font-size:clamp(.7rem,1.14vw,1.11rem)}.gold-underline{height:3px;width:80px;background:var(--gold);margin-top:9px;border-radius:10px}.projector-star{font-size:clamp(2rem,3.5vw,4rem);color:#ffe4a0;text-shadow:0 5px 24px rgba(225,178,76,.23)}.gold-divider{height:2px;width:135px;background:linear-gradient(to right,transparent,#f3d08c,transparent)}.projector-title{font-size:clamp(1.8rem,4vw,4.1rem);font-weight:900;letter-spacing:.13em;margin-bottom:.5rem;text-shadow:0 3px 25px rgba(52,3,12,.28)}.projector-subtitle{font-size:clamp(1.15rem,2.4vw,2.3rem);font-weight:800;color:#ffda94;margin-bottom:.5rem;text-transform:uppercase}.proj-date{color:#f5dcb4;font-size:clamp(.92rem,1.4vw,1.25rem);margin-bottom:0}.projection-panel{margin-top:2rem}.home-plate{margin:3vh auto 0;width:min(890px,93%);padding:clamp(2rem,5vw,5rem) clamp(1rem,5vw,4rem);border:2px solid rgba(245,205,141,.4);outline:1px solid rgba(245,205,141,.21);outline-offset:7px;border-radius:22px;background:linear-gradient(120deg,rgba(255,255,255,.07),rgba(255,255,255,.01));box-shadow:0 18px 70px rgba(43,2,10,.19)}.home-plate .plate-top{font-size:clamp(.65rem,1.2vw,1rem);color:#f3d3a4;font-weight:800;letter-spacing:.15em}.home-plate h3{font-weight:900;letter-spacing:.03em;font-size:clamp(1.5rem,3.55vw,3.8rem);margin:1.3rem 0;color:#fff7e5}.plate-sep{color:#e8b55b;margin:0 .25em}.home-plate p:last-child{font-size:clamp(.9rem,1.4vw,1.3rem);color:#e9c99b}.projection-caption{text-align:center;color:#ffe5a7;font-weight:900;letter-spacing:.14em;font-size:clamp(1.2rem,2.1vw,2rem);margin-bottom:1.4rem}.project-stat{border-radius:15px;padding:1.35rem .4rem 1.6rem;border:1px solid rgba(255,222,166,.28);background:rgba(255,255,255,.07);text-align:center;height:100%}.project-stat span{display:block;font-size:clamp(.6rem,1vw,1rem);font-weight:800;letter-spacing:.05em;color:#ffebd2;min-height:2em}.project-stat strong{font-size:clamp(2.8rem,6.9vw,7rem);letter-spacing:-.06em;line-height:1.3;font-weight:900;color:#fff}.project-stat.highlight-green strong{color:#83f4b3}.project-stat.highlight-gold strong{color:#ffd783}.project-feed{width:min(1030px,100%);margin:1.75rem auto 0;border:1px solid rgba(255,238,205,.17);border-radius:16px;background:rgba(37,1,10,.22);overflow:hidden}.feed-title{padding:12px 18px;font-size:.77rem;font-weight:800;letter-spacing:.08em;color:#fce0ac;border-bottom:1px solid rgba(255,221,170,.16)}.feed-viewport{height:112px;position:relative;overflow:hidden;mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent)}.feed-track{position:absolute;width:100%;padding:6px 22px;animation:feedscroll 30s linear infinite}.feed-track:hover{animation-play-state:paused}.feed-line{padding:5px 7px;border-bottom:1px solid rgba(255,255,255,.09);font-size:clamp(.7rem,1.18vw,1.08rem);text-align:center;color:#fff4df;font-weight:600}.feed-line .yes-text{color:#91f4b9}.feed-line .no-text{color:#ffb3b3}@keyframes feedscroll{0%{transform:translateY(110px)}100%{transform:translateY(-100%)}}.round-pill{display:inline-block;font-size:.78rem;letter-spacing:.13em;font-weight:800;color:#672111;background:#ffe3ad;border-radius:100px;padding:7px 22px}.project-vote-topic{font-size:clamp(1rem,1.9vw,1.65rem);font-weight:700;margin:.8rem 0;color:#fff4e8}.proj-presence{color:#eed1ae;font-size:clamp(.83rem,1.25vw,1.1rem)}.vote-score{border-radius:1.1rem;text-align:center;padding:1.2rem 1.6rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.23)}.vote-score.yes{border-color:rgba(100,232,162,.45)}.vote-score.no{border-color:rgba(255,158,149,.48)}.vote-score>span{font-weight:900;letter-spacing:.09em;font-size:clamp(.9rem,1.45vw,1.3rem)}.vote-score.yes>span{color:#92f2bc}.vote-score.no>span{color:#ffb0a9}.vote-score strong{font-size:clamp(3.7rem,8vw,8rem);font-weight:900;line-height:1.3;letter-spacing:-.06em}.vote-score small{font-size:clamp(1.2rem,2.7vw,2.5rem);color:#d5baba;font-weight:700}.vote-score em{font-size:clamp(1.2rem,2.2vw,2rem);display:block;font-style:normal;font-weight:900;color:#ffdb9d}.vote-bar{height:8px;border-radius:8px;background:rgba(255,255,255,.14);overflow:hidden;margin-top:1rem}.vote-bar>div{height:100%;width:0;background:#70e8a7;transition:width .45s ease}.vote-score.no .vote-bar>div{background:#ff9e95}.result-status{display:inline-block;padding:.3rem 1rem;color:#fff0d1;border:1px solid rgba(255,214,145,.34);background:rgba(255,255,255,.06);border-radius:40px;font-size:.79rem;font-weight:750}.result-status.completed{background:rgba(244,196,109,.21);border-color:#ffe0a3;color:#ffe8b9}.projector-footer{position:fixed;bottom:0;left:0;right:0;padding:10px 3.3vw;font-size:.65rem;letter-spacing:.1em;display:flex;justify-content:space-between;color:#eacba7;background:rgba(47,3,10,.72);border-top:1px solid rgba(255,223,174,.19)}
@media(max-width:991px){.brand-text small{display:none}.topbar{min-height:70px}.navbar-collapse{padding-top:.5rem}.login-intro{text-align:center}.login-wrapper{padding:2.5rem 0}.member-shell{padding-top:2rem}.projection-topline{font-size:.58rem}.projector-main{padding-top:1.3rem}.projector-hero{padding-bottom:1rem}}
@media(max-width:575px){.login-card{padding:1.65rem 1.3rem}.brand-text b{font-size:.76rem}.metric-card{padding:1.1rem;min-height:130px}.metric-card strong{font-size:2.15rem}.hero-card .card-body{padding:1.4rem!important}.app-container{padding-left:13px;padding-right:13px}.projector-body .projector-main{width:95vw}.projector-institution{text-align:center!important}.projector-institution>div{text-align:center!important}.gold-underline{margin:5px auto}.projector-star{display:none}.projector-hero{padding-top:.7rem}.projector-hero .mt-3{margin-top:.6rem!important}.projection-panel{margin-top:1.2rem}.project-stat{padding:.9rem .2rem}.project-stat span{font-size:.57rem}.project-stat strong{font-size:2.8rem}.vote-score{padding:1rem}.projector-footer{font-size:.53rem}.projection-topline>span:first-child{display:none}}

.user-avatar{width:62px;height:62px;object-fit:cover;border-radius:18px;border:3px solid #fff;box-shadow:0 6px 20px rgba(101,32,44,.12)}

.vote-manage-panel{max-height:220px;overflow-y:auto;background:#fbf8f6;border-radius:.7rem;padding:0 .75rem;border:1px solid #f0e5e4}

/* CBNT v2.0 — viewport-fit layout: page itself never scrolls. Long tables/history
   remain usable in a dedicated, bounded panel, including on a small phone. */
html,body{height:100%;height:100dvh;width:100%;margin:0;overflow:hidden;overscroll-behavior:none}
body.page-bg,body.projector-body{height:100dvh;min-height:0;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column}
body.page-bg>.topbar{flex:0 0 auto;min-height:0;z-index:1030}
body.page-bg>main{flex:1 1 auto;min-height:0;overflow:hidden}
body.page-bg>.login-wrapper{flex:1 1 auto;min-height:0;height:auto;overflow:auto}
body.page-bg .navbar-collapse{max-height:calc(100dvh - 58px);overflow-y:auto}
body.page-bg .modal-dialog{max-height:calc(100dvh - 1rem);margin-block:.5rem}
body.page-bg .modal-content{max-height:calc(100dvh - 1rem);display:flex;flex-direction:column;overflow:hidden}
body.page-bg .modal-content form{min-height:0;display:flex;flex-direction:column}
body.page-bg .modal-body{overflow-y:auto;min-height:0}
body.projector-body .modal-dialog{max-height:calc(100dvh - 1rem)}
body.projector-body .modal-content{max-height:calc(100dvh - 1rem)}
.app-container{max-width:1600px;width:100%;padding:clamp(.5rem,1.1vh,.95rem) clamp(.65rem,1.4vw,1.3rem)!important;gap:clamp(.45rem,1vh,.85rem)}
.app-container h1{font-size:clamp(1.25rem,2.1vw,2rem)}
.app-container h2{font-size:clamp(1.2rem,2vw,1.8rem)}
.app-container .section-eyebrow{font-size:.64rem}
.app-container .card-body{min-width:0}
.app-container .btn{font-size:clamp(.72rem,.9vw,.9rem)}
.admin-shell{display:flex;flex-direction:column;min-height:0}
.admin-shell>.d-flex:first-child{flex:0 0 auto;margin:0!important;gap:.45rem!important}
.admin-shell>.d-flex:first-child p{font-size:.83rem}
#activeMeetingCard,#noMeetingCard{flex:0 0 auto;margin:0!important}
#activeMeetingCard .card-body{padding:.75rem 1.3rem!important}
#activeMeetingCard h2{margin:.4rem 0!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#activeMeetingCard .row{--bs-gutter-y:.4rem}
#noMeetingCard{background:linear-gradient(110deg,#89101d,#b12733);color:#fff;border:0}
#adminLiveArea{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:.5rem;overflow:hidden}
#adminLiveArea.d-none{display:none!important}
#adminLiveArea>.dashboard-stats,#adminLiveArea>.dashboard-actions{margin:0!important;flex:0 0 auto;--bs-gutter-x:.65rem;--bs-gutter-y:.55rem}
#adminLiveArea .metric-card{min-height:0;padding:.6rem 1rem;display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:.8rem}
#adminLiveArea .metric-icon{grid-row:1/3;grid-column:1;margin:0;width:34px;height:34px}
#adminLiveArea .metric-card p{grid-column:2;font-size:.63rem;margin:0}
#adminLiveArea .metric-card strong{grid-column:2;font-size:clamp(1.25rem,2.5vw,2.1rem)}
#adminLiveArea .dashboard-actions .card-body{padding:.85rem!important}
#adminLiveArea .dashboard-actions .section-eyebrow{font-size:.62rem}
#adminLiveArea .dashboard-actions h3{font-size:.94rem;margin:0 0 .55rem!important}
#adminLiveArea .dashboard-actions .row.g-3{--bs-gutter-x:.6rem;--bs-gutter-y:.6rem}
#adminLiveArea .action-tile{height:clamp(100px,15vh,138px);padding:.72rem;gap:0;justify-content:center}
#adminLiveArea .action-tile-icon{width:29px;height:29px;min-height:29px;font-size:1rem;margin:0 0 .35rem}
#adminLiveArea .action-tile b{font-size:clamp(.7rem,1vw,.87rem)}
#adminLiveArea .action-tile small{font-size:.68rem;line-height:1.3}
#adminLiveArea .action-tile.is-ending{background:linear-gradient(145deg,#a5192c,#781224);border-color:#982030}
#adminLiveArea .action-tile.is-ending b,#adminLiveArea .action-tile.is-ending small,#adminLiveArea .action-tile.is-ending .tile-arrow{color:#fff}
#adminLiveArea .action-tile.is-ending .action-tile-icon{background:rgba(255,255,255,.2);color:#fff}
#adminLiveArea .dashboard-actions .mt-4{margin-top:.55rem!important}
#adminLiveArea .detail-counter{padding:.55rem .8rem}
#adminLiveArea .detail-counter strong{font-size:1.65rem}
#adminLiveArea .dashboard-roster{min-height:0;flex:1 1 auto;margin:0!important;display:flex;flex-direction:column}
#adminLiveArea .dashboard-roster .card-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:.7rem!important}
#adminLiveArea .dashboard-roster .card-body>.d-flex{margin-bottom:.35rem!important}
#adminLiveArea .dashboard-roster h3{font-size:clamp(.82rem,1.2vw,1.04rem)}
#adminLiveArea .roster-table{max-height:none;min-height:0;flex:1 1 auto;overflow:auto;scrollbar-width:thin}
#adminLiveArea .roster-table thead{position:sticky;top:0;z-index:2}
#adminLiveArea .roster-table th,#adminLiveArea .roster-table td{padding:.35rem .6rem;font-size:.76rem}
.archive-card{margin:0!important;flex:0 0 auto;max-height:clamp(90px,15vh,132px);min-height:0;overflow:hidden}
.archive-card .card-body{padding:.65rem 1rem!important;min-height:0;display:flex;flex-direction:column}
.archive-card h3{font-size:.88rem;margin:0!important}
.archive-list{overflow:auto;min-height:0;flex:1 1 auto;scrollbar-width:thin}
.archive-line{display:flex;gap:.55rem;align-items:center;justify-content:space-between;border-top:1px solid #f0e6e4;padding:.4rem 0}
.archive-line:first-child{border-top:0}
.archive-info{min-width:0;flex:1}
.archive-info strong{display:block;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.archive-info small{display:block;color:#80777b;font-size:.65rem}
.archive-actions{display:flex;gap:.3rem;flex:0 0 auto}
.archive-actions .btn{font-size:.62rem!important;padding:.18rem .4rem}
.admin-mobile-tabs{display:none}
/* Member / lists / settings stay within viewport, not the browser document. */
.member-shell{display:flex;flex-direction:column;justify-content:flex-start;min-height:0;gap:clamp(.35rem,.8vh,.65rem);padding:clamp(.4rem,1vh,.75rem) .75rem!important;overflow:auto!important;scrollbar-width:none}
.member-shell::-webkit-scrollbar{display:none}
.member-shell>.section-eyebrow{flex:0 0 auto}
.member-shell>.d-flex{margin:0!important;flex:0 0 auto}
.member-shell .user-avatar{width:38px;height:38px;border-radius:12px}
.member-shell .h3{font-size:clamp(1.08rem,2vw,1.5rem)}
.member-shell>.card,.member-shell>.row{margin:0!important;flex:0 0 auto}
.member-shell .hero-card .card-body{padding:.7rem 1rem!important}
.member-shell .hero-card h2{font-size:clamp(.93rem,2vw,1.4rem)}
.member-shell .metric-card{min-height:0;padding:.6rem .85rem;display:flex;flex-direction:column;gap:.15rem}
.member-shell .metric-icon{display:none}
.member-shell .metric-card strong{font-size:clamp(1.5rem,3vw,2rem)}
.member-shell>.card:not(.hero-card) .card-body{padding:.7rem 1rem!important}
.member-shell>.card h3{font-size:1rem;margin-bottom:.35rem!important}
.member-shell .btn-lg{padding:.55rem .7rem;font-size:.87rem}
.member-shell .card .small{margin-bottom:.3rem!important;line-height:1.25}
.member-shell .row.g-3{--bs-gutter-y:.45rem;--bs-gutter-x:.6rem}
.member-shell #voteReceipt{padding:.3rem .55rem!important;font-size:.8rem}
.members-shell,.history-shell,.settings-shell{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:clamp(.6rem,1.5vh,1rem) 1rem!important}
.members-shell>.d-flex,.history-shell>.section-eyebrow,.history-shell>h1,.history-shell>p,.settings-shell>.section-eyebrow,.settings-shell>h1{flex:0 0 auto}
.members-shell>.d-flex{margin-bottom:.7rem!important}
.members-shell>.card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.members-shell>.card>.card-body{min-height:0;display:flex;flex-direction:column;flex:1;padding:.7rem 1rem!important}
.members-shell>.card .table-responsive{overflow:auto;flex:1;min-height:0;scrollbar-width:thin}
.members-shell>.card .table-responsive thead{position:sticky;top:0;z-index:2}
.members-shell>.card .table td,.members-shell>.card .table th{padding:.5rem .6rem}
.history-shell>p{font-size:.85rem}
.history-scroll{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:thin}
.history-shell .card-body{padding:.9rem!important}
.history-shell .history-round{min-height:0}
.settings-shell{gap:.65rem;overflow:auto!important;scrollbar-width:none}
.settings-shell::-webkit-scrollbar{display:none}
.settings-shell h1{margin:0!important}
.settings-shell .card{margin:0!important}
.settings-shell .card-body{padding:clamp(.7rem,1.6vh,1.2rem)!important}
.settings-shell .form-control-lg{font-size:.94rem;padding:.55rem}
/* Projector remains fixed-height even for a large TV and a small phone. */
.projector-body{width:100%;overflow:hidden}
.projector-body .projection-topline{flex:0 0 auto;padding:clamp(4px,.75vh,10px) 2vw;min-height:31px}
.projector-body .projector-main{width:min(1450px,95vw);flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:clamp(.4rem,.9vh,.8rem) 0 .3rem;margin:0 auto}
.projector-body .projector-hero{flex:0 0 auto;padding-bottom:clamp(.45rem,1vh,1rem);min-height:0}
.projector-body .projector-hero .text-center.mt-3{margin-top:clamp(.2rem,.6vh,.6rem)!important}
.projector-body .projector-star{font-size:clamp(1.5rem,3vh,2.8rem);line-height:1.2}
.projector-body .gold-divider{margin-bottom:clamp(.25rem,.6vh,.65rem)!important}
.projector-body .projector-title{font-size:clamp(1.1rem,3.45vw,3.35rem);margin-bottom:clamp(.15rem,.35vh,.4rem)}
.projector-body .projector-subtitle{font-size:clamp(.95rem,2.2vw,2.1rem);margin:0 0 .15rem}
.projector-body .proj-date{font-size:clamp(.75rem,1.25vw,1.13rem)}
.projector-body .projection-panel{flex:1 1 auto;min-height:0;margin:clamp(.2rem,.65vh,.8rem) 0 0;overflow:hidden;display:flex;flex-direction:column}
.projector-body .projection-panel.d-none{display:none!important}
.projector-body .projection-caption{flex:0 0 auto;font-size:clamp(.9rem,2vw,1.75rem);margin-bottom:clamp(.3rem,.8vh,.8rem)}
.projector-body .project-stat{padding:clamp(.25rem,.8vh,.8rem) .25rem}
.projector-body .project-stat strong{font-size:clamp(1.5rem,6.2vw,5.6rem);line-height:1.15}
.projector-body .project-feed{min-height:0;flex:1 1 auto;margin:clamp(.35rem,1.5vh,1.2rem) auto 0;display:flex;flex-direction:column;max-height:clamp(60px,23vh,190px)}
.projector-body .project-feed .feed-title{padding:.5rem .8rem;flex:0 0 auto}
.projector-body .feed-viewport{height:auto;flex:1 1 auto;min-height:0}
.projector-body .vote-score{padding:clamp(.35rem,1vh,.8rem)}
.projector-body .vote-score strong{font-size:clamp(2.3rem,6vw,6.5rem);line-height:1.05}
.projector-body .vote-score em{font-size:clamp(1rem,2vw,1.75rem)}
.projector-body .project-vote-topic{margin:.2rem 0;font-size:clamp(.86rem,1.7vw,1.45rem);overflow-wrap:anywhere;max-height:2.7em;overflow:hidden}
.projector-body .proj-presence{margin-bottom:.45rem}
.projector-body .round-pill{padding:.25rem .8rem}
.projector-body #resultButtons{margin-top:clamp(.2rem,.65vh,.6rem)!important;flex:0 0 auto}
.projector-body #resultButtons .btn{font-size:clamp(.6rem,.9vw,.87rem);padding:.2rem .5rem;margin-bottom:0!important}
.projector-body .projector-footer{position:static;flex:0 0 auto;padding:clamp(4px,.7vh,9px) 2.2vw;min-height:22px}
.projector-body.screen-home .projector-main{justify-content:center}
.projector-body.screen-home .projector-hero{padding-bottom:0;border-bottom:0;width:100%}
.projector-body.screen-home #projectHome{display:none!important}
.projector-body.screen-home .projector-star{font-size:clamp(2rem,5vh,4rem)}
.projector-body.screen-home .projector-title{font-size:clamp(1.65rem,5vw,4.2rem)}
.projector-body.screen-home .projector-subtitle{font-size:clamp(1.1rem,2.8vw,2.5rem)}
/* Deliberate: hidden panels can scroll internally, but viewport/document cannot. */
@media(max-height:790px){
  .topbar{min-height:58px}.topbar .nav-link{padding:.38rem .55rem!important;font-size:.75rem}
  .small-mark{width:36px;height:36px}
  #adminLiveArea .action-tile{height:clamp(88px,13vh,118px)}
  .archive-card{max-height:100px}
  #adminLiveArea .dashboard-actions .mt-4{margin-top:.35rem!important}
  .projection-topline{letter-spacing:.02em}
}
@media(max-width:991px){
  .topbar .container-fluid{padding-inline:.7rem!important}
  .topbar .navbar-collapse{position:absolute;top:100%;right:.5rem;left:.5rem;border:1px solid #eedddb;background:#fff;border-radius:1rem;box-shadow:0 15px 40px rgba(50,20,30,.2);padding:.5rem;z-index:1035}
  .admin-shell>.d-flex:first-child .text-muted{display:none}
  .admin-mobile-tabs{display:flex;flex:0 0 auto;gap:.35rem}
  .admin-mobile-tabs .btn{flex:1;border-radius:.65rem!important}
  #adminLiveArea[data-admin-tab='operate'] .dashboard-roster{display:none!important}
  #adminLiveArea[data-admin-tab='roster'] .dashboard-actions{display:none!important}
  #adminLiveArea[data-admin-tab='roster'] .dashboard-roster{flex:1;min-height:0}
  #adminLiveArea .dashboard-actions{flex:1 1 auto;min-height:0}
  #adminLiveArea .dashboard-actions>.col-xl-7,#adminLiveArea .dashboard-actions>.col-xl-5{height:100%;min-height:0}
  #adminLiveArea .dashboard-actions>.col-xl-5{display:none}
  #adminLiveArea .dashboard-actions>.col-xl-7>.card{height:100%;min-height:0}
  .admin-shell>.d-flex:first-child h1{font-size:1.3rem}
  #activeMeetingCard .card-body{padding:.5rem .7rem!important}
  #activeMeetingCard h2{font-size:clamp(.85rem,3.2vw,1.3rem)}
  #activeMeetingCard .glass-pill{padding:.25rem .5rem;font-size:.58rem}
  #activeMeetingCard .row{--bs-gutter-y:.2rem}
  #activeMeetingCard .btn{font-size:.65rem}
  .archive-card{max-height:clamp(75px,16vh,120px)}
  .archive-actions a.btn{display:none}
  .archive-actions button.btn{display:inline-flex;align-items:center;white-space:nowrap;font-size:.65rem;padding:.28rem .5rem}
  .member-shell{max-width:650px}
  .projector-body .projector-hero{padding-bottom:.5rem}
  .projector-body .projector-title{font-size:clamp(1.05rem,3.8vw,2.4rem)}
  .projector-body .projector-star{display:none}
}
@media(max-width:575px){
  .topbar{min-height:53px}.topbar .navbar-brand{margin:0}.brand-text b{font-size:.72rem}
  .admin-shell>.d-flex:first-child{align-items:flex-start!important}
  .admin-shell>.d-flex:first-child .d-flex>.btn{font-size:.65rem;padding:.3rem .45rem}
  .admin-shell>.d-flex:first-child .d-flex>.btn i{display:none}
  #adminLiveArea .dashboard-stats{--bs-gutter-x:.25rem}
  #adminLiveArea .dashboard-stats>.col-md-4{width:33.333333%;padding-inline:.12rem}
  #adminLiveArea .metric-card{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:55px;padding:.3rem .15rem;text-align:center}
  #adminLiveArea .metric-icon{display:none}
  #adminLiveArea .metric-card p{font-size:clamp(.46rem,1.7vw,.65rem);letter-spacing:0}
  #adminLiveArea .metric-card strong{font-size:1.4rem}
  #adminLiveArea .dashboard-actions .action-tile{height:clamp(95px,19vh,140px)}
  #adminLiveArea .dashboard-actions .card-body{padding:.7rem!important}
  #adminLiveArea .dashboard-actions .row.g-3>.col-sm-6{width:50%}
  #adminLiveArea .action-tile b{font-size:clamp(.59rem,2.8vw,.8rem)}
  #adminLiveArea .action-tile small{font-size:.61rem}
  #adminLiveArea .dashboard-actions .d-flex.gap-2{gap:.3rem!important}
  #adminLiveArea .dashboard-actions .d-flex.gap-2>.btn,#adminLiveArea .dashboard-actions .d-flex.gap-2>a{font-size:.65rem}
  #adminLiveArea .dashboard-actions .mt-4{margin-top:.55rem!important}
  .archive-card .card-body{padding:.45rem .7rem!important}
  .archive-info strong{font-size:.7rem}.archive-info small{font-size:.6rem}
  .member-shell .section-eyebrow{font-size:.61rem}
  .member-shell>.d-flex{gap:.35rem!important}
  .member-shell .user-avatar{width:30px;height:30px}
  .member-shell .hero-card .card-body{padding:.6rem .8rem!important}
  .member-shell .hero-card .glass-pill{padding:.25rem .5rem;font-size:.54rem}
  .member-shell .hero-card .session-status{font-size:.58rem;padding:.25rem .5rem}
  .member-shell .metric-card{padding:.45rem .65rem}
  .member-shell .metric-card strong{font-size:1.5rem}
  .member-shell>.card:not(.hero-card) .card-body{padding:.6rem .75rem!important}
  .member-shell .row.g-3>.col-sm-6{width:50%}
  .member-shell .btn-lg{padding:.55rem .35rem;font-size:.75rem}
  .member-shell .h5{font-size:.91rem}
  .members-shell>.d-flex:first-child{margin:0!important}
  .members-shell>.d-flex:first-child .d-flex{flex-wrap:wrap;gap:.25rem!important}
  .members-shell>.d-flex:first-child .d-flex .btn{font-size:.65rem}
  .members-shell .card-body{padding:.6rem!important}
  .members-shell .table{min-width:520px}
  .history-shell .card-body{padding:.65rem!important}
  .projector-body .projection-topline>span:first-child{display:none}
  .projector-body .projector-institution{font-size:clamp(.52rem,2vw,.66rem);line-height:1.4}
  .projector-body .projector-institution .fw-black{font-size:.62rem}
  .projector-body .projector-institution{flex-direction:row!important;justify-content:space-between!important;text-align:left!important}
  .projector-body .projector-institution>div{text-align:left!important}
  .projector-body .projector-institution>div:last-child{text-align:right!important}
  .projector-body .projector-title{letter-spacing:.03em;font-size:clamp(1.15rem,5.1vw,1.8rem)}
  .projector-body .projector-subtitle{font-size:clamp(.8rem,3.3vw,1.2rem)}
  .projector-body .gold-underline{margin:3px 0 0 auto}
  .projector-body .projection-caption{font-size:1.08rem;letter-spacing:.05em}
  .projector-body .projection-panel .row.g-3{--bs-gutter-x:.3rem;--bs-gutter-y:.3rem}
  .projector-body .projection-panel .row.g-3>.col-md-5{width:50%}
  .projector-body .project-stat{padding:.55rem .1rem}
  .projector-body .project-stat span{font-size:clamp(.42rem,1.85vw,.7rem);min-height:2.4em}
  .projector-body .project-stat strong{font-size:clamp(1.65rem,8vw,3rem)}
  .projector-body .vote-score{padding:.5rem .2rem}
  .projector-body .vote-score>span{font-size:.64rem}
  .projector-body .vote-score strong{font-size:clamp(2rem,9vw,3.5rem)}
  .projector-body .vote-score small{font-size:.9rem}
  .projector-body .vote-score em{font-size:1rem}
  .projector-body .project-feed{max-height:clamp(60px,27vh,170px)}
  .projector-body .project-feed .feed-title{font-size:.57rem;padding:.4rem}
  .projector-body .feed-line{font-size:.75rem}
  .projector-body #resultButtons .btn{font-size:.58rem}
}
@media(max-height:550px){
  .projector-body .projection-topline{padding:2px 2vw;min-height:22px}
  .projector-body .projector-footer{padding:2px 2vw}
  .projector-body .projector-hero{padding-bottom:.25rem}
  .projector-body .projector-title{font-size:clamp(.93rem,3vw,1.5rem)}
  .projector-body .projector-subtitle{font-size:clamp(.75rem,2vw,1.08rem)}
  .projector-body .proj-date{font-size:.7rem}
  .projector-body .project-feed{margin-top:.2rem;max-height:17vh}
  .projector-body .vote-score strong{font-size:clamp(1.6rem,4vw,3.4rem)}
  .projector-body .project-stat strong{font-size:clamp(1.5rem,4vw,3.5rem)}
  .projector-body .vote-score .vote-bar{margin-top:.3rem}
  .login-wrapper .login-intro{display:none}
}

/* V4: tiêu ngữ chi bộ sát đầu màn hình, không bị đẩy xuống do căn giữa hero. */
.projector-body .projector-main{justify-content:flex-start!important;}
.projector-body .projector-hero{margin-top:0!important;}
.projector-body .projector-institution{align-self:flex-start;}

/* CBNT V5 - trình chiếu gọn, tiêu ngữ căn đầu, avatar tùy chọn */
.projector-body .projector-main{padding-top:clamp(.3rem,1vh,.65rem)!important;}
.projector-body .projector-institution{align-items:flex-start!important;justify-content:space-between!important;}
.projector-institution .institution-left{position:relative;flex:0 1 auto;}
.projector-institution .institution-asterisk{display:block;position:relative;margin-left:38%;font-size:clamp(1rem,1.5vw,1.5rem);line-height:1.1;color:#ffe5ae;font-weight:900;}
.projector-institution .institution-right{flex:0 1 auto;}
.projector-institution .party-heading{display:inline-block!important;white-space:nowrap;position:relative;padding-bottom:6px;border-bottom:3px solid var(--gold);}
.projector-body .project-vote-topic{font-size:clamp(1.15rem,2.1vw,2rem);margin:.1rem 0 .35rem;}
.projector-body .proj-date{font-size:clamp(1.05rem,1.875vw,1.7rem)!important;}
.projector-body .proj-presence{font-size:clamp(1rem,1.875vw,1.65rem)!important;}
.projector-body .feed-line{display:flex;justify-content:center;align-items:center;gap:.45em;}
.projector-body .feed-avatar{width:clamp(27px,4vh,48px);height:clamp(27px,4vh,48px);border-radius:50%;object-fit:cover;border:2px solid rgba(255,224,163,.7);flex:0 0 auto;}
.history-heading{display:flex;width:100%;text-align:left;gap:1rem;align-items:center;border:0;background:transparent;padding:0;color:inherit;}
.history-heading:focus-visible{outline:2px solid #a31320;outline-offset:4px;}
.history-detail[hidden]{display:none!important;}
.history-shell #historyRows{flex:1 1 auto;min-height:0;overflow-y:auto;}
@media(max-width:575px){.projector-body .proj-date{font-size:clamp(.85rem,3vw,1rem)!important}.projector-body .proj-presence{font-size:clamp(.8rem,2.9vw,1rem)!important}.projector-institution .party-heading{white-space:normal;}.projector-institution .institution-asterisk{margin-left:38%;}}
@media(max-height:580px){.projector-body .proj-date{font-size:clamp(.8rem,1.4vw,1.15rem)!important}.projector-body .proj-presence{font-size:clamp(.75rem,1.3vw,1.05rem)!important}.projector-body .projector-star{display:none}.projector-body .projector-hero{padding-bottom:0;}}

/* V6: lối vào trang chủ/trình chiếu công khai, đăng nhập góc trên phải */
.project-login-link{display:inline-flex;align-items:center;gap:.38rem;color:#ffe5a7;text-decoration:none;border:1px solid rgba(255,224,170,.4);border-radius:100px;padding:.38rem .78rem;font-weight:800;white-space:nowrap;letter-spacing:0}
.project-login-link:hover{color:#fff;border-color:#fff;background:rgba(255,255,255,.13)}
@media(max-width:575px){.project-login-link{font-size:.67rem;padding:.3rem .5rem}.projection-topline{padding-inline:2vw;gap:.35rem}}


/* V7 MOBILE USABILITY FIX: Only the public projector remains viewport-locked.
   Admin and data-entry screens scroll naturally so actions cannot be covered. */
@media (max-width: 991.98px) {
  html:has(body.page-bg), html:has(body.page-bg) body {height:auto!important;min-height:100%;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:auto!important}
  body.page-bg {display:block!important;height:auto!important;min-height:100dvh!important;max-height:none!important;overflow-x:hidden!important;overflow-y:visible!important}
  body.page-bg > main {display:block!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
  body.page-bg .topbar {position:sticky;top:0;z-index:1030}
  .admin-shell,.members-shell,.history-shell,.settings-shell {display:block!important;overflow:visible!important;height:auto!important;max-height:none!important;min-height:0!important;padding:.9rem .85rem 2rem!important}
  .admin-shell > .d-flex:first-child {flex-wrap:wrap!important;align-items:flex-start!important;gap:.75rem!important;margin-bottom:.9rem!important}
  .admin-shell > .d-flex:first-child > .d-flex {flex-wrap:wrap!important;gap:.5rem!important;width:100%}
  .admin-shell > .d-flex:first-child .text-muted {display:block!important}
  #activeMeetingCard,#noMeetingCard {height:auto!important;max-height:none!important;margin-bottom:1rem!important}
  #activeMeetingCard h2 {white-space:normal!important;overflow-wrap:anywhere!important;overflow:visible!important;text-overflow:clip!important;line-height:1.35}
  #adminLiveArea {display:flex!important;flex-direction:column!important;gap:1rem!important;flex:none!important;overflow:visible!important;min-height:0!important;height:auto!important;max-height:none!important}
  #adminLiveArea.d-none {display:none!important}
  #adminLiveArea .dashboard-stats,#adminLiveArea .dashboard-actions,#adminLiveArea .dashboard-roster {flex:none!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
  #adminLiveArea .dashboard-actions > .col-xl-7,#adminLiveArea .dashboard-actions > .col-xl-5 {height:auto!important;min-height:0!important;display:block!important}
  #adminLiveArea .dashboard-actions > .col-xl-7 > .card {height:auto!important;min-height:0!important}
  #adminLiveArea .dashboard-actions .card-body {height:auto!important;overflow:visible!important}
  #adminLiveArea .dashboard-actions .action-tile {height:auto!important;min-height:125px!important;padding:1rem!important;justify-content:center}
  #adminLiveArea .dashboard-roster .card-body {display:block!important;min-height:0!important}
  #adminLiveArea .roster-table {max-height:none!important;overflow-x:auto!important;overflow-y:visible!important}
  .archive-card {position:static!important;inset:auto!important;transform:none!important;display:block!important;max-height:none!important;height:auto!important;overflow:visible!important;margin:1rem 0 0!important}
  .archive-card .card-body {display:block!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:1rem!important}
  .archive-list {height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
  .archive-line {flex-wrap:wrap!important}
  .archive-info strong {white-space:normal!important;overflow-wrap:anywhere!important}
  .archive-actions {margin-left:auto}
  .members-shell > .card,.members-shell > .card > .card-body {display:block!important;height:auto!important;max-height:none!important;overflow:visible!important}
  .members-shell .table-responsive {max-height:none!important;overflow-x:auto!important}
  .history-shell #historyRows {height:auto!important;max-height:none!important;overflow:visible!important}
  .settings-shell .card {max-height:none!important}
  body.page-bg .modal {overflow-y:auto!important}
  body.page-bg .modal-dialog {max-height:calc(100dvh - 1rem)}
  body.page-bg .modal-content {max-height:calc(100dvh - 1rem)}
}
@media (max-width: 575.98px) {
  .admin-shell > .d-flex:first-child .d-flex > .btn {font-size:.79rem!important;padding:.6rem .7rem!important;min-height:42px}
  .admin-shell > .d-flex:first-child .d-flex > .btn i {display:inline!important}
  .admin-mobile-tabs {position:static!important;margin:.35rem 0 .75rem!important}
  .admin-mobile-tabs .btn {min-height:44px}
  #adminLiveArea .dashboard-stats {row-gap:.5rem!important}
  #adminLiveArea .dashboard-stats .metric-card {min-height:80px!important}
  #adminLiveArea .dashboard-actions .row.g-3 > .col-sm-6 {width:50%!important}
  #adminLiveArea .dashboard-actions .action-tile {min-height:135px!important}
  #adminLiveArea .action-tile b {font-size:.78rem!important}
  #adminLiveArea .action-tile small {font-size:.7rem!important}
  #adminLiveArea .dashboard-actions .d-flex.gap-2 {flex-wrap:wrap!important}
  #adminLiveArea .dashboard-actions .d-flex.gap-2 > .btn {min-height:38px}
  #closedMeetingsCard .card-body > .d-flex {flex-wrap:wrap}
  #closedMeetingsCard .card-body > .d-flex > a {margin-left:auto}
  .member-shell {height:auto!important;max-height:none!important;overflow:visible!important}
}

/* FIX V11: Vote projection participant ticker */
.projector-body.screen-vote #projectVote .project-feed{max-height:clamp(82px,25vh,205px);margin-top:clamp(.35rem,1vh,.8rem)}
.projector-body.screen-vote #voteFeed .feed-line{font-size:clamp(.85rem,1.4vw,1.3rem);min-height:clamp(36px,5vh,54px)}
.projector-body.screen-vote #voteFeed .feed-avatar{width:clamp(32px,5vh,55px);height:clamp(32px,5vh,55px)}
.projector-body.screen-vote #voteFeed{will-change:transform}
@media(max-height:610px){.projector-body.screen-vote #projectVote .project-feed{max-height:clamp(62px,19vh,105px)}.projector-body.screen-vote #projectVote .vote-score{padding:.25rem}}

/* CBNT V14: bố cục slide biểu quyết theo chiều cao thực tế, không che ticker. */
.projector-body.screen-vote #projectVote{display:flex;flex-direction:column;min-height:0;overflow:hidden;gap:clamp(2px,.55vh,7px)}
.projector-body.screen-vote #projectVote>.text-center:first-child{flex:0 0 auto}
.projector-body.screen-vote #projectVote>.row{flex:0 0 auto;--bs-gutter-y:.3rem;--bs-gutter-x:.8rem;margin-top:0}
.projector-body.screen-vote #projectVote .vote-score{padding:clamp(.3rem,.85vh,.65rem) clamp(.5rem,1vw,1rem)}
.projector-body.screen-vote #projectVote .vote-score strong{font-size:clamp(1.6rem,5.7vh,4.25rem);line-height:1.04}
.projector-body.screen-vote #projectVote .vote-score em{font-size:clamp(.9rem,2.35vh,1.6rem);line-height:1.16}
.projector-body.screen-vote #projectVote .vote-score>span{font-size:clamp(.7rem,1.75vh,1.1rem)}
.projector-body.screen-vote #projectVote .vote-bar{margin-top:.25rem;height:6px}
.projector-body.screen-vote #projectVote>.text-center.mt-3{margin-top:0!important;flex:0 0 auto}
.projector-body.screen-vote #projectVote .project-feed{flex:1 1 auto;min-height:clamp(80px,16vh,170px);max-height:none!important;margin:.2rem auto 0;width:min(1030px,100%);overflow:hidden}
.projector-body.screen-vote #projectVote .feed-viewport{min-height:46px;overflow:hidden;flex:1}
.projector-body.screen-vote #projectVote #resultButtons{margin-top:0!important}
.projector-body.screen-vote .projector-hero{padding-bottom:clamp(.15rem,.5vh,.45rem)}
.projector-body.screen-vote .projector-star{font-size:clamp(1rem,2.5vh,2rem)}
.projector-body.screen-vote .projector-title{font-size:clamp(1.25rem,3.3vw,3rem)}
.projector-body.screen-vote .projector-subtitle{font-size:clamp(1rem,2vw,2rem)}
.projector-body.screen-vote #projectVote .project-vote-topic{margin:.05rem 0;font-size:clamp(.85rem,2.1vh,1.7rem)}
.projector-body.screen-vote #projectVote .proj-presence{margin-bottom:.15rem}
@media(max-height:610px){.projector-body.screen-vote #projectVote .project-feed{min-height:68px}.projector-body.screen-vote #projectVote .vote-score strong{font-size:clamp(1.3rem,5.2vh,2.6rem)}}
/* Safari iOS: tránh vùng nhấn reset bị khu vực cuộn/overlay đè lên. */
#resetAllAttendanceBtn{position:relative;z-index:2;touch-action:manipulation;min-height:44px;-webkit-tap-highlight-color:rgba(156,23,35,.18)}
#resetAllAttendanceBtn[aria-busy="true"]{opacity:.75;cursor:progress}
