:root{--color-bg: #0d120c;--color-surface: #151c14;--color-surface-hover: #1e291c;--color-primary: #4a753c;--color-primary-dark: #37572d;--color-text: #ffffff;--color-text-muted: #8c9985;--color-border: #263323;--color-error: #a8423f;--color-warning: #bd9b44;--color-success: #4a753c;--nav-height: 65px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-text);font-family:Sora,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}.app-container{display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:768px;margin:0 auto;background-color:var(--color-bg);position:relative;box-shadow:0 0 20px #0000000d}.app-header{background:#151c14d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:12px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(74,117,60,.2);box-shadow:0 4px 30px #00000080;z-index:10;position:sticky;top:0}.header-brand{display:flex;align-items:center}.header-logo{height:40px;width:auto;filter:drop-shadow(0 2px 8px rgba(74,117,60,.4));transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.header-logo:hover{transform:scale(1.05) rotate(-2deg)}.logout-btn{background:#4a753c1a;border:1px solid rgba(74,117,60,.3);color:var(--color-text);cursor:pointer;display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:20px;font-family:inherit;font-size:.85rem;font-weight:600;transition:all .2s}.logout-btn:hover{background:#4a753c33;transform:translateY(-1px);box-shadow:0 4px 12px #0003}.loading-splash{display:flex;flex-direction:column;height:100vh;align-items:center;justify-content:center;background-color:var(--color-bg);background-image:radial-gradient(circle at 50% 50%,#1e2e17 0%,transparent 60%)}.splash-logo{width:200px;margin-bottom:30px;animation:pulseLogo 2s infinite ease-in-out;filter:drop-shadow(0 10px 20px rgba(0,0,0,.5))}@keyframes pulseLogo{0%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.05);filter:brightness(1.2) drop-shadow(0 0 20px rgba(74,117,60,.6))}to{transform:scale(1);filter:brightness(1)}}.spinner{width:40px;height:40px;border:3px solid rgba(74,117,60,.2);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-main{flex:1;overflow-y:auto;padding-bottom:var(--nav-height)}.p-4{padding:16px}.bottom-nav{position:absolute;bottom:0;left:0;right:0;height:var(--nav-height);background-color:var(--color-surface);display:flex;justify-content:space-around;align-items:center;border-top:1px solid var(--color-border);box-shadow:0 -2px 10px #00000008;z-index:100}.nav-btn{background:none;border:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--color-text-muted);font-size:.75rem;font-weight:500;cursor:pointer;padding:8px;transition:all .2s ease;width:100%}.nav-btn:hover{color:var(--color-primary-light)}.nav-btn.active{color:var(--color-primary)}.nav-btn.active svg{stroke-width:2.5px}.card{background:var(--color-surface);border-radius:12px;padding:16px;margin-bottom:16px;border:1px solid var(--color-border);box-shadow:0 1px 3px #00000005}.card-title{font-size:1.1rem;font-weight:600;margin-bottom:12px;color:var(--color-primary)}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:1rem;font-family:inherit;background-color:var(--color-bg);color:var(--color-text);transition:border-color .2s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3d4a361a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s;border:none}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-light)}.btn-secondary{background-color:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.btn-secondary:hover{background-color:#3d4a360d}.auth-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px;background-color:#0b0f0a;background-image:radial-gradient(circle at 50% 0%,#1e2e17 0%,transparent 50%),radial-gradient(circle at 50% 100%,#111a0d 0%,transparent 50%)}.auth-card{width:100%;max-width:400px;background:#151c14b3;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(74,117,60,.2);border-radius:24px;padding:40px 32px;box-shadow:0 24px 48px #0006,inset 0 1px #ffffff0d}.auth-title{font-size:1.25rem;font-weight:600;color:var(--color-text);text-align:center;margin-bottom:24px;letter-spacing:-.5px}.auth-input{width:100%;background:#0003;border:1px solid var(--color-border);color:var(--color-text);padding:14px 16px;border-radius:12px;font-family:inherit;font-size:.95rem;transition:all .2s ease;outline:none}.auth-input:focus{border-color:var(--color-primary);background:#0006;box-shadow:0 0 0 3px #4a753c33}.auth-btn{width:100%;background:var(--color-primary);color:#fff;border:none;padding:14px 16px;border-radius:12px;font-family:inherit;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease;margin-top:8px}.auth-btn:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.auth-separator{display:flex;align-items:center;text-align:center;color:var(--color-text-muted);font-size:.85rem;margin:24px 0}.auth-separator:before,.auth-separator:after{content:"";flex:1;border-bottom:1px solid var(--color-border)}.auth-separator:not(:empty):before{margin-right:.25em}.auth-separator:not(:empty):after{margin-left:.25em}
