:root{--bg-primary:#1a1a2e;--bg-secondary:#16213e;--bg-tertiary:#0f3460;--bg-card:#1e2757;--text-primary:#e0d6c8;--text-secondary:#a89b8c;--text-muted:#6b7c8e;--accent:#e6a834;--accent-hover:#f5bc43;--accent-dark:#b8861d;--free:#4caf50;--conditional:#ff9800;--unavailable:#f44336;--event-primary:#7c4dff;--event-secondary:#448aff;--border:#2a3a5e;--danger:#d32f2f;--shadow:#0000004d;--glow-gold:#e6a83459;--glow-purple:#7c4dff59;--radius:10px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:radial-gradient(1100px 480px at 50% -8%,#e6a83414,#0000 60%),radial-gradient(850px 420px at 88% 108%,#7c4dff17,#0000 60%),linear-gradient(#16163a 0%,#1a1a2e 45%,#101024 100%);background-attachment:fixed;font-family:Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.6}::selection{color:#fff;background:#e6a83459}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border:2px solid var(--bg-primary);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--accent-dark)}@media (pointer:coarse){*{scrollbar-width:none}::-webkit-scrollbar{display:none}}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}.app-layout{flex-direction:column;width:100%;min-width:0;min-height:100vh;display:flex}.app-layout>*{min-width:0}nav{z-index:500;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:linear-gradient(#182242eb 0%,#16213edb 100%);justify-content:space-between;align-items:center;height:56px;padding:0 2rem;display:flex;position:sticky;top:0;box-shadow:0 2px 16px #00000059}nav:before{content:"";background:linear-gradient(90deg, transparent 0%, var(--accent) 25%, #f7dc9a 50%, var(--accent) 75%, transparent 100%);opacity:.65;pointer-events:none;height:2px;position:absolute;top:0;left:0;right:0}.hamburger-btn{display:none}.nav-brand{color:var(--accent);letter-spacing:.5px;text-shadow:0 0 16px var(--glow-gold);font-size:1.1rem;font-weight:700}.nav-brand:first-letter{text-shadow:0 0 10px #e6a834b3;font-size:1.25em}.nav-links{align-items:center;gap:1.2rem;display:flex}.nav-link{color:var(--text-secondary);border-bottom:2px solid #0000;padding:.3rem 0;font-size:.9rem;transition:color .2s,border-color .2s}.nav-link:hover,.nav-link.active{color:var(--text-primary);border-bottom-color:var(--accent)}.campaign-select{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:.3rem .6rem;font-size:.85rem}.campaign-select:focus{border-color:var(--accent);outline:none}.card{background:linear-gradient(180deg, #242e68 0%, var(--bg-card) 55%);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:0 6px 20px #00000059,inset 0 1px #ffffff0a}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.5rem 1.2rem;font-size:.9rem;font-weight:600;transition:transform .15s,box-shadow .2s,background .2s,border-color .2s;display:inline-flex;box-shadow:0 1px 3px #0000004d}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:disabled:active{transform:none}.btn-primary{background:linear-gradient(180deg, #f7c95c 0%, var(--accent) 55%, #d99a26 100%);color:#1a1a2e;box-shadow:0 2px 10px var(--glow-gold), inset 0 1px 0 #ffffff59}.btn-primary:hover{background:linear-gradient(180deg, #ffd97a 0%, var(--accent-hover) 55%, var(--accent) 100%);text-decoration:none;box-shadow:0 4px 18px #e6a83480,inset 0 1px #ffffff59}.btn-secondary{background:linear-gradient(180deg, #1c2c5c 0%, var(--bg-tertiary) 100%);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background-color:var(--border);border-color:#3d5488}.btn-danger{background:linear-gradient(180deg, #e05252 0%, var(--danger) 60%, #b71c1c 100%);color:#fff}.btn-danger:hover{background:linear-gradient(#ef6060 0%,#c62828 100%);box-shadow:0 3px 14px #d32f2f66}.btn-sm{padding:.3rem .8rem;font-size:.8rem}.form-group{margin-bottom:1rem}.form-label{color:var(--text-secondary);margin-bottom:.3rem;font-size:.85rem;font-weight:600;display:block}.form-input,.form-select,.form-textarea{background-color:var(--bg-primary);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:6px;padding:.6rem .8rem;font-size:.95rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #e6a83433}.form-textarea{resize:vertical;min-height:60px}.container{width:100%;max-width:1200px;margin:0 auto;padding:2rem}.container-sm{max-width:480px;margin:0 auto;padding:2rem}.calendar-swipe-clip{overflow-x:clip}.calendar-grid{background-color:var(--border);border:1px solid var(--border);touch-action:pan-y;overscroll-behavior-x:none;border-radius:8px;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.calendar-guide{color:var(--text-secondary);gap:.45rem;margin:0 0 .25rem 1.2rem;font-size:.9rem;display:grid}.calendar-guide em{color:var(--accent);font-style:normal}.calendar-header-cell{background-color:var(--bg-secondary);text-align:center;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;padding:.6rem;font-size:.85rem;font-weight:700}.calendar-cell{background-color:var(--bg-card);min-height:100px;padding:.4rem;transition:background-color .15s;position:relative}.calendar-cell:hover{background-color:var(--bg-tertiary)}.calendar-cell .day-number{color:var(--text-secondary);margin-bottom:.3rem;font-size:.85rem;font-weight:600}.calendar-cell.today .day-number{color:var(--accent);box-shadow:0 0 12px var(--glow-gold);background-color:#e6a83426;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.calendar-cell.other-month{opacity:.4}.calendar-cell.past{opacity:.55;cursor:default;background-color:var(--bg-secondary)}.calendar-cell.past:hover{background-color:var(--bg-secondary)}.calendar-cell.past .day-number{color:var(--text-muted);-webkit-text-decoration:line-through #96969666;text-decoration:line-through #96969666}.calendar-grid.compact .calendar-cell{min-height:60px;padding:.2rem}.calendar-grid.compact .calendar-cell .day-number{margin-bottom:.1rem;font-size:.75rem}.calendar-grid.compact .event-pill{border-left-width:2px;margin-bottom:1px;padding:0 3px;font-size:.65rem}.calendar-grid.compact .event-pill span:not(:first-child),.calendar-grid.compact .event-pill>div{display:none}.calendar-grid.compact .availability-dots{gap:2px;margin-top:1px}.calendar-grid.compact .avail-dot{width:6px;height:6px}.calendar-grid.compact .calendar-header-cell{padding:.3rem;font-size:.75rem}.event-pill{white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border-radius:4px;margin-bottom:2px;padding:1px 4px;font-size:.72rem;transition:filter .15s,box-shadow .15s;overflow:hidden}.event-pill.primary{color:#c4a5ff;border-left:3px solid var(--event-primary);background:linear-gradient(90deg,#7c4dff66 0%,#7c4dff2e 100%)}.event-pill.primary:hover{filter:brightness(1.2);box-shadow:0 0 8px var(--glow-purple)}.event-pill.secondary{color:#9cc3ff;border-left:3px solid var(--event-secondary);background:linear-gradient(90deg,#448aff4d 0%,#448aff1f 100%)}.event-pill.secondary:hover{filter:brightness(1.2);box-shadow:0 0 8px #448aff66}.availability-dots{flex-wrap:wrap;gap:3px;margin-top:2px;display:flex}.avail-dot{cursor:default;border-radius:50%;width:8px;height:8px}.avail-dot.free{background-color:var(--free);box-shadow:0 0 5px #4caf508c}.avail-dot.conditional{background-color:var(--conditional);box-shadow:0 0 5px #ff98008c}.avail-dot.unavailable{background-color:var(--unavailable);box-shadow:0 0 5px #f443368c}.slot-list{flex-direction:column;gap:.3rem;display:flex}.slot-row{cursor:pointer;border-radius:4px;flex-wrap:wrap;align-items:center;gap:.25rem .8rem;padding:.3rem .5rem;display:flex}.slot-row .slot-date{min-width:110px;font-weight:600}.slot-row .slot-free{color:var(--free);min-width:110px}.slot-row .slot-conditional{color:var(--conditional);min-width:120px}.slot-row .slot-hint{color:var(--text-muted);font-size:.8rem}.slot-row .slot-star{color:var(--free);font-weight:600}.journal-card,.journal-card *{overflow-wrap:anywhere}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table-wrap>.data-table{min-width:600px}.avail-row{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.8rem;display:flex}.avail-day-label{min-width:120px;color:var(--text-secondary);font-size:.9rem;font-weight:600}.avail-options{gap:.5rem;display:flex}.avail-btn{border:1px solid var(--border);background-color:var(--bg-primary);color:var(--text-secondary);cursor:pointer;border-radius:4px;padding:.3rem .8rem;font-size:.85rem;transition:all .2s}.avail-btn:hover{border-color:var(--text-muted)}.avail-btn.selected.free{color:var(--free);border-color:var(--free);background-color:#4caf5033}.avail-btn.selected.conditional{color:var(--conditional);border-color:var(--conditional);background-color:#ff980033}.avail-btn.selected.unavailable{color:var(--unavailable);border-color:var(--unavailable);background-color:#f4433633}.badge{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:.15rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.badge-admin{color:var(--accent);background-color:#e6a83433}.badge-dm{color:var(--free);background-color:#4caf5033}.badge-player{color:#82b1ff;background-color:#448aff33}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;background:linear-gradient(180deg, #1d2c58 0%, var(--bg-secondary) 100%);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:.7rem 1rem;font-size:.8rem}.data-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:.7rem 1rem;font-size:.9rem}.data-table td.title-cell{word-break:break-word;overflow-wrap:break-word;white-space:normal;max-width:300px}.suggestions-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}.suggestions-responsive .data-table{min-width:400px}.suggestion-chevron{display:none}@media (max-width:768px){.suggestions-responsive{overflow:visible}.suggestions-responsive .data-table{min-width:0}.suggestions-responsive .data-table thead{display:none}.suggestions-responsive .data-table tbody,.suggestions-responsive .data-table tr,.suggestions-responsive .data-table td{width:100%;display:block}.suggestions-responsive .data-table tr{background:linear-gradient(180deg, #242e68 0%, var(--bg-card) 55%);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent;margin-bottom:.75rem;padding:.75rem .9rem}.suggestions-responsive .data-table td{border-bottom:0;padding:.2rem 0}.suggestions-responsive .data-table td[data-label=Status],.suggestions-responsive .data-table td[data-label=Author],.suggestions-responsive .data-table td[data-label=Date]{align-items:center;margin-right:.75rem;font-size:.8rem;display:inline-flex}.suggestions-responsive .data-table td[data-label=Actions]{justify-content:flex-end;margin-top:.4rem;display:flex}.suggestions-responsive .data-table .suggestion-chevron{color:var(--text-secondary);margin-left:.4rem;display:inline-block}.suggestions-responsive .data-table .suggestion-message{display:none}.suggestions-responsive .data-table tr.expanded .suggestion-message{display:block}}.data-table tr:hover td{background-color:#e6a8340d}.modal-overlay{-webkit-backdrop-filter:blur(5px);z-index:1000;background-color:#060612b8;justify-content:center;align-items:flex-start;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-overlay>.card{border-top:2px solid #e6a83466;width:100%;max-width:520px;max-height:calc(100vh - 2rem);margin:auto 0;overflow-y:auto}.modal{background:linear-gradient(180deg, #242e68 0%, var(--bg-card) 55%);border:1px solid var(--border);border-radius:var(--radius);border-top:2px solid #e6a83466;width:100%;min-width:0;max-width:520px;max-height:calc(100vh - 2rem);padding:2rem;overflow-y:auto;box-shadow:0 16px 48px #0009,inset 0 1px #ffffff0a}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.page-title{letter-spacing:.3px;background:linear-gradient(#f5eddc 0%,#e8d9b5 55%,#c9b585 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}.suggestion-card{border-left:3px solid var(--accent);margin-bottom:.8rem;padding:1rem}.suggestion-date{font-size:1.1rem;font-weight:700}.suggestion-stats{color:var(--text-secondary);margin-top:.2rem;font-size:.9rem}.spinner{border:3px solid #ffffff1a;border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin;box-shadow:0 0 14px #e6a83440}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.spinner{animation:.8s linear infinite spin!important}}@keyframes spin{to{transform:rotate(360deg)}}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.flex{display:flex}.gap-1{gap:.5rem}.gap-2{gap:1rem}.items-center{align-items:center}.justify-between{justify-content:space-between}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-sm{font-size:.85rem}.w-full{width:100%}@media (max-width:768px){nav{flex-direction:row;gap:.75rem;height:auto;min-height:56px;padding:.75rem 1rem;position:relative}.nav-brand{color:var(--accent);white-space:nowrap;font-size:1.1rem;font-weight:700;text-decoration:none}.hamburger-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:36px;min-height:36px;padding:.25rem;display:flex}.hamburger-line{background-color:var(--text-secondary);border-radius:1px;width:22px;height:2px;transition:transform .2s,opacity .2s;display:block}.hamburger-line.open:first-child{transform:translateY(6px)rotate(45deg)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.nav-links{background-color:var(--bg-secondary);border-bottom:1px solid var(--border);box-shadow:0 4px 12px var(--shadow);z-index:100;flex-direction:column;gap:.5rem;padding:.75rem 1rem;display:none;position:absolute;top:100%;left:0;right:0}.nav-links.open{display:flex}.nav-link{white-space:nowrap;border-radius:4px;padding:.5rem .75rem;font-size:.95rem}.nav-link:hover{background-color:var(--border)}.campaign-select{max-width:100%;margin-top:.25rem;font-size:.9rem}.nav-links .btn-sm{text-align:center;width:100%;padding:.4rem .75rem;font-size:.85rem}.nav-links .text-sm{padding:.25rem 0;font-size:.85rem}}@media (max-width:480px){nav{padding:.6rem .75rem}.nav-brand{font-size:1rem}.hamburger-line{width:20px}.nav-links{padding:.5rem .75rem}.nav-link{padding:.45rem .6rem;font-size:.9rem}}@media (max-width:768px){.container{padding:1rem}.page-header{flex-direction:column;align-items:flex-start;gap:.5rem}.page-header .page-title{font-size:1.25rem}.page-header .flex{flex-wrap:wrap;width:100%}.page-header .btn{text-align:center;flex:1;min-width:0;padding:.4rem .6rem;font-size:.85rem}.page-header .btn-sm{flex:none;padding:.4rem .5rem;font-size:.8rem}.calendar-grid{border:none;flex-direction:column;gap:0;display:flex}.calendar-header-cell{display:none}.calendar-cell{border-bottom:1px solid var(--border);border-top:none;border-left:none;border-right:none;border-radius:0;flex-wrap:wrap;align-items:center;gap:.3rem;min-height:auto;padding:.5rem .75rem;display:flex}.calendar-cell.today{background-color:var(--bg-secondary);border-left:3px solid var(--accent)}.calendar-cell.other-month{display:none}.calendar-cell .day-number{text-align:right;min-width:24px;margin-right:.5rem;font-size:.85rem;font-weight:600}.calendar-cell .day-number:before{content:attr(data-label);color:var(--text-secondary);margin-right:.3rem;font-size:.7rem;font-weight:400}.event-pill{margin:.1rem;padding:.15rem .4rem;font-size:.75rem}.event-pill span{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.calendar-cell .avail-indicator{width:auto;font-size:.7rem}}@media (max-width:480px){.calendar-cell{padding:.4rem .5rem}.calendar-cell .day-number{font-size:.8rem}.event-pill{padding:.1rem .3rem;font-size:.7rem}.event-pill span{max-width:80px}}@media (max-width:768px){.admin-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:0;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs button{white-space:nowrap;flex-shrink:0}}@media (min-width:481px) and (max-width:768px){.calendar-grid{grid-template-columns:repeat(7,1fr);gap:1px}.calendar-cell{min-height:80px;padding:.3rem}.event-pill{font-size:.75rem}}@media (max-width:768px){.overlay-day-row{border-radius:6px;flex-direction:column;align-items:stretch;margin-bottom:.5rem}.overlay-day-row>span:first-child{border-bottom:1px solid var(--border);margin-bottom:.3rem;padding-bottom:.4rem;font-size:.9rem;font-weight:600;min-width:auto!important}.overlay-day-row>div{flex-direction:column;gap:.3rem}.overlay-day-row>div span{font-size:.85rem;display:block}.view-tabs{flex-direction:column;gap:.4rem}.view-tabs button{text-align:center;width:100%}.view-weeks-btns{flex-wrap:wrap;gap:.3rem}.view-weeks-btns button{text-align:center;flex:1;min-width:0}.analysis-results>div{flex-wrap:wrap;gap:.25rem .5rem}.analysis-results>div>span,.slot-row .slot-date,.slot-row .slot-free,.slot-row .slot-conditional{min-width:0}.week-header,.avail-row{flex-wrap:wrap;gap:.5rem}.avail-day-label{min-width:0}.avail-options{flex-wrap:wrap}.campaign-select-grid{flex-direction:column;gap:.3rem}.campaign-select-grid label{background:var(--bg-secondary);border-radius:4px;flex-direction:row;justify-content:space-between;padding:.4rem .5rem}}@media (max-width:480px){.overlay-day-row>span:first-child{font-size:.85rem}.overlay-day-row>div span{padding:.25rem .4rem;font-size:.8rem}.analysis-results>div{font-size:.85rem}.view-weeks-btns button{padding:.3rem .5rem;font-size:.8rem}}
