@import"https://fonts.googleapis.com/css2?family=Gaegu:wght@300;400;700&display=swap";.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background-color:var(--color-background);padding:20px}.login-box{background:var(--color-white);padding:48px 40px;border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000000d;width:100%;max-width:420px;animation:slideUp .6s cubic-bezier(.16,1,.3,1)}.login-title{text-align:center;color:var(--color-text);font-size:32px;margin-bottom:40px;font-weight:700;letter-spacing:-.5px}.type-selector{display:flex;gap:12px;margin-bottom:32px}.type-button{flex:1;padding:16px;border:1px solid var(--color-border);background:var(--color-background);border-radius:var(--radius-md);font-size:18px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.type-button:hover{background-color:#e8ebed}.type-button.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 4px 12px #ff2e634d}.input-group{margin-bottom:32px}.input-group label{display:block;margin-bottom:10px;color:var(--color-text-secondary);font-weight:600;font-size:14px}.input-group input{width:100%;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:16px;background-color:var(--color-background);color:var(--color-text);transition:all .2s ease}.input-group input:focus{outline:none;border-color:var(--color-primary);background-color:var(--color-white);box-shadow:0 0 0 2px #ff2e631a}.input-group input::placeholder{color:#b0b8c1}.login-button{width:100%;padding:18px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:17px;font-weight:600;cursor:pointer;transition:all .2s ease}.login-button:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{background:#ffc2d1;cursor:not-allowed}.error-message{background:#fff0f3;color:#d61c4e;padding:14px;border-radius:var(--radius-sm);margin-bottom:24px;font-size:14px;text-align:center;font-weight:500;animation:shake .4s cubic-bezier(.36,.07,.19,.97) both}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.signup-link-button{width:100%;margin-top:12px;padding:16px;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:#fff;color:var(--color-text);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.signup-link-button:hover{background-color:var(--color-background);border-color:var(--color-text-secondary)}.main-container{display:flex;flex-direction:column;min-height:100vh;background-color:#f5f5f5}.main-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:#fff;box-shadow:0 2px 4px #0000001a}.main-header h1{margin:0;font-size:1.5rem;color:#333}.logout-button{padding:.5rem 1rem;border:none;background-color:#ff6b6b;color:#fff;border-radius:4px;cursor:pointer;font-size:.9rem}.main-content{flex:1;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:2rem}.anniversary-section{background-color:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px #0000000d;text-align:center}.total-days h2{font-size:3rem;color:#ff6b6b;margin:0 0 1.5rem;font-weight:800}.recent-anniversaries{display:flex;flex-direction:column;gap:1rem;border-top:1px solid #eee;padding-top:1.5rem}.anniversary-item{display:flex;justify-content:space-between;align-items:center;padding:.8rem;background-color:#f8f9fa;border-radius:8px}.anniversary-title{font-weight:600;color:#333}.anniversary-date{color:#666;font-size:.9rem}.anniversary-dday{color:#ff6b6b;font-weight:700}.navigation-buttons{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:auto}.nav-button{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;border:none;border-radius:12px;background-color:#fff;box-shadow:0 4px 6px #0000000d;cursor:pointer;transition:transform .2s}.nav-button:active{transform:scale(.98)}.nav-icon{font-size:2rem;margin-bottom:.5rem}.nav-text{font-weight:600;color:#333}.toss-button.nav-item-button{background-color:#f2f4f6;color:var(--color-text);transition:all .2s ease}.toss-button.nav-item-button:hover{background-color:var(--color-primary);color:#fff}:root{--primary-color: #FF6B6B;--primary-hover: #FF5252;--background-color: #F9FAFB;--text-color: #191F28;--text-secondary: #8B95A1;--border-color: #E5E8EB;--input-bg: #F2F4F6}.signup-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:var(--background-color);padding:20px}.signup-card{background:#fff;padding:40px;border-radius:24px;box-shadow:0 4px 20px #0000000d;width:100%;max-width:400px;animation:slideUp .5s ease-out}.signup-title{font-size:24px;font-weight:700;color:var(--text-color);margin-bottom:8px;text-align:center}.signup-subtitle{font-size:15px;color:var(--text-secondary);text-align:center;margin-bottom:32px}.signup-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:var(--text-color);margin-left:4px}.form-group input{padding:14px 16px;border-radius:12px;border:1px solid transparent;background-color:var(--input-bg);font-size:15px;color:var(--text-color);transition:all .2s ease}.form-group input:focus{outline:none;background-color:#fff;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b6b1a}.form-group input::placeholder{color:#b0b8c1}.error-message{color:#ff5252;font-size:13px;text-align:center;background-color:#fff0f0;padding:10px;border-radius:8px}.signup-button{margin-top:12px;padding:16px;border-radius:14px;border:none;background-color:var(--primary-color);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.signup-button:hover{background-color:var(--primary-hover)}.signup-button:active{transform:scale(.98)}.admin-container{min-height:100vh;background-color:var(--color-background)}.admin-header{background:var(--color-white);padding:0 40px;height:60px;display:flex;align-items:center;border-bottom:1px solid var(--color-border)}.admin-header h1{color:var(--color-text);font-size:20px;font-weight:700}.admin-content{padding:40px;max-width:1200px;margin:0 auto}.admin-section{background:var(--color-white);border-radius:var(--radius-md);padding:24px;margin-bottom:24px;box-shadow:0 4px 20px #0000000d}.admin-section h2{font-size:18px;font-weight:700;margin-bottom:16px;color:var(--color-text)}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;padding:12px;border-bottom:2px solid var(--color-border);color:var(--color-text-secondary);font-weight:600;white-space:nowrap}td{padding:12px;border-bottom:1px solid var(--color-border);color:var(--color-text);white-space:nowrap;max-width:300px;overflow:hidden;text-overflow:ellipsis}tr:last-child td{border-bottom:none}.admin-loading,.admin-error{padding:40px;text-align:center;color:var(--color-text-secondary)}.playlist-container{display:flex;flex-direction:column;min-height:100vh;background-color:#f5f5f5}.playlist-header{display:flex;align-items:center;padding:1rem 1.5rem;background-color:#fff;box-shadow:0 2px 4px #0000001a;position:sticky;top:0;z-index:10;font-family:Gaegu,cursive}.back-button{background:none;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:.5rem;margin-right:1rem;color:#333;border-radius:50%;transition:background-color .2s}.back-button:hover{background-color:#f5f5f5}.playlist-header h1{margin:0;font-size:1.8rem;color:#333;font-weight:700}.playlist-content{flex:1;padding:1.5rem;max-width:800px;margin:0 auto;width:100%;box-sizing:border-box}.playlist-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.playlist-item{aspect-ratio:1;background-color:#fff7d1;padding:24px;box-shadow:2px 4px 8px #0000001a;font-family:Gaegu,cursive;font-size:1.6rem;position:relative;overflow:hidden;cursor:default;transition:transform .2s;display:flex;flex-direction:column;color:#333;line-height:1.3}.playlist-item:nth-child(4n+1){background-color:#fff7d1}.playlist-item:nth-child(4n+2){background-color:#ffebf0}.playlist-item:nth-child(4n+3){background-color:#e0f7fa}.playlist-item:nth-child(4n+4){background-color:#f3e5f5}.playlist-item.clickable{cursor:pointer}.playlist-item.clickable:hover{transform:scale(1.02);z-index:1}.item-content{width:100%;height:100%;overflow:hidden}.item-text{display:-webkit-box;-webkit-line-clamp:7;line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;white-space:pre-wrap}.checked-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-15deg);font-size:5rem;color:red;opacity:.7;pointer-events:none;border:3px solid #ff0000;border-radius:50%;width:80px;height:80px;display:flex;justify-content:center;align-items:center}.checked-mark{font-size:4rem;line-height:1;margin-top:-10px;margin-left:5px}.loading{text-align:center;padding:2rem;color:#666}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease-out}.modal-content{background-color:#fff7d1;padding:40px;width:90%;max-width:500px;max-height:80vh;overflow-y:auto;border-radius:4px;box-shadow:0 10px 25px #0003;font-family:Gaegu,cursive;font-size:2rem;position:relative;animation:scaleUp .2s ease-out;white-space:pre-wrap;line-height:1.4}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.fab-button{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;border-radius:50%;background-color:#ff2d55;color:#fff;border:none;box-shadow:0 4px 12px #ff2d554d;font-size:2rem;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:transform .2s,background-color .2s;z-index:100}.fab-button:hover{transform:scale(1.1);background-color:#d61c4e}.fab-button:active{transform:scale(.95)}.creation-modal{background-color:#fff7d1;padding:40px;width:90%;max-width:500px;height:400px;border-radius:4px;box-shadow:0 10px 25px #0003;font-family:Gaegu,cursive;position:relative;animation:scaleUp .2s ease-out;display:flex;flex-direction:column}.creation-textarea{flex:1;width:100%;border:none;background:transparent;resize:none;font-family:inherit;font-size:2rem;line-height:1.4;color:#333;outline:none}.creation-textarea::placeholder{color:#0000004d}.save-button{position:absolute;top:10px;right:10px;background:none;border:none;font-size:2rem;cursor:pointer;transition:transform .2s;padding:5px}.save-button:hover{transform:scale(1.2)}.save-button:disabled{opacity:.5;cursor:not-allowed}.check-modal{background-color:#fff;padding:30px;border-radius:16px;box-shadow:0 10px 25px #0003;text-align:center;width:80%;max-width:300px;animation:scaleUp .2s ease-out;font-family:Gaegu,cursive}.check-modal-title{font-size:2rem;margin-bottom:30px;color:#333;font-weight:700}.check-modal-buttons{display:flex;justify-content:center;gap:20px}.check-btn{padding:10px 30px;border-radius:8px;border:none;font-size:1.2rem;cursor:pointer;font-family:Gaegu,cursive;transition:transform .1s}.check-btn:active{transform:scale(.95)}.check-cancel-btn{background-color:#f0f0f0;color:#333}.check-confirm-btn{background-color:#ff2d55;color:#fff}:root{--color-primary: #FF2D55;--color-primary-dark: #D61C4E;--color-primary-light: #FF8FA3;--color-background: #F2F4F6;--color-white: #FFFFFF;--color-text: #191F28;--color-text-secondary: #8B95A1;--color-border: #E5E8EB;--notebook-bg: #FFFFFF;--notebook-line: #E5E5E5;--notebook-margin-line: #FF2D55;--spiral-color: #2C2C2C;--spiral-shadow: rgba(0, 0, 0, .2);--radius-lg: 24px;--radius-md: 16px;--radius-sm: 8px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--color-background);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}.toss-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:var(--color-background);padding:20px}.toss-card{background:var(--color-white);padding:40px;border-radius:24px;box-shadow:0 4px 20px #0000000d;width:100%;max-width:400px;animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.toss-title{font-size:24px;font-weight:700;color:var(--color-text);margin-bottom:8px;text-align:center}.toss-subtitle{font-size:15px;color:var(--color-text-secondary);text-align:center;margin-bottom:32px}.toss-form{display:flex;flex-direction:column;gap:20px}.toss-form-group{display:flex;flex-direction:column;gap:8px}.toss-form-group label{font-size:14px;font-weight:600;color:var(--color-text);margin-left:4px}.toss-input{padding:14px 16px;border-radius:12px;border:1px solid transparent;background-color:#f2f4f6;font-size:15px;color:var(--color-text);transition:all .2s ease;width:100%}.toss-input:focus{outline:none;background-color:#fff;border-color:var(--color-primary);box-shadow:0 0 0 3px #ff2d551a}.toss-input::placeholder{color:#b0b8c1}.toss-button{width:100%;margin-top:12px;padding:16px;border-radius:14px;border:none;background-color:var(--color-primary);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.toss-button:hover{background-color:var(--color-primary-dark)}.toss-button:active{transform:scale(.98)}.toss-button-secondary{background-color:transparent;color:var(--color-text-secondary);margin-top:0}.toss-button-secondary:hover{background-color:#0000000d;color:var(--color-text)}.toss-error-message{color:#ff5252;font-size:13px;text-align:center;background-color:#fff0f0;padding:10px;border-radius:8px}button{font-family:inherit}
