:root{color-scheme:light;--bg:#f5f0e5;--bg-soft:#fffaf2;--text:#1f2c3a;--muted:#3b4d63;--accent:#b38b40;--accent-dark:#8c6a2e;--border:#e4dac3;--danger:#a3402f}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Georgia,'Times New Roman',serif;background:var(--bg);color:var(--text);line-height:1.6}body.centered{display:flex;align-items:center;justify-content:center}.card{width:min(26rem,calc(100vw - 2rem));margin:2rem 0;padding:2rem 2rem 2.25rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:.5rem;text-align:center}.card .logo{width:min(14rem,70%);height:auto;margin:0 auto;display:block}.subtitle{margin:.75rem 0 2rem;text-transform:uppercase;letter-spacing:.09em;font-size:.78rem;font-weight:400;color:var(--accent)}body.shell{display:flex;align-items:stretch}.sidebar{display:flex;flex-direction:column;gap:1.5rem;width:15rem;flex-shrink:0;position:sticky;top:0;height:100vh;padding:1.5rem 1rem;background:var(--bg-soft);border-right:1px solid var(--border)}.sidebar-logo{display:block}.sidebar-logo img{display:block;width:min(10rem,100%);height:auto;margin:0 auto}.sidebar nav{display:grid;gap:1.25rem}.sidebar-group-title{margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:400;color:var(--accent)}.sidebar nav ul{margin:0;padding:0;list-style:none;display:grid;gap:.4rem}.sidebar nav a{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:.3rem;color:var(--text);text-decoration:none;font-size:.95rem;letter-spacing:.04em}.sidebar nav a::after{content:'›';color:var(--accent);font-size:1.1em;line-height:1}.sidebar nav a:focus-visible,.sidebar nav a:hover{border-color:var(--accent);color:var(--accent-dark)}.sidebar nav a[aria-current=page]{background:var(--accent);border-color:var(--accent);color:#fff}.sidebar nav a[aria-current=page]::after{color:#fff}.sidebar-skeleton{display:none;gap:.4rem}.sidebar nav[data-loading] .sidebar-skeleton{display:grid}.sidebar nav[data-loading] .sidebar-group{display:none}.skeleton-bar{display:block;background:var(--border);border-radius:.3rem}.skeleton-title{width:45%;height:.72rem;margin-bottom:.1rem}.skeleton-item{height:2.4rem;opacity:.6}@media (prefers-reduced-motion:no-preference){.skeleton-bar{animation:skeleton-pulse 1.2s ease-in-out infinite alternate}}@keyframes skeleton-pulse{from{opacity:1}to{opacity:.4}}.sidebar-help{display:inline-flex;align-items:center;align-self:flex-start;gap:.4rem;margin:auto 0 -.75rem;padding:0 .75rem;font-size:.85rem;letter-spacing:.04em;color:var(--muted);text-decoration:none}.sidebar-help svg{flex-shrink:0}.sidebar-help:focus-visible,.sidebar-help:hover,.sidebar-help[aria-current=page]{color:var(--accent-dark);text-decoration:underline}.sidebar-help+.sidebar-footer{margin-top:0}.sidebar-footer{margin-top:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'deploy deploy' 'user signout' 'edit .';align-items:center;column-gap:.5rem;padding-top:1rem;border-top:1px solid var(--border);text-align:left}.sidebar-user{grid-area:user;min-width:0}.sidebar-name{margin:0;font-size:.9rem;overflow-wrap:anywhere}.sidebar-email{margin:0;font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}.sidebar-edit{grid-area:edit;justify-self:start;margin-top:.35rem;font-size:.8rem;letter-spacing:.04em;color:var(--accent);text-decoration:none}.sidebar-edit:focus-visible,.sidebar-edit:hover{color:var(--accent-dark);text-decoration:underline}.deploy-status{grid-area:deploy;display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .5rem;margin:0 0 .85rem;font-size:.8rem;color:var(--muted)}.deploy-status-dot{flex-shrink:0;width:.55rem;height:.55rem;border-radius:50%;background:var(--border);border:1px solid var(--muted)}.deploy-status[data-state=running] .deploy-status-dot{background:var(--accent);border-color:var(--accent)}.deploy-status[data-state=error]{color:var(--danger)}.deploy-status[data-state=error] .deploy-status-dot{background:var(--danger);border-color:var(--danger)}.deploy-status-link[href=''],.deploy-status:not([data-state=error]) .deploy-status-link{display:none}.deploy-status-link{flex-basis:100%;padding-left:1.05rem;color:var(--accent);letter-spacing:.04em;text-decoration:none}.deploy-status-link:focus-visible,.deploy-status-link:hover{color:var(--accent-dark);text-decoration:underline}@media (prefers-reduced-motion:no-preference){.deploy-status[data-state=running] .deploy-status-dot{animation:deploy-running 1s ease-in-out infinite alternate}}@keyframes deploy-running{from{opacity:1}to{opacity:.3}}.icon-button{grid-area:signout;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;margin:0;background:0 0;border:none;border-radius:.3rem;color:var(--muted);cursor:pointer}.icon-button svg{display:block}.icon-button:focus-visible,.icon-button:hover{background:var(--bg);color:var(--text)}.content{flex:1;min-width:0;padding:2.5rem clamp(1rem,4vw,3rem)}.content h1{margin:0 0 1.25rem;text-transform:uppercase;letter-spacing:.09em;font-size:1rem;font-weight:400;color:var(--accent)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.page-head h1{margin:0}.page-head .button,.page-head button{margin-top:-.28rem;padding:.4rem .85rem;font-size:.85rem;font-weight:400;letter-spacing:.04em}@media (max-width:44rem){body.shell{flex-direction:column}.sidebar{position:static;height:auto;width:auto;flex-direction:row;align-items:center;gap:1rem;padding:.6rem 1rem;border-right:none;border-bottom:1px solid var(--border)}.sidebar-logo{margin:0}.sidebar-logo img{width:5.5rem}.sidebar nav{display:flex;gap:1rem}.sidebar-group-title{display:none}.sidebar nav[data-loading] .sidebar-skeleton{display:flex}.skeleton-title{display:none}.skeleton-item{width:6rem;height:2rem}.skeleton-item:nth-of-type(n+4){display:none}.sidebar-footer{display:flex;align-items:center;gap:.5rem;margin:0 0 0 auto;padding-top:0;border-top:none}.sidebar-user{display:none}.deploy-status{margin:0}.deploy-status-link,.deploy-status-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.deploy-status-link:focus-visible{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.sidebar-edit{margin-top:0}.sidebar-help{align-self:center;margin:0 0 0 auto;padding:0}.sidebar-help-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sidebar-help+.sidebar-footer{margin-left:0}.content{padding-top:1.5rem}}form{display:grid;gap:1rem;text-align:left}label{display:grid;gap:.35rem;font-size:.9rem;letter-spacing:.04em;position:relative}input{font:inherit;font-size:1rem;color:inherit;background:#fff;border:1px solid #d5c9ab;border-radius:.3rem;padding:.6rem .75rem}input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.field-error{position:absolute;top:calc(100% + .3rem);left:0;max-width:100%;z-index:1;padding:.35rem .6rem;background:var(--danger);color:#fff;font-size:.85rem;letter-spacing:normal;line-height:1.4;border-radius:.3rem;box-shadow:0 4px 12px rgba(31,44,58,.25);cursor:pointer}.field-error::before{content:'';position:absolute;top:-.35rem;left:.75rem;border:.35rem solid transparent;border-top:none;border-bottom-color:var(--danger)}button{font:inherit;font-size:1rem;font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:.3rem;padding:.75rem 1.2rem;cursor:pointer;margin-top:.25rem}button:focus-visible,button:hover{background:var(--accent-dark)}button:disabled{opacity:.6;cursor:default}a.button{display:inline-block;font-weight:700;color:#fff;background:var(--accent);border-radius:.3rem;padding:.75rem 1.2rem;text-decoration:none}a.button:focus-visible,a.button:hover{background:var(--accent-dark);color:#fff}.hint{margin:.5rem 0 0;font-size:.9rem;color:var(--muted)}.linklike,a{color:var(--accent-dark)}.help{max-width:56rem}.help section+section{margin-top:2rem}.help h2{margin:0 0 .5rem;font-size:1.1rem;font-weight:400;letter-spacing:.04em}.help p{margin:0 0 .75rem}.flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.75rem;margin:1rem 0;padding:0;list-style:none;counter-reset:flow}.flow-step{position:relative;display:flex;flex-direction:column;gap:.15rem;padding:2rem .75rem .75rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:.4rem;font-size:.9rem;line-height:1.35;text-align:center;counter-increment:flow}.flow-step::before{content:counter(flow);position:absolute;top:.5rem;left:50%;transform:translateX(-50%);width:1.2rem;height:1.2rem;border-radius:50%;background:var(--accent);color:#fff;font-size:.75rem;line-height:1.2rem}.flow-step:not(:last-child)::after{content:'›';position:absolute;top:50%;right:-1.3rem;transform:translateY(-50%);color:var(--accent);font-size:1.6rem;line-height:1}.flow-step span{color:var(--muted)}.flow-step small{margin-top:auto;padding-top:.5rem;color:var(--accent-dark);font-size:.78rem;letter-spacing:.04em}@media (max-width:64rem){.flow{grid-template-columns:minmax(0,1fr)}.flow-step:not(:last-child)::after{top:auto;right:auto;bottom:-1.5rem;left:50%;transform:translateX(-50%) rotate(90deg)}}.help-states{margin:0;padding:0;list-style:none;display:grid;gap:.6rem}.github-status,.help-states li{display:flex;align-items:baseline;gap:.5rem}.state-dot{flex-shrink:0;width:.6rem;height:.6rem;border-radius:50%;background:var(--border);border:1px solid var(--muted)}.state-dot.state-ok{background:#5c8a4d;border-color:#5c8a4d}.state-dot.state-running,.state-dot.state-warn{background:var(--accent);border-color:var(--accent)}.state-dot.state-error{background:var(--danger);border-color:var(--danger)}.linklike{display:inline-block;background:0 0;border:none;padding:0;margin:1.25rem 0 0;font:inherit;font-size:.9rem;font-weight:400;text-decoration:underline;cursor:pointer}.linklike:focus-visible,.linklike:hover{background:0 0;color:var(--accent)}.field-hint{font-size:.85rem;letter-spacing:normal;color:var(--muted)}.form-actions{display:flex;align-items:center;gap:1rem}.upload-progress{--progress:0;display:grid;place-items:center;width:3rem;height:3rem;margin-top:.25rem;border-radius:50%;background:conic-gradient(var(--accent) calc(var(--progress) * 1%),var(--border) 0);font-size:.7rem;font-weight:700;color:var(--muted)}.upload-progress::before{content:'';grid-area:1/1;width:2.3rem;height:2.3rem;border-radius:50%;background:var(--bg)}.upload-progress>span{grid-area:1/1}.upload-progress.saving{animation:upload-saving .9s ease-in-out infinite alternate}@keyframes upload-saving{from{opacity:1}to{opacity:.45}}.content-form{max-width:26rem}.table-wrap{overflow-x:auto}.user-table{width:100%;border-collapse:collapse;text-align:left;font-size:.95rem}.user-table td,.user-table th{padding:.6rem .75rem;border-bottom:1px solid var(--border);overflow-wrap:anywhere}.user-table tbody tr:nth-child(odd){background:var(--bg-soft)}.user-table tbody tr:hover{background:rgba(179,139,64,.14)}.user-table th{font-weight:400;text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:var(--muted)}.user-roles{font-size:.8rem;letter-spacing:.04em;color:var(--accent-dark)}.user-disabled{font-size:.8rem;color:var(--danger)}.user-actions{width:1%;white-space:nowrap;text-align:right;font-size:.85rem}.checkbox-group{border:none;padding:0;margin:0;display:grid;gap:.5rem}.checkbox-group legend{padding:0;margin-bottom:.35rem;font-size:.9rem;letter-spacing:.04em}.checkbox-option{display:flex;align-items:center;gap:.5rem;font-size:1rem;letter-spacing:normal}.checkbox-option input{width:1rem;height:1rem;margin:0;accent-color:var(--accent)}.menu-section+.menu-section{margin-top:2.5rem}.menu-section-title{margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.09em;font-size:.9rem;font-weight:400;color:var(--accent-dark)}.menu-table tbody tr:nth-child(odd){background:0 0}.menu-table tbody tr.odd{background:var(--bg-soft)}.menu-table tbody tr:hover{background:rgba(179,139,64,.14)}.menu-table tbody tr.menu-category,.menu-table tbody tr.menu-category:hover,.menu-table tbody tr.menu-note-row,.menu-table tbody tr.menu-note-row:hover{background:0 0}.menu-note{padding-top:.4rem;font-style:italic;font-size:.85rem;color:var(--muted)}.menu-table tbody tr.menu-category th{padding-top:1.5rem;text-transform:none;letter-spacing:.04em;font-size:.95rem;color:var(--accent-dark)}.menu-table tbody tr:first-child th{padding-top:.25rem}.menu-subtitle{margin-left:.6rem;font-style:italic;font-size:.85rem;color:var(--muted)}.menu-volume{margin-left:.4rem;font-size:.85rem;color:var(--muted)}.menu-price{width:1%;white-space:nowrap;text-align:right}.lang-flags{margin-left:.4rem;white-space:nowrap}.lang-flag{margin-left:.15rem;font-size:.9rem;cursor:help}.flag-tip{position:fixed;z-index:2;transform:translateY(calc(-100% - .55rem));width:max-content;max-width:min(24rem,calc(100vw - 1rem));padding:.35rem .6rem;background:var(--text);color:#fff;font-size:.85rem;line-height:1.4;border-radius:.3rem;box-shadow:0 4px 12px rgba(31,44,58,.25);pointer-events:none}.flag-tip::after{content:'';position:absolute;top:100%;left:var(--arrow-x,50%);transform:translateX(-50%);border:.35rem solid transparent;border-bottom:none;border-top-color:var(--text)}.flag-tip.below{transform:translateY(.55rem)}.flag-tip.below::after{top:auto;bottom:100%;border:.35rem solid transparent;border-top:none;border-bottom-color:var(--text)}@media (prefers-reduced-motion:no-preference){.flag-tip:not([hidden]){animation:fade-in .15s ease}}@keyframes fade-in{from{opacity:0}}.confirm-dialog{width:min(22rem,calc(100vw - 2rem));padding:1.5rem 1.5rem 1.75rem;background:var(--bg-soft);color:inherit;border:1px solid var(--border);border-radius:.5rem;box-shadow:0 12px 40px rgba(31,44,58,.25)}.confirm-dialog::backdrop{background:rgba(20,30,43,.7);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}@media (prefers-reduced-motion:no-preference){.confirm-dialog[open]{animation:dialog-in .28s ease-out both}.confirm-dialog[open]::backdrop{animation:dialog-backdrop-in .28s ease-out both}.confirm-dialog[open].is-closing{animation:dialog-out .22s ease-in both}.confirm-dialog[open].is-closing::backdrop{animation:dialog-backdrop-out .22s ease-in both}}@keyframes dialog-in{from{opacity:0;transform:translateY(.75rem) scale(.98)}}@keyframes dialog-backdrop-in{from{opacity:0}}@keyframes dialog-out{to{opacity:0;transform:translateY(.5rem) scale(.97)}}@keyframes dialog-backdrop-out{to{opacity:0}}.confirm-dialog h2{margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.09em;font-size:.9rem;font-weight:400;color:var(--accent)}.confirm-dialog p{margin:0}.confirm-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.5rem}.confirm-actions button{margin-top:0;padding:.55rem 1rem;font-size:.9rem;font-weight:400}.confirm-cancel{background:0 0;border:1px solid var(--border);color:var(--muted)}.confirm-cancel:focus-visible,.confirm-cancel:hover{background:var(--bg);color:var(--text)}.password-note{max-width:26rem;margin-top:1.25rem;padding:.9rem 1.1rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:.3rem;font-size:.9rem}.password-note p{margin:0 0 .35rem}.password-note p:last-child{margin-bottom:0}.password-note code{font-size:1rem;overflow-wrap:anywhere;user-select:all}.message-region{position:fixed;inset:0;width:auto;height:auto;margin:0;border:0;padding:0;background:0 0;overflow:visible;pointer-events:none}.message{pointer-events:auto;position:fixed;top:1rem;left:50%;transform:translateX(-50%);width:max-content;max-width:min(26rem,calc(100vw - 2rem));margin:0;padding:.7rem 1.2rem;border-radius:.3rem;font-size:.9rem;color:#fff;box-shadow:0 6px 20px rgba(31,44,58,.25)}.message.error{background:var(--danger)}.message.success{background:#4a7a3a}[hidden]{display:none!important}@media (prefers-reduced-motion:no-preference){.message:not([hidden]){animation:banner-in .35s ease}.message.leaving{animation:banner-out .3s ease forwards}section:not([hidden]){animation:view-in .3s ease}.field-error{animation:tooltip-in .25s ease}.field-error.leaving{animation:tooltip-out .25s ease forwards}}@keyframes banner-in{from{opacity:0;transform:translate(-50%,-1.25rem)}to{opacity:1;transform:translate(-50%,0)}}@keyframes banner-out{to{opacity:0;transform:translate(-50%,-1.25rem)}}@keyframes view-in{from{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes tooltip-in{from{opacity:0;transform:translateY(-.3rem)}to{opacity:1;transform:translateY(0)}}@keyframes tooltip-out{to{opacity:0;transform:translateY(-.3rem)}}