:root{--sbg-bud: #b5e623;--sbg-cloud: #fafffa;--sbg-sunshine: #fcee21;--sbg-soil: #5e4613;--sbg-leaf: #446640;--sbg-bloom: #e63917;--sbg-burst: #fd8298;--sbg-deep-soil: #2a2816;--color-background-primary: #ffffff;--color-background-secondary: var(--sbg-cloud);--color-background-tertiary: #eef1ee;--color-text-primary: var(--sbg-deep-soil);--color-text-secondary: #5a5c4e;--color-text-tertiary: #8b8d80;--color-border-tertiary: #dde2db;--color-text-success: #1a7f48;--color-background-success: #e7f4ec;--color-text-danger: var(--sbg-bloom);--color-background-danger: #fdecea;--color-text-warning: #8a6510;--color-background-warning: #fdf6e0;--color-accent: var(--sbg-leaf);--color-accent-hover: #375232;--color-accent-subtle: #d5e2d3;--border-radius-sm: 5px;--border-radius-md: 8px;--border-radius-lg: 12px;--font-sans: "Cabin", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display: "Instrument Serif", Georgia, "Times New Roman", serif;--font-mono: "SFMono-Regular", ui-monospace, "Cascadia Code", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:15px;line-height:1.5;color:var(--color-text-primary);background:var(--color-background-secondary);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:400;letter-spacing:.01em}.page{min-height:100vh;padding:32px 16px 64px}.page-inner{max-width:1040px;margin:0 auto;background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-lg);padding:10px 28px 28px;box-shadow:0 1px 3px #0000000a}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}input[type=text],input[type=email],select{font-family:inherit;font-size:14px;color:var(--color-text-primary);background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:7px 10px}input[type=text]:focus,input[type=email]:focus,select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}input[type=file]{font-family:inherit}input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}code{font-family:var(--font-mono)}button{font-family:inherit;font-size:14px;color:var(--color-text-primary);background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:7px 12px;cursor:pointer;transition:background .12s ease,border-color .12s ease,opacity .12s ease}button:hover:not(:disabled){background:var(--color-background-secondary)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}button.primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}button.subtle{background:transparent;border-color:transparent;color:var(--color-text-secondary)}button.subtle:hover:not(:disabled){background:var(--color-background-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141c1873;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal-card{background:var(--color-background-primary);border-radius:var(--border-radius-lg);padding:20px 22px;max-width:440px;width:100%;box-shadow:0 12px 40px #00000040}.file-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.file-picker input[type=file]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-picker label.file-button{font-size:14px;color:var(--color-text-primary);background:var(--color-background-primary);border:.5px solid var(--color-border-tertiary);border-radius:var(--border-radius-md);padding:7px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.file-picker label.file-button:hover{background:var(--color-background-secondary)}.file-picker input[type=file]:focus-visible+label.file-button{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-subtle)}.file-picker .file-chosen{font-size:14px;color:var(--color-text-secondary);min-width:0;overflow-wrap:anywhere}.file-picker .file-chosen.none{color:var(--color-text-tertiary)}
