:root{--paper: #f7f2e9;--paper-2: #efe7d7;--card: #fffdf8;--ink: #2b2620;--ink-soft: #5c554a;--ink-faint: #8a8273;--line: #e2d8c5;--line-strong: #d4c7ad;--forest: #335c41;--forest-deep: #244430;--forest-soft: #e2ece2;--petal: #c75b43;--petal-soft: #f6e2da;--gold: #c89b3c;--danger: #b3402e;--danger-soft: #f3ddd6;--on-forest: #f7f2e9;--on-petal: #fbeee9;--radius: 14px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(43, 38, 32, .06), 0 8px 24px -12px rgba(43, 38, 32, .22);--shadow-lg: 0 24px 60px -28px rgba(43, 38, 32, .4);--font-display: "Fraunces", Georgia, serif;--font-body: "Hanken Grotesk", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);color:var(--ink);background-color:var(--paper);background-image:radial-gradient(900px 500px at 12% -8%,rgba(51,92,65,.07),transparent 60%),radial-gradient(800px 480px at 100% 0%,rgba(199,91,67,.06),transparent 55%);background-attachment:fixed;-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--forest);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;line-height:1.08;margin:0;color:var(--ink)}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem clamp(1rem,4vw,2.4rem);border-bottom:1px solid var(--line);background:#fffdf8b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:baseline;gap:.55rem;font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.brand .sprout{font-size:1.2rem;transform:translateY(1px)}.brand b{color:var(--forest);font-weight:600}.topbar-actions{display:flex;align-items:center;gap:.6rem}.content{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:clamp(1.2rem,4vw,2.6rem) clamp(1rem,4vw,2rem) 4rem}.page-head{margin-bottom:1.6rem}.page-head h1{font-size:clamp(1.9rem,4vw,2.7rem)}.page-head .lede{margin-top:.5rem;color:var(--ink-soft);max-width:56ch}.eyebrow{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--petal);margin-bottom:.5rem}.btn{font-family:var(--font-body);font-size:.92rem;font-weight:600;border:1px solid transparent;border-radius:var(--radius-sm);padding:.55rem 1.05rem;cursor:pointer;transition:transform .08s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--forest);color:var(--on-forest)}.btn-primary:hover{background:var(--forest-deep)}.btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--ink)}.btn-ghost:hover{background:var(--paper-2);text-decoration:none}.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger-soft)}.btn-sm{padding:.35rem .7rem;font-size:.82rem}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:clamp(1.1rem,3vw,1.7rem)}label.field{display:block;margin-bottom:1rem}label.field>span{display:block;font-size:.82rem;font-weight:600;color:var(--ink-soft);margin-bottom:.35rem;letter-spacing:.01em}input,textarea,select{font-family:var(--font-body);font-size:.95rem;width:100%;padding:.6rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--forest);box-shadow:0 0 0 3px var(--forest-soft)}textarea{resize:vertical;min-height:90px;line-height:1.5}.notice{padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:.9rem;margin-bottom:1rem}.notice-error{background:var(--danger-soft);color:var(--danger);border:1px solid #e6bdb1}.notice-ok{background:var(--forest-soft);color:var(--forest-deep);border:1px solid #c2d6c4}.pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.74rem;font-weight:600;letter-spacing:.04em;padding:.18rem .6rem;border-radius:999px;text-transform:uppercase}.pill-admin{background:var(--petal-soft);color:var(--petal)}.pill-editor{background:var(--forest-soft);color:var(--forest-deep)}.muted{color:var(--ink-faint);font-size:.88rem}.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--line);margin-bottom:1.6rem;flex-wrap:wrap}.tab{font-family:var(--font-body);font-size:.95rem;font-weight:600;background:none;border:none;border-bottom:2px solid transparent;padding:.7rem .9rem;margin-bottom:-1px;color:var(--ink-soft);cursor:pointer}.tab:hover{color:var(--ink)}.tab.active{color:var(--forest);border-bottom-color:var(--petal)}.row-list{display:flex;flex-direction:column;gap:.6rem}.row-item{display:flex;align-items:center;gap:1rem;padding:.85rem 1.05rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm)}.row-item .grow{flex:1;min-width:0}.row-item code{font-family:Fraunces,serif}.trigger-tag{font-family:var(--font-display);font-weight:600;color:var(--forest-deep);font-size:1rem}.row-resp{color:var(--ink-soft);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-actions{display:flex;gap:.4rem}.empty{text-align:center;padding:2.5rem 1rem;color:var(--ink-faint);border:1px dashed var(--line-strong);border-radius:var(--radius)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.auth-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:2rem}.auth-card .brand{margin-bottom:.4rem}.legend{display:flex;flex-wrap:wrap;gap:1.1rem;margin:0 0 1.2rem;font-size:.85rem;color:var(--ink-soft)}.legend span{display:inline-flex;align-items:center;gap:.45rem}.dot{width:.7rem;height:.7rem;border-radius:50%;display:inline-block}.dot-stream{background:var(--forest)}.dot-internal{background:var(--petal)}.calendar-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem clamp(.6rem,2vw,1.2rem) 1.2rem}.fc{--fc-border-color: var(--line);--fc-today-bg-color: var(--cal-today, #fbf4e6);--fc-page-bg-color: transparent;--fc-neutral-bg-color: var(--paper-2);font-family:var(--font-body)}.fc .fc-toolbar-title{font-family:var(--font-display);font-weight:600;font-size:1.35rem;color:var(--ink)}.fc .fc-button{background:var(--paper-2);border:1px solid var(--line-strong);color:var(--ink);font-family:var(--font-body);font-weight:600;font-size:.85rem;text-transform:capitalize;box-shadow:none;padding:.35rem .7rem}.fc .fc-button:hover{background:var(--line)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background:var(--forest);border-color:var(--forest);color:#f7f2e9}.fc .fc-button-primary:focus,.fc .fc-button:focus{box-shadow:0 0 0 3px var(--forest-soft)}.fc .fc-col-header-cell-cushion{color:var(--ink-soft);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;padding:.5rem}.fc .fc-daygrid-day-number{color:var(--ink-soft);font-weight:500}.fc-event{border:none;border-radius:6px;padding:1px 4px;font-size:.8rem;font-weight:600;cursor:pointer}.fc-event.ev-stream{background:var(--forest);color:var(--on-forest)}.fc-event.ev-internal{background:var(--petal);color:var(--on-petal)}.fc .fc-list-event:hover td,.fc .fc-list-day-cushion{background:var(--paper-2)}.fc-list-event-dot.dot-stream-fc{border-color:var(--forest)}.center-state{text-align:center;padding:3rem 1rem;color:var(--ink-faint)}@media (max-width: 560px){.row-item{flex-direction:column;align-items:stretch}.row-actions{justify-content:flex-end}.fc .fc-toolbar{flex-direction:column;gap:.6rem}}[data-theme=dark]{--paper: #14130f;--paper-2: #20201a;--card: #1b1a15;--ink: #ece6d8;--ink-soft: #b3ab98;--ink-faint: #837c6b;--line: #2f2d25;--line-strong: #403d32;--forest: #6fae7f;--forest-deep: #82c093;--forest-soft: #233027;--petal: #e08a72;--petal-soft: #3a2620;--gold: #d9b65c;--danger: #e0735c;--danger-soft: #3a221c;--on-forest: #11130f;--on-petal: #1a0f0b;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 30px -14px rgba(0, 0, 0, .7);--shadow-lg: 0 28px 70px -30px rgba(0, 0, 0, .85);--cal-today: #221f17}[data-theme=dark] body{background-image:radial-gradient(900px 500px at 12% -8%,rgba(111,174,127,.1),transparent 60%),radial-gradient(800px 480px at 100% 0%,rgba(224,138,114,.08),transparent 55%)}[data-theme=dark] .topbar{background:#1b1a15b8}[data-theme=dark] .btn-primary:hover{background:var(--forest-deep)}.brand-wrap{display:flex;align-items:center;gap:.9rem;min-width:0}.twitch-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:#9146ff;padding:.32rem .7rem;border-radius:999px;border:1px solid color-mix(in srgb,#9146ff 35%,transparent);background:color-mix(in srgb,#9146ff 10%,transparent);transition:background .15s ease,transform .08s ease;text-decoration:none}.twitch-link:hover{background:color-mix(in srgb,#9146ff 20%,transparent);text-decoration:none}.twitch-link:active{transform:translateY(1px)}.twitch-link svg{display:block}.theme-toggle{font-size:1rem;line-height:1;padding:.5rem .7rem;min-width:2.4rem;justify-content:center}@media (max-width: 560px){.twitch-link span{display:none}}.content-wide{max-width:1400px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.4rem;align-items:start}.dash-col{min-width:0}.dash-title{font-size:1.25rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--petal);display:inline-block}@media (max-width: 1100px){.dashboard-grid{grid-template-columns:1fr 1fr}}@media (max-width: 760px){.dashboard-grid{grid-template-columns:1fr}}:root{--mod: #9a7b1f;--mod-soft: #f1e6c6}[data-theme=dark]{--mod: #d9b65c;--mod-soft: #38301a}.pill-streamer{background:var(--forest-soft);color:var(--forest-deep)}.pill-moderator{background:var(--mod-soft);color:var(--mod)}.code-box{display:flex;align-items:center;gap:.6rem;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.5rem .6rem .5rem .8rem}.code-box code{font-family:Fraunces,serif;font-weight:600;font-size:1.05rem;letter-spacing:.02em;flex:1;min-width:0;overflow-x:auto;white-space:nowrap}.code-box .code-url{font-family:var(--font-body);font-weight:500;font-size:.85rem;color:var(--ink-soft)}.code-box .btn{flex-shrink:0}
