*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;background:#faf9de;min-height:100vh;padding:20px;color:#000}.container{max-width:900px;margin:0 auto;background:#fff;border-radius:16px;padding:30px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.container-head{margin-bottom:30px}.head-box{text-align:center;margin-bottom:20px}.page-title{color:#000;font-size:2em;margin-bottom:10px;font-weight:700}.subtitle{color:#666;font-size:1em}hr{border:none;border-top:1px solid #ddd;margin:20px 0}.container-contact{margin-bottom:20px}.form-section{background:#fff;padding:0;border-radius:0}.form-section h2,.records-section h2{color:#000;margin-bottom:20px;font-size:1.3em;font-weight:700}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:8px;color:#000;font-weight:600}.form-group input,.form-group select{width:100%;padding:12px;border:2px solid #ddd;border-radius:8px;font-size:1em;transition:border-color .3s;background:#fff}.form-group input[type=date]{width:auto;max-width:200px}.form-group input:focus,.form-group select:focus{outline:0;border-color:#ff8e2d}.btn-submit{width:100%;padding:15px;background:#ff8e2d;color:#fff;border:none;border-radius:12px;font-size:1.1em;font-weight:700;cursor:pointer;transition:background .3s}.btn-submit:hover{background:#e67e1e}.btn-submit:active{transform:translateY(1px)}.message{margin-top:15px;padding:12px;border-radius:8px;text-align:center;font-weight:600;display:none}.message.success{background:#d4edda;color:#155724;border:1px solid #c3e6cb;display:block}.message.error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb;display:block}.records-section h2{color:#000;margin-bottom:20px}.record-item{background:#fff;padding:15px;border-radius:10px;border-left:4px solid #ff8e2d;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px rgba(0,0,0,.1);position:relative;margin-bottom:8px}.records-pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:12px}.page-btn{background:#ff8e2d;border:none;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:.85em;display:flex;align-items:center;justify-content:center;transition:background .2s}.page-btn:disabled{background:#ddd;cursor:default}.page-btn:not(:disabled):hover{background:#e07820}.page-info{font-size:.9em;color:#666}.record-date{font-weight:700;color:#000;min-width:120px}.record-type{color:#666;min-width:80px}.record-value{text-align:right;font-weight:700;color:#ff8e2d;font-size:1.2em;flex:1}.delete-btn{background:0 0;border:none;color:#999;cursor:pointer;padding:8px 12px;border-radius:6px;font-size:.9em;transition:.3s;margin-left:10px}.delete-btn:hover{background:#ffebee;color:#f44;transform:scale(1.1)}.delete-btn:active{transform:scale(.95)}@media (max-width:768px){.container{padding:15px}.page-title{font-size:1.5em}.record-item{flex-direction:column;text-align:center;gap:10px}.record-date,.record-type,.record-value{min-width:auto;text-align:center}}@media (max-width:480px){.btn-label{display:none}.btn-header{padding:8px 10px}.user-name{font-size:.95em}}.modal{display:flex;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);align-items:center;justify-content:center}.modal-content{background-color:#fff;padding:40px;border-radius:16px;max-width:400px;width:90%;box-shadow:0 8px 40px rgba(0,0,0,.15);border:1px solid #ddd}.modal-content h2{color:#333;margin-bottom:25px;text-align:center;font-size:1.8em}.modal-content small{color:#999;font-size:.85em;display:block;margin-top:5px}.auth-page{position:fixed;z-index:1000;inset:0;display:none;align-items:center;justify-content:center;background:#faf9de;min-height:100vh}.auth-card{background:#fff;border-radius:16px;padding:48px 40px;width:90%;max-width:400px;box-shadow:0 2px 12px rgba(0,0,0,.1);animation:.4s authFadeIn;position:relative}@keyframes authFadeIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.auth-brand{text-align:center;margin-bottom:32px}.auth-logo{width:68px;height:68px;background:#ff8e2d;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;font-size:1.9em;color:#fff;margin-bottom:14px;box-shadow:0 4px 14px rgba(255,142,45,.3)}.auth-title{color:#000;font-size:2em;font-weight:800;letter-spacing:-.5px;margin-bottom:4px}.auth-subtitle{color:#666;font-size:.92em}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-field{display:flex;flex-direction:column;gap:8px}.auth-input-wrap{position:relative;display:flex;align-items:center}.auth-input-icon{position:absolute;left:14px;color:#aaa;font-size:.9em;pointer-events:none}.auth-input-wrap input{width:100%;padding:13px 14px 13px 40px;background:#fff;border:1.5px solid #ddd;border-radius:10px;color:#000;font-size:1em;outline:0;transition:.2s;font-family:inherit}.auth-input-wrap input::placeholder{color:#bbb}.auth-input-wrap input:focus{border-color:#ff8e2d;box-shadow:0 0 0 3px rgba(255,142,45,.12)}.auth-pin-label{color:#444;font-size:.88em;font-weight:600}.auth-hint{color:#999;font-size:.82em;text-align:center}.auth-btn{width:100%;height:50px;padding:0 14px;background:#ff8e2d;color:#fff;border:none;border-radius:10px;font-size:1.05em;font-weight:700;cursor:pointer;transition:background .2s,transform .15s;margin-top:4px;font-family:inherit;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.auth-btn:hover{background:#e67e1e}.auth-btn:active{transform:translateY(1px)}.auth-btn.loading{pointer-events:none;cursor:default}.auth-spin-svg{width:34px;height:34px;display:block;overflow:visible}.auth-spin-group{transform-origin:22px 22px;animation:.85s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.pref-tabs{display:flex;gap:8px;margin-bottom:20px}.pref-tab{flex:1;padding:9px 12px;background:#f5f5f5;color:#666;border:1px solid #ddd;border-radius:8px;cursor:pointer;font-size:.9em;transition:.2s}.pref-tab.active{background:#ff8e2d;color:#fff;border-color:#ff8e2d}.btn-primary{width:100%;padding:15px;background:#ff8e2d;color:#fff;border:none;border-radius:12px;font-size:1.1em;font-weight:700;cursor:pointer;transition:background .3s}.btn-primary:hover{background:#e67e1e}.btn-primary:active{transform:translateY(1px)}.pin-inputs{display:flex;gap:10px;justify-content:center;margin:4px 0}.pin-box{width:48px;height:52px;text-align:center;font-size:1.4em;font-weight:700;background:#fff;border:1.5px solid #ddd;border-radius:10px;color:#000;outline:0;transition:.2s;caret-color:#ff8e2d}@media (max-width:400px){.pin-box{width:36px;height:40px;font-size:1.1em;border-radius:7px}.pin-inputs{gap:6px}}.pin-box:focus{border-color:#ff8e2d;box-shadow:0 0 0 3px rgba(255,142,45,.12);transform:scale(1.05)}.pin-box:valid:not(:placeholder-shown){border-color:#4caf50}.header-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.user-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn-header{width:auto;padding:8px 14px;font-size:.9em;white-space:nowrap}.user-name{color:#ff8e2d;font-weight:700;font-size:1.1em}.btn-logout{background-color:#f44;color:#fff;border:none;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:.9em;transition:background-color .3s}.btn-logout:hover{background-color:#c00}.btn-danger{background-color:#f44;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85em;transition:background-color .2s}.btn-danger:hover{background-color:#c00}.btn-warning{background-color:#ff9800;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85em;transition:background-color .2s}.btn-warning:hover{background-color:#e68900}.btn-success{background-color:#4caf50;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85em;transition:background-color .2s}.btn-success:hover{background-color:#388e3c}.tabs{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #ddd}.tab-btn{background:0 0;border:none;padding:12px 24px;cursor:pointer;font-size:1em;color:#666;border-bottom:3px solid transparent;transition:.3s}.tab-btn:hover{color:#ff8e2d}.tab-btn.active{color:#ff8e2d;border-bottom-color:#ff8e2d;font-weight:700}.tab-content{display:none}.tab-content.active{display:block}.leaderboard-tabs{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.leaderboard-tab-btn{background-color:#f5f5f5;border:2px solid #ddd;padding:10px 20px;border-radius:12px;cursor:pointer;font-size:.95em;color:#333;transition:.3s}.leaderboard-tab-btn:hover{border-color:#ff8e2d;color:#ff8e2d}.leaderboard-tab-btn.active{background-color:#ff8e2d;color:#fff;border-color:#ff8e2d}.leaderboard-content{display:none}.leaderboard-content.active{display:block}.leaderboard-content h3{color:#000;margin-bottom:20px;font-size:1.5em}.leaderboard-list{display:flex;flex-direction:column;gap:12px}.leaderboard-item{display:flex;align-items:center;padding:15px 20px;background:#f9f9f9;border-radius:10px;border-left:4px solid #ddd;transition:.3s}.leaderboard-item:hover{transform:translateX(5px);box-shadow:0 2px 8px rgba(0,0,0,.1)}.leaderboard-item.current-user{background:linear-gradient(135deg,#fff5e6 0,#ffe6cc 100%);border-left-color:#ff8e2d;font-weight:700}.leaderboard-item.rank-1{border-left-color:gold;background:linear-gradient(135deg,#fffacd 0,#fff9c4 100%)}.leaderboard-item.rank-2{border-left-color:silver;background:linear-gradient(135deg,#f5f5f5 0,#eee 100%)}.leaderboard-item.rank-3{border-left-color:#cd7f32;background:linear-gradient(135deg,#ffe0b2 0,#ffccbc 100%)}.rank-badge{min-width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:1.5em;font-weight:700;margin-right:20px}.rank-1 .rank-badge{color:gold}.rank-2 .rank-badge{color:silver}.rank-3 .rank-badge{color:#cd7f32}.leaderboard-info{flex:1;display:flex;justify-content:space-between;align-items:center}.user-nickname{font-size:1.1em;color:#333}.leaderboard-stats{display:flex;gap:8px;font-size:.95em}.leaderboard-item.by-type .leaderboard-info{flex-direction:column;align-items:flex-start;gap:8px}.leaderboard-item.by-type .leaderboard-stats{flex-wrap:wrap;gap:6px}.stat-badge{padding:4px 10px;background:#fff;border-radius:8px;color:#666;white-space:nowrap}.stat-badge strong{color:#ff8e2d;font-size:1.1em}.stat-badge-more{background:#f0f0f0;color:#999;font-size:.85em}@media (max-width:600px){.leaderboard-tabs{flex-direction:column}.leaderboard-tab-btn{width:100%}.leaderboard-item{flex-direction:column;text-align:center;gap:10px}.rank-badge{margin-right:0;margin-bottom:10px}.leaderboard-info{flex-direction:column;gap:10px}.leaderboard-stats{flex-direction:column;gap:8px}}.goals-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:20px}.year-progress-banner{grid-column:1/-1;background:#fff;padding:16px 20px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);margin-bottom:16px;border-left:4px solid #ff8e2d}.year-progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.95em;color:#555;font-weight:500}.year-progress-percent{font-weight:700;color:#ff8e2d;font-size:1.15em}.year-progress-fill{background:linear-gradient(90deg,#ff8e2d 0,#fc8 100%)}.goal-card{background:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.goal-card h3{color:#ff8e2d;margin-bottom:15px}.goal-input-group{display:flex;gap:10px;margin-bottom:15px}.goal-input{flex:1;padding:10px;border:2px solid #ddd;border-radius:8px;font-size:1em}.btn-goal{padding:10px 20px;background:#ff8e2d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:.3s}.btn-goal:hover{background:#e67300;transform:translateY(-2px)}.goal-progress{margin-top:10px}.progress-info{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.95em;color:#666}.progress-percent{font-weight:700;color:#ff8e2d;font-size:1.1em}.progress-bar{height:24px;background:#f0f0f0;border-radius:12px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#ff8e2d 0,#fa6 100%);transition:width .5s;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;color:#fff;font-weight:700;font-size:.85em}@media (max-width:768px){.goals-section{grid-template-columns:1fr}}.pref-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(255,142,45,.08);border-radius:8px;cursor:pointer;font-size:1em}.pref-item input[type=checkbox]{width:18px;height:18px;accent-color:#ff8e2d;cursor:pointer}.admin-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.admin-header-btns{display:flex;gap:8px;flex-wrap:wrap}@media (max-width:480px){.admin-header{flex-direction:column;align-items:flex-start}}.admin-table{width:100%;border-collapse:collapse}.admin-table thead tr{background:#f5f5f5}.admin-table td,.admin-table th{padding:12px;text-align:left;border:1px solid #ddd}@media (max-width:600px){.admin-table thead{display:none}.admin-table tr{display:block;margin-bottom:12px;border:1px solid #ddd;border-radius:8px;overflow:hidden}.admin-table td{display:flex;justify-content:space-between;align-items:center;border:none;border-bottom:1px solid #f0f0f0;padding:10px 14px}.admin-table td:last-child{border-bottom:none}.admin-table td::before{content:attr(data-label);font-weight:600;color:#666;margin-right:10px;white-space:nowrap}}.btn-lang{background:#fff;border:1px solid #ddd;border-radius:8px;padding:8px 12px;font-size:.85em;font-weight:700;cursor:pointer;color:#555;letter-spacing:.05em;transition:background .15s,border-color .15s}.btn-lang:hover{background:#f5f5f5;border-color:#bbb}.app-footer--auth{position:absolute;bottom:0;left:0;right:0;margin-top:0}.app-footer{text-align:center;margin-top:32px;padding:16px;font-size:13px;color:#888;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.app-footer a{color:#888;text-decoration:none}.app-footer a:hover{color:#ff8e2d}#toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none}.toast{background:#fff;border-radius:8px;padding:12px 16px;box-shadow:0 4px 12px rgba(0,0,0,.15);font-size:14px;font-weight:500;max-width:300px;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;pointer-events:auto}.toast-visible{opacity:1;transform:translateY(0)}.confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:9998}.confirm-dialog{background:#fff;border-radius:12px;padding:24px;max-width:320px;width:90%;box-shadow:0 8px 32px rgba(0,0,0,.2)}.confirm-message{margin:0 0 20px;font-size:15px;color:#333;text-align:center;line-height:1.5}.confirm-actions{display:flex;gap:12px;justify-content:center}.btn-confirm-ok{background:#f44336;color:#fff;border:none;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;cursor:pointer}.btn-confirm-cancel{background:#f5f5f5;color:#666;border:none;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;cursor:pointer}.btn-confirm-ok:hover{background:#d32f2f}.btn-confirm-cancel:hover{background:#e0e0e0}