:root{--canvas: #f7f6f3;--paper: #ffffff;--ink: #2f3437;--muted: #787774;--line: #eaeaea;--accent: #6e5a94;--accent-ink: #534272;--accent-wash: #f3eef8;--wash: var(--accent-wash);--wash-ink: var(--accent-ink);--danger-bg: #fdebec;--danger-ink: #9f2f2d;--ok-bg: #edf3ec;--ok-ink: #346538;--warn-bg: #fbf3db;--warn-ink: #956400;--sans: "Helvetica Neue", "SF Pro Display", "Segoe UI", sans-serif;--serif: "Iowan Old Style", Palatino, "Palatino Linotype", Georgia, serif;--mono: "SF Mono", ui-monospace, "JetBrains Mono", monospace;--radius: 8px;--radius-control: 6px}*{box-sizing:border-box}html,body{margin:0;background:var(--canvas);color:var(--ink);font:15px/1.6 var(--sans)}h1,h2,h3,h4,p{margin:0}h1{font-size:2rem;font-weight:560;line-height:1.15;letter-spacing:-.03em}h2{font-size:1.2rem;font-weight:560;letter-spacing:-.02em}h3{font-size:1rem;font-weight:560}.display{font-family:var(--serif);font-size:clamp(2.4rem,4vw,3.4rem);font-weight:500;line-height:1.1;letter-spacing:-.03em;max-width:16ch}a{color:var(--accent);text-underline-offset:.15em}a:hover{color:var(--accent-ink)}button,input,select,textarea{font:inherit;color:inherit}button,.button,a.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.15rem;padding:.35rem .8rem;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--paper);color:var(--ink);text-decoration:none;cursor:pointer;transition:background-color .16s ease,transform .16s ease}button:hover,.button:hover,a.button:hover{background:var(--canvas)}button:active,.button:active,a.button:active{transform:scale(.98)}button:disabled,.button:disabled{opacity:.5;cursor:default;transform:none}button.primary,.button.primary,a.button.primary{background:#111;border-color:#111;color:#fff}button.primary:hover,.button.primary:hover,a.button.primary:hover{background:#333}button.danger,.button.danger{background:var(--danger-bg);border-color:transparent;color:var(--danger-ink)}button.ghost,.button.ghost{background:transparent;border-color:transparent}button.icon,.button.icon{padding:.4rem;min-width:2.15rem}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--paper);padding:.55rem .65rem}input[type=checkbox],input[type=radio]{width:1rem;height:1rem;margin:0;accent-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--muted)}textarea{min-height:6rem;resize:vertical}label.field,.field{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;font-weight:560;letter-spacing:.01em}.row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.stack{display:flex;flex-direction:column;gap:1rem}.spread{display:flex;align-items:center;justify-content:space-between;gap:1rem}.muted{color:var(--muted)}.page{padding:3rem 1.5rem 4rem;max-width:64rem}.page-wide{padding:2rem 1.5rem 3rem}.notice{border:1px solid var(--line);border-radius:var(--radius);padding:.75rem .9rem;background:var(--paper)}.notice.error{background:var(--danger-bg);color:var(--danger-ink);border-color:transparent}.notice.success{background:var(--ok-bg);color:var(--ok-ink);border-color:transparent}.notice.warning{background:var(--warn-bg);color:var(--warn-ink);border-color:transparent}.tag,.badge{display:inline-flex;align-items:center;gap:.35rem;border:0;border-radius:999px;padding:.15rem .5rem;background:var(--wash);color:var(--wash-ink);font-size:.75rem;font-weight:560;letter-spacing:.02em;line-height:1.4}table{width:100%;border-collapse:collapse;background:var(--paper)}th,td{border-bottom:1px solid var(--line);text-align:left;padding:.65rem .5rem;vertical-align:top}th{font-size:.75rem;font-weight:560;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.tabs{display:flex;gap:.35rem;flex-wrap:wrap}.shell{display:grid;grid-template-columns:13.5rem minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);min-height:100dvh;height:100dvh;background:var(--canvas)}.topbar{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:3.25rem;padding:.55rem 1.1rem;background:var(--paper);border-bottom:1px solid var(--line)}.brand{color:var(--ink);font-weight:600;letter-spacing:-.03em;text-decoration:none}.nav{border-right:1px solid var(--line);padding:1rem .75rem;overflow:auto;background:var(--canvas)}.nav a{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .55rem;border-radius:var(--radius-control);color:var(--ink);text-decoration:none}.nav-link-main{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.nav a:hover{color:var(--ink);background:#6e5a940f}.nav a[aria-current=page]{background:var(--accent-wash);color:var(--accent-ink)}.nav-group{margin-top:1.25rem}.nav-group p{font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:.25rem .6rem .4rem}.shell-main{min-width:0;min-height:0;overflow:auto;background:var(--canvas)}.account{position:relative}.account-panel{position:absolute;right:0;top:calc(100% + .4rem);z-index:20;min-width:16rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:.85rem}.modal-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:1rem;background:#2f343747}.modal{width:min(32rem,100%);max-height:calc(100dvh - 2rem);overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:1.5rem}.card,.tile{border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;background:var(--paper);transition:box-shadow .2s ease}.card:hover,.tile:hover{box-shadow:0 2px 8px #0000000a}kbd{border:1px solid var(--line);border-radius:4px;background:var(--canvas);padding:.05rem .35rem;font-family:var(--mono);font-size:.75rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:720px){.shell{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr);height:auto;min-height:100dvh}.nav{border-right:0;border-bottom:1px solid var(--line)}.nav nav{display:flex;flex-wrap:wrap;gap:.25rem}.nav-group{margin-top:.5rem}.page{padding:1.5rem 1rem 3rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
