:root{color-scheme:light;--bg: #e8eaef;--surface: #f2f3f7;--surface-soft: #e0e3ea;--surface-strong: #d2d6df;--border: #c0c6d4;--border-soft: #cdd2de;--text: #1b2030;--text-muted: #637088;--text-muted-strong: #445069;--accent: #3e6ec7;--accent-strong: #2e58a4;--success: #28845a;--warning: #a96e0e;--danger: #bf2e2e;--shadow: 0 1px 3px rgba(20, 30, 70, 0.08), 0 4px 16px rgba(20, 30, 70, 0.05);--radius: 8px;--fs-hero: clamp(2.1rem, 2.4vw, 2.5rem);--fs-heading: clamp(1.5rem, 1.8vw, 1.85rem);--fs-large: 1.4rem;--fs-subtitle: 1.1rem;--fs-body: 0.95rem;--fs-caption: 0.75rem}*{box-sizing:border-box}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:100%;line-height:1.55;color:var(--text);background:radial-gradient(ellipse 80% 40% at 50% -10%, rgba(62, 110, 199, 0.06), transparent 60%),var(--bg)}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-size:var(--fs-body)}body,button,input,select,textarea{font:inherit}img,svg{max-width:100%}a{color:var(--accent);text-decoration:none}a:hover,a:focus-visible{color:var(--text)}button,input[type=submit],input[type=button]{font:inherit;cursor:pointer}button,input,select,textarea{outline:none;border-radius:6px}::selection{background:rgba(62,110,199,.18);color:var(--text)}h1,h2,h3,h4,h5{color:var(--text);margin-top:0}h1{font-size:var(--fs-hero)}h2{font-size:var(--fs-heading)}p{color:var(--text-muted);margin-top:.75rem}header.app-header{padding:clamp(1rem,2vw,1.4rem) 1.5rem;background:rgba(247,248,251,.94);border-bottom:1px solid #c0c6d4;backdrop-filter:blur(14px);position:sticky;top:0;z-index:10}nav.app-nav{display:flex;justify-content:space-between;align-items:center;gap:1rem}main.main-content{width:100%;max-width:none;margin:2rem 0 3rem;padding:0 1.5rem}.login-page{display:flex;justify-content:center;align-items:flex-start;padding-top:4rem}.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);width:100%;max-width:420px}.login-card__header{padding:1.5rem 1.5rem 0}.login-card__title{font-size:var(--fs-large);font-weight:700;color:#1b2030;margin:0 0 .35rem}.login-card__subtitle{font-size:var(--fs-body);color:#637088;margin:0 0 .35rem}.nav-brand a,.nav-brand span{font-size:var(--fs-subtitle);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text)}.nav-user{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.nav-user span{color:var(--text-muted);font-size:var(--fs-body)}.nav-user strong{color:var(--text);font-weight:700}.logout-button{background:rgba(0,0,0,0);border-color:var(--border-soft);color:var(--text-muted-strong);padding:.7rem 1rem}.logout-button:hover{background:rgba(62,110,199,.1);color:var(--text)}button,input[type=submit]{display:inline-flex;align-items:center;gap:.75rem;padding:.5rem 1.25rem;border-radius:6px;font-size:var(--fs-body);font-weight:600;line-height:1.5;text-decoration:none;cursor:pointer;border:1px solid rgba(0,0,0,0);transition:transform 150ms ease,background-color 150ms ease,border-color 150ms ease,color 150ms ease;background:var(--accent);color:#f0f4fa}button:hover,input[type=submit]:hover{background:var(--accent-strong);color:#f0f4fa}button:hover,input[type=submit]:hover{transform:translateY(-1px)}button:focus-visible,input[type=submit]:focus-visible,a:focus-visible{outline:2px solid rgba(62,110,199,.28);outline-offset:3px}input,select,textarea{width:100%;padding:.9rem 1rem;border:1px solid var(--border);background:var(--surface-soft);color:var(--text);border-radius:6px;transition:border-color 180ms ease,background-color 180ms ease}input:focus,select:focus,textarea:focus{border-color:rgba(62,110,199,.55);background:rgba(20,30,60,.05)}textarea{min-height:7rem;resize:vertical}.input-large{min-height:3.2rem;padding-top:1rem;padding-bottom:1rem}label{display:block;margin-bottom:.75rem;color:var(--text-muted-strong);font-size:var(--fs-body)}.form-errors{padding:.75rem 1.25rem;margin-bottom:1.25rem;border:1px solid var(--danger);border-radius:8px;background:rgba(191,46,46,.08);color:#bf2e2e}.form-errors__title{margin:0 0 .5rem;font-size:var(--fs-body);font-weight:600}.form-errors__list{margin:0;padding-left:1.2rem}.form-group{margin-bottom:1.25rem}.form-group-divider{border-top:1px solid var(--border);margin:.75rem 0}.raidleader-notes{margin-top:1.5rem}.raidleader-notes h3{margin:0 0 .5rem}.richtext-content{margin:.75rem 0 0}.form-checkbox-inline{display:inline-flex;align-items:center;justify-content:space-between;width:100%;gap:.75rem;margin:0}.form-checkbox-inline input[type=checkbox]{width:auto;margin:0}.form-checkbox-inline span{line-height:1.15}.form-group__help{margin:0;color:var(--text-muted);font-size:var(--fs-body)}.form-section__subtitle{margin:0 0 1.25rem;color:var(--text-muted);font-size:var(--fs-body);line-height:1.5}.trix-wrapper{display:flex;flex-direction:column;gap:.5rem}trix-toolbar{border:1px solid #cdd2de;border-bottom:none;border-radius:6px 6px 0 0;background:#f2f3f7;padding:.65rem .8rem;display:flex;align-items:center;flex-wrap:wrap;box-shadow:inset 0 -1px 0 rgba(20,30,60,.05)}trix-toolbar .trix-button-row{display:flex;align-items:center;flex-wrap:wrap;width:100%}trix-toolbar [data-trix-button-group]{display:flex;align-items:center;margin:0;padding:0;border:none}trix-toolbar [data-trix-button-group]+[data-trix-button-group]{margin-left:.75rem;border-left:1px solid #cdd2de}trix-toolbar [data-trix-dialogs]{display:none}trix-toolbar .trix-button{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;padding:0;box-sizing:border-box;border:1px solid rgba(0,0,0,0);border-radius:6px;background:rgba(0,0,0,0);color:#445069;font:inherit;font-size:.95rem;font-weight:500;line-height:1;cursor:pointer;transform:none;transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease}trix-toolbar .trix-button svg{width:1rem;height:1rem;fill:currentColor;pointer-events:none}trix-toolbar .trix-button:hover{background:#e0e3ea;border-color:#cdd2de;color:#1b2030;transform:none}trix-toolbar .trix-button:focus-visible{outline:2px solid rgba(62,110,199,.28);outline-offset:3px}trix-toolbar .trix-button.trix-active{background:#e0e0e0 !important;color:#f0f4fa;border-color:#8d8d8d !important}trix-toolbar .trix-button.trix-active:hover{background:rgba(62,110,199,.16)}trix-toolbar .trix-button[disabled]{opacity:.35;cursor:not-allowed}trix-toolbar .trix-button[disabled]:hover{background:rgba(0,0,0,0);color:#637088;border-color:rgba(0,0,0,0)}trix-toolbar .trix-button--icon-attach{width:auto;padding:0 .8rem;font-size:var(--fs-caption);border-radius:6px;border:1px solid #cdd2de;background:#e0e3ea;color:#1b2030}trix-toolbar .trix-dialog{position:absolute;z-index:100;left:0;right:0;top:100%;margin-top:-1px;background:#f2f3f7;border:1px solid #cdd2de;border-radius:0 0 6px 6px;padding:.9rem .85rem;display:flex;align-items:center;gap:.65rem;box-shadow:0 20px 45px rgba(20,30,60,.08)}trix-toolbar .trix-dialog input[type=text],trix-toolbar .trix-dialog input[type=url]{flex:1;min-width:0;padding:.55rem .75rem;font-size:var(--fs-body);border:1px solid #cdd2de;border-radius:6px;background:#e0e3ea;color:#1b2030;transition:border-color 180ms ease,box-shadow 180ms ease}trix-toolbar .trix-dialog input[type=text]:focus,trix-toolbar .trix-dialog input[type=url]:focus{border-color:#cdd2de;box-shadow:none;outline:none}trix-toolbar .trix-dialog .trix-button-group{display:flex}trix-editor{width:100%;min-height:var(--trix-editor-height, 15rem);border:1px solid #cdd2de;border-radius:0 0 6px 6px;background:#fff;padding:1.1rem 1.15rem;color:#1b2030;font:inherit;font-size:var(--fs-body);line-height:1.75;box-shadow:inset 0 1px 2px rgba(20,30,60,.04);outline:none;transition:border-color 180ms ease,box-shadow 180ms ease,background-color 180ms ease}trix-editor:focus-within{border-color:#cdd2de;box-shadow:inset 0 1px 2px rgba(20,30,60,.04)}trix-editor .trix-content{line-height:1.75}trix-editor .trix-content>*:first-child{margin-top:0}trix-editor .trix-content>*:last-child{margin-bottom:0}trix-editor .trix-content h1{font-size:1.25rem;font-weight:700;color:#1b2030;margin:1.05rem 0 .5rem;line-height:1.3;border-bottom:1px solid #cdd2de;padding-bottom:.3rem}trix-editor .trix-content h2{font-size:1.05rem;font-weight:600;color:#1b2030;margin:.85rem 0 .35rem;line-height:1.35}trix-editor .trix-content p{margin:0 0 .8rem}trix-editor .trix-content strong{font-weight:700;color:#1b2030}trix-editor .trix-content em{font-style:italic}trix-editor .trix-content del,trix-editor .trix-content s{text-decoration:line-through;color:#637088}trix-editor .trix-content a{color:#3e6ec7;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;transition:color 150ms ease}trix-editor .trix-content a:hover{color:#2e58a4}trix-editor .trix-content ul,trix-editor .trix-content ol{margin:.4rem 0 .9rem 1.5rem;padding:0}trix-editor .trix-content ul li,trix-editor .trix-content ol li{margin-bottom:.35rem}trix-editor .trix-content ul{list-style:disc}trix-editor .trix-content ol{list-style:decimal}trix-editor .trix-content blockquote{margin:1.1rem 0;padding:1rem 1.1rem;border-left:3px solid #3e6ec7;background:rgba(62,110,199,.08);border-radius:0 6px 6px 0;color:#445069;font-style:italic}trix-editor .trix-content blockquote>*{margin:0}trix-editor .trix-content pre,trix-editor .trix-content code{font-family:"ui-monospace","SFMono-Regular","Consolas",monospace;font-size:.875em}trix-editor .trix-content pre{margin:.9rem 0;padding:1rem 1rem;background:#d2d6df;border:1px solid #cdd2de;border-radius:6px;overflow-x:auto;line-height:1.55;color:#1b2030}trix-editor .trix-content code:not(pre code){padding:.16em .4em;background:#d2d6df;border:1px solid #cdd2de;border-radius:5px;color:#1b2030}trix-editor .trix-content hr{border:none;border-top:1px solid #cdd2de;margin:1rem 0}trix-editor .trix-content .attachment{position:relative;display:inline-block}trix-editor .trix-content .attachment--preview{display:block;text-align:center;margin:.9rem 0}trix-editor .trix-content .attachment--preview img{max-width:100%;border-radius:6px;border:1px solid #cdd2de}trix-editor .trix-content .attachment--file{display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .85rem;background:#e0e3ea;border:1px solid #cdd2de;border-radius:6px;font-size:var(--fs-caption);color:#445069}trix-editor .trix-content .attachment__caption{display:block;font-size:var(--fs-caption);color:#637088;text-align:center;margin-top:.3rem}trix-editor .trix-content .attachment__caption--editing{border-bottom:1px dashed #cdd2de;outline:none}trix-editor .trix-content .attachment__progress{position:absolute;bottom:0;left:0;right:0;height:4px;background:#d2d6df;border-radius:0 0 6px 6px;overflow:hidden}trix-editor .trix-content .attachment__progress[value]{appearance:none}trix-editor .trix-content .attachment__progress[value]::-webkit-progress-bar{background:#d2d6df}trix-editor .trix-content .attachment__progress[value]::-webkit-progress-value{background:#3e6ec7;transition:width .22s ease}trix-editor .trix-content .attachment__progress[value]::-moz-progress-bar{background:#3e6ec7}trix-editor .trix-content figure.attachment--selected img{outline:2px solid #3e6ec7;outline-offset:3px}.trix-editor--short{--trix-editor-height: 10rem}.trix-editor--tall{--trix-editor-height: 22rem}.flash-notice,.flash-alert{padding:1rem 1.1rem;margin-bottom:1.25rem;border-radius:6px;border:1px solid var(--border)}.flash-notice{background:rgba(40,132,90,.1);color:#1c5c38}.flash-alert{background:rgba(191,46,46,.09);color:#7a1e1e}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius)}.section-divider{border-top:1px solid #c0c6d4;margin:2.5rem 0}section.raid-appointment-definition{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);padding:1.5rem;margin-bottom:2rem}table.existing-appointments{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);width:100%;background:#f2f3f7;border:1px solid #c0c6d4;font-size:var(--fs-body);border-collapse:separate;border-spacing:0;margin-top:1rem}table.existing-appointments th,table.existing-appointments td{padding:.95rem 1rem;border-bottom:1px solid #c0c6d4;text-align:left;border-bottom:1px solid rgba(20,30,60,.07)}table.existing-appointments th{font-size:var(--fs-caption);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#637088;background:rgba(20,30,60,.02);border-bottom:1px solid #c0c6d4;text-align:left}table.existing-appointments tbody tr:hover{background:rgba(20,30,60,.05)}.delete-appointment-button{font-size:var(--fs-caption);padding:.35rem .5rem;background:rgba(0,0,0,0);color:var(--text-muted-strong);border:1px solid rgba(20,30,60,.09)}.delete-appointment-button:hover{background:rgba(191,46,46,.15);color:#bf2e2e}.centered-cell{text-align:center !important}.group-tabs{margin-top:2rem}.group-tabs .tab-bar{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:2px solid #c0c6d4;gap:1rem}.group-tabs .tab-bar>.btn-secondary{margin-bottom:.25rem;flex-shrink:0}.group-tabs .tab-links{display:flex;flex-wrap:wrap;gap:0;margin:0;padding:0;list-style:none;border-bottom:none;flex:1}.group-tabs .tab-links li{margin:0}.group-tabs .tab-links a{display:inline-flex;align-items:center;padding:.5rem 1.5rem;margin-bottom:-2px;font-size:var(--fs-body);font-weight:500;color:#637088;text-decoration:none;border-bottom:2px solid rgba(0,0,0,0);transition:color 150ms ease,border-color 150ms ease}.group-tabs .tab-links a:hover{color:#1b2030;border-bottom-color:#c0c6d4}.group-tabs .tab-links li:first-child a,.group-tabs .tab-links li.tab-active a{color:#3e6ec7;border-bottom-color:#3e6ec7;font-weight:600}.group-tabs .tab-links li:first-child:not(.tab-active) a{color:#637088;border-bottom-color:rgba(0,0,0,0);font-weight:500}.group-tabs .tab-content{border:1px solid #c0c6d4;border-top:none;border-radius:0 0 8px 8px;background:#f2f3f7;box-shadow:0 2px 8px rgba(20,30,60,.04)}.group-tabs .tab-content>section{display:none;padding:1.75rem}.group-tabs:not(.js-tabs) .tab-content>section:first-of-type,.group-tabs .tab-content>section.tab-visible{display:block}.group-tabs.js-tabs .tab-content>section:first-of-type:not(.tab-visible){display:none}.tab-section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.tab-section-header__title{display:flex;align-items:center;gap:.75rem}.tab-section-header .fight-actions{display:flex;align-items:center}.tab-section-header__left{display:flex;flex-direction:column;gap:.2rem}.tab-section-header h2{margin:0;font-size:var(--fs-subtitle);font-weight:700;color:#1b2030}.tab-section-header .fight-edit-link{color:inherit;text-decoration:none}.tab-section-header .fight-edit-link:hover,.tab-section-header .fight-edit-link:focus{text-decoration:underline}.tab-section-header .fight-delete-button{margin-left:-1rem}.tab-section-header__meta{font-size:var(--fs-caption);color:#637088;letter-spacing:.02em}.fights-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.fights-list__item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem .75rem;background:rgba(20,30,60,.02);border-radius:8px;border:1px solid #c0c6d4}.fights-list__info{display:flex;align-items:center;gap:.75rem}.fights-list__info strong{font-size:var(--fs-body);color:#1b2030}.fights-list__slot{font-size:var(--fs-caption);color:#637088}.btn-icon-danger{background:rgba(0,0,0,0);border:none;padding:0 .2rem;cursor:pointer;color:#637088;font-size:var(--fs-body);line-height:1;flex-shrink:0}.btn-icon-danger:hover,.btn-icon-danger:focus,.btn-icon-danger:active{background:rgba(0,0,0,0);color:#bf2e2e}.btn-icon-danger>form{display:contents}.group-calendar-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.group-calendar{width:100%;background:#f2f3f7;border:1px solid #c0c6d4;font-size:var(--fs-body);width:100%;min-width:min(100%,max-content);border-collapse:collapse;border-spacing:0;margin-top:1rem}.group-calendar th,.group-calendar td{padding:.45rem .65rem;border-bottom:1px solid #c0c6d4;text-align:left;text-align:left}.group-calendar th:first-child,.group-calendar td:first-child{text-align:left}.group-calendar:not(.fight-roster) td{vertical-align:middle}.group-calendar.fight-roster th,.group-calendar.fight-roster td{text-align:left;vertical-align:top}.group-calendar th{font-size:var(--fs-caption);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#637088;background:rgba(20,30,60,.02);border-bottom:1px solid #c0c6d4;text-align:left;vertical-align:bottom}.group-calendar th.col-date{width:2.5rem;padding:.5rem .2rem}.date-rotated{display:flex;flex-direction:column;align-items:center;gap:.1rem;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}.date-rotated span:first-child{font-weight:700;color:#445069}.date-rotated span:last-child{font-weight:400;color:#637088;font-size:var(--fs-caption)}.group-calendar td:first-child,.group-calendar td.col-sub{white-space:nowrap}.group-calendar th.col-sub,.group-calendar td.col-sub{width:1%}.group-calendar td.role{width:1%;white-space:nowrap}.sub-badge{display:inline-block;padding:.2rem .35rem;font-size:var(--fs-caption);font-weight:700;letter-spacing:.05em;background:rgba(169,110,14,.15);color:#a96e0e;border-radius:999px}.subclass-icons{display:flex;flex-wrap:nowrap;gap:.25rem;align-items:center;height:100%;min-height:1.75rem;margin-top:0}.subclass-icon,.gearset-icon,.ultimate-icon,.skill-icon{width:1.75rem;height:1.75rem;aspect-ratio:1/1;border-radius:.35rem;border:1px solid rgba(27,32,48,.1);object-fit:contain;max-width:none;margin:0;display:block}.gearset-item,.skill-item,.ultimate-item{display:inline-flex;align-items:center;gap:.5rem;vertical-align:middle}.feature-cell{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.5rem}.feature-edit{flex:0 0 auto}.feature-values{display:flex;flex-direction:column;flex:1 1 0;min-width:0;gap:.35rem}.feature-values--inline{width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.35rem}.feature-values--inline .feature-item{margin:0}.feature-item{display:inline-flex;align-items:center;gap:.5rem}.gearset-item a,.skill-item a,.ultimate-item a{display:inline-flex;align-items:center;gap:.5rem}.group-calendar th.col-subclass,.group-calendar td.col-subclass{width:1%;white-space:nowrap}.group-calendar tbody tr:hover{background:rgba(20,30,60,.05)}.group-calendar tbody tr:last-child td{border-bottom:none}.group-calendar td{color:#1b2030}.group-calendar td.member-absent{color:#bf2e2e;font-weight:600}.group-calendar td.member-substitute{color:#a96e0e;font-weight:600}.group-calendar td.attendance-absent{background:rgba(191,46,46,.12)}.group-calendar td[class*=attendance]{text-align:center;vertical-align:middle}.group-calendar td[class*=attendance] form{display:flex;justify-content:center;align-items:center}.group-calendar.fight-roster{margin-top:1.5rem}.group-calendar.fight-roster th{font-weight:700;text-transform:uppercase;color:#637088}.group-calendar.fight-roster tr:last-child td{border-bottom:none}.fight-roster__title{margin:1.5rem 0 .5rem;font-size:var(--fs-body);font-weight:700}.member-name-link{color:inherit;text-decoration:none;font-weight:inherit;font-size:inherit;font-family:inherit;background:none;border:none;padding:0;margin:0;cursor:pointer;text-align:left}.member-name-link:hover{color:var(--accent);text-decoration:underline;background:none}.member-name-with-action{display:inline-flex;align-items:center;gap:.5rem;vertical-align:middle}.member-name{font-weight:inherit}.gear-set-table-wrapper{max-height:14rem;overflow-y:auto;padding-right:.5rem}.icon-only{margin-right:1rem;padding:.15rem;border:1px solid rgba(0,0,0,0);border-radius:.35rem;background:rgba(0,0,0,0);color:#333;display:inline-flex;align-items:center;justify-content:center;line-height:0;vertical-align:middle;cursor:pointer;transition:border-color 150ms ease,background-color 150ms ease;flex:none}.icon-only:hover,.icon-only:focus-visible{color:#333;border-color:rgba(0,0,0,.18);background-color:rgba(0,0,0,.04)}.editable-cell{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.group-calendar.fight-roster td .icon-only{margin-top:auto;margin-bottom:auto}.icon-only img,.icon-only svg{width:16px;height:16px;min-width:16px;min-height:16px;display:block}.gear-set-table{width:100%;border-collapse:collapse;font-size:var(--fs-body);border:1px solid #c0c6d4}.gear-set-table th,.gear-set-table td{padding:.45rem .6rem;border-bottom:1px solid #c0c6d4;text-align:left;vertical-align:middle}.gear-set-table th{font-size:var(--fs-caption);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#637088;background:rgba(20,30,60,.02);border-bottom:1px solid #c0c6d4;text-align:left}.gear-set-table td:first-child{width:3.25rem}.gear-set-table tbody tr:hover{background:rgba(20,30,60,.05)}.gear-set-table thead tr{background-color:rgba(20,30,60,.02);border:1px solid #c0c6d4}.roster-h2{font-size:var(--fs-subtitle)}.roster-legend{display:flex;gap:1.25rem;margin-top:.75rem;flex-wrap:wrap}.roster-legend__item{display:flex;align-items:center;gap:.4rem;font-size:var(--fs-caption);color:#637088}.roster-legend__dot{width:.55rem;height:.55rem;border-radius:50%;flex-shrink:0}.roster-legend__dot--absent{background:#bf2e2e}.roster-legend__dot--substitute{background:#a96e0e}.group-calendar td.role{color:#637088;font-size:var(--fs-caption)}.role{font-size:var(--fs-body);color:var(--text-muted-strong)}.attendance-cell{min-width:3rem}.attendance-cell form{margin:0}.attendance-cell input[type=checkbox]{transform:scale(1.1);accent-color:var(--accent)}.dashboard-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:2.5rem}.dashboard-header__actions{display:flex;gap:.75rem;align-items:center;flex-shrink:0}.dashboard-title{font-size:var(--fs-heading);font-weight:700;letter-spacing:-0.02em;color:#1b2030;margin:0}.dashboard-subtitle{font-size:var(--fs-body);color:#637088;margin:.2rem 0 0}.btn-primary,input[type=submit].btn-primary{display:inline-flex;align-items:center;gap:.75rem;padding:.6rem 1.1rem;border-radius:6px;font-size:var(--fs-body);font-weight:600;line-height:1.5;text-decoration:none;cursor:pointer;border:1px solid rgba(0,0,0,0);transition:transform 150ms ease,background-color 150ms ease,border-color 150ms ease,color 150ms ease;background:#3e6ec7;color:#f0f4fa}.btn-primary:hover,input[type=submit].btn-primary:hover{background:#2e58a4;color:#f0f4fa}.btn-primary:hover,input[type=submit].btn-primary:hover{transform:translateY(-1px)}.btn-secondary{display:inline-flex;align-items:center;gap:.75rem;padding:.6rem 1.1rem;border-radius:6px;font-size:var(--fs-body);font-weight:500;line-height:1.5;text-decoration:none;cursor:pointer;border:1px solid #c0c6d4;transition:transform 150ms ease,background-color 150ms ease,border-color 150ms ease,color 150ms ease;background:rgba(0,0,0,0);color:#445069}.btn-secondary:hover{background:rgba(20,30,60,.05);color:#1b2030}.btn-danger{display:inline-flex;align-items:center;gap:.75rem;padding:.6rem 1.1rem;border-radius:6px;font-size:var(--fs-body);font-weight:500;line-height:1.5;text-decoration:none;cursor:pointer;border:1px solid #cdd2de;transition:transform 150ms ease,background-color 150ms ease,border-color 150ms ease,color 150ms ease;background:rgba(0,0,0,0);color:#637088}.btn-danger:hover{background:rgba(191,46,46,.15);color:#bf2e2e}.btn-secondary-dash{display:inline-flex;align-items:center;gap:.75rem;padding:.3rem 1.1rem;border-radius:6px;font-size:var(--fs-body);font-weight:500;line-height:1.5;text-decoration:none;cursor:pointer;border:1px solid #c0c6d4;transition:transform 150ms ease,background-color 150ms ease,border-color 150ms ease,color 150ms ease;background:rgba(0,0,0,0);color:#637088}.btn-secondary-dash:hover{background:rgba(20,30,60,.05);color:#1b2030}.btn-danger-dash{display:inline-flex;align-items:center;gap:.75rem;padding:.3rem 1.1rem;border-radius:6px;font-size:var(--fs-body);font-weight:500;line-height:1.5;text-decoration:none;cursor:pointer;border:1px solid #c0c6d4;transition:transform 150ms ease,background-color 150ms ease,border-color 150ms ease,color 150ms ease;background:rgba(0,0,0,0);color:#637088}.btn-danger-dash:hover{background:rgba(191,46,46,.15);color:#bf2e2e}.btn-secondary-dash,.btn-danger-dash{display:inline-flex;align-items:center;line-height:1.5;vertical-align:middle}.btn-sm{padding:.35rem .75rem;font-size:var(--fs-caption)}.pagy-navigation{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.35rem .5rem;border-radius:8px;background:rgba(0,0,0,0);border:none}.pagy-navigation.pagy-navigation--top{margin-bottom:.5rem}.pagy-navigation.pagy-navigation--bottom{margin-top:.5rem}.pagy-navigation .pagy-info{font-size:var(--fs-caption);color:#637088}.pagy-navigation .pagy-links{display:flex;gap:.35rem;flex-wrap:wrap}.pagy-navigation .btn-secondary.disabled,.pagy-navigation .btn-secondary[disabled]{cursor:default;opacity:.4;pointer-events:none}.btn-add-fight{margin-bottom:.35rem}input[type=submit].btn-primary.btn-sm,input[type=submit].btn-sm{padding:.35rem .75rem;font-size:var(--fs-caption)}.btn-save-notes{margin-top:.75rem;padding:.35rem .75rem;font-size:var(--fs-caption);max-width:9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.dialog-open{overflow:hidden}.member-dialog{border:1px solid #c0c6d4;border-radius:8px;box-shadow:0 8px 32px rgba(20,30,60,.14);background:#f2f3f7;padding:0;min-width:340px;max-width:480px;width:100%}.member-dialog::backdrop{background:rgba(20,30,60,.3)}.member-dialog__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem .75rem;border-bottom:1px solid #c0c6d4}.member-dialog__title{font-size:var(--fs-body);font-weight:700;color:#1b2030;margin:0}.member-dialog__close{background:none;border:none;font-size:var(--fs-subtitle);border-radius:6px}.member-dialog__close:hover{color:#1b2030;background:rgba(20,30,60,.05)}.member-dialog .form-section{border-top:none}dialog#dlg-current-markers.member-dialog{max-width:760px}.marker-value-card{display:grid;gap:.75rem;margin-bottom:1.5rem}.marker-value-card__meta{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-size:var(--fs-body);color:#637088}.marker-value-card__body{display:flex;gap:.5rem;align-items:flex-start}.marker-value-card__textarea-wrapper{flex:1}.marker-value-card__text{width:100%;min-height:10rem;padding:1rem;font-family:inherit;font-size:var(--fs-body);line-height:1.5}.marker-value-card__actions{display:flex;align-items:flex-start}.btn-copy{padding:.45rem .75rem;min-width:0;white-space:nowrap}.group-meta{display:flex;gap:1.75rem;flex-wrap:wrap;margin-bottom:2rem}.group-meta__item{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.5rem;min-width:120px}.group-meta__label{font-size:var(--fs-caption);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#637088}.group-meta__value{font-size:var(--fs-subtitle);font-weight:600;color:#1b2030}.group-meta__item--raids{flex:1;min-width:200px}.group-meta__raids{display:flex;flex-direction:column;gap:.75rem;margin-top:.2rem}.raids-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.raids-list__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.raids-list__name{font-size:var(--fs-body);font-weight:600;color:#1b2030}.raids-list__delete{background:none;border:none;padding:0 .2rem;cursor:pointer;color:#637088;font-size:var(--fs-caption);line-height:1}.raids-list__delete:hover{color:#bf2e2e}.raids-list__delete>form{display:contents}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(min(100%, 340px), 1fr));gap:1.25rem}.group-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);display:flex;flex-direction:column;transition:box-shadow 180ms ease,transform 180ms ease}.group-card:hover{box-shadow:0 2px 6px rgba(20,30,70,.1),0 8px 24px rgba(20,30,70,.08);transform:translateY(-2px)}.group-card__body{padding:1.4rem 1.4rem 1rem;flex:1}.group-card__name-link{text-decoration:none;color:inherit}.group-card__name-link:hover .group-card__name{color:#3e6ec7}.group-card__name{font-size:var(--fs-subtitle);font-weight:700;letter-spacing:-0.01em;color:#1b2030;margin:0 0 .5rem;transition:color 150ms ease}.group-card__description{font-size:var(--fs-body);color:#637088;line-height:1.5;margin:0;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.group-card__meta{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid #c0c6d4;border-bottom:1px solid #c0c6d4}.group-card__meta-item{display:flex;flex-direction:column;padding:.75rem 1.4rem;gap:.2rem}.group-card__meta-item:nth-child(odd){border-right:1px solid #c0c6d4}.group-card__meta-label{font-size:var(--fs-caption);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#637088}.group-card__meta-value{font-size:var(--fs-body);font-weight:600;color:#1b2030}.group-card__footer{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.4rem}.group-card__view-link{font-size:var(--fs-body);font-weight:600;color:#3e6ec7;text-decoration:none;transition:color 150ms ease}.group-card__view-link:hover{color:#2e58a4}.group-card__edit-link{font-size:var(--fs-caption);color:#637088;text-decoration:none;padding:.3rem .6rem;border:1px solid #cdd2de;border-radius:6px;transition:background 150ms ease,color 150ms ease}.group-card__edit-link:hover{background:rgba(20,30,60,.05);color:#1b2030}.groups-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:4rem 2rem;border:1px dashed #c0c6d4;border-radius:8px;text-align:center}.groups-empty__text{font-size:var(--fs-subtitle);color:#637088;margin:0}.page-header{margin-bottom:2rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.page-header__left{flex:1}.page-header__actions{display:flex;align-items:center;gap:.75rem;padding-top:2.4rem}.page-back-link{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--fs-caption);font-weight:500;color:#637088;text-decoration:none;margin-bottom:1rem;transition:color 150ms ease}.page-back-link:hover{color:#3e6ec7}.page-title{font-size:var(--fs-heading);font-weight:700;letter-spacing:-0.02em;color:#1b2030;margin:0 0 .2rem}.page-title__editable{text-decoration:none;color:inherit}.page-title__editable:hover{text-decoration:underline}.page-subtitle{font-size:var(--fs-body);color:#637088;margin:0}.form-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);max-width:600px;min-width:0}.form-card--full{max-width:none}.edit-top-layout{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:2rem;align-items:start}.edit-top-layout>*{min-width:0}@media(max-width: 1500px){.edit-top-layout{grid-template-columns:1fr}}.form-section{padding:1.5rem 1.75rem}.form-section+.form-section{border-top:1px solid #c0c6d4}.form-section__title{font-size:var(--fs-caption);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#637088;margin:0 0 1.1rem}.form-grid{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.75rem;margin:0}.form-group label{margin-bottom:0}.form-actions{display:flex;align-items:center;gap:.75rem;padding:1.1rem 1.75rem;border-top:1px solid #c0c6d4;background:rgba(20,30,60,.02);border-radius:0 0 8px 8px}.form-actions input[type=submit],.form-actions button{width:auto}.members-section__header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:1rem}.members-section__title{font-size:var(--fs-subtitle);font-weight:700;color:#1b2030;margin:0}.members-section__count{font-size:var(--fs-caption);color:#637088}.raid-slots-section{margin-top:2.5rem}.raid-slots-section__header{margin-bottom:1.25rem}.raid-slots-section__title{font-size:var(--fs-subtitle);font-weight:700;color:#1b2030;margin:0 0 .25rem}.raid-slots-section__subtitle{font-size:var(--fs-body);color:#637088;margin:0}.members-section-wrapper{margin-top:2.5rem}.members-section-wrapper__header{margin-bottom:1.25rem}.members-section-wrapper__title{font-size:var(--fs-subtitle);font-weight:700;color:#1b2030;margin:0 0 .25rem}.members-section-wrapper__subtitle{font-size:var(--fs-body);color:#637088;margin:0}.edit-top-layout--slots{margin-bottom:0}.members-table__inner{width:100%;border-collapse:collapse}.members-table__inner th{font-size:var(--fs-caption);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#637088;background:rgba(20,30,60,.02);border-bottom:1px solid #c0c6d4;text-align:left;padding:.7rem 1.25rem}.members-table__inner td{padding:.75rem 1.5rem;border-bottom:1px solid #c0c6d4;text-align:left;color:#1b2030;vertical-align:middle}.members-table__inner th.col-subclass,.members-table__inner td.col-subclass{text-align:left;vertical-align:middle;white-space:nowrap;padding-right:.75rem}.members-table__inner td.col-subclass{padding-top:.85rem;padding-bottom:.85rem;padding-right:0}.members-table__inner tbody tr:last-child td{border-bottom:none}.members-table__inner tbody tr:hover{background:rgba(20,30,60,.05)}.members-table__inner td.member-actions{display:table-cell;text-align:right;padding-right:1rem;white-space:nowrap}.members-table__inner td.member-actions>button{display:inline-flex;align-items:center;vertical-align:middle}.members-table__inner td.member-actions>form{display:inline-flex;align-items:center;vertical-align:middle;margin-left:.5rem}.raidleads-table{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);overflow:hidden}.raidleads-table table{width:100%;border-collapse:collapse}.raidleads-table thead tr{background:rgba(20,30,60,.02);border-bottom:1px solid #c0c6d4}.raidleads-table th{font-size:var(--fs-caption);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#637088;background:rgba(20,30,60,.02);border-bottom:1px solid #c0c6d4;text-align:left;padding:.55rem 1rem}.raidleads-table td{padding:.3rem 1rem;border-bottom:1px solid #c0c6d4;text-align:left;color:#1b2030;vertical-align:middle}.raidleads-table tbody tr:last-child td{border-bottom:none}.raidleads-table tbody tr:hover{background:rgba(20,30,60,.05)}.raidleads-table .rl-email{color:#637088}.raidleads-table .rl-groups{color:#445069;font-variant-numeric:tabular-nums}.raidleads-table .rl-actions{text-align:right;padding-right:.75rem}.raidleads-table .rl-actions form{display:inline-flex;align-items:center;vertical-align:middle;margin-left:.35rem}.raidleads-table .skill-icon,.raidleads-table .ultimate-icon,.raidleads-table .gearset-icon,.raidleads-table img.skill-icon,.raidleads-table img.ultimate-icon,.raidleads-table img.gearset-icon{width:1.75rem;height:1.75rem;aspect-ratio:1/1;border-radius:.35rem;border:1px solid rgba(27,32,48,.1);object-fit:contain;max-width:none;margin:0;display:block}.rl-delete-btn{display:inline-flex;align-items:center;padding:.35rem .75rem;font-size:var(--fs-body);font-weight:500;line-height:1.5;background:rgba(0,0,0,0);color:#637088;border:1px solid #cdd2de;border-radius:6px;cursor:pointer;transition:background 150ms ease,color 150ms ease,border-color 150ms ease}.rl-delete-btn:hover{background:rgba(191,46,46,.15);color:#bf2e2e;border-color:rgba(191,46,46,.25)}.members-management{margin-top:3rem}.members-management__header{margin-bottom:1.5rem}.members-management__title{font-size:var(--fs-subtitle);font-weight:700;color:#1b2030;margin:0 0 .25rem}.members-management__subtitle{font-size:var(--fs-body);color:#637088;margin:0}.members-table{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);overflow:hidden;margin-bottom:2rem}.members-table table{width:100%;border-collapse:collapse}.members-table thead tr{background:rgba(20,30,60,.02);border-bottom:1px solid #c0c6d4}.members-table th{font-size:var(--fs-caption);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#637088;background:rgba(20,30,60,.02);border-bottom:1px solid #c0c6d4;text-align:left;padding:.55rem 1rem}.members-table td{padding:.65rem 1rem;border-bottom:1px solid #c0c6d4;text-align:left;line-height:1.25;color:#1b2030;vertical-align:middle}.members-table tbody tr:last-child td{border-bottom:none}.members-table tbody tr:hover{background:rgba(20,30,60,.05)}.members-table .member-name{font-weight:500;display:flex;align-items:center;gap:.75rem}.members-table .member-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding-right:.75rem}.members-table .member-actions>form{display:contents}td.member-actions{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding-right:1rem}td.member-actions>form{display:contents}.member-edit-form{display:inline-flex;align-items:center;gap:.75rem;margin-right:.5rem}.member-inline-input{padding:.35rem .55rem;font-size:var(--fs-caption);border:1px solid #c0c6d4;border-radius:6px;background:#f2f3f7;color:#1b2030;width:160px}.member-inline-input:focus{outline:none;border-color:#3e6ec7;box-shadow:0 0 0 2px rgba(62,110,199,.15)}.member-inline-select{padding:.35rem .55rem;font-size:var(--fs-caption);border:1px solid #c0c6d4;border-radius:6px;background:#f2f3f7;color:#1b2030;cursor:pointer}.member-inline-select:focus{outline:none;border-color:#3e6ec7;box-shadow:0 0 0 2px rgba(62,110,199,.15)}.member-save-btn{display:inline-flex;align-items:center;padding:.35rem .75rem;font-size:var(--fs-caption);font-weight:500;background:rgba(0,0,0,0);color:#3e6ec7;border:1px solid rgba(62,110,199,.4);border-radius:6px;cursor:pointer;transition:background 150ms ease,color 150ms ease}.member-save-btn:hover{background:rgba(62,110,199,.08)}.member-remove-btn{display:inline-flex;align-items:center;padding:.35rem .75rem;font-size:var(--fs-caption);font-weight:500;background:rgba(0,0,0,0);color:#637088;border:1px solid #cdd2de;border-radius:6px;cursor:pointer;transition:background 150ms ease,color 150ms ease,border-color 150ms ease}.member-remove-btn:hover{background:rgba(191,46,46,.15);color:#bf2e2e;border-color:rgba(191,46,46,.25)}.role-badge{display:inline-block;padding:.2rem .6rem;font-size:var(--fs-caption);font-weight:600;border-radius:999px;letter-spacing:.04em}.role-badge--heal{background:rgba(40,132,90,.12);color:rgb(39.509569378,143.990430622,68.4832535885)}.role-badge--tank{background:rgba(62,110,199,.12);color:#2e58a4}.role-badge--damage{background:rgba(191,46,46,.12);color:#bf2e2e}.role-badge--fight-tank{background:rgba(62,110,199,.12);color:#2e58a4}.role-badge--fight-healer{background:rgba(40,132,90,.12);color:rgb(39.509569378,143.990430622,68.4832535885)}.role-badge--fight-damage{background:rgba(191,46,46,.12);color:#bf2e2e}.role-badge--fight-unassigned{background:rgba(99,112,136,.1);color:#637088}.current-badge{display:inline-block;padding:.15rem .5rem;font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:rgba(40,132,90,.15);color:rgb(39.509569378,143.990430622,68.4832535885);border-radius:999px}.members-add-form{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:var(--radius);padding:1.5rem}.members-add-form__title{font-size:var(--fs-body);font-weight:600;color:#1b2030;margin:0 0 1.25rem}.members-add-row{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap}.members-add-row .form-group{margin-bottom:0;min-width:160px}.members-add-row input[type=submit].btn-primary{align-self:flex-end;margin-top:auto}
