:root{--brand-primary: #2E7D32;--brand-accent: #66BB6A;--bg-page: #F2F4F5;--bg-card: #fff;--surface-variant: #E8EDE9;--text-primary: #1A1D1A;--text-secondary: #5C6360;--text-on-primary: #fff;--status-success: #43A047;--status-error: #C62828;--outline: #D0D7D1;--radius-sm: 10px;--radius-md: 14px;--safe-top: env(safe-area-inset-top, 0);--safe-bottom: env(safe-area-inset-bottom, 0)}body{margin:0;background:var(--bg-page);color:var(--text-primary);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;min-height:100dvh;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom)}.app-shell{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-page)}.nav-tabs{display:flex;justify-content:space-around;align-items:center;padding:8px 0 calc(8px + var(--safe-bottom));background:var(--bg-card);box-shadow:0 -2px 12px #0000000f;border-top:1px solid var(--outline)}.nav-tabs a{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text-secondary);text-decoration:none;font-size:12px;font-weight:500;padding:6px 12px}.nav-tabs a.active{color:var(--brand-primary);font-weight:600}.btn-primary{background:var(--brand-primary);color:var(--text-on-primary);border:none;padding:14px 24px;border-radius:var(--radius-md);font-size:16px;font-weight:600;width:100%;cursor:pointer}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-outline{background:transparent;color:var(--text-primary);border:2px solid var(--outline);padding:14px 24px;border-radius:var(--radius-md);font-size:16px;font-weight:500;width:100%;cursor:pointer}.input-field{width:100%;box-sizing:border-box;padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--outline);background:#e8ede999;font-size:16px}.input-field:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 1px var(--brand-primary)}.card{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:0 2px 10px #0000000d;overflow:hidden}.snack{position:fixed;left:16px;right:16px;bottom:calc(80px + var(--safe-bottom));padding:14px 16px;border-radius:var(--radius-sm);color:#fff;font-size:14px;z-index:1000;max-width:448px;margin:0 auto}.snack.error{background:var(--status-error)}.snack.success{background:var(--status-success)}.snack.info{background:var(--brand-primary)}#root{min-height:100dvh}@keyframes spin{to{transform:rotate(360deg)}}
