/* Optional sign-in dialog; public pages remain usable while signed out. */
.tw-auth-gate{width:min(440px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid #857399;border-radius:16px;background:#191426;color:#eee6f3;overflow:auto;box-shadow:0 18px 50px #0009}
.tw-auth-gate::backdrop{background:rgba(9,7,14,.65)}
.tw-auth-gate-card{position:relative;display:grid;gap:14px;padding:24px;text-align:center}
.tw-auth-gate h2{margin:0;padding:8px 25px 0;color:#fff1bf;font-family:var(--tw-ui-font);font-size:22px}
.tw-auth-gate-close{position:absolute;right:6px;top:6px;width:36px;height:36px;padding:0;border:0;background:transparent;color:#cec3d5;font-size:26px;cursor:pointer}
.tw-auth-gate-description{margin:0;color:#cec3d5;font-size:16px;line-height:1.5}
.tw-auth-gate-login{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:10px 16px;border:1px solid #857399;border-radius:12px;background:linear-gradient(145deg,#342d4f,#191426);color:#fff;font-size:16px;font-weight:700;cursor:pointer}
.tw-auth-gate-login:hover{border-color:#baa0db;background:#392d50}
.tw-auth-gate :is(button,a):focus-visible{outline:2px solid #d2b1ff;outline-offset:2px}
.tw-auth-gate-login:disabled{opacity:.7;cursor:wait}
.tw-auth-gate-message{margin:0;color:#ceffdc;font-size:16px;line-height:1.5}
.tw-auth-gate-message.is-error{color:#ffd0d9}
.tw-auth-gate-privacy{margin:0;color:#bbaec6;font-size:14px;line-height:1.5}
.tw-auth-gate-links{display:flex;justify-content:center;gap:10px;font-size:14px}
.tw-auth-gate-links a{color:#d2b1ff}

/* Account menu: one compact entry point. */
.top-right-utility{grid-template-columns:minmax(0,1fr) auto auto!important;min-width:0;max-width:100%}
.tw-account-control{position:relative;z-index:90;justify-self:end;align-self:start;width:100%;min-width:0;max-width:100%}
.tw-account-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-width:0;max-width:100%;height:46px;padding:5px 10px;border:1px solid #857399;border-radius:12px;background:linear-gradient(145deg,#342d4f,#191426);color:#fff;font-size:14px;font-weight:700}
.tw-account-button>span:not(.tw-player-avatar){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tw-discord-icon{display:block;box-sizing:border-box;flex:0 0 22px;width:22px;min-width:22px;max-width:22px;height:22px;object-fit:contain;}
.tw-account-avatar{width:34px;height:34px;object-fit:contain;flex:none;border-radius:50%;background:#15111c;border:1px solid #998079}
.tw-account-button i{width:6px;height:6px;border-radius:50%;background:#78d79c;flex:none}
.tw-account-button:hover{border-color:#baa0db;background:#392d50}
.tw-account-button:focus-visible,.tw-account-menu :is(button,a):focus-visible{outline:2px solid #d2b1ff;outline-offset:3px}
.tw-account-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:6000;display:grid;width:min(304px,calc(100vw - 24px));max-height:calc(100dvh - 100px);overflow-y:auto;gap:5px;padding:12px;border:1px solid #756082;border-radius:14px;background:linear-gradient(155deg,#271f36,#0f0c17);box-shadow:0 18px 50px #0009;color:#e9e1ef;text-align:left;box-sizing:border-box}
.tw-account-menu[hidden]{display:none!important}
.tw-account-profile{display:flex;align-items:center;gap:10px;padding:3px 4px 12px;min-width:0}
.tw-account-profile .tw-account-avatar{width:44px;height:44px}
.tw-account-profile>span:not(.tw-player-avatar){display:grid;min-width:0;gap:3px}
.tw-account-profile strong,.tw-account-profile small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tw-account-profile strong{color:#f1ddb0;font-size:16px}.tw-account-profile small{color:#b5a7c0;font-size:13px}
.tw-account-menu :is(button,a){display:flex;align-items:center;gap:9px;width:100%;min-width:0;min-height:40px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;font-size:15px;font-weight:600;text-align:left;text-decoration:none;box-sizing:border-box}
.tw-account-menu :is(button,a):hover:not(:disabled){border-color:#8162a0;background:#49355f}
.tw-account-menu .tw-account-community{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;font-size:14px;color:#c9bce0}.tw-community-thronk{display:block;width:48px;height:64px;object-fit:contain;flex:none;}.tw-account-community span{min-width:0;overflow-wrap:anywhere}.tw-community-copy{display:grid;gap:3px}.tw-community-copy small{font-size:16px;font-weight:400;line-height:1.3;color:#c9bed9}
.tw-account-menu button:disabled{opacity:.5;cursor:not-allowed}.tw-account-menu hr{width:100%;border:0;border-top:1px solid #6d5d784d;margin:5px 0}.tw-account-menu .tw-account-logout{color:#f1b6c4}
.tw-account-message{margin:0;padding:8px;color:#ffd2da;font-size:14px;overflow-wrap:anywhere}
/* One contained settings dialog; existing notification inputs keep their state owners. */
html.tw-settings-open{overflow:hidden}
.tw-settings-overlay{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;padding:20px;background:#07050cba;box-sizing:border-box}
.tw-settings-overlay[hidden]{display:none!important}
.tw-settings-dialog,.tw-settings-dialog *{box-sizing:border-box}
.tw-settings-dialog{display:flex;flex-direction:column;width:min(800px,100%);min-width:0;max-height:calc(100dvh - 40px);border:1px solid #796384;border-radius:18px;background:radial-gradient(ellipse at top left,#362640,#15101f 60%);box-shadow:0 24px 90px #000b;color:#eee5f6;font-size:16px;overflow:hidden}
.tw-settings-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #8d729133;flex:none}
.tw-settings-head>div{min-width:0}.tw-settings-kicker{font-size:16px;color:#d0b7e2;letter-spacing:.1em}.tw-settings-head h2{margin:4px 0 0;color:#eddaaa;font-size:24px}.tw-settings-head .tw-unified-close{position:static;flex:none}
.tw-settings-layout{display:grid;grid-template-columns:164px minmax(0,1fr);min-height:0}
.tw-settings-tabs{display:flex;flex-direction:column;gap:5px;padding:14px 10px;border-right:1px solid #8d729133;overflow:auto}
.tw-settings-tabs button{white-space:normal;text-align:left;font-size:16px;padding:10px;border:1px solid transparent;background:transparent;color:#cbbcd7;border-radius:8px}
.tw-settings-tabs button[aria-current="page"]{background:#443057;color:#f5ecff;border-color:#9d77be}
.tw-settings-tabs button:hover:not([aria-current="page"]){background:#2c2438;color:#fff}
.tw-settings-content{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:18px 20px;scrollbar-gutter:stable}
.tw-settings-content>[hidden]{display:none!important}
.tw-settings-content h3{font-size:20px;margin:0 0 16px;color:#ead9b3}.tw-settings-content h4{margin:0 0 8px;font-size:16px}
.tw-settings-content p{font-size:16px;line-height:1.5;color:#cfc2dc;margin:10px 0 16px}
.tw-settings-content :is(button,input,select,option,textarea){font-size:16px;}
.tw-settings-content button{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}
.tw-settings-content :is(button,input,select,a,summary):focus-visible,.tw-settings-tabs button:focus-visible{outline:2px solid #d6b4ff;outline-offset:2px}
.tw-settings-content .checkline{display:flex;align-items:center;gap:10px;font-size:16px;line-height:1.5}.tw-settings-content input[type="checkbox"]{width:18px;height:18px;flex:none;accent-color:#b588e2}
.tw-profile-current{display:flex;align-items:center;gap:14px;min-width:0}.tw-profile-current .tw-profile-avatar{width:72px;height:72px;flex:none;object-fit:contain;border-radius:50%;border:1px solid #b7a075;background:#14101c}
.tw-profile-current .tw-profile-avatar>img{width:100%;height:auto;max-width:none;aspect-ratio:1;transform:translateY(-2%) scale(1.08)}
.tw-profile-current>div{display:grid;min-width:0;gap:5px}.tw-profile-current strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px}.tw-profile-current span{font-size:16px;color:#c4b0d2}
.tw-avatar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}
.tw-avatar-grid .tw-avatar-option{position:relative;display:grid;place-items:center;min-width:0;aspect-ratio:1;padding:14px;border:1px solid #63516f;border-radius:14px;background:linear-gradient(150deg,#292034,#191320);color:#c9b9d6;box-shadow:inset 0 1px #ffffff09}
.tw-avatar-option .tw-avatar-option-portrait{width:100%;height:auto;aspect-ratio:1;max-width:112px;border-radius:0;border:0;background:none}
.tw-avatar-option .tw-avatar-option-portrait>img{width:100%;height:auto;max-width:none;aspect-ratio:1;transform:translateY(-3%) scale(1.12);filter:drop-shadow(0 3px 3px #0009)}
.tw-avatar-option i{position:absolute;right:5px;bottom:5px;display:none;place-items:center;width:23px;height:23px;border:1px solid #eed091;border-radius:50%;background:#332741;font-size:16px;font-style:normal;color:#ffe6a6}
.tw-avatar-grid .tw-avatar-option:hover:not([aria-pressed="true"]){background:#3b2d49;border-color:#bda6cb;box-shadow:inset 0 0 0 1px #9175a1}
.tw-avatar-grid .tw-avatar-option[aria-pressed="true"]{border-color:#dbbc78;background:radial-gradient(ellipse at center,#634477,#382747);box-shadow:inset 0 0 0 1px #dbbc78,0 0 12px #d9b76c25}.tw-avatar-option[aria-pressed="true"] i{display:grid}
.tw-profile-community{border-top:1px solid #88709755;padding-top:14px}.tw-profile-community .tw-account-community{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;width:fit-content;max-width:100%;padding:10px 12px;border:1px solid #786087;border-radius:9px;color:#dbcaf0;background:#30223f;text-decoration:none;font-size:16px}.tw-profile-community a:hover{background:#433057;border-color:#be9dda}
/* Category selection replaces the old broad checkbox list; timing stays contextual. */
.tw-notification-categories{margin:16px 0;border:1px solid #766279;border-radius:10px;background:#15111f;container-type:inline-size}
.tw-category-heading{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:13px;border-bottom:1px solid #846a4f77;color:#ebd7a9}.tw-category-heading h4{margin:0;font-size:16px}.tw-category-heading #twCategorySummary{font-size:16px;color:#cbbcd7;white-space:normal}

.tw-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:9px 4px}
.tw-category-column{display:grid;grid-auto-rows:1fr;align-content:start;min-width:0;padding:0 7px}.tw-category-column+.tw-category-column{border-left:1px solid #866d4b66}
.tw-settings-content .tw-category-choice{display:grid;grid-template-columns:20px 27px minmax(0,1fr);align-items:center;gap:7px;min-height:65px;padding:6px 3px;cursor:pointer;border-radius:6px;line-height:1.25;font-size:16px;color:#d7cbdc}.tw-category-choice:hover{background:#382a4780}.tw-category-symbol{display:grid;place-items:center;width:27px;min-height:30px;font-size:21px}.tw-category-symbol .calendar-filter-symbol{font-size:inherit}

.tw-settings-content .tw-category-choice input{appearance:none;box-sizing:border-box;width:20px;min-width:20px;max-width:20px;height:20px;margin:0;padding:0;border:2px solid #8c7352;border-radius:3px;background:#09080e;display:grid;place-items:center;box-shadow:inset 0 0 0 1px #322532;cursor:pointer}.tw-category-choice input:checked{border-color:#dab576;background:#382b43}.tw-category-choice input:checked::after{content:'';width:10px;height:6px;border-left:2px solid #ffe1a2;border-bottom:2px solid #ffe1a2;transform:translateY(-1px) rotate(-45deg)}.tw-category-choice:has(input:disabled){opacity:.6;cursor:wait}.tw-category-text{min-width:0;overflow-wrap:normal}
.tw-schedule-master{margin:12px 13px 0}
@container(max-width:480px){.tw-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tw-category-column:last-child{grid-column:1/-1;border-left:0;border-top:1px solid #866d4b66;margin-top:8px;padding-top:8px}.tw-category-column:last-child .tw-category-choice{min-height:46px}}
@container(max-width:320px){.tw-category-grid{grid-template-columns:minmax(0,1fr);padding:4px 8px}.tw-category-column+.tw-category-column{border-left:0;border-top:1px solid #866d4b66;margin-top:5px;padding-top:5px}.tw-category-column:last-child{grid-template-columns:minmax(0,1fr)}.tw-settings-content .tw-category-choice,.tw-category-column:last-child .tw-category-choice{grid-template-columns:20px 27px minmax(0,1fr);min-height:46px;gap:9px}}
.tw-settings-setting,.tw-region-default{padding:14px;margin:0 0 14px;border:1px solid #695376;border-radius:12px;background:#1a1423}.tw-region-default legend{font-size:16px;padding:0 5px;color:#d4c4df}
.tw-region-help{display:inline-grid;place-items:center;vertical-align:middle;width:28px;height:28px;padding:0;border-radius:50%;line-height:1;color:#e3d3ef}.tw-region-help:focus-visible{outline:2px solid #e8c987;outline-offset:2px}
.tw-region-default>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tw-region-default [data-profile-region]{padding:10px 5px;white-space:nowrap;letter-spacing:0}.tw-region-default [data-profile-region][aria-pressed="true"]{background:#523668;border-color:#d6b3f0;color:#fff}
.tw-sound-tests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}
.tw-settings-status{flex:none;min-height:38px;margin:0;padding:10px 20px;color:#d6c2eb;font-size:16px;border-top:1px solid #8d729133;overflow-wrap:anywhere}.tw-settings-status.is-error{color:#ffb5c4}
.tw-reminder-timing{border-top:1px solid #6b5279;padding-top:12px}.tw-reminder-timing summary{cursor:pointer;font-size:16px;color:#e2c9fa}.tw-reminder-timing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.tw-reminder-timing-grid label{display:grid;align-content:start;gap:7px;min-width:0;font-size:16px}.tw-reminder-timing-grid input{width:100%;box-sizing:border-box;min-width:0;max-width:100%}
.tw-settings-content .rule-block{margin:12px 0;padding:13px;background:#17121f;border:1px solid #5b4868;border-radius:10px}.tw-settings-content .rule-title{font-size:16px}.tw-settings-content .mini{font-size:16px;line-height:1.5}.tw-settings-content label{min-width:0;max-width:100%}.tw-settings-content :is(input,select){max-width:100%;min-width:0}.tw-settings-content .row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tw-settings-content .notify-pill{font-size:16px;white-space:normal;overflow-wrap:anywhere}
@media(max-width:500px){.tw-reminder-timing-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:980px){.tw-account-button,.tw-account-button.is-signed-in{width:46px;padding:5px}.tw-account-button>span:not(.tw-player-avatar){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.tw-account-button i{position:absolute;right:3px;bottom:4px;border:1px solid #211a2d}}
@media(max-width:680px){.tw-settings-overlay{padding:10px}.tw-settings-dialog{max-height:calc(100dvh - 20px)}.tw-settings-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.tw-settings-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-right:0;border-bottom:1px solid #8d729133;padding:8px}.tw-settings-tabs button{padding:8px 6px;text-align:center;font-size:16px}.tw-settings-content{padding:15px}.tw-avatar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tw-settings-head{padding:14px 15px}}
@media(max-width:420px){.tw-settings-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.tw-settings-tabs button:last-child{grid-column:1/-1}.tw-avatar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tw-settings-content .row2{grid-template-columns:minmax(0,1fr)}.tw-settings-head h2{font-size:22px}.tw-settings-kicker{font-size:16px}}
@media(max-width:760px){.tw-account-control{align-self:end}.top-right-utility>.tw-account-control{justify-self:end!important}.tw-account-menu{position:fixed;top:100px;right:12px}}

