:root{--color-bg: #faf9f6;--color-surface: #ffffff;--color-border: #e5e3dc;--color-text: #2c2c2a;--color-text-secondary: #6b6a65;--color-text-tertiary: #9c9a92;--color-primary: #534ab7;--color-primary-light: #eeedfe;--color-primary-dark: #3c3489;--color-danger: #a32d2d;--color-danger-light: #fcebeb;--color-success: #0f6e56;--color-success-light: #e1f5ee;--color-warning: #854f0b;--color-warning-light: #faeeda;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 2px 8px rgba(0,0,0,.08);--font-body: "DM Sans", -apple-system, sans-serif;--font-display: "Playfair Display", Georgia, serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);line-height:1.6}h1,h2,h3{font-weight:600;line-height:1.25}h1{font-family:var(--font-display);font-size:1.75rem;letter-spacing:-.01em}h2{font-size:1.25rem}h3{font-size:1.05rem}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}input,select,textarea{font-family:var(--font-body);font-size:1rem;padding:.6rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);width:100%;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary);display:block;margin-bottom:.3rem}button{font-family:var(--font-body);font-size:.9rem;font-weight:500;padding:.6rem 1.2rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:.4rem;touch-action:manipulation}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-bg)}.btn-danger{background:var(--color-danger-light);color:var(--color-danger);border-color:transparent}.btn-danger:hover{background:#f7c1c1}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.page{max-width:960px;margin:0 auto;padding:2rem 1.5rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;gap:.75rem;flex-wrap:wrap}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:.8rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;padding:.6rem .75rem;border-bottom:1px solid var(--color-border)}td{padding:.75rem;border-bottom:1px solid var(--color-border);font-size:.925rem}tr:last-child td{border-bottom:none}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.badge{display:inline-block;font-size:.75rem;font-weight:500;padding:.15rem .55rem;border-radius:100px}.badge-admin{background:var(--color-primary-light);color:var(--color-primary-dark)}.badge-volunteer{background:var(--color-success-light);color:var(--color-success)}.badge-inactive{background:#f1efe8;color:var(--color-text-tertiary)}.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;margin-bottom:1rem}.alert-error{background:var(--color-danger-light);color:var(--color-danger)}.alert-success{background:var(--color-success-light);color:var(--color-success)}.nav{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 1.5rem;position:relative;z-index:200}.nav-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:56px}.nav-brand{font-family:var(--font-display);font-size:1.25rem;color:var(--color-primary-dark);font-weight:600;flex-shrink:0}.nav-links{display:flex;gap:.25rem;align-items:center}.nav-links a{padding:.4rem .75rem;border-radius:var(--radius-sm);font-size:.875rem;color:var(--color-text-secondary);transition:all .15s;white-space:nowrap}.nav-links a:hover,.nav-links a.active{background:var(--color-primary-light);color:var(--color-primary-dark);text-decoration:none}.nav-user{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--color-text-secondary);flex-shrink:0}.nav-hamburger{display:none;background:none;border:none;font-size:1.3rem;padding:0;cursor:pointer;color:var(--color-text);width:44px;height:44px;align-items:center;justify-content:center;touch-action:manipulation;flex-shrink:0}.nav-mobile-user{display:none}@media(max-width:640px){.page{padding:1.25rem 1rem}.card{padding:1rem}h1{font-size:1.4rem}.nav{padding:0 1rem}.nav-hamburger{display:flex}.nav-user{display:none}.nav-links{display:none;position:absolute;top:56px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-md);padding:.5rem;gap:.15rem}.nav-links.nav-open{display:flex}.nav-links a{padding:.75rem 1rem;font-size:.925rem;border-radius:var(--radius-sm)}.nav-mobile-user{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-top:1px solid var(--color-border);margin-top:.25rem;font-size:.875rem;color:var(--color-text-secondary)}.btn-sm{min-height:36px;padding:.4rem .85rem}}.form-group{margin-bottom:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:640px){.form-row{grid-template-columns:1fr}}.form-actions{display:flex;gap:.5rem;margin-top:1.5rem;flex-wrap:wrap}.checkbox-group{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.checkbox-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;font-weight:400;color:var(--color-text);cursor:pointer;padding:.3rem .6rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:all .15s}.checkbox-label:has(input:checked){background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.checkbox-label input{width:auto;accent-color:var(--color-primary)}.spinner{display:flex;justify-content:center;padding:3rem;color:var(--color-text-tertiary)}
