:root{
  --color-canvas-default:#ffffff;
  --color-canvas-subtle:#f6f8fa;
  --color-canvas-inset:#f6f8fa;
  --color-border-default:#d0d7de;
  --color-border-muted:#d8dee4;
  --color-fg-default:#24292f;
  --color-fg-muted:#57606a;
  --color-accent-fg:#0969da;
  --color-accent-emphasis:#0969da;
  --color-accent-subtle:#ddf4ff;
  --color-success-fg:hsl(141, 71%, 48%);
  --color-danger-fg:hsl(348, 100%, 61%);
  --color-danger-emphasis:hsl(348, 100%, 61%);
  --color-attention-subtle:#fff8c5;
  --shadow-small:0 1px 0 rgba(27,31,36,.04);
  --shadow-medium:0 8px 24px rgba(140,149,159,.18);
  --border-radius:10px;
  --font-stack:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{min-width:320px;background:var(--color-canvas-default);overflow-y:scroll}
body{margin:0;background:var(--color-canvas-default);color:var(--color-fg-default);font-family:var(--font-stack);font-size:15px;line-height:1.55;-webkit-text-size-adjust:100%}
a{color:var(--color-accent-fg);text-decoration:none}
a:hover{text-decoration:underline}
img,svg{max-width:100%}
code { 
    padding: .12rem .35rem;
    border: 1px solid var(--color-border-muted);
    border-radius: 6px;
    background: var(--color-canvas-subtle);
    font-family: "Courier New", Courier, monospace;
    font-size: 14px;
    }
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:36px;padding:7px 12px;border:1px solid var(--color-border-default);border-radius:8px;background:#f6f8fa;color:var(--color-fg-default);font:inherit;font-weight:600;line-height:20px;white-space:nowrap;cursor:pointer;box-shadow:var(--shadow-small)}
.btn:hover{text-decoration:none;background:#eef1f4}
.btn-primary{border-color:rgba(31,35,40,.15);background:var(--color-accent-emphasis);color:#fff}
.btn-primary:hover{background:#0757b8;color:#fff}
.btn-danger{border-color:rgba(207,34,46,.35);background:#fff;color:var(--color-danger-fg)}
.btn-danger:hover{background:#ffebe9;color:var(--color-danger-fg)}
.btn-small{min-height:30px;padding:4px 9px;font-size:13px;border-radius:7px}
.form-control{display:block;width:100%;min-height:38px;margin-top:0;padding:8px 10px;border:1px solid var(--color-border-default);border-radius:8px;background:#fff;color:var(--color-fg-default);font:inherit;line-height:20px;box-shadow:inset 0 1px 0 rgba(208,215,222,.2)}
.form-control:focus{border-color:var(--color-accent-emphasis);outline:2px solid rgba(9,105,218,.18);outline-offset:0}
textarea.form-control{resize:vertical}
.flash { 
    margin: 0 0 15px;
    padding: 10px 15px;
    border: 1px solid var(--color-border-default);
    border-radius: 14px;background:#fff;
    color: var(--color-fg-default);
    /*box-shadow: 0 10px 30px rgba(31,35,40,.12);*/
    font-size: 15px;
    line-height: 1.45
    }
.flash-success{border-color:#b7ebc4;background:#f0fff4;color:#116329}
.flash-danger{border-color:#ffc5c0;background:#fff1f0;color:#82071e}
.flash-warning{border-color:#f1d36b;background:#fff9db;color:#4d2d00}
.flash-toast-region { 
    position: fixed;
    top: 72px;
    left: 50%;
    z-index: 1000;
    display: flex;
    justify-content: center;
    width: calc(100% - 30px);
    max-width: 900px;
    transform: translateX(-50%);
    pointer-events: none
    }
.flash-toast { 
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: max-content;
    max-width: 100%;
    margin: 0;
    padding: 7px 12px;
    border: 0;
    border-radius: 8px;
    background: var(--color-accent-emphasis);
    color: #fff;
    box-shadow: none;
    pointer-events: auto;
    animation: flash-toast-hide 5.45s ease forwards;
    will-change: opacity,transform
    }
.flash-toast.flash-success{background:var(--color-accent-emphasis);color:#fff}
.flash-toast.flash-danger{background:#cf222e;color:#fff}
.flash-toast.flash-warning{background:#f1b604;color:#231900}
.flash-toast::before{content:"";flex:0 0 8px;width:8px;height:8px;margin-top:.48em;border-radius:999px;background:currentColor;opacity:.9}
.flash-toast-dismissing{opacity:0!important;transform:translateY(-8px)!important;transition:opacity .4s ease,transform .4s ease}
@keyframes flash-toast-hide{0%{opacity:0;transform:translateY(-10px)}8%{opacity:1;transform:translateY(0)}88%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-8px);visibility:hidden}}
@media (max-width:640px) {
    .flash-toast-region  { 
        top: 72px;
        width: calc(100% - 30px) 
        }
        .flash-toast { padding: 10px 15px;
            border-radius: 8px;
            }
        }
.badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border:1px solid var(--color-border-default);border-radius:999px;background:var(--color-canvas-subtle);color:var(--color-fg-muted);font-size:12px;font-weight:400;white-space:nowrap}
.badge-soft{border-color:#bfdbfe;background:#eff6ff;color:#0757b8}
.muted{color:var(--color-fg-muted)}
.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--color-border-default);border-radius:10px;background:#fff}
.data-table{width:100%;min-width:680px;border-collapse:collapse;font-size:14px}
.data-table th,.data-table td{padding:10px 10px;border-bottom:1px solid var(--color-border-muted);text-align:left;vertical-align:top}
.data-table th{background:var(--color-canvas-subtle);font-weight:600;color:var(--color-fg-muted)}
.data-table tr:last-child td{border-bottom:0}

/* CMS patch: toast and database table tweaks */
.flash-toast::before{content:none!important;display:none!important}
.data-table th{padding:10px 15px}

/* CMS patch: code font */
code{font-family:"Courier New",Courier,monospace}
