:root{--app-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--app-page-bg: #020617;--app-page-gradient: linear-gradient(135deg, #020617, #0b1120);--app-page-text: #e2e8f0;--app-surface: #0f172a;--app-surface-muted: #1d2540;--app-surface-dark: #020617;--app-border: rgba(148, 163, 184, .35);--app-border-strong: rgba(148, 163, 184, .6);--app-text: #f8fafc;--app-text-muted: #cbd5f5;--app-text-subtle: #94a3b8;--app-shadow-card: 0 18px 32px rgba(2, 6, 23, .5);--app-radius-lg: 1.25rem;--app-radius: .85rem;--app-gradient-start: #6366f1;--app-gradient-end: #7c3aed;--app-link: #93c5fd;--app-link-hover: #bfdbfe;--app-button-primary-text: #fdfcff;--app-control-bg: rgba(148, 163, 184, .15);--app-control-border: rgba(148, 163, 184, .55);--app-control-focus: rgba(147, 197, 253, .55);--app-control-indicator: #f8fafc;--app-control-size: 1.05rem;--app-warning-bg: rgba(251, 191, 36, .1);--app-warning-border: rgba(251, 191, 36, .4);--app-warning-text: #fde68a;--app-success-bg: rgba(16, 185, 129, .12);--app-success-border: rgba(16, 185, 129, .5);--app-success-text: #6ee7b7;--app-banner-bg: rgba(99, 102, 241, .15);--app-banner-border: rgba(129, 140, 248, .4);--app-status-pill-text: #cbd5f5;--app-status-idle-bg: rgba(148, 163, 184, .25);--app-status-idle-text: #e2e8f0;--app-status-progress-bg: rgba(14, 165, 233, .35);--app-status-progress-text: #7dd3fc;--app-status-complete-bg: rgba(34, 197, 94, .35);--app-status-complete-text: #86efac}@media (prefers-color-scheme: dark){:root{--app-page-bg: var(--app-surface-dark);--app-page-gradient: linear-gradient(135deg, #0f172a, #020617);--app-page-text: #f8fafc;--app-surface: #0f172a;--app-border: rgba(148, 163, 184, .35);--app-border-strong: rgba(148, 163, 184, .6);--app-text: #f8fafc;--app-text-muted: #cbd5f5;--app-shadow-card: 0 14px 28px rgba(2, 6, 23, .65);--app-link: #a5b4fc;--app-link-hover: #c7d2fe;--app-control-bg: rgba(148, 163, 184, .25);--app-control-border: rgba(148, 163, 184, .55);--app-control-focus: rgba(99, 102, 241, .65);--app-control-indicator: #f8fafc;--app-banner-bg: rgba(99, 102, 241, .15);--app-banner-border: rgba(129, 140, 248, .4);--app-warning-bg: rgba(251, 191, 36, .15);--app-warning-border: rgba(251, 191, 36, .5);--app-warning-text: #fde68a;--app-success-bg: rgba(16, 185, 129, .12);--app-success-border: rgba(16, 185, 129, .5);--app-success-text: #6ee7b7}}body.app-theme{margin:0;min-height:100vh;background:var(--app-page-gradient, var(--app-page-bg));color:var(--app-page-text, var(--app-text));font-family:var(--app-font-sans)}input[type=checkbox],input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:var(--app-control-size, 1rem);block-size:var(--app-control-size, 1rem);min-inline-size:var(--app-control-size, 1rem);min-block-size:var(--app-control-size, 1rem);border:1px solid var(--app-control-border, rgba(148, 163, 184, .4));border-radius:.35rem;background:var(--app-control-bg, rgba(148, 163, 184, .15));color:var(--app-control-indicator, #fff);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease,transform .12s ease;vertical-align:middle;flex-shrink:0}input[type=checkbox]:hover,input[type=radio]:hover{border-color:var(--app-border-strong, rgba(148, 163, 184, .6))}input[type=radio]{border-radius:999px}input[type=checkbox]:after,input[type=radio]:after{content:"";position:absolute;left:50%;top:50%;display:block;opacity:0;transition:transform .14s ease,opacity .14s ease}input[type=checkbox]:after{width:.35rem;height:.65rem;border-right:2px solid var(--app-control-indicator, #fff);border-bottom:2px solid var(--app-control-indicator, #fff);transform:translate(-50%,-55%) rotate(45deg) scale(0);transform-origin:center}input[type=radio]:after{width:.5rem;height:.5rem;border-radius:999px;background:var(--app-control-indicator, #fff);transform:translate(-50%,-50%) scale(.4)}input[type=checkbox]:checked,input[type=radio]:checked{background:linear-gradient(135deg,var(--app-gradient-start, #6366f1),var(--app-gradient-end, #7c3aed));border-color:transparent;box-shadow:0 0 0 2px #94a3b826}input[type=checkbox]:checked:after{opacity:1;transform:translate(-50%,-55%) rotate(45deg) scale(1)}input[type=radio]:checked:after{opacity:1;transform:translate(-50%,-50%) scale(1)}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:none;box-shadow:0 0 0 2px var(--app-surface, #0f172a),0 0 0 4px var(--app-control-focus, rgba(147, 197, 253, .55))}input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.5;cursor:not-allowed}.app-shell{max-width:1120px;margin:0 auto;padding:3.5rem 1.5rem 4rem;display:flex;flex-direction:column;gap:2rem}.app-shell__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}.app-shell__header h1{margin:.25rem 0 0;font-size:2rem;font-weight:600}.app-shell__meta{color:var(--app-text-muted);font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}.app-shell__actions{display:flex;gap:.75rem}.app-button{border-radius:999px;border:1px solid transparent;padding:.55rem 1.25rem;font-size:.9rem;font-weight:600;background:var(--app-surface);color:var(--app-text);border-color:var(--app-border);text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;transition:box-shadow .15s ease,transform .15s ease}.app-button:hover{box-shadow:0 10px 20px #0f172a1a;transform:translateY(-1px)}.app-button--primary{background:linear-gradient(135deg,var(--app-gradient-start),var(--app-gradient-end));color:var(--app-button-primary-text, #fff);border-color:transparent}.app-button--ghost{background:transparent;color:var(--app-link);border-color:transparent}.app-button--danger{background:#e11d4814;color:#b91c1c;border-color:#f8717180}.app-grid{display:grid;gap:1.5rem}.app-grid--two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.app-card{background:var(--app-surface);border:1px solid var(--app-border);border-radius:var(--app-radius-lg);padding:1.75rem;box-shadow:var(--app-shadow-card);color:var(--app-text)}.app-card--bordered{border-style:dashed}.app-card--banner{background:var(--app-banner-bg);border-color:var(--app-banner-border);color:var(--app-text)}.app-card--gradient{background:linear-gradient(135deg,var(--app-gradient-start),var(--app-gradient-end));color:#fff;border:none}.app-card__title{margin:0;font-size:1.15rem;font-weight:600}.app-card__subtitle{margin:.3rem 0 0;color:var(--app-text-muted);font-size:.9rem}.app-list{margin:0;padding-left:1.3rem}.app-list li{margin:0 0 .65rem;line-height:1.6}.app-list li:last-child{margin-bottom:0}.app-stats{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-top:1.25rem}.app-stat{padding:1rem;border-radius:var(--app-radius);border:1px solid var(--app-border);background:#94a3b814}.app-stat__label{font-size:.8rem;color:var(--app-text-muted);text-transform:uppercase;letter-spacing:.08em}.app-stat__value{font-size:1.8rem;font-weight:600;margin-top:.25rem}.app-table{width:100%;border-collapse:collapse;margin-top:1.5rem;font-size:.95rem}.app-table th{text-align:left;font-weight:600;color:var(--app-text-muted);padding:.75rem .9rem;border-bottom:1px solid var(--app-border);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.app-table td{padding:1rem .9rem;border-bottom:1px solid var(--app-border)}.app-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.15rem .65rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.app-badge--admin{background:#4338ca1f;color:var(--app-link)}.app-badge--suspended{background:#f59e0b26;color:#b45309}.app-alert{border-radius:var(--app-radius);border:1px solid var(--app-border);padding:1rem 1.25rem;font-size:.9rem;background:#94a3b814;color:var(--app-text)}.app-alert--warning{background:var(--app-warning-bg);border-color:var(--app-warning-border);color:var(--app-warning-text)}.app-alert--info{background:var(--app-banner-bg);border-color:var(--app-banner-border)}.app-alert--success{background:var(--app-success-bg);border-color:var(--app-success-border);color:var(--app-success-text)}.app-actions{display:grid;gap:1rem}.app-actions--split{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.app-form-group{display:flex;flex-direction:column;gap:.4rem}.app-input{border-radius:.65rem;border:1px solid var(--app-border);padding:.55rem .85rem;font-size:.95rem;font-family:inherit;background:var(--app-surface);color:var(--app-text)}.app-input:disabled{opacity:.5}.app-link{color:var(--app-link);text-decoration:none;font-weight:500}.app-link:hover{color:var(--app-link-hover);text-decoration:underline}.app-table__empty{text-align:center;color:var(--app-text-muted);padding:1rem 0}.app-divider{height:1px;background:var(--app-border);margin:1.5rem 0;border:none}.app-alert-list{display:flex;flex-direction:column;gap:.75rem}*,: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]{display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.left-0{left:0}.top-0{top:0}.top-full{top:100%}.z-0{z-index:0}.z-20{z-index:20}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[101\]{z-index:101}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.-mb-\[1px\]{margin-bottom:-1px}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-2{margin-left:.5rem}.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}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-3{height:.75rem}.h-32{height:8rem}.h-36{height:9rem}.h-9{height:2.25rem}.h-\[1\.2em\]{height:1.2em}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[85vh\]{max-height:85vh}.min-h-0{min-height:0px}.min-h-screen{min-height:100vh}.w-24{width:6rem}.w-3{width:.75rem}.w-32{width:8rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[18rem\]{width:18rem}.w-\[28rem\]{width:28rem}.w-\[560px\]{width:560px}.w-\[600px\]{width:600px}.w-\[640px\]{width:640px}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-8{min-width:2rem}.min-w-\[18px\]{min-width:18px}.min-w-\[18rem\]{min-width:18rem}.min-w-\[24px\]{min-width:24px}.max-w-5xl{max-width:64rem}.max-w-\[95vw\]{max-width:95vw}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.border-spacing-0{--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity))}.border-neutral-300{--tw-border-opacity: 1;border-color:rgb(212 212 212 / var(--tw-border-opacity))}.border-neutral-500{--tw-border-opacity: 1;border-color:rgb(115 115 115 / var(--tw-border-opacity))}.border-neutral-600{--tw-border-opacity: 1;border-color:rgb(82 82 82 / var(--tw-border-opacity))}.border-neutral-700{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity))}.border-neutral-800{--tw-border-opacity: 1;border-color:rgb(38 38 38 / var(--tw-border-opacity))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.border-red-700{--tw-border-opacity: 1;border-color:rgb(185 28 28 / var(--tw-border-opacity))}.border-slate-400{--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.bg-black\/60{background-color:#0009}.bg-black\/70{background-color:#000000b3}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-neutral-100{--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity))}.bg-neutral-700{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-neutral-900\/80{background-color:#171717cc}.bg-neutral-900\/95{background-color:#171717f2}.bg-neutral-950{--tw-bg-opacity: 1;background-color:rgb(10 10 10 / var(--tw-bg-opacity))}.bg-neutral-950\/40{background-color:#0a0a0a66}.bg-red-700{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-white\/90{background-color:#ffffffe6}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-5{padding-left:1.25rem}.pr-1{padding-right:.25rem}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.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-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.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-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-tight{line-height:1.25}.tracking-\[0\.3em\]{letter-spacing:.3em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity))}.text-neutral-100{--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.text-neutral-200{--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.text-neutral-300{--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.text-neutral-400{--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.text-neutral-600{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity))}.text-neutral-700{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity))}.text-neutral-800{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity))}.text-neutral-900{--tw-text-opacity: 1;color:rgb(23 23 23 / var(--tw-text-opacity))}.text-red-200{--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.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)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@media print{@page{margin:0}html,body{background:#fff!important;margin:0!important;padding:0!important}body{display:block!important}.katex .katex-mathml{display:none!important}}.print-preview .katex .katex-mathml{display:none!important}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background:var(--app-page-gradient, var(--app-page-bg));background-color:var(--app-page-bg);--dashboard-header-height: 6rem;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background:var(--app-page-gradient, var(--app-page-bg));color:var(--app-page-text, var(--app-text))}html{scroll-padding-top:calc(var(--dashboard-header-height, 6rem) + 1rem);background:var(--app-page-gradient, var(--app-page-bg))}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.react-transform-wrapper,.react-transform-component{width:100%!important;height:100%!important}@media (prefers-color-scheme: light){:root{color:#213547;background:var(--app-page-gradient, var(--app-page-bg))}a:hover{color:#747bff}button{background-color:#f9f9f9}}.dashboard-body{display:block;margin:0;min-height:100vh;background:var(--app-page-gradient, var(--app-page-bg));color:var(--app-page-text, var(--app-text));font-family:var(--app-font-sans)}.dashboard-app{min-height:100vh;display:flex;flex-direction:column}.dashboard-nav{position:sticky;top:0;z-index:20;background:var(--app-surface);border-bottom:1px solid var(--app-border);box-shadow:var(--app-shadow-card)}.dashboard-nav__inner{max-width:1100px;margin:0 auto;padding:1.1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;color:var(--app-text)}.dashboard-brand{margin:0;font-size:1.5rem;font-weight:600;color:var(--app-text)}.dashboard-subtitle{margin:.25rem 0 0;color:var(--app-text-muted);font-size:.875rem}.dashboard-nav__user{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:var(--app-text)}.dashboard-nav__user .dashboard-link{color:var(--app-link)}.dashboard-main{flex:1;max-width:1100px;width:100%;margin:0 auto;padding:2.5rem 1.5rem 3rem;display:flex;flex-direction:column;gap:2rem}.dashboard-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.dashboard-card{background:var(--app-surface);border:1px solid var(--app-border);border-radius:18px;padding:1.75rem;box-shadow:var(--app-shadow-card);color:var(--app-text)}.theme-preview{margin-top:1rem;display:flex;align-items:center;gap:1rem}.theme-preview__swatch{width:120px;height:64px;border-radius:var(--app-radius-lg);border:1px solid var(--app-border);position:relative;overflow:hidden;box-shadow:var(--app-shadow-card)}.theme-preview__chip{position:absolute;bottom:12px;width:24px;height:24px;border-radius:999px;border:2px solid rgba(255,255,255,.85);box-shadow:0 6px 12px #0f172a59}.theme-preview__chip--accent{right:16px}.theme-preview__chip:not(.theme-preview__chip--accent){right:48px}.theme-preview__details{flex:1}.dashboard-card--accent{background:linear-gradient(135deg,var(--app-gradient-start) 0%,var(--app-gradient-end) 100%);color:#fff;border:none}.game-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--app-page-gradient, var(--app-page-bg));color:var(--app-page-text, var(--app-text));font-family:var(--app-font-sans)}.game-shell__header{background:var(--app-surface);border-bottom:1px solid var(--app-border);box-shadow:var(--app-shadow-card);padding:1.5rem 1.75rem}.game-shell__header--compact{padding:1.25rem 1.5rem}.game-shell__header-content{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1.5rem}.game-shell__title{margin:.2rem 0 0;font-size:2rem;font-weight:600;color:var(--app-text)}.game-shell__subtitle{margin:.35rem 0 0;color:var(--app-text-muted);font-size:.95rem}.game-shell__description{margin:.5rem 0 0;color:var(--app-text-muted);font-size:.9rem;white-space:pre-line}.game-shell__header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;min-width:160px}.game-shell__back-link{border:1px solid var(--app-border);border-radius:999px;padding:.45rem 1rem;font-size:.9rem;color:var(--app-text);background:transparent;text-decoration:none;transition:background .15s ease,color .15s ease}.game-shell__back-link:hover{background:#ffffff14}.game-shell__save-indicator{font-size:.85rem;color:var(--app-text-muted)}.game-shell__save-indicator--saving{color:var(--app-warning-text)}.game-shell__save-indicator--error{color:#ef4444}.game-shell__save-indicator--success{color:var(--app-success-text)}.game-shell__meta{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.75rem;font-size:.9rem;color:var(--app-text-muted)}.game-shell__status-badge{display:inline-flex;align-items:center;border:1px solid var(--app-border);border-radius:999px;padding:.15rem .9rem;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--app-text)}.game-shell__main{flex:1;width:100%;padding:2.5rem 1rem 3rem;display:flex;justify-content:center}.game-shell__board{--game-board-width: 1100px;--game-board-padding-x: 1.5rem;--game-board-padding-y: 1.5rem;width:100%;max-width:1100px;margin:0 auto;background:var(--app-surface);border:1px solid var(--app-border);border-radius:1.5rem;padding:var(--game-board-padding-y) var(--game-board-padding-x);box-shadow:var(--app-shadow-card);color:var(--app-text)}.game-shell__board--wide{max-width:none;width:calc(var(--game-board-width, 1100px) + var(--game-board-padding-x, 1.5rem) * 2);min-width:calc(var(--game-board-width, 1100px) + var(--game-board-padding-x, 1.5rem) * 2)}@media (max-width: 700px){.game-shell__header-content{flex-direction:column;gap:1rem}.game-shell__header-actions{align-items:flex-start}.game-shell__board{--game-board-padding-x: 1rem;--game-board-padding-y: 1rem}}.dashboard-card__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.dashboard-card__title{margin:0;font-size:1.25rem;font-weight:600;color:inherit}.dashboard-card__copy{margin:.35rem 0 0;font-size:.9rem;color:var(--app-text-muted)}.dashboard-card__actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.75rem}.dashboard-card--accent .dashboard-card__copy{color:#ffffffd1}.dashboard-button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.55rem 1.1rem;border-radius:999px;border:1px solid transparent;background:linear-gradient(135deg,var(--app-gradient-start),var(--app-gradient-end));color:var(--app-button-primary-text, #ffffff);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s ease}.dashboard-button:hover{background:linear-gradient(135deg,var(--app-gradient-start),var(--app-gradient-end));color:var(--app-button-primary-text, #ffffff)}.dashboard-button:disabled{opacity:.55;cursor:not-allowed}.dashboard-button--ghost{background:#2563eb14;color:#2563eb;border:1px solid rgba(37,99,235,.2)}.dashboard-button--ghost:hover{background:#2563eb29}.dashboard-button--danger{background:#dc2626}.dashboard-button--danger:hover{background:#b91c1c}.dashboard-button--light{background:#ffffff2e;color:#fff}.dashboard-input{width:100%;border-radius:12px;border:1px solid var(--app-border);padding:.5rem .75rem;font-size:.9rem;background:var(--app-surface);color:var(--app-text)}.dashboard-input:focus{outline:2px solid rgba(99,102,241,.25);border-color:#6366f199}.dashboard-input--small{width:auto}.dashboard-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-muted);margin-bottom:.35rem;display:block}.dashboard-text-muted{font-size:.85rem;color:#6b7280}.dashboard-link{font-size:.85rem;font-weight:600;color:var(--app-link);text-decoration:none}.dashboard-link:hover{color:var(--app-link-hover);text-decoration:underline}.dashboard-error{font-size:.82rem;color:#dc2626;margin-top:.5rem}.dashboard-alert{padding:.6rem .9rem;border-radius:12px;font-size:.85rem;margin-bottom:.75rem}.dashboard-alert--success{background:#2ecc711f;color:#137c40}.dashboard-alert--error{background:#ef44441f;color:#b91c1c}.context-selector{min-width:240px;display:flex;flex-direction:column;gap:.6rem}.context-selector__control{display:flex;flex-direction:column}.workspace-management{margin-top:0}.workspace-management__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--app-border);border-radius:16px;background:var(--app-surface);color:var(--app-text);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease}.workspace-management__toggle:hover{background:#6366f114;border-color:#6366f159}.workspace-management__label{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}.workspace-management__label-main{font-size:1rem;font-weight:600}.workspace-management__label-sub{font-size:.82rem;color:var(--app-text-muted);font-weight:500}.workspace-management__chevron{font-size:1rem;color:var(--app-text-muted)}.workspace-management__content{margin-top:.75rem}.workspace-management__stack{display:grid;gap:1.25rem}.dashboard-cards{margin:0;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.create-family{border-top:1px dashed var(--app-border);padding-top:.75rem}.create-family__row{display:flex;gap:.6rem;margin-bottom:.4rem}.family-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.family-list{list-style:none;padding:0;margin:.75rem 0 0;display:flex;flex-direction:column;gap:.5rem;background:var(--app-surface);border:1px solid var(--app-border);border-radius:12px;padding:.9rem}.family-list__item{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;border:1px solid var(--app-border);border-radius:12px;padding:.65rem .75rem;background:#6366f10d}.family-list__name{font-weight:600;color:var(--app-text)}.family-list__meta{font-size:.75rem;color:var(--app-text-muted)}.family-actions{display:flex;flex-direction:column;gap:.4rem}.family-form{margin-top:1rem;padding:.85rem;border:1px solid var(--app-border);border-radius:12px;background:var(--app-surface);display:flex;flex-direction:column;gap:.55rem;box-shadow:var(--app-shadow-card)}.family-form__title{margin:0;font-size:.9rem;font-weight:600;color:var(--app-text)}.family-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--app-text)}.school-management{display:flex;flex-direction:column;gap:1.5rem}.school-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.school-tab{border:1px solid var(--app-border);background:var(--app-surface);color:var(--app-text);padding:.4rem .9rem;border-radius:999px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.school-tab:hover{background:#6366f114;border-color:#6366f166}.school-tab.is-active{background:var(--app-link);border-color:var(--app-link);color:#fff}.school-form{display:flex;flex-direction:column;gap:.75rem;padding:.85rem;border:1px solid var(--app-border);border-radius:12px;background:var(--app-surface);margin-bottom:1.25rem;box-shadow:var(--app-shadow-card)}.school-form--inline{gap:.6rem}.school-form--nested{margin-top:.75rem;margin-bottom:0}.school-form__row{display:flex;flex-direction:column;gap:.35rem}.school-form__actions{display:flex;gap:.5rem}.school-form__row--inline{flex-direction:row;align-items:center;gap:.6rem}.school-form__row--inline input,.school-form__row--inline select{flex:1 1 auto}.school-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--app-text)}.school-columns{display:grid;gap:1.5rem}@media (min-width: 900px){.school-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}.school-column{display:flex;flex-direction:column;gap:.85rem}.school-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.school-list__item{border:1px solid var(--app-border);border-radius:12px;padding:.75rem .85rem;background:linear-gradient(145deg,#6366f114,#0f172a05);display:grid;gap:.4rem;box-shadow:var(--app-shadow-card);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.school-list__item.is-active{border-color:var(--app-link);background:linear-gradient(145deg,#4338ca33,#6366f11a);box-shadow:0 6px 20px #0f172a26,0 0 0 3px #4338ca2e}.school-list__select{text-align:left;background:none;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;gap:.25rem}.school-list__title{font-weight:600;color:var(--app-text)}.school-list__meta{font-size:.8rem;color:var(--app-text-muted)}.school-list__actions{display:flex;gap:.5rem;flex-wrap:wrap}.school-table-wrapper{margin-top:1rem;overflow-x:auto}.school-table{width:100%;border-collapse:collapse;font-size:.9rem}.school-table th,.school-table td{border-bottom:1px solid var(--app-border);padding:.55rem .75rem;text-align:left}.school-table th{font-weight:600;color:var(--app-text);background:var(--app-surface)}.school-table--compact th,.school-table--compact td{padding:.45rem .6rem;font-size:.85rem}.school-table code{background:#0f172a14;padding:.1rem .35rem;border-radius:6px;font-size:.8rem}.school-table tbody tr:hover{background:#6366f114}.school-letters{margin-top:1.5rem;display:flex;flex-direction:column;gap:.75rem}.directory-filters{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:1.25rem}.directory-filter{display:flex;flex-direction:column}.tag-filter{position:relative}.tag-filter__toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.5rem .75rem;border-radius:8px;background:var(--app-surface);border:1px solid var(--app-border);color:var(--app-text);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease}.tag-filter__toggle.is-open{border-color:var(--app-link);box-shadow:0 8px 18px #0f172a26}.tag-filter__chevron{font-size:.85rem}.tag-filter__dropdown{position:absolute;top:calc(100% + .35rem);left:0;width:100%;min-width:240px;background:var(--app-surface);border:1px solid var(--app-border);border-radius:12px;z-index:50;padding:.75rem;box-shadow:var(--app-shadow-card)}.tag-filter__search{margin-bottom:.5rem}.tag-filter__list{max-height:11rem;overflow-y:auto;display:flex;flex-direction:column;gap:.35rem;padding-right:.25rem}.tag-filter__item{display:flex;align-items:center;gap:.4rem;font-size:.85rem}.tag-filter__actions{margin-top:.5rem;text-align:right}.tag-filter__chips{margin-top:.5rem;display:flex;flex-wrap:wrap;gap:.35rem}.tag-filter__empty{font-size:.85rem;padding:.5rem 0}.template-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:1rem}.template-card{border:1px solid var(--app-border);border-radius:14px;padding:1rem;background:var(--app-surface);box-shadow:var(--app-shadow-card);display:flex;flex-direction:column;gap:.55rem}.template-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.template-card__title{margin:0;font-size:1.05rem;color:var(--app-text)}.template-card__meta{margin:0;font-size:.8rem;color:var(--app-text-muted)}.template-card__badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.template-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;border:1px solid var(--app-border);background:#6366f114;color:var(--app-text);font-size:.75rem}.template-badge--muted{background:var(--app-surface);color:var(--app-text-muted)}.template-card__tags{display:flex;flex-wrap:wrap;gap:.35rem}.template-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .6rem;border-radius:999px;border:1px solid var(--app-border);color:var(--app-text);font-size:.8rem}.template-tag--muted{color:var(--app-text-muted);border-style:dashed}.template-card__actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.template-copy-tooltip{position:relative;display:inline-flex;align-items:center}.template-copy-tooltip__bubble{position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%,6px);max-width:240px;padding:.5rem .75rem;border-radius:12px;background:var(--app-surface-dark, #0b1120);border:1px solid var(--app-border-strong, rgba(148, 163, 184, .6));color:var(--app-text);font-size:.75rem;line-height:1.3;text-align:center;box-shadow:0 14px 28px #02061773;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:10}.template-copy-tooltip__bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:6px 6px 0 6px;border-style:solid;border-color:var(--app-surface-dark, #0b1120) transparent transparent transparent}.template-copy-tooltip.is-disabled:hover .template-copy-tooltip__bubble,.template-copy-tooltip.is-disabled:focus-within .template-copy-tooltip__bubble{opacity:1;transform:translate(-50%)}.directory-table{width:100%;border-collapse:collapse;font-size:.9rem}.directory-table th,.directory-table td{padding:.75rem .6rem;border-bottom:1px solid var(--app-border);text-align:left;vertical-align:top}.directory-table tr.is-selected{background:#6366f114}.directory-table tr.is-locked{opacity:.65}.directory-table tr.is-locked .directory-title{color:var(--app-text-muted)}.directory-locked-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .6rem;border-radius:999px;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--app-warning-text);border:1px solid var(--app-warning-border);background:var(--app-warning-bg)}.directory-title{font-weight:600;color:var(--app-text);margin-bottom:.2rem}.directory-meta{color:var(--app-text-muted);font-size:.8rem}.directory-actions{display:flex;gap:.5rem}.manage-section__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.assignment-admin-actions{display:flex;flex-wrap:wrap;gap:.5rem}.assignment-admin-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.assignment-admin-card{border:1px solid var(--app-border);border-radius:14px;padding:1rem;background:var(--app-surface);background:color-mix(in srgb,var(--app-surface) 85%,var(--app-page-bg) 15%)}.assignment-admin-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.assignment-admin-title{font-size:1rem;font-weight:600;margin:0}.assignment-admin-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem;font-size:.85rem;color:var(--app-text-muted)}.assignment-meta-label{font-weight:600;color:var(--app-text)}.dashboard-table-wrapper{overflow-x:auto;margin-top:1rem}.assignment-status{display:inline-flex;align-items:center;padding:.15rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:none;background:var(--app-status-idle-bg, rgba(148, 163, 184, .25));color:var(--app-status-idle-text, var(--app-status-pill-text, var(--app-text, #f8fafc)))}.assignment-status--progress{background:var(--app-status-progress-bg, rgba(14, 165, 233, .15));color:var( --app-status-progress-text, var(--app-status-pill-text, var(--app-text, #f8fafc)) )}.assignment-status--complete{background:var(--app-status-complete-bg, rgba(34, 197, 94, .2));color:var( --app-status-complete-text, var(--app-status-pill-text, var(--app-text, #f8fafc)) )}.assignment-status--idle{background:var(--app-status-idle-bg, rgba(148, 163, 184, .25));color:var(--app-status-idle-text, var(--app-status-pill-text, var(--app-text, #f8fafc)))}.assignment-select-search{margin-bottom:.5rem}.assignment-select-list{max-height:18rem;overflow-y:auto;border:1px solid var(--app-border);border-radius:8px;padding:.75rem;background:var(--app-surface);background:color-mix(in srgb,var(--app-surface) 85%,var(--app-page-bg) 15%)}.assignment-select-list--tall{max-height:22rem}.assignment-checkbox{display:flex;gap:.5rem;margin-bottom:.4rem;font-size:.9rem}.assignment-checkbox__body{display:flex;flex-direction:column;gap:.1rem}.assignment-checkbox__title{font-weight:600}.assignment-checkbox__details{font-size:.75rem;color:var(--app-text-muted)}.assignment-select-hint{margin-top:.35rem;font-size:.8rem;color:var(--app-text-muted)}.student-filter-bar{margin-bottom:.25rem}.member-filter-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;margin-bottom:.5rem}.member-filter__field{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.member-filter__field--checkbox{flex-direction:row;align-items:center;font-size:.9rem;gap:.4rem}.dashboard-modal.member-management-modal{max-width:1280px;width:min(100%,1280px)}.member-modal__grid{display:grid;gap:1.5rem;grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:start}.member-modal__pane{display:flex;flex-direction:column;gap:1rem}.member-modal__actions{display:flex;gap:.75rem;flex-wrap:wrap}@media (max-width: 960px){.member-modal__grid{grid-template-columns:1fr}}.assignment-modal-form{display:flex;flex-direction:column;gap:1rem}.assignment-modal .dashboard-modal__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.assignment-modal__section{display:flex;flex-direction:column;gap:.35rem}.assignment-modal__row{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.tag-chip-group{display:flex;flex-wrap:wrap;gap:.4rem}.tag-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--app-border);background:#6366f114;color:var(--app-link);font-size:.75rem;cursor:pointer}.tag-chip.is-active{background:var(--app-link);color:#fff;border-color:var(--app-link)}.tag-chip__remove{background:none;border:none;color:inherit;cursor:pointer}.manage-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.manage-section{border:1px solid var(--app-border);border-radius:14px;padding:1rem;background:var(--app-surface);box-shadow:var(--app-shadow-card)}.dashboard-section-title{margin:0;font-size:.95rem;font-weight:600;color:var(--app-text)}.ownership-options{margin-top:.75rem;display:flex;flex-direction:column;gap:.45rem}.ownership-option{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--app-text)}.eligible-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.35rem}.bounty-actions{display:flex;gap:.6rem;margin-top:.75rem}.personal-tags{display:flex;flex-direction:column;gap:.75rem;background:var(--app-surface);border:1px solid var(--app-border);border-radius:12px;padding:.9rem}.personal-tags__row{display:flex;gap:.6rem}.dashboard-text-muted+.tag-chip-group{margin-top:.4rem}.directory-table td .dashboard-button,.directory-table td .dashboard-button--ghost{padding:.4rem .85rem}.directory-context{margin-bottom:1rem}.directory-context__label{display:block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--app-text-muted);margin-bottom:.25rem}.directory-context__value{font-weight:600;color:var(--app-text)}.directory-context__meta{font-weight:400;color:var(--app-text-muted)}.directory-manage-row td{padding:0!important;background:transparent;border-top:none}.manage-panel{border:1px solid var(--app-border);border-radius:16px;padding:1.25rem;margin-top:.75rem;background:var(--app-surface);box-shadow:var(--app-shadow-card)}.manage-panel__header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.manage-panel__title-group{display:flex;flex-direction:column;gap:.2rem}.dashboard-modal-overlay{position:fixed;inset:0;background:#020617b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.dashboard-modal{background:var(--app-surface);color:var(--app-text);border-radius:18px;padding:2rem;max-width:460px;width:100%;box-shadow:var(--app-shadow-card)}.dashboard-modal.assignment-modal{max-width:720px;width:min(100%,720px)}.dashboard-modal.assignment-modal.assignment-progress-modal{max-width:900px;width:min(100%,900px)}.dashboard-modal__actions{margin-top:1.5rem;display:flex;justify-content:flex-end;gap:.75rem}.template-preview-modal{max-width:980px;width:min(100%,980px)}.template-preview-board{margin-top:.75rem;border:1px solid var(--app-border);border-radius:12px;background:linear-gradient(180deg,#e2e8f059,#e2e8f00d);width:100%;max-width:100%}.template-preview-board__scroller{width:100%;overflow-x:auto;display:flex;justify-content:center;padding:.5rem}.template-preview-board__sheet{display:inline-block}@media print{.template-preview-board{border:none;background:transparent}.template-preview-board__scroller{overflow:visible;padding:0}}.template-status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:999px;border:1px solid var(--app-border);background:#6366f114;color:var(--app-text);font-size:.75rem}.template-status-badge.is-muted{background:var(--app-surface);color:var(--app-text-muted)}.template-publish-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:center}.template-admin{margin-top:.75rem;border-top:1px dashed var(--app-border);padding-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:bg-blue-500:hover{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.hover\:bg-emerald-500:hover{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity))}.hover\:bg-green-500:hover{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.hover\:bg-neutral-600:hover{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.hover\:bg-neutral-700:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.hover\:bg-neutral-800:hover{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.hover\:bg-red-900\/30:hover{background-color:#7f1d1d4d}.hover\:bg-red-900\/40:hover{background-color:#7f1d1d66}.hover\:text-neutral-200:hover{--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.active\:bg-blue-700:active{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:block{display:block}@media (min-width: 640px){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media print{.print\:hidden{display:none}.print\:min-h-0{min-height:0px}.print\:w-auto{width:auto}.print\:max-w-none{max-width:none}.print\:overflow-visible{overflow:visible}.print\:rounded-none{border-radius:0}.print\:bg-transparent{background-color:transparent}.print\:bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.print\:p-0{padding:0}.print\:px-0{padding-left:0;padding-right:0}.print\:py-0{padding-top:0;padding-bottom:0}.print\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}
