@font-face{font-family:"Fraunces";src:url(fonts/fraunces-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Nunito";src:url(fonts/nunito-latin-wght-normal.woff2) format("woff2");font-weight:200 1000;font-display:swap}
@font-face{font-family:"Caveat";src:url(fonts/caveat-latin-wght-normal.woff2) format("woff2");font-weight:400 700;font-display:swap}

:root{
  --bg:#fff;--sand:#f5f5f2;--ink:#1c1c1a;--ink2:#4b4b47;--muted:#6c6c67;--line:#e8e8e4;--line2:#d4d4cf;
  --moss:#355e1f;--leaf:#b2d67c;--leaf-h:#a3c86b;--leaf-pale:#eef5e3;
  --warn:#8a5a00;--warn-pale:#fff4dc;--danger:#a3261b;--danger-pale:#fdecea;--info:#1d4f91;--info-pale:#e9f1fb;
  --jp:"Nunito","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15.5px/1.65 var(--jp);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--moss);outline-offset:2px;border-radius:6px}
.hand{font-family:"Caveat",cursive;font-weight:600;color:var(--moss);line-height:1}
.serif{font-family:"Fraunces",Georgia,serif;font-weight:400;letter-spacing:-.015em}
.ico{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 18px;border-radius:999px;background:var(--leaf);color:var(--ink);font-weight:800;font-size:15px;white-space:nowrap}
.btn:hover{background:var(--leaf-h)}
.btn.lg{min-height:50px;padding:0 26px;font-size:16px}
.btn.line{background:#fff;box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.line:hover{background:var(--sand)}
.btn.ghost{background:transparent}
.btn.ghost:hover{background:var(--sand)}
.btn.dark{background:var(--ink);color:#fff}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.tlink{font-weight:800;text-decoration:underline;text-decoration-color:var(--leaf);text-decoration-thickness:3px;text-underline-offset:4px}

/* chips */
.st{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:1px 10px;font-size:12.5px;font-weight:800;white-space:nowrap}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st.draft{background:var(--sand);color:var(--ink2)}
.st.live{background:var(--leaf-pale);color:var(--moss)}
.st.pending{background:var(--warn-pale);color:var(--warn)}
.st.stopped{background:#eee;color:var(--muted)}

/* notices */
.note{display:flex;gap:10px;align-items:flex-start;border-radius:14px;padding:12px 14px;font-size:14.5px}
.note b{display:block}
.note.info{background:var(--info-pale);color:#123257}
.note.warn{background:var(--warn-pale);color:#4d3200}
.note.danger{background:var(--danger-pale);color:#5c140e}
.note.ok{background:var(--leaf-pale);color:#203a12}

/* form */
.field{display:grid;gap:6px}
.field>label,.field>.lab{font-size:13.5px;font-weight:800;color:var(--ink)}
.field .hint{font-size:12.5px;color:var(--muted)}
.input,.select,.area{width:100%;border:1.5px solid var(--line2);border-radius:12px;padding:9px 12px;background:#fff;font-size:14.5px}
.area{min-height:78px;resize:vertical;line-height:1.5}
.input:focus,.select:focus,.area:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px var(--leaf-pale)}
.count{font-size:12px;color:var(--muted);text-align:right}
.input.err,.area.err{border-color:var(--danger)}
.err-msg{font-size:12.5px;color:var(--danger);font-weight:700}

/* mock switcher (owner-facing) */
.mockbar{position:sticky;top:0;z-index:90;background:var(--ink);color:rgba(255,255,255,.85);font-size:12.5px}
.mockbar .in{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:7px 16px;max-width:1440px;margin:auto}
.mockbar b{color:#fff}
.mockbar nav{display:flex;flex-wrap:wrap;gap:4px;margin-left:auto}
.mockbar nav a{padding:2px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.25);white-space:nowrap}
.mockbar nav a[aria-current]{background:var(--leaf);border-color:var(--leaf);color:var(--ink);font-weight:800}
