*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--color-primary: #5ea500;--color-accent: #2563eb;--color-background: #f6f8f4;--color-surface: #ffffff;--color-surface-muted: #eef2ea;--color-text: #17210f;--color-text-muted: #5d6b52;--color-text-inverse: #ffffff;--color-border: #d7dfcf;--color-success: #2f7d32;--color-warning: #b7791f;--color-danger: #c62828;--color-info: #2563eb;--color-focus: #5ea500;--color-focus-ring: rgb(94 165 0 / 22%);--color-shadow: rgb(23 33 15 / 8%)}.dark{--color-primary: #8bd845;--color-accent: #60a5fa;--color-background: #0e150a;--color-surface: #141d0f;--color-surface-muted: #1e2a17;--color-text: #edf5e8;--color-text-muted: #b7c6ad;--color-text-inverse: #ffffff;--color-border: #344228;--color-success: #7ecb7e;--color-warning: #f2c66d;--color-danger: #f87171;--color-info: #60a5fa;--color-focus: #8bd845;--color-focus-ring: rgb(139 216 69 / 25%);--color-shadow: rgb(0 0 0 / 28%)}html{color-scheme:light}html.dark{color-scheme:dark}body{margin:0;background:var(--color-background);color:var(--color-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}code{color:var(--color-accent)}.app-shell{min-height:100vh;background:var(--color-background);color:var(--color-text)}@media (min-width: 1024px){.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr)}}.desktop-sidebar{display:none;border-right:1px solid var(--color-border);background:var(--color-surface-muted)}@media (min-width: 1024px){.desktop-sidebar{display:block;height:100vh;min-height:100vh;position:sticky;top:0}}.sidebar-brand{display:grid;gap:.65rem;padding:1.25rem}.topbar{position:sticky;top:0;z-index:20;display:flex;min-height:72px;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 92%,transparent);padding:.85rem 1rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media (min-width: 768px){.topbar{padding-left:1.5rem;padding-right:1.5rem}}.content-area{padding:1rem}@media (min-width: 768px){.content-area{padding:1.5rem}}.login-page{display:grid;min-height:100vh;place-items:center;background:radial-gradient(circle at top left,color-mix(in srgb,var(--color-primary) 18%,transparent),transparent 34rem),var(--color-background);padding:1.25rem}.login-card{width:min(100%,30rem);border:1px solid var(--color-border);border-radius:1rem;background:var(--color-surface);box-shadow:0 24px 80px var(--color-shadow);padding:2rem}.panel{border:1px solid var(--color-border);border-radius:1rem;background:var(--color-surface);box-shadow:0 12px 36px var(--color-shadow)}.page-header{display:flex;flex-direction:column;gap:1rem}@media (min-width: 768px){.page-header{flex-direction:row;align-items:flex-start;justify-content:space-between}}.page-title{font-size:clamp(1.65rem,3vw,2.35rem);font-weight:900;letter-spacing:-.04em}.page-actions{display:flex;flex-wrap:wrap;gap:.6rem}.eyebrow{color:var(--color-primary);font-size:.72rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase}.text-muted{color:var(--color-text-muted)}.border-token{border-color:var(--color-border)}.field{width:100%;border:1px solid var(--color-border);border-radius:.55rem;background:var(--color-surface);color:var(--color-text);padding:.58rem .75rem;font-size:.9rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.field::-moz-placeholder{color:var(--color-text-muted)}.field::placeholder{color:var(--color-text-muted)}.field:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px var(--color-focus-ring)}.field:disabled{cursor:not-allowed;background:var(--color-surface-muted);color:var(--color-text-muted)}.field-label{font-size:.875rem;font-weight:700}.help-text{color:var(--color-text-muted);font-size:.78rem}.required{color:var(--color-danger)}.checkbox-row{display:flex;align-items:center;gap:.65rem;color:var(--color-text-muted);font-size:.9rem}.checkbox-row input{width:1rem;height:1rem;accent-color:var(--color-primary)}.btn-primary,.btn-secondary,.btn-danger,.icon-button{border-radius:.55rem;border:1px solid transparent;font-size:.9rem;font-weight:800;line-height:1.2;transition:transform .12s ease,background .15s ease,border-color .15s ease,color .15s ease}.btn-primary,.btn-secondary,.btn-danger{min-height:2.45rem;padding:.62rem .95rem}.btn-primary{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);background:color-mix(in srgb,var(--color-primary) 82%,black)}.btn-secondary{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-muted)}.btn-danger{border-color:color-mix(in srgb,var(--color-danger) 35%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 10%,var(--color-surface));color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-danger) 18%,var(--color-surface))}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{cursor:not-allowed;opacity:.55;transform:none}.icon-button{display:inline-grid;width:2.45rem;height:2.45rem;place-items:center;border-color:var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:1.15rem}.nav-link{border-left:3px solid transparent;border-radius:.75rem;color:var(--color-text-muted);padding:.85rem .9rem;text-align:left;transition:background .15s ease,border-color .15s ease,color .15s ease}.nav-link:hover,.nav-link.active{border-left-color:var(--color-primary);background:var(--color-surface);color:var(--color-text)}.mobile-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.drawer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000007a}.drawer-panel{position:relative;z-index:1;height:100%;width:min(90vw,22rem);overflow-y:auto;background:var(--color-surface);box-shadow:24px 0 80px #00000047;padding:1rem}.theme-switch{display:flex;align-items:center;gap:.55rem;color:var(--color-text-muted);font-size:.88rem;font-weight:700}.env-badge,.status-badge,.chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid transparent;font-size:.75rem;font-weight:900;line-height:1;padding:.38rem .62rem;text-transform:uppercase}.env-badge.danger,.status-badge.danger{border-color:color-mix(in srgb,var(--color-danger) 35%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 12%,var(--color-surface));color:var(--color-danger)}.env-badge.warning,.status-badge.warning{border-color:color-mix(in srgb,var(--color-warning) 35%,var(--color-border));background:color-mix(in srgb,var(--color-warning) 14%,var(--color-surface));color:var(--color-warning)}.env-badge.success,.status-badge.success{border-color:color-mix(in srgb,var(--color-success) 35%,var(--color-border));background:color-mix(in srgb,var(--color-success) 12%,var(--color-surface));color:var(--color-success)}.env-badge.info,.status-badge.info{border-color:color-mix(in srgb,var(--color-info) 35%,var(--color-border));background:color-mix(in srgb,var(--color-info) 12%,var(--color-surface));color:var(--color-info)}.notice{border:1px solid var(--color-border);border-radius:.75rem;padding:.85rem 1rem}.notice-success{border-color:color-mix(in srgb,var(--color-success) 35%,var(--color-border));background:color-mix(in srgb,var(--color-success) 10%,var(--color-surface));color:var(--color-success)}.notice-warning{border-color:color-mix(in srgb,var(--color-warning) 35%,var(--color-border));background:color-mix(in srgb,var(--color-warning) 12%,var(--color-surface));color:var(--color-warning)}.notice-danger{border-color:color-mix(in srgb,var(--color-danger) 35%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 10%,var(--color-surface));color:var(--color-danger)}.template-list-item{border:1px solid transparent;border-left:3px solid transparent;border-radius:.75rem;color:var(--color-text);padding:.8rem;text-align:left;transition:background .15s ease,border-color .15s ease}.template-list-item:hover,.template-list-item.active{border-color:var(--color-border);border-left-color:var(--color-primary);background:var(--color-surface-muted)}.chip{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text-muted);text-transform:none}.chip.active,.chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.empty-state{border:1px dashed var(--color-border);border-radius:.85rem;background:color-mix(in srgb,var(--color-surface-muted) 60%,transparent);padding:1rem;text-align:center}.empty-inline{border:1px solid var(--color-border);border-radius:.75rem;color:var(--color-text-muted);padding:.85rem}.skeleton-row{display:block;height:3rem;overflow:hidden;border-radius:.75rem;background:linear-gradient(90deg,var(--color-surface-muted),color-mix(in srgb,var(--color-surface-muted) 55%,var(--color-surface)),var(--color-surface-muted));background-size:220% 100%;animation:skeleton-pulse 1.4s ease-in-out infinite}.table-scroll{overflow-x:auto}.admin-table{width:100%;min-width:760px;border-collapse:collapse;font-size:.88rem}.admin-table th{background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.72rem;letter-spacing:.08em;padding:.85rem 1rem;text-align:left;text-transform:uppercase}.admin-table td{border-top:1px solid var(--color-border);padding:.95rem 1rem;vertical-align:top}.admin-table tr:hover td,.admin-table tr.selected td{background:color-mix(in srgb,var(--color-primary) 7%,var(--color-surface))}.admin-table tr.\!selected td{background:color-mix(in srgb,var(--color-primary) 7%,var(--color-surface))!important}.link-button{color:var(--color-accent);font-weight:800}.link-button:hover{text-decoration:underline;text-underline-offset:3px}.detail-grid{display:grid;grid-template-columns:minmax(7rem,auto) minmax(0,1fr);gap:.55rem 1rem;font-size:.88rem}.detail-grid dt{color:var(--color-text-muted);font-weight:800}.detail-grid dd{min-width:0;overflow-wrap:anywhere}.code-block{border-radius:.75rem;background:var(--color-surface-muted);color:var(--color-text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.78rem;padding:.9rem;white-space:pre-wrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.mx-4{margin-left:1rem;margin-right:1rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-96{height:24rem}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.max-h-72{max-height:18rem}.min-h-40{min-height:10rem}.min-h-\[calc\(100\%-7rem\)\]{min-height:calc(100% - 7rem)}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-3xl{max-width:48rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-t{border-top-width:1px}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@keyframes skeleton-pulse{0%{background-position:0% 50%}to{background-position:-220% 50%}}.cm-editor{font-size:13px;max-width:100%;width:100%}.cm-scroller{overflow:auto!important}@media (min-width: 640px){.sm\:flex{display:flex}}@media (min-width: 768px){.md\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[1fr_1fr_auto_auto\]{grid-template-columns:1fr 1fr auto auto}.md\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:justify-between{justify-content:space-between}}@media (min-width: 1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-24{top:6rem}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-\[320px\]{grid-template-columns:320px}.xl\:grid-cols-\[320px_minmax\(0\,1fr\)\]{grid-template-columns:320px minmax(0,1fr)}.xl\:grid-cols-\[minmax\(0\,1fr\)_520px\]{grid-template-columns:minmax(0,1fr) 520px}}
