*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#3b82f6;--color-primary-dark:#2563eb;--color-bg:#f3f4f6;--color-surface:#fff;--color-text:#111827;--color-text-muted:#6b7280;--color-border:#e5e7eb;--radius:0.75rem;--shadow:0 1px 3px rgba(0,0,0,.08);--shadow-md:0 4px 12px rgba(0,0,0,.1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}img{max-width:100%;height:auto}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:1.125rem}.loading,.loading-screen{color:var(--color-text-muted)}.loading{text-align:center;padding:3rem 1rem;font-size:.9375rem}.error-msg{background:#fee2e2;color:#b91c1c}.error-msg,.success-msg{padding:.75rem 1rem;border-radius:var(--radius);margin:1rem 0;font-size:.875rem}.success-msg{background:#dcfce7;color:#15803d}.page-content{max-width:960px;margin:0 auto;padding:1.5rem 1rem 3rem}.page-header{margin-bottom:1.5rem}.page-header h1{font-size:1.75rem;font-weight:800;color:var(--color-text)}.page-header p{color:var(--color-text-muted);margin-top:.25rem;font-size:.9375rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1.25rem;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem}.form-group label{font-size:.875rem;font-weight:500;color:var(--color-text)}.form-group input[type=file],.form-group input[type=text],.form-group textarea{padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:.5rem;font-size:.9375rem;font-family:inherit;background:var(--color-surface);color:var(--color-text);transition:border-color .15s;width:100%}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary)}.form-group textarea{resize:vertical;min-height:80px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.375rem;border-radius:.5rem;font-size:.9375rem;font-weight:500;border:none;transition:background-color .15s}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}