.modal-backdrop{position:fixed;inset:0;background-color:rgba(0,0,0,.7);display:grid;place-items:center;z-index:200;padding:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(540px,100%);background:linear-gradient(145deg,rgba(22,24,38,.98),rgba(14,16,26,.99));border:1px solid rgba(255,255,255,.12);border-radius:18px;box-shadow:0 24px 64px rgba(0,0,0,.75),0 0 24px rgba(139,92,246,.08);padding:24px;display:flex;flex-direction:column;gap:18px;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);animation:modal-scale-in .22s cubic-bezier(.16,1,.3,1) forwards}@keyframes modal-scale-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-header h2,.modal-header h3,.modal-title{font-size:17.5px;font-weight:700;color:#ffffff;letter-spacing:-.01em;margin:0}.modal-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:var(--text-muted);cursor:pointer;transition:all .15s ease;flex-shrink:0}.modal-close-btn:hover{background-color:rgba(255,255,255,.12);color:#ffffff;border-color:rgba(255,255,255,.2)}.modal-form{display:flex;flex-direction:column;gap:16px}.form-group,.modal-field{display:flex;flex-direction:column;gap:6px;width:100%}.form-group label,.modal-field label,.modal-label{font-size:12.5px;font-weight:600;color:var(--text-secondary);display:block}.form-group input,.form-group select,.form-group textarea,.modal-field input,.modal-field select,.modal-field textarea,.modal-input,.modal-textarea{width:100%;padding:10px 12px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background-color:#161618;color:#ffffff;font-size:13.5px;font-family:inherit;box-sizing:border-box;color-scheme:dark;transition:border-color .15s ease,box-shadow .15s ease}.form-group select,.modal-field select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus,.modal-input:focus,.modal-textarea:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 2px rgba(245,158,11,.15);background-color:#1a1a1e}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row-3{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px}@media (max-width:600px){.form-row,.form-row-3{grid-template-columns:1fr;gap:10px}}.form-help{font-size:11.5px;color:var(--text-muted)}.emoji-picker-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.emoji-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;font-size:17px;background-color:#161616;border:1px solid var(--border-subtle);transition:border-color .15s ease,transform .15s ease}.emoji-btn:hover{border-color:var(--border-hover);transform:scale(1.05)}.emoji-btn.active{border-color:#ffffff;background-color:rgba(255,255,255,.15)}.profile-preview-card{background-color:#161619;border:1px solid var(--border-subtle);border-radius:12px;padding:12px 14px;margin-bottom:4px}.preview-label{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;letter-spacing:.03em}.preview-row{display:flex;align-items:flex-end;gap:10px}.preview-bubble{padding:8px 12px!important;max-width:calc(100% - 40px)!important}.preview-bubble-header{font-size:11.5px;font-weight:600;margin-bottom:2px}.color-presets-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.color-preset-btn{width:28px;height:28px;border-radius:50%;border:2px solid transparent;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;cursor:pointer}.color-preset-btn:hover{transform:scale(1.14)}.color-preset-btn.selected{border-color:#ffffff;transform:scale(1.1);box-shadow:0 0 10px rgba(255,255,255,.4)}.custom-color-wrap{position:relative;width:28px;height:28px;border-radius:50%;border:1px dashed var(--border-hover);overflow:hidden;display:grid;place-items:center;cursor:pointer;background-color:rgba(255,255,255,.04);transition:border-color .15s ease}.custom-color-wrap:hover{border-color:#ffffff}.custom-color-input{position:absolute;inset:-6px;width:40px;height:40px;opacity:0;cursor:pointer}.modal-actions{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-subtle);gap:12px}.modal-right-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.modal-delete-btn{border:1px solid rgba(239,68,68,.25)}.modal-delete-btn:hover:not(:disabled){border-color:rgba(239,68,68,.4)}.modal-actions .secondary-btn,.modal-btn-cancel,.modal-cancel-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;color:var(--text-secondary);background:rgba(255,255,255,.05);border:1px solid var(--border-subtle);cursor:pointer;transition:all .15s ease}.modal-actions .secondary-btn:hover:not(:disabled),.modal-btn-cancel:hover:not(:disabled),.modal-cancel-btn:hover:not(:disabled){background-color:rgba(255,255,255,.1);color:var(--text-main);border-color:var(--border-hover)}.modal-actions .primary-btn,.modal-btn-primary,.modal-save-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;border-radius:8px;font-size:13px;font-weight:600;background-color:#ffffff;color:#000000;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.modal-actions .primary-btn:hover:not(:disabled),.modal-btn-primary:hover:not(:disabled),.modal-save-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.modal-actions .primary-btn:disabled,.modal-btn-primary:disabled,.modal-save-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background-color:var(--bg-canvas)}.login-card{width:min(400px,100%);padding:36px 32px;background-color:var(--bg-card);border:1px solid var(--border-input);border-radius:20px;box-shadow:0 16px 40px rgba(0,0,0,.4)}.login-brand-header{display:flex;align-items:center;margin-bottom:12px}.login-logo-img{border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.6),0 0 18px rgba(245,158,11,.25);border:1px solid rgba(255,255,255,.1)}.login-card h1{font-size:24px;font-weight:600;color:var(--text-main);margin:14px 0 6px}.login-card>p{color:var(--text-secondary);font-size:13.5px;margin-bottom:24px}.login-card form{display:flex;flex-direction:column;gap:16px}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-secondary)}.login-card input{height:42px;padding:0 12px;border:1px solid var(--border-input);border-radius:10px;background-color:var(--bg-input);color:var(--text-main);font-size:14px}.login-card input:focus{border-color:var(--border-hover)}.login-card button{height:42px;margin-top:6px;background-color:#ffffff;color:#000000;border-radius:10px;font-size:14px;font-weight:600}.login-card button:hover{opacity:.9}.login-card button:disabled{opacity:.4;cursor:not-allowed}.login-card .error{margin-top:14px;color:#fca5a5;font-size:13px}.toast-viewport{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:min(400px,92vw);pointer-events:none}.toast-card{pointer-events:auto;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;background:rgba(22,22,26,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-hover);box-shadow:0 12px 36px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.05);color:var(--text-main);animation:toast-in .28s cubic-bezier(.16,1,.3,1) forwards;transition:transform .2s ease,opacity .2s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-icon{display:grid;place-items:center;flex-shrink:0}.toast-message{flex:1 1;font-size:13px;font-weight:500;line-height:1.4;word-break:break-word}.toast-close-btn{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;color:var(--text-muted);opacity:.7;transition:all .15s ease;flex-shrink:0}.toast-close-btn:hover{opacity:1;color:var(--text-main);background-color:rgba(255,255,255,.1)}.toast-success{border-color:rgba(16,185,129,.35);box-shadow:0 12px 36px rgba(0,0,0,.45),0 0 16px rgba(16,185,129,.15)}.toast-success .toast-icon{color:#10b981}.toast-error{border-color:rgba(239,68,68,.35);box-shadow:0 12px 36px rgba(0,0,0,.45),0 0 16px rgba(239,68,68,.15)}.toast-error .toast-icon{color:#ef4444}.toast-warning{border-color:rgba(245,158,11,.35);box-shadow:0 12px 36px rgba(0,0,0,.45),0 0 16px rgba(245,158,11,.15)}.toast-warning .toast-icon{color:#f59e0b}.toast-info{border-color:rgba(59,130,246,.35);box-shadow:0 12px 36px rgba(0,0,0,.45),0 0 16px rgba(59,130,246,.15)}.toast-info .toast-icon{color:#3b82f6}.confirm-backdrop{z-index:300}.confirm-card{width:min(420px,94vw);background:#18181b;border:1px solid rgba(255,255,255,.12);border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.75);padding:22px;animation:modal-pop .22s cubic-bezier(.16,1,.3,1) forwards}@keyframes modal-pop{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.confirm-modal-header{display:flex;align-items:flex-start;gap:14px}.confirm-icon-badge{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;flex-shrink:0}.confirm-icon-badge.danger{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.25)}.confirm-icon-badge.info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.25)}.confirm-header-content{flex:1 1}.confirm-title{font-size:16px;font-weight:600;color:var(--text-main);margin-bottom:6px}.confirm-message{font-size:13px;color:var(--text-secondary);line-height:1.5}.confirm-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:14px;border-top:1px solid var(--border-subtle)}.confirm-btn-danger{padding:8px 18px;border-radius:8px;font-size:13px;font-weight:600;background-color:#ef4444;color:#ffffff;transition:background-color .15s ease,transform .15s ease}.confirm-btn-danger:hover{background-color:#dc2626;transform:translateY(-1px)}.persona-item-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.persona-delete-btn{display:grid;place-items:center;width:26px;height:26px;border-radius:6px;color:var(--text-muted);opacity:.5;transition:opacity .15s ease,background .15s ease,color .15s ease}.persona-delete-btn:hover{opacity:1;color:#ef4444;background-color:rgba(239,68,68,.15)}.modal-delete-btn{border-radius:8px;font-weight:500;color:#ef4444;background-color:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);transition:all .15s ease}.modal-delete-btn:hover:not(:disabled){background-color:rgba(239,68,68,.2);border-color:rgba(239,68,68,.35)}.modal-delete-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(1)}.schedule-modal-card{max-width:580px;width:94%;max-height:88vh;overflow-y:auto}.modal-title-with-icon{display:flex;align-items:center;gap:10px;color:#c084fc}.type-toggle-pills{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:rgba(0,0,0,.35);padding:4px;border-radius:11px;border:1px solid rgba(255,255,255,.08)}.type-pill{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--text-muted);background:transparent;border:1px solid transparent;cursor:pointer;transition:all .2s ease}.type-pill:hover{color:var(--text-main);background:rgba(255,255,255,.04)}.type-pill.active.event-active{background:rgba(59,130,246,.2);color:#93c5fd;border-color:rgba(59,130,246,.45);box-shadow:0 2px 10px rgba(59,130,246,.25)}.type-pill.active.routine-active{background:rgba(139,92,246,.22);color:#c084fc;border-color:rgba(139,92,246,.48);box-shadow:0 2px 10px rgba(139,92,246,.25)}.routine-config-panel{background:rgba(255,255,255,.03);border:1px solid rgba(139,92,246,.25);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:13px;margin-top:4px}.freq-selector-tabs{display:flex;gap:6px;background:rgba(0,0,0,.3);padding:4px;border-radius:8px}.freq-tab{flex:1 1;padding:6px 10px;font-size:12px;font-weight:600;color:var(--text-muted);border-radius:6px;background:transparent;border:none;cursor:pointer;transition:all .15s ease;text-align:center}.freq-tab:hover{color:var(--text-main)}.freq-tab.active{background:rgba(139,92,246,.32);color:#ffffff;box-shadow:0 2px 8px rgba(0,0,0,.35)}.routine-inline-option{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-secondary)}.routine-inline-option .number-input{width:72px;text-align:center;padding:6px 8px}.weekday-chip-group{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.weekday-chip{padding:6px 11px;border-radius:7px;font-size:12px;font-weight:600;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:var(--text-muted);cursor:pointer;transition:all .18s ease}.weekday-chip:hover{background:rgba(255,255,255,.09);color:var(--text-main)}.weekday-chip.selected{background:rgba(139,92,246,.3);border-color:rgba(139,92,246,.55);color:#ffffff;box-shadow:0 2px 8px rgba(139,92,246,.22)}.routine-deadline-section{display:flex;flex-direction:column;gap:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.1);margin-top:4px}.checkbox-toggle-label{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.modal-actions-row,.modal-form-row{display:flex;gap:12px}.modal-actions-row{align-items:center;justify-content:space-between;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}.modal-actions-right{display:flex;align-items:center;gap:10px;margin-left:auto}.modal-submit-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:9px;font-size:13.5px;font-weight:600;background:linear-gradient(135deg,#8b5cf6,#6366f1);border:1px solid rgba(255,255,255,.2);color:#ffffff;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 14px rgba(139,92,246,.35)}.modal-submit-btn:hover{background:linear-gradient(135deg,#9d75f8,#7578f3);box-shadow:0 6px 18px rgba(139,92,246,.45);transform:translateY(-1px)}.modal-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.modal-delete-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:9px;font-size:13px;font-weight:600;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3);color:#f87171;cursor:pointer;transition:all .2s ease}.modal-delete-btn:hover{background:rgba(239,68,68,.22);border-color:rgba(239,68,68,.45);color:#ffffff;transform:translateY(-1px)}