*,:before,:after{box-sizing:border-box}body{color:#1a202c;-webkit-font-smoothing:antialiased;background:#f0f4f8;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{min-height:100vh}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{color:#e2e8f0;-webkit-text-size-adjust:100%;background:#1a1f2e;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{max-width:860px;margin:0 auto;padding:24px 16px 64px}.modal-backdrop{z-index:100;background:#000000a6;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#252b3b;border:1px solid #3a4155;border-radius:20px;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:360px;padding:32px 28px 24px;display:flex;box-shadow:0 24px 48px #00000080}.modal-avatar{margin-bottom:4px;font-size:3rem;line-height:1}.modal-title{color:#e2e8f0;margin:0;font-size:1.2rem;font-weight:700}.modal-subtitle{color:#718096;text-align:center;margin:0 0 8px;font-size:.85rem}.modal form{flex-direction:column;gap:8px;width:100%;display:flex}.modal-error{color:#fc8181;text-align:center;margin:0;font-size:.82rem}.top-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.active-profile-subtitle{color:#718096;font-size:.8rem}.profile-indicator-btn{color:#e2e8f0;cursor:pointer;background:#252b3b;border:1px solid #3a4155;border-radius:20px;align-items:center;gap:8px;padding:6px 14px;font-size:.95rem;transition:border-color .15s,background .15s;display:inline-flex}.profile-indicator-btn:hover{background:#2d3448;border-color:#4299e1}.profile-indicator-chevron{color:#718096;font-size:.65rem}.profiles-page{padding:0 0 32px}.profiles-page-header{align-items:center;gap:16px;margin-bottom:28px;display:flex}.profiles-back-btn{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #3a4155;border-radius:8px;padding:6px 14px;font-size:.88rem;transition:border-color .15s,color .15s}.profiles-back-btn:hover{color:#63b3ed;border-color:#63b3ed}.profiles-page-title{color:#e2e8f0;font-size:1.2rem;font-weight:700}.profiles-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-bottom:24px;display:grid}.profile-card{background:#252b3b;border:2px solid #3a4155;border-radius:16px;padding:0;transition:border-color .15s;position:relative}.profile-card.active{border-color:#4299e1}.profile-card-main{cursor:pointer;width:100%;color:inherit;background:0 0;border:none;flex-direction:column;align-items:center;gap:8px;padding:20px 12px 16px;display:flex}.profile-card-avatar{font-size:2rem;line-height:1}.profile-card-name{color:#e2e8f0;text-align:center;word-break:break-word;font-size:.88rem;font-weight:600}.profile-card-lock{font-size:.8rem}.profile-card-active-badge{color:#63b3ed;background:#1e3a5f;border:1px solid #4299e1;border-radius:10px;padding:1px 8px;font-size:.7rem}.profile-card-edit-btn{color:#4a5568;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;font-size:.9rem;line-height:1;transition:color .15s;position:absolute;top:6px;right:6px}.profile-card-edit-btn:hover{color:#94a3b8}.profile-card-add{cursor:pointer;background:#1e2330;border-style:dashed;border-color:#4a5568}.profile-card-add .profile-card-avatar{color:#718096;font-size:1.6rem}.profile-card-add .profile-card-name{color:#718096}.profile-card-add:hover{border-color:#63b3ed}.profile-card-add:hover .profile-card-name,.profile-card-add:hover .profile-card-avatar{color:#63b3ed}.profile-form{background:#252b3b;border:2px solid #4299e1;border-radius:16px;flex-direction:column;gap:12px;margin-top:12px;padding:16px;display:flex;box-shadow:0 4px 16px #0000004d}.profile-form-title{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:700}.profile-emoji-picker{flex-wrap:wrap;gap:4px;display:flex}.profile-lock{opacity:.8;margin-left:2px;font-size:.7rem}.pw-section{border-top:1px solid #3a4155;padding-top:10px}.pw-actions-row{flex-wrap:wrap;gap:12px;display:flex}.pw-link{color:#63b3ed;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.82rem;text-decoration:underline}.pw-link-danger{color:#fc8181}.pw-form{flex-direction:column;gap:8px;display:flex}.pw-error{color:#fc8181;margin:0;font-size:.82rem}.btn-delete-profile{color:#fc8181;cursor:pointer;background:#e53e3e26;border:1px solid #e53e3e4d;border-radius:8px;flex:1;min-height:44px;padding:10px;font-size:.9rem;transition:background .15s}.btn-delete-profile:hover{background:#e53e3e40}.loading{text-align:center;color:#a0aec0;padding:80px 0;font-size:1.1rem}.medicine-section{margin-bottom:36px}.medicine-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-auto-rows:1fr;gap:14px;display:grid}.card-wrapper{display:flex;position:relative}.med-edit-btn{color:#94a3b8;cursor:pointer;opacity:0;background:#2d3448;border:1.5px solid #4a5568;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;font-size:.65rem;line-height:1;transition:opacity .15s,color .15s;display:flex;position:absolute;bottom:-7px;left:-7px}.card-wrapper:hover .med-edit-btn{opacity:1}.med-edit-btn:hover{color:#63b3ed;border-color:#63b3ed}@media (hover:none){.med-edit-btn{opacity:1}}.remove-btn{color:#fff;cursor:pointer;z-index:1;opacity:0;background:#e53e3e;border:1.5px solid #1a1f2e;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:-7px;right:-7px;box-shadow:0 1px 3px #0006}.card-wrapper:hover .remove-btn{opacity:1}@media (hover:none){.remove-btn{opacity:1}}.delete-confirm{z-index:2;white-space:nowrap;background:#2d3448;border:1px solid #4a5568;border-radius:8px;align-items:center;gap:5px;padding:5px 7px;font-size:.75rem;display:flex;position:absolute;top:-10px;right:-10px;box-shadow:0 2px 8px #0006}.delete-confirm span{color:#cbd5e0}.btn-yes{color:#fff;cursor:pointer;background:#e53e3e;border:none;border-radius:4px;min-height:28px;padding:4px 8px;font-size:.75rem}.btn-no{color:#e2e8f0;cursor:pointer;background:#4a5568;border:none;border-radius:4px;min-height:28px;padding:4px 8px;font-size:.75rem}.medicine-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:#252b3b;border:2px solid #3a4155;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:100%;min-height:100px;padding:12px 4px;transition:transform .1s,box-shadow .2s,border-color .2s;display:flex;box-shadow:0 2px 8px #0000004d}@media (hover:hover){.medicine-card:hover{border-color:#63b3ed;transform:translateY(-2px);box-shadow:0 6px 16px #0006}}.medicine-card:active{box-shadow:none;transform:scale(.93)}.medicine-card.flash{background:#1e3a5f;border-color:#63b3ed;transform:scale(.93)}.add-card{color:#718096;background:#1e2330;border-style:dashed;border-color:#4a5568}@media (hover:hover){.add-card:hover{color:#63b3ed;background:#1e3a5f;border-color:#63b3ed}}.med-emoji{line-height:1}.add-icon{font-size:clamp(1.4rem,3.5vw,1.8rem)}.med-name{text-align:center;color:#cbd5e0;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%;padding:0 6px;font-size:.72rem;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.med-notes{color:#718096;text-align:center;-webkit-line-clamp:1;-webkit-box-orient:vertical;width:100%;padding:0 6px;font-size:.62rem;display:-webkit-box;overflow:hidden}.add-card .med-name{color:inherit}.add-form-card{background:#252b3b;border:2px solid #4299e1;border-radius:16px;flex-direction:column;grid-column:1/-1;gap:12px;padding:16px;display:flex;box-shadow:0 4px 16px #0000004d}.emoji-picker{flex-wrap:wrap;gap:6px;display:flex}.emoji-option{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:1.5rem;transition:border-color .15s,background .15s;display:flex}@media (hover:hover){.emoji-option:hover{background:#1e3a5f}}.emoji-option.selected{background:#1e3a5f;border-color:#4299e1}.name-input{color:#e2e8f0;background:#1a1f2e;border:1px solid #4a5568;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:16px}.name-input:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e133}.form-actions{gap:8px;display:flex}.btn-save{color:#fff;cursor:pointer;background:#4299e1;border:none;border-radius:8px;flex:1;min-height:44px;padding:10px;font-size:1rem;font-weight:600}@media (hover:hover){.btn-save:hover{background:#3182ce}}.btn-cancel{color:#a0aec0;cursor:pointer;background:#2d3448;border:none;border-radius:8px;flex:1;min-height:44px;padding:10px;font-size:1rem}@media (hover:hover){.btn-cancel:hover{background:#3a4155}}.log-section{background:#252b3b;border-radius:16px;padding:20px 16px;box-shadow:0 2px 8px #0000004d}.log-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.log-header h2{color:#e2e8f0;align-items:center;gap:8px;font-size:1.1rem;font-weight:700;display:flex}.log-count{color:#63b3ed;background:#1e3a5f;border-radius:12px;padding:2px 8px;font-size:.78rem;font-weight:700}.btn-clear{color:#718096;cursor:pointer;background:0 0;border:1px solid #4a5568;border-radius:8px;min-height:36px;padding:6px 12px;font-size:.85rem}@media (hover:hover){.btn-clear:hover{color:#fc8181;background:#e53e3e1a;border-color:#e53e3e}}.empty-log{color:#a0aec0;text-align:center;padding:32px 0;font-size:.95rem}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}thead tr{border-bottom:2px solid #3a4155}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:#718096;white-space:nowrap;padding:8px 10px;font-size:.72rem;font-weight:700}td{color:#cbd5e0;vertical-align:middle;border-bottom:1px solid #2d3448;padding:6px 10px}tbody tr:last-child td{border-bottom:none}@media (hover:hover){tbody tr:hover{background:#2d3448}}.new-row td{animation:.4s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.row-num{color:#a0aec0;width:28px}@media (width<=400px){.row-num,th:first-child{display:none}}.med-cell{color:#e2e8f0;align-items:center;gap:6px;display:inline-flex}.med-cell svg{flex-shrink:0;width:22px;height:22px}.log-emoji{flex-shrink:0}.time-cell{white-space:nowrap}.log-delete-cell{text-align:right;width:44px;padding-right:4px}.log-delete-btn{color:#cbd5e0;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;line-height:1;transition:opacity .15s,color .15s;display:flex}@media (hover:hover){tr:hover .log-delete-btn{opacity:1}.log-delete-btn:hover{color:#fc8181;background:#e53e3e26}}@media (hover:none){.log-delete-btn{opacity:1;color:#fc8181}}.log-delete-confirm{justify-content:flex-end;align-items:center;gap:4px;display:flex}.stats-section{background:#252b3b;border-radius:16px;margin-bottom:24px;padding:20px 16px;box-shadow:0 2px 8px #0000004d}.stats-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.section-toggle{opacity:.5;margin-left:6px;font-size:.75rem}.stats-header h2{color:#e2e8f0;font-size:1.1rem;font-weight:700}.timeframe-tabs{flex-wrap:wrap;gap:4px;display:flex}.tf-tab{color:#718096;cursor:pointer;white-space:nowrap;background:#1e2330;border:1px solid #3a4155;border-radius:20px;padding:4px 10px;font-size:.78rem;transition:background .15s,color .15s,border-color .15s}.tf-tab:hover{color:#cbd5e0;background:#2d3448}.tf-tab.active{color:#63b3ed;background:#1e3a5f;border-color:#4299e1;font-weight:600}.stats-list{flex-direction:column;gap:10px;display:flex}.stat-row{align-items:center;gap:10px;display:flex}.stat-emoji{text-align:center;flex-shrink:0;width:28px}.stat-name{color:#cbd5e0;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:110px;font-size:.8rem;font-weight:400;overflow:hidden}.stat-bar-wrap{background:#1e2330;border-radius:6px;flex:1;height:10px;overflow:hidden}.stat-bar{background:linear-gradient(90deg,#2b6cb0,#63b3ed);border-radius:6px;min-width:4px;height:100%;transition:width .4s}.stat-count{color:#63b3ed;text-align:right;flex-shrink:0;width:28px;font-size:.8rem;font-weight:400}.backup-bar{justify-content:center;gap:12px;margin-top:32px;padding-bottom:8px;display:flex}.backup-btn{color:#718096;cursor:pointer;background:0 0;border:1px solid #3a4260;border-radius:8px;padding:6px 14px;font-size:.8rem;text-decoration:none;transition:border-color .15s,color .15s}.backup-btn:hover{color:#63b3ed;border-color:#63b3ed}.log-pagination{justify-content:center;align-items:center;gap:12px;margin-top:14px;display:flex}.page-btn{color:#c9d1e0;cursor:pointer;background:#2d3548;border:1px solid #3a4260;border-radius:8px;padding:6px 14px;font-size:1.1rem;transition:background .15s}.page-btn:hover:not(:disabled){background:#3a4260}.page-btn:disabled{opacity:.35;cursor:default}.page-info{color:#8892a4;text-align:center;min-width:100px;font-size:.9rem}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filter-select{color:#cbd5e0;cursor:pointer;background:#1e2330;border:1px solid #3a4155;border-radius:8px;flex:1;min-width:130px;min-height:36px;padding:6px 10px;font-size:.85rem}.filter-select:focus{border-color:#4299e1;outline:none}.filter-date{color:#cbd5e0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#1e2330;border:1px solid #3a4155;border-radius:8px;flex:1;min-width:120px;min-height:36px;padding:6px 8px;font-size:.82rem}.filter-date:focus{border-color:#4299e1;outline:none}.filter-sep{color:#4a5568;flex-shrink:0;font-size:.9rem}.filter-clear{color:#718096;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #4a5568;border-radius:8px;flex-shrink:0;min-height:36px;padding:6px 12px;font-size:.82rem}.filter-clear:hover{color:#fc8181;background:#e53e3e1a;border-color:#e53e3e}.calendar-section{background:#252b3b;border-radius:16px;margin-top:24px;padding:20px 16px;box-shadow:0 2px 8px #0000004d}.calendar-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.calendar-header h2{color:#e2e8f0;font-size:1.1rem;font-weight:700}.cal-nav{align-items:center;gap:8px;display:flex}.cal-nav-btn{color:#e2e8f0;cursor:pointer;background:#2d3448;border:1px solid #4a5568;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.2rem;line-height:1;transition:background .15s;display:flex}.cal-nav-btn:hover{background:#3a4155}.cal-month-label{color:#cbd5e0;text-align:center;min-width:140px;font-size:.95rem;font-weight:600}.cal-today-btn{color:#63b3ed;cursor:pointer;background:0 0;border:1px solid #4a5568;border-radius:8px;padding:4px 10px;font-size:.8rem;transition:background .15s}.cal-today-btn:hover{background:#1e3a5f}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-day-name{text-align:center;text-transform:uppercase;letter-spacing:.04em;color:#718096;padding:4px 0 8px;font-size:.7rem;font-weight:700}.cal-cell{cursor:pointer;min-height:52px;font:inherit;background:#1e2330;border:1px solid #2d3448;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:4px;transition:background .15s,border-color .15s;display:flex}.cal-empty{cursor:default;pointer-events:none;background:0 0;border-color:#0000}@media (hover:hover){.cal-cell:not(.cal-empty):hover{background:#2d3448;border-color:#4a5568}}.cal-cell.cal-has-entries{background:#1a2d45;border-color:#2a4a6b}.cal-cell.cal-today{border-color:#4299e1}.cal-cell.cal-today .cal-day-num{color:#fff;background:#4299e1;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.cal-cell.cal-selected{background:#1e3a5f;border-color:#63b3ed;box-shadow:0 0 0 2px #63b3ed4d}.cal-day-num{color:#a0aec0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.78rem;font-weight:600;line-height:1;display:flex}.cal-has-entries .cal-day-num{color:#e2e8f0}.cal-dots{flex-wrap:wrap;justify-content:center;gap:1px;display:flex}.cal-dots svg{flex-shrink:0}.cal-extra{color:#718096;font-size:.6rem}.cal-detail{background:#1e2330;border:1px solid #3a4155;border-radius:12px;margin-top:16px;padding:14px 16px;animation:.2s fadeIn}.cal-detail-header{color:#63b3ed;margin-bottom:10px;font-size:.9rem;font-weight:700}.cal-detail-empty{color:#718096;font-size:.85rem}.cal-detail-list{flex-direction:column;gap:6px;list-style:none;display:flex}.cal-detail-item{align-items:center;gap:8px;font-size:.88rem;display:flex}.cal-detail-emoji{flex-shrink:0}.cal-detail-name{color:#e2e8f0;flex:1;font-weight:600}.cal-detail-time{color:#718096;white-space:nowrap;font-family:ui-monospace,monospace;font-size:.8rem}
