.app-header{z-index:10;background:#fff;border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:8px 20px;display:flex;position:sticky;top:0}.app-header .header-logo{width:auto;height:54px;display:block}.app-header .logout-btn{color:var(--secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px;transition:background-color .2s}.app-header .logout-btn:hover{background:#f5f5f5}.bottom-nav{z-index:100;width:100%;max-width:600px;padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top-left-radius:20px;border-top-right-radius:20px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000000d}.bottom-nav .nav-item{color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:12px 0;text-decoration:none;transition:color .3s;display:flex}.bottom-nav .nav-item svg{margin-bottom:4px;transition:transform .2s}.bottom-nav .nav-item span{font-size:12px;font-weight:500}.bottom-nav .nav-item.router-link-active{color:var(--primary)}.bottom-nav .nav-item.router-link-active svg{transform:translateY(-2px)}.app-wrap{flex-direction:column;min-height:calc(100vh - 80px);display:flex}.app-content{flex:1}.install-banner{z-index:1000;background:var(--primary);color:#fff;justify-content:space-between;align-items:center;padding:12px 20px;display:flex;position:sticky;top:0;box-shadow:0 4px 12px #0000001a}.install-banner .install-content{align-items:center;gap:12px;display:flex}.install-banner .install-content .install-icon{font-size:24px}.install-banner .install-content .install-text{line-height:1.2}.install-banner .install-content .install-text strong{font-size:14px;display:block}.install-banner .install-content .install-text p{opacity:.9;margin:0;font-size:12px}.install-banner .install-actions{align-items:center;gap:10px;display:flex}.install-banner .install-actions .btn-small{color:var(--primary);background:#fff;border-radius:8px;padding:6px 12px;font-size:12px}.install-banner .install-actions .btn-close-pwa{color:#fff;cursor:pointer;background:0 0;border:none;padding:0 5px;font-size:24px;line-height:1}.slide-down-enter-active,.slide-down-leave-active{transition:transform .3s,opacity .3s}.slide-down-enter-from,.slide-down-leave-to{opacity:0;transform:translateY(-100%)}:root{--primary:#58a681;--primary-light:#70b896;--primary-dark:#438767;--secondary:#2c3e50;--bg-color:#f7f9fa;--card-bg:#fff;--text-main:#333;--text-muted:#888;--border-radius:12px;--shadow:0 4px 15px #0000000d;--error:#e74c3c}body{background-color:var(--bg-color);color:var(--text-main);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}#app{background-color:var(--card-bg);max-width:600px;min-height:100vh;box-shadow:var(--shadow);margin:0 auto;padding-bottom:80px;position:relative;overflow-x:hidden}h1,h2,h3{color:var(--secondary);margin-top:0;font-weight:700}.container{padding:20px}.btn{border-radius:var(--border-radius);background-color:var(--primary);color:#fff;text-align:center;cursor:pointer;border:none;width:100%;padding:15px;font-size:16px;font-weight:600;text-decoration:none;transition:background-color .3s,transform .1s;display:block}.btn:active{transform:scale(.98)}.btn:hover{background-color:var(--primary-dark)}.btn.btn-secondary{color:var(--secondary);background-color:#eef2f5}.btn.btn-secondary:hover{background-color:#e0e6eb}.btn.btn-danger{color:var(--error);background-color:#fdf2f2;border:1px solid #fad2d2}.btn.btn-danger:hover{background-color:#fdeaea}.btn.btn-outline{color:var(--primary);border:2px solid var(--primary);background-color:#0000}.btn.btn-outline:hover{background-color:#f4fbf7}.input-group{margin-bottom:20px}.input-group label{color:var(--secondary);margin-bottom:8px;font-size:14px;font-weight:600;display:block}.input-group input,.input-group select,.input-group textarea{background-color:#fcfcfc;border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:12px;font-family:inherit;font-size:16px;transition:border-color .3s,box-shadow .3s}.input-group input:focus,.input-group select:focus,.input-group textarea:focus{border-color:var(--primary);background-color:#fff;outline:none;box-shadow:0 0 0 4px #58a6811a}.alert{border-radius:8px;margin-bottom:20px;padding:15px;font-size:14px}.alert.alert-error{color:var(--error);background-color:#fdeaea;border:1px solid #fad2d2}.alert.alert-success{color:var(--primary-dark);background-color:#eafbee;border:1px solid #d4f4db}
