.OfflineBanner-module__EovAwa__banner{background:var(--color-dark);flex-shrink:0;max-height:0;transition:max-height .3s;overflow:hidden}.OfflineBanner-module__EovAwa__bannerVisible{max-height:40px}.OfflineBanner-module__EovAwa__inner{justify-content:center;align-items:center;gap:8px;padding:10px 12px;display:flex}.OfflineBanner-module__EovAwa__text{font-family:var(--font-mono);letter-spacing:1.5px;color:#fbf8f1d1;white-space:nowrap;font-size:10px;font-weight:500}
.ErrorBoundary-module__uKYcQa__safe{background:var(--color-dark);min-height:100vh;display:flex}.ErrorBoundary-module__uKYcQa__container{flex-direction:column;flex:1;justify-content:space-between;width:100%;max-width:520px;margin:0 auto;padding:32px 32px 24px;display:flex}.ErrorBoundary-module__uKYcQa__content{flex-direction:column;flex:1;justify-content:center;display:flex}.ErrorBoundary-module__uKYcQa__kicker{letter-spacing:2px;color:#fbf8f161;margin-bottom:22px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;font-weight:500}.ErrorBoundary-module__uKYcQa__headline{color:var(--color-paper);letter-spacing:-2px;margin-bottom:28px;font-family:Georgia,serif;font-size:76px;font-style:italic;line-height:80px}.ErrorBoundary-module__uKYcQa__body{color:#fbf8f199;max-width:300px;font-size:16px;line-height:25px}.ErrorBoundary-module__uKYcQa__btn{text-align:center;color:var(--color-paper);letter-spacing:.2px;border:1px solid #fbf8f138;border-radius:14px;padding:16px;font-size:15px;font-weight:600;transition:background-color .15s}.ErrorBoundary-module__uKYcQa__btn:hover{background:#fbf8f10f}
@font-face{font-family:fraunces;src:url(../media/Fraunces_VariableFont-s.p.1erj0vuxqzzgx.ttf)format("truetype");font-display:swap;font-style:normal}@font-face{font-family:fraunces;src:url(../media/Fraunces_Italic_VariableFont-s.p.24vgzw-f51_e-.ttf)format("truetype");font-display:swap;font-style:italic}@font-face{font-family:fraunces Fallback;src:local(Arial);ascent-override:84.05%;descent-override:21.91%;line-gap-override:0.0%;size-adjust:116.36%}.fraunces_d973533c-module__7pOQpG__className{font-family:fraunces,fraunces Fallback}.fraunces_d973533c-module__7pOQpG__variable{--font-display:"fraunces", "fraunces Fallback"}
@font-face{font-family:manrope;src:url(../media/Manrope_VariableFont-s.p.3at5cmeewtdj8.ttf)format("truetype");font-display:swap}@font-face{font-family:manrope Fallback;src:local(Arial);ascent-override:106.45%;descent-override:29.96%;line-gap-override:0.0%;size-adjust:100.14%}.manrope_1702004d-module__kOBU2a__className{font-family:manrope,manrope Fallback}.manrope_1702004d-module__kOBU2a__variable{--font-body:"manrope", "manrope Fallback"}
@font-face{font-family:jetbrainsMono;src:url(../media/JetBrainsMono_VariableFont-s.p.0jylare-uiy3u.ttf)format("truetype");font-display:swap}@font-face{font-family:jetbrainsMono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.jetbrainsmono_5082c3c4-module__WPzYWG__className{font-family:jetbrainsMono,jetbrainsMono Fallback}.jetbrainsmono_5082c3c4-module__WPzYWG__variable{--font-mono:"jetbrainsMono", "jetbrainsMono Fallback"}
:root{--color-bg:#f4efe6;--color-paper:#fbf8f1;--color-dark:#161210;--color-ink:#1a1613;--color-ink-soft:#3e352d;--color-muted:#8a7e6e;--color-line:#d9cfbc;--color-line-soft:#e8dec9;--color-accent:#b8531e;--color-accent-soft:#f0d9c4;--color-accent-bg:#f5e6dc;--color-danger:#b4251a;--color-danger-bg:#f7e8e7;--color-error:#c0392b;--color-error-soft:#fde8e8;--color-green:#2d7a4f;--color-green-bg:#e6f4ec;--sidebar-w:252px;--sidebar-w-rail:76px;--content-max-w:760px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;min-width:0;margin:0;padding:0}html,body{height:100%}html{-webkit-text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;text-align:inherit;background:0 0;border:none}button:disabled{cursor:default}ul,ol{list-style:none}img{max-width:100%;display:block}::selection{background:var(--color-accent-soft)}.kicker{font-family:var(--font-mono);letter-spacing:1.6px;color:var(--color-muted);text-transform:uppercase;font-size:10px;font-weight:500}.headline{font-family:var(--font-display);color:var(--color-ink);font-weight:400}.headlineEm{color:var(--color-accent);font-style:italic}.card{background:var(--color-paper);border:1px solid var(--color-line);border-radius:16px;overflow:hidden}.rowDivider{border-top:1px solid var(--color-line-soft)}.iconBtn{background:var(--color-paper);border:1px solid var(--color-line);width:38px;height:38px;color:var(--color-ink);border-radius:19px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s,border-color .15s,transform .1s;display:flex}.iconBtn:hover{background:var(--color-accent-soft);border-color:var(--color-accent)}.iconBtn:active{transform:scale(.94)}.avatarBtn{background:var(--color-ink);width:38px;height:38px;color:var(--color-paper);font-family:var(--font-display);letter-spacing:-.2px;border-radius:19px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;transition:opacity .15s;display:flex}.avatarBtn:hover{opacity:.85}.popupTitle{font-family:var(--font-display);color:var(--color-ink);letter-spacing:-.4px;margin-bottom:20px;font-size:22px;font-weight:400}.popupLabel{font-family:var(--font-mono);letter-spacing:1.5px;color:var(--color-muted);text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:500;display:block}.popupInput{background:var(--color-bg);border:1px solid var(--color-line);width:100%;height:50px;font-family:var(--font-body);color:var(--color-ink);border-radius:12px;padding:0 14px;font-size:16px;transition:border-color .15s}.popupInput:focus{border-color:var(--color-ink);outline:none}.popupInput.inputError{border-color:var(--color-danger)}.popupError{font-family:var(--font-body);color:var(--color-danger);margin-top:-4px;margin-bottom:8px;font-size:12px}.popupActions{flex-direction:row;gap:10px;margin-top:14px;display:flex}.btnCancel,.btnSave,.btnDanger{height:50px;font-family:var(--font-body);border-radius:14px;flex:1;justify-content:center;align-items:center;font-size:15px;font-weight:600;transition:opacity .15s,transform .1s;display:flex}.btnCancel{background:var(--color-bg);border:1px solid var(--color-line);color:var(--color-muted);font-size:14px;font-weight:600}.btnSave{background:var(--color-accent);color:#fff;flex:2}.btnDanger{background:var(--color-danger);color:#fff;flex:2}.btnCancel:hover,.btnSave:hover,.btnDanger:hover{opacity:.9}.btnCancel:active,.btnSave:active,.btnDanger:active{transform:scale(.98)}.btnCancel:disabled,.btnSave:disabled,.btnDanger:disabled{opacity:.45}.emptyState{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:80px 40px;display:flex}.emptyIconBox{background:var(--color-accent-soft);border:1px solid var(--color-line);width:64px;height:64px;color:var(--color-accent);border-radius:20px;justify-content:center;align-items:center;margin-bottom:8px;display:flex}.emptyTitle{font-family:var(--font-display);color:var(--color-ink);font-size:22px;font-weight:400}.emptySub{font-family:var(--font-body);color:var(--color-muted);max-width:320px;font-size:14px;line-height:21px}.dangerCard{background:var(--color-danger-bg);border:1px solid #e8c8c6;border-radius:16px;overflow:hidden}.dangerBtn{width:100%;font-family:var(--font-body);color:var(--color-danger);justify-content:center;align-items:center;gap:8px;padding:15px;font-size:14px;font-weight:600;transition:background-color .15s;display:flex}.dangerBtn:hover{background:#b4251a0f}.sectionLabel{font-family:var(--font-mono);letter-spacing:1.5px;color:var(--color-muted);text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:600}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}.shake{animation:.5s cubic-bezier(.36,.07,.19,.97) both shake}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}.spinnerDark{border:2px solid var(--color-line);border-top-color:var(--color-muted);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}
