.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:100dvh;background:#f7f6f2;color:var(--ink);font-family:var(--sans);font-size:15px}.admin-skip{position:absolute;left:-999px}.admin-skip:focus{left:12px;top:12px;background:#fff;padding:10px;z-index:10}.admin-nav{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:24px;padding:24px 20px;border-right:1px solid var(--line);background:var(--paper)}.admin-brand a{font:400 22px/1 var(--serif)}.admin-brand span{display:block;margin-top:4px;font-size:13px;color:var(--muted)}.admin-menu-toggle{display:none}.admin-nav nav{display:flex;flex-direction:column;justify-content:space-between;flex:1 1}.admin-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.admin-nav ul a{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:6px}.admin-nav ul a:hover{background:var(--sand)}.admin-nav ul a[aria-current=page]{background:var(--ink);color:var(--paper)}.admin-nav-foot{display:grid;gap:10px;font-size:14px}.admin-nav-foot small{display:block;color:var(--muted);text-transform:capitalize}.admin-main{padding:40px clamp(20px,4vw,56px) 80px;min-width:0}.admin-page{max-width:880px}.admin-page h1{font:400 clamp(32px,3.4vw,44px)/1.1 var(--serif);margin:0 0 8px}.admin-kicker,.admin-muted{color:var(--muted)}.admin-kicker{font-size:13px;margin:0}.admin-toc{display:flex;flex-wrap:wrap;align-items:flex-start;gap:24px 40px;margin:28px 0 36px;padding:20px 24px;background:var(--paper);border:1px solid var(--line);border-radius:8px}.admin-toc h2{font:600 13px var(--sans);margin:0 0 6px;color:var(--muted)}.admin-toc ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.admin-toc a{text-decoration:underline;text-underline-offset:3px}.admin-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:clamp(20px,3vw,32px);margin-bottom:24px;scroll-margin-top:24px}.admin-card-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}.admin-card-head h2{font:400 26px/1.15 var(--serif);margin:2px 0 0}.admin-card-head a{text-decoration:underline;text-underline-offset:3px}.admin-card-head a.admin-button,.admin-card-head a.admin-button-secondary{text-decoration:none}.admin-card-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.admin-field{display:grid;gap:6px;margin-bottom:20px;font-weight:500}.admin-field input,.admin-field select,.admin-field textarea{font:400 16px var(--sans);min-height:44px;padding:10px 12px;border:1px solid #b9b3a7;border-radius:6px;background:#fff;color:var(--ink)}.admin-field input:focus-visible,.admin-field select:focus-visible,.admin-field textarea:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.admin-field [aria-invalid=true]{border-color:#9a3b22}.admin-field small{font-weight:400}.admin-field-foot{display:flex;justify-content:space-between;align-items:center}.admin-error{color:#9a3b22;font-weight:500;margin:0}.admin-notice{background:var(--sand);padding:12px 14px;border-radius:6px;margin:0 0 16px}.admin-button,.admin-button-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border-radius:6px;font:500 15px var(--sans);cursor:pointer;white-space:nowrap;text-decoration:none}.admin-button{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.admin-button:disabled{opacity:.45;cursor:not-allowed}.admin-button-secondary{background:#fff;color:var(--ink);border:1px solid #b9b3a7}.admin-button-secondary:active,.admin-button:active{transform:translateY(1px)}.admin-reset{display:grid;gap:6px;margin-top:8px;min-width:240px}.admin-reset .admin-field{margin:0}.admin-reset input{font:400 16px var(--sans);min-height:44px;padding:10px 12px;border:1px solid #b9b3a7;border-radius:6px;background:#fff;color:var(--ink)}.admin-reset input[aria-invalid=true]{border-color:#9a3b22}.admin-link{background:none;border:0;padding:0;min-height:44px;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit}.admin-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.admin-image-field{border:1px solid var(--line);border-radius:8px;padding:16px;margin:0 0 20px}.admin-image-field legend{font:500 15px var(--sans);letter-spacing:0;padding:0 6px}.admin-image-current{display:grid;gap:12px;margin-bottom:12px}.admin-image-current img{border-radius:4px;max-width:100%;height:auto}.admin-dialog{border:0;padding:0;background:transparent;color:inherit;width:min(960px,calc(100% - 32px));max-width:none;max-height:none;overflow:visible}.admin-dialog::backdrop{background:rgb(31 30 28/.5)}.admin-dialog-panel{background:#fff;border-radius:10px;width:100%;max-height:88dvh;overflow:auto;padding:24px}.admin-dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.admin-dialog-head h2{font:400 26px var(--serif);margin:0}.admin-media-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.admin-media-grid button{padding:0;border:2px solid transparent;border-radius:6px;cursor:pointer;background:none;display:block;width:100%}.admin-media-grid button:focus-visible,.admin-media-grid button:hover{border-color:var(--ink)}.admin-media-grid img{width:100%;height:auto;border-radius:4px}.admin-media-grid span{display:block;font-size:13px;color:var(--muted);margin-top:4px}.admin-skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.admin-skeleton-grid span{height:120px;border-radius:6px;background:var(--sand)}.admin-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.admin-table td,.admin-table th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table th{font-size:13px;color:var(--muted);font-weight:600;background:#faf9f6}.admin-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;background:var(--sand)}.admin-badge.published{background:#dfeadb;color:#2e4a2a}.admin-badge.warn{background:#f5e3d8;color:#7a3a1d}.admin-login{min-height:100dvh;display:grid;place-items:center;padding:16px;background:#f7f6f2;font-family:var(--sans)}.admin-login-card{width:min(400px,100%);background:#fff;border:1px solid var(--line);border-radius:10px;padding:32px}.admin-login-card h1{font:400 30px var(--serif);margin:0}.admin-form{display:grid;gap:4px;margin-top:20px}.admin-card>h2{font:400 26px/1.15 var(--serif);margin:0 0 16px}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:20px}.admin-columns h3{font:400 22px/1.2 var(--serif);margin:20px 0 8px}.admin-columns article{padding:12px 0;border-bottom:1px solid var(--line)}.admin-columns p{overflow-wrap:anywhere;white-space:pre-wrap;margin:4px 0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:800px){.admin-columns,.admin-shell{grid-template-columns:1fr}.admin-shell{grid-template-rows:auto 1fr}.admin-nav{position:sticky;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:12px 16px;border-right:0;border-bottom:1px solid var(--line);z-index:5}.admin-menu-toggle{display:inline-flex;min-height:44px;align-items:center;background:none;border:1px solid var(--line);border-radius:6px;padding:0 14px;font:inherit}.admin-nav nav{display:none;flex-basis:100%;gap:16px}.admin-nav nav.open{display:flex}.admin-main{padding:24px 16px 64px}.admin-card-foot{flex-direction:column;align-items:stretch}.admin-table thead{display:none}.admin-table tr{display:grid;padding:12px;border-bottom:1px solid var(--line)}.admin-table td{border:0;padding:4px 0}}@media (prefers-reduced-motion:reduce){.admin-button-secondary:active,.admin-button:active{transform:none}}.admin-practice-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-practice-entry .admin-field{margin:0;flex:1 1;min-width:220px}.admin-card>.admin-practice-entry input{font:400 22px var(--serif)}.admin-practice-list{list-style:none;margin:16px 0;padding:0 0 0 20px;border-left:2px solid var(--line);display:grid;gap:8px}.admin-practice-add{margin-top:8px}