:root{--color-primary: #333D29;--color-secondary: #BCBEA6;--color-text: #7A7A7A;--color-accent: #F0EAD2;--color-green: #656D4A;--color-white: #FFFFFF;--color-green-light: rgba(101, 109, 74, .25);--color-error: #c44;--font-heading: "Lato", sans-serif;--font-body: "Roboto", sans-serif;--btn-radius: 30px;--card-radius: 15px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);font-weight:400;font-size:16px;line-height:1.7;color:var(--color-text);background-color:var(--color-accent);-webkit-font-smoothing:antialiased;min-height:100vh}a{color:var(--color-primary);text-decoration:none;transition:color .3s ease}a:hover{color:var(--color-green)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-primary);line-height:1.2}h1{font-size:3em;font-weight:900}h2{font-size:2.2em;font-weight:800}h3{font-size:1.5em;font-weight:800}h1 em,h2 em,h3 em{font-style:italic}#app{min-height:100vh;display:flex;flex-direction:column}.site-header{background-color:var(--color-secondary);position:sticky;top:0;z-index:1000;box-shadow:0 2px 10px #0000000d}.header-inner{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;max-width:1200px;margin:0 auto}.header-logo{display:flex;align-items:center;gap:10px;cursor:pointer}.logo-icon{width:40px;height:40px;background:var(--color-green);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-white);font-size:1.2em}.logo-name{font-family:var(--font-heading);font-size:1.5em;font-weight:900;color:var(--color-primary)}.logo-subtitle{font-size:.65em;font-weight:400;color:var(--color-text);display:block;line-height:1;margin-top:2px}.header-user{display:flex;align-items:center;gap:12px;font-size:.9em;color:var(--color-primary)}.header-user-avatar{width:34px;height:34px;border-radius:50%;background:var(--color-green);color:var(--color-white);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-weight:800;font-size:.85em}.header-logout{font-family:var(--font-body);font-size:.85em;padding:6px 14px;color:var(--color-primary);background:none;border:1px dashed var(--color-green-light);border-radius:var(--btn-radius);cursor:pointer;transition:all .3s ease}.header-logout:hover{background:var(--color-green);color:var(--color-white);border-color:var(--color-green)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-weight:400;font-size:1em;padding:16px 36px;border-radius:var(--btn-radius);border:2px dashed var(--color-green);background-color:var(--color-accent);color:var(--color-primary);cursor:pointer;transition:all .3s ease;line-height:1}.btn:hover{background-color:var(--color-green);color:var(--color-white);border-color:var(--color-green)}.btn-solid{background-color:var(--color-green);color:var(--color-white);border:2px solid var(--color-green)}.btn-solid:hover{background-color:var(--color-primary);border-color:var(--color-primary)}.btn-full{width:100%}.login-page{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px}.login-container{width:100%;max-width:440px}.login-brand{text-align:center;margin-bottom:35px}.login-brand .logo-icon{width:60px;height:60px;font-size:1.6em;margin:0 auto 15px}.login-brand h1{font-size:2em;margin-bottom:5px}.login-brand p{color:var(--color-text);font-size:.95em}.login-card{background:var(--color-white);border-radius:var(--card-radius);padding:40px;box-shadow:0 10px 40px #333d2914}.login-card h2{font-size:1.5em;margin-bottom:5px}.login-card .login-subtitle{color:var(--color-text);font-size:.9em;margin-bottom:25px}.form-group{margin-bottom:20px}.form-group label{display:block;font-family:var(--font-heading);font-weight:700;color:var(--color-primary);margin-bottom:8px;font-size:.9em}.form-control{width:100%;padding:14px 18px;border:1px solid var(--color-green-light);border-radius:8px;font-family:var(--font-body);font-size:1em;color:var(--color-primary);background:var(--color-white);transition:border-color .3s ease}.form-control:focus{outline:none;border-color:var(--color-green);box-shadow:0 0 0 3px #656d4a1a}.form-control::placeholder{color:#aaa}.form-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px;font-size:.875em}.form-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--color-text)}.form-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-green);cursor:pointer}.form-link{color:var(--color-green);font-weight:500}.form-link:hover{color:var(--color-primary);text-decoration:underline}.login-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px 16px;color:var(--color-error);font-size:.875em;margin-bottom:20px;display:none;align-items:center;gap:8px}.login-error.visible{display:flex}.login-footer{text-align:center;margin-top:25px;font-size:.9em;color:var(--color-text)}.dashboard{flex:1;background:#f5f3eb}.dashboard-hero{background:var(--color-accent);padding:40px 0}.dashboard-hero .container{max-width:1200px;margin:0 auto;padding:0 20px}.dashboard-hero h1{font-size:2.2em;margin-bottom:5px}.dashboard-hero p{color:var(--color-text)}.dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:30px}.stat-card{background:var(--color-white);border-radius:var(--card-radius);padding:25px;box-shadow:0 2px 10px #0000000a}.stat-card-label{font-size:.85em;color:var(--color-text);margin-bottom:5px}.stat-card-value{font-family:var(--font-heading);font-size:2em;font-weight:900;color:var(--color-primary);line-height:1}.stat-card-change{font-size:.8em;margin-top:5px;color:var(--color-green)}.dashboard-content{padding:30px 0 60px}.dashboard-content .container{max-width:1200px;margin:0 auto;padding:0 20px}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:25px}.panel{background:var(--color-white);border-radius:var(--card-radius);box-shadow:0 2px 10px #0000000a}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid var(--color-green-light)}.panel-header h3{font-size:1.15em}.panel-body{padding:20px 25px}.camper-table{width:100%;border-collapse:collapse}.camper-table th{text-align:left;padding:10px 12px;font-family:var(--font-heading);font-weight:700;font-size:.8em;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text);border-bottom:2px solid var(--color-green-light)}.camper-table td{padding:12px;font-size:.9em;border-bottom:1px solid var(--color-green-light)}.camper-table tr:last-child td{border-bottom:none}.camper-table tr:hover td{background:var(--color-accent)}.camper-name{display:flex;align-items:center;gap:10px;font-weight:500;color:var(--color-primary)}.camper-avatar{width:32px;height:32px;border-radius:50%;background:var(--color-secondary);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-weight:800;font-size:.75em;color:var(--color-primary);flex-shrink:0}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.8em;font-weight:500}.badge-active{background:#656d4a26;color:var(--color-green)}.badge-pending{background:#d4a84426;color:#b8860b}.badge-completed{background:#333d291a;color:var(--color-primary)}.session-list{list-style:none}.session-item{display:flex;align-items:center;gap:15px;padding:14px 0;border-bottom:1px solid var(--color-green-light)}.session-item:last-child{border-bottom:none}.session-date{width:50px;height:50px;background:var(--color-accent);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}.session-date-month{font-size:.65em;font-weight:700;text-transform:uppercase;color:var(--color-green);line-height:1}.session-date-day{font-family:var(--font-heading);font-size:1.3em;font-weight:900;color:var(--color-primary);line-height:1}.session-info h4{font-size:.95em;margin-bottom:2px}.session-info p{font-size:.8em;color:var(--color-text);margin:0}.site-footer{background:var(--color-green);color:#ffffffb3;text-align:center;padding:20px;font-size:.85em}@media(max-width:1024px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:767px){h1{font-size:2em}.dashboard-stats{grid-template-columns:1fr}.login-card{padding:30px 25px}}
