:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#17201c;--muted:#637069;--line:#d9ded8;--panel:#fff;--surface:#f3f5f1;--surface-strong:#e8ece5;--accent:#18705f;--accent-strong:#0f4f44;--danger:#b83131;--warning:#b67316;--steel:#34495e;--shadow:0 16px 36px #121f1b14;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--surface);min-width:320px;color:var(--ink);margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.appShell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f5f7f2;background:#202822;flex-direction:column;gap:24px;padding:24px;display:flex}.brand{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;display:grid}.brandMark{background:#2d5b4f;border:1px solid #fff3;border-radius:8px;place-items:center;width:48px;height:48px;font-weight:800;display:grid}.brand h1,.pageHeader h2{overflow-wrap:anywhere;margin:0}.brand h1{font-size:1.05rem;line-height:1.25}.eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.76rem;font-weight:800}.sidebar .eyebrow{color:#a9b7af}.navList,.buttonStack{gap:8px;display:grid}.navButton,.secondaryButton,.primaryButton,.iconButton,.uploadButton,.linkButton,.segmented button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:8px 12px;text-decoration:none;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.navButton{color:#dce6df;background:0 0;justify-content:flex-start}.navButton:hover,.navButton.active{color:#fff;background:#ffffff1a}.sidebarStatus{gap:6px;margin-top:auto;display:grid}.saveStatus{color:#cbd8d1;align-items:center;gap:8px;font-size:.9rem;display:flex}.versionStatus{color:#a9b7af;font-size:.78rem}.content{padding:28px;overflow-x:hidden}.pageHeader{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px;display:flex}.pageHeader h2{font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.05}.headerActions,.buttonCluster,.formActions,.rowActions,.cardActions,.tableActions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.primaryButton{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:750}.primaryButton:hover{background:var(--accent-strong)}.primaryButton:disabled{cursor:not-allowed;background:#a8b4ad;border-color:#a8b4ad}.secondaryButton,.uploadButton,.iconButton,.segmented button{border-color:var(--line);color:var(--ink);background:#fff}.secondaryButton:hover,.uploadButton:hover,.iconButton:hover,.segmented button:hover,.segmented button.active{border-color:var(--accent);color:var(--accent-strong)}.iconButton{width:38px;padding:0}.danger,.dangerText{color:var(--danger)}.linkButton{min-height:auto;color:var(--accent-strong);background:0 0;border:0;justify-content:flex-start;padding:0;font-weight:750}.calendarToolbar,.toolbarBand{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;margin-bottom:16px;padding:14px;display:flex}.labelText{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:800;display:block}.splitLayout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:18px;display:grid}.calendarLayout,.contactsSplit{grid-template-columns:minmax(0,1fr) 380px}.contactsSplit{display:block}.calendarGrid{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;grid-template-columns:repeat(7,minmax(0,1fr));display:grid;overflow:hidden}.weekday{background:var(--surface-strong);color:var(--muted);text-align:center;padding:10px;font-size:.78rem;font-weight:800}.dayCell{border-top:1px solid var(--line);border-right:1px solid var(--line);width:100%;min-height:122px;color:inherit;text-align:left;background:#fff;border-bottom:0;border-left:0;padding:9px;display:block}.dayCell:nth-child(7n){border-right:0}.dayCell:hover:not(:disabled),.dayCell.selected{outline-offset:-2px;background:#eef6f3;outline:2px solid #18705f61}.dayCell.current{outline-offset:-3px;background:#f1faf6;outline:3px solid #18705f3d}.dayCell:disabled{cursor:default;background:#fbfcfa}.dayNumber{min-width:28px;height:28px;color:var(--ink);place-items:center;font-weight:800;display:inline-grid}.dayEvents{gap:5px;margin-top:6px;display:grid}.eventPill{color:#103f36;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:#e9f5f1;border:1px solid #b7c9c4;border-radius:6px;width:100%;min-height:26px;padding:4px 6px;display:block;overflow:hidden}.eventPill.run{color:#5d4511;background:#fff5cf;border-color:#c8b46f}.eventPill:disabled{cursor:default}.panelForm,.dataGrid,.contactResults,.dayAgenda,.rollerControls,.rollSummary,.diceGrid{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;padding:16px}.panelForm{gap:13px;display:grid}.formTitle{align-items:center;gap:8px;display:flex}.formTitle h3,.pcRow h3,.contactCard h3,.runCard h3,.emptyState h3{margin:0}.formSection{border:1px solid var(--line);background:#fbfcfa;border-radius:8px;gap:12px;padding:14px;display:grid}.formSection h4,.sectionHeader h4{margin:0}.sectionHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}label{color:var(--muted);gap:6px;font-size:.82rem;font-weight:800;display:grid}input,select,textarea{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);background:#fff;border-radius:8px;padding:9px 10px}textarea{resize:vertical;min-height:112px}.formRow{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.attributeGrid{gap:10px;display:grid}.attributeRow{grid-template-columns:minmax(120px,160px) minmax(0,1fr);gap:10px;display:grid}.dicePoolList{gap:10px;display:grid}.dicePoolRow{grid-template-columns:minmax(150px,1fr) minmax(180px,1.4fr) minmax(90px,120px) 38px;align-items:end;gap:10px;display:grid}.compactList{border-top:1px solid var(--line);gap:8px;padding-top:8px;display:grid}.compactItem{color:var(--muted);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;font-size:.88rem;display:grid}.dayAgenda{position:sticky;top:18px}.agendaHeader{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.agendaHeader h3{margin:0}.agendaList{gap:10px;display:grid}.agendaItem{background:#f4fbf8;border:1px solid #b7c9c4;border-radius:8px;gap:10px;padding:12px;display:grid}.agendaItem.run{background:#fff9df;border-color:#c8b46f}.agendaItem h4{margin:0}.agendaItem p{color:var(--muted);margin:4px 0 0;font-weight:800}.agendaItem span{color:var(--steel);margin-top:8px;display:block}.runsGrid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.runCard{box-shadow:var(--shadow);background:#fffdf3;border:1px solid #c8b46f;border-radius:8px;gap:12px;padding:16px;display:grid}.runCardTop{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.runCardTop p,.runCard>p{color:var(--muted);margin:5px 0 0}.rewardLine{flex-wrap:wrap;gap:8px;display:flex}.rewardLine span{border:1px solid var(--line);min-height:28px;color:var(--ink);background:#fff;border-radius:6px;align-items:center;margin:0;padding:4px 8px;font-weight:800;display:inline-flex}.rollerLayout{gap:16px;display:grid}.rollerControls{gap:14px;max-width:620px;display:grid}.rollSummary{background:#f4fbf8;border-color:#b7c9c4;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;max-width:880px;display:flex}.rollSummary.glitch{background:#fff8e6;border-color:#d09933}.rollSummary.critical{background:#fff1f1;border-color:#d86565}.rollSummary h3{margin:0;font-size:1.8rem}.rollStats{flex-wrap:wrap;gap:8px;display:flex}.rollStats span{border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 9px;font-weight:800}.diceGrid{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:10px;display:grid}.diceEmpty{grid-column:1/-1}.diceEmpty .emptyState{min-height:180px}.die{aspect-ratio:1;border:2px solid var(--line);min-width:0;color:var(--ink);background:#fff;border-radius:8px;place-items:center;font-size:1.3rem;font-weight:900;display:grid;box-shadow:inset 0 -3px #0000000a}.die.hit{color:#13572f;background:#dff5e8;border-color:#2f8f59}.die.one{color:#8b1f1f;background:#ffe1e1;border-color:#c94848}.die.rolling{color:var(--muted);animation:.16s ease-in-out infinite alternate dicePulse}@keyframes dicePulse{0%{transform:translateY(0)}to{transform:translateY(-2px)}}.pcRow{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px;display:flex}.pcRow+.pcRow{margin-top:10px}.pcRow p,.contactCard p,.emptyState p,.mutedText,.notesPanel p{color:var(--muted);margin:5px 0 0}.pcRow span{color:var(--steel);margin-top:8px;display:block}.runnerCombatSummary{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.runnerCombatSummary span{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;margin:0;padding:4px 7px;font-size:.82rem;font-weight:800}.toolbarBand{justify-content:flex-start;align-items:end}.toolbarBand>label{min-width:170px}.searchBox{min-width:min(320px,100%);position:relative}.searchBox svg{color:var(--muted);position:absolute;bottom:12px;left:10px}.searchBox input{padding-left:34px}.segmented{border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(2,minmax(92px,1fr));display:inline-grid;overflow:hidden}.segmented button{border:0;border-radius:0}.contactCards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.contactCard{border:1px solid var(--line);background:#fff;border-radius:8px;gap:12px;padding:14px;display:grid}.contactCardTop{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.badge{border-radius:999px;flex:none;padding:4px 8px;font-size:.75rem;font-weight:800}.badge.group{color:#24496b;background:#e6eff9}.badge.individual{color:#40591c;background:#edf5df}.badge.run{color:#5d4511;background:#fff2bd}.badge.planned{color:#24496b;background:#e6eff9}.badge.inProgress{color:#5d4511;background:#fff2bd}.badge.complete{color:#13572f;background:#dff5e8}.ratings{flex-wrap:wrap;gap:8px;display:flex}.ratings span{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:5px 8px;font-weight:800}.notesPanel{border-left:3px solid var(--accent);background:#f3faf7;gap:10px;padding:10px 12px;display:grid}.detailRow strong{color:var(--ink);display:block}.detailRow p{white-space:pre-wrap}.tableWrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:11px}th{color:var(--muted);text-transform:uppercase;font-size:.78rem}.notesRow td{background:#f8fbf9}.settingsGrid{grid-template-columns:minmax(0,520px) minmax(280px,360px);align-items:start;gap:18px;display:grid}.uploadButton{font-weight:750;position:relative}.uploadButton input{opacity:0;cursor:pointer;position:absolute;inset:0}.emptyState{min-height:220px;color:var(--muted);text-align:center;place-items:center;gap:8px;padding:24px;display:grid}.modalBackdrop{z-index:20;background:#0c120f85;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modalPanel{border:1px solid var(--line);background:var(--panel);border-radius:8px;width:min(680px,100%);max-height:min(760px,100vh - 40px);overflow:auto;box-shadow:0 22px 60px #00000038}.modalHeader{z-index:1;border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex;position:sticky;top:0}.modalForm{gap:13px;padding:16px;display:grid}.formError{color:var(--danger);margin:-4px 0 0;font-size:.9rem;font-weight:750}@media (width<=1040px){.appShell{grid-template-columns:1fr}.sidebar{z-index:5;grid-template-columns:1fr;padding:14px;display:grid;position:sticky;top:0}.navList{grid-template-columns:repeat(6,minmax(0,1fr))}.navButton{justify-content:center}.sidebarStatus{margin:0}.splitLayout,.calendarLayout,.contactsSplit,.settingsGrid{grid-template-columns:1fr}.contactsSplit .panelForm,.contactsSplit .contactResults{order:initial}.dayAgenda{position:static}}@media (width<=700px){.content{padding:16px}.pageHeader{display:grid}.navButton span{display:none}.calendarGrid{display:block}.weekday{display:none}.dayCell{border-right:0;min-height:auto}.dayCell:disabled{display:none}.formRow,.attributeRow,.dicePoolRow{grid-template-columns:1fr}.pcRow,.contactCardTop,.runCardTop{display:grid}.toolbarBand>label,.searchBox,.segmented{width:100%}}
