.logphrase-overlay{z-index:100;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s ease-out both logphraseOverlayIn;display:flex;position:fixed;inset:0}@keyframes logphraseOverlayIn{0%{opacity:0}to{opacity:1}}.logphrase-sheet{background:var(--white);border-radius:24px 24px 0 0;width:100%;max-width:430px;max-height:92vh;padding:8px 20px 24px;animation:.3s cubic-bezier(.16,1,.3,1) both logphraseSheetUp;overflow-y:auto}@keyframes logphraseSheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.logphrase-handle{background:var(--border);border-radius:2px;width:38px;height:4px;margin:0 auto 12px}.logphrase-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.logphrase-header-icon{font-size:32px}.logphrase-limit-bar{background:var(--cream-bg,var(--cream));border-radius:999px;align-items:center;gap:10px;margin-bottom:14px;padding:8px 12px;display:flex}.logphrase-limit-bar-track{background:var(--border);border-radius:3px;flex:1;height:6px;overflow:hidden}.logphrase-limit-bar-fill{background:linear-gradient(90deg, var(--leaf-green), #6bc45e);border-radius:3px;height:100%;transition:width .3s}.logphrase-limit-bar-text{color:var(--text-secondary);white-space:nowrap;font-size:11px;font-weight:700}.logphrase-limit-gate{text-align:center;padding:12px 16px 24px}.logphrase-limit-icon{margin-bottom:12px;font-size:64px;animation:3s ease-in-out infinite logphraseLimitFloat;display:block}@keyframes logphraseLimitFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.logphrase-limit-gate h3{color:var(--leaf-green-dark);letter-spacing:-.3px;margin:0 0 10px;font-size:20px;font-weight:800}.logphrase-limit-gate p{color:var(--text-secondary);max-width:340px;margin:0 auto 20px;font-size:14px;line-height:1.6}.logphrase-limit-count{border:1.5px solid var(--warm-yellow);background:linear-gradient(135deg,#fffbe6,#fff8f2);border-radius:16px;justify-content:center;align-items:baseline;gap:6px;margin-bottom:20px;padding:14px 20px;display:flex}.logphrase-limit-number{color:var(--leaf-green-dark);font-size:28px;font-weight:800;line-height:1}.logphrase-limit-label{color:var(--text-secondary);font-size:12px;font-weight:600}.logphrase-header h3{color:var(--text-primary);margin:0;font-size:18px;font-weight:800;line-height:1.2}.logphrase-header p{color:var(--text-secondary);margin:2px 0 0;font-size:12px}.logphrase-input-wrap{margin-bottom:14px;position:relative}.logphrase-input{border:2px solid var(--border);background:var(--cream-bg,var(--cream));width:100%;color:var(--text-primary);box-sizing:border-box;resize:none;border-radius:16px;outline:none;padding:14px 16px;font-family:inherit;font-size:17px;font-weight:600;line-height:1.4;transition:border-color .15s}.logphrase-input:focus{border-color:var(--leaf-green);background:var(--white)}.logphrase-input::placeholder{color:var(--text-light);font-weight:400}.logphrase-counter{background:var(--cream-bg,var(--cream));color:var(--text-secondary);text-align:center;border-radius:8px;margin-top:6px;padding:6px 12px;font-size:12px;font-weight:600;animation:.2s ease-out both logphraseCounterPop}.logphrase-counter.valid{background:var(--mint);color:var(--leaf-green-dark)}@keyframes logphraseCounterPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.logphrase-starters{margin-bottom:16px}.logphrase-starters-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:11px;font-weight:700}.logphrase-starters-chips{flex-wrap:wrap;gap:6px;display:flex}.logphrase-starter-chip{background:var(--white);border:1.5px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .15s}.logphrase-starter-chip:active{background:var(--mint);border-color:var(--leaf-green);transform:scale(.97)}.logphrase-section{margin-bottom:14px}.logphrase-section label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.logphrase-optional{color:var(--text-light);text-transform:none;letter-spacing:0;font-size:11px;font-weight:500}.logphrase-chips{flex-wrap:wrap;gap:6px;display:flex}.logphrase-chip{background:var(--white);border:1.5px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:600;transition:all .15s}.logphrase-chip.selected{background:var(--mint);border-color:var(--leaf-green);color:var(--leaf-green-dark)}.logphrase-chip:active{transform:scale(.97)}.logphrase-note{border:1.5px solid var(--border);background:var(--cream-bg,var(--cream));width:100%;color:var(--text-primary);resize:none;box-sizing:border-box;border-radius:12px;outline:none;padding:10px 14px;font-family:inherit;font-size:13px;line-height:1.4;transition:border-color .15s}.logphrase-note:focus{border-color:var(--leaf-green);background:var(--white)}.logphrase-note::placeholder{color:var(--text-light)}.logphrase-dup{border:1.5px solid var(--warm-yellow);background:linear-gradient(135deg,#fff8f2,#fff3e8);border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:12px;padding:10px 12px;animation:.3s ease-out both logphraseDupIn;display:flex}@keyframes logphraseDupIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.logphrase-dup-icon{flex-shrink:0;font-size:18px}.logphrase-dup p{color:var(--text-primary);margin:0;font-size:13px;font-weight:500;line-height:1.5}.logphrase-flagged{border:1.5px solid var(--warm-yellow);background:linear-gradient(135deg,#fff8f2,#fff3e8);border-radius:12px;align-items:flex-start;gap:10px;margin-bottom:12px;padding:10px 12px;animation:.3s ease-out both logphraseDupIn;display:flex}.logphrase-flagged-icon{flex-shrink:0;font-size:18px}.logphrase-flagged p{color:var(--text-primary);margin:0;font-size:13px;font-weight:500;line-height:1.5}.logphrase-save{background:linear-gradient(135deg, var(--leaf-green), #6bc45e);width:100%;color:var(--white);cursor:pointer;border:none;border-radius:999px;margin-top:8px;padding:14px;font-size:15px;font-weight:700;transition:transform .15s;box-shadow:0 4px 14px #8ed08159}.logphrase-save:active:not(.disabled){transform:scale(.98)}.logphrase-save.disabled{background:var(--border);color:var(--text-light);cursor:not-allowed;box-shadow:none}.logphrase-cancel{width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;margin-top:6px;padding:10px;font-size:13px;font-weight:600}.logphrase-celebrate{text-align:center;padding:48px 24px 32px;animation:.3s cubic-bezier(.16,1,.3,1) both logphraseSheetUp}.logphrase-celebrate-inner{flex-direction:column;align-items:center;display:flex}.logphrase-celebrate-icon{margin-bottom:16px;font-size:72px;animation:.8s cubic-bezier(.34,1.56,.64,1) both logphraseBounce}@keyframes logphraseBounce{0%{transform:scale(.3)rotate(-20deg)}60%{transform:scale(1.15)rotate(8deg)}to{transform:scale(1)rotate(0)}}.logphrase-celebrate h2{color:var(--leaf-green-dark);letter-spacing:-.3px;margin:0 0 12px;font-size:22px;font-weight:800}.logphrase-celebrate-text{color:var(--text-primary);background:var(--mint);word-break:break-word;border-radius:16px;max-width:100%;margin:0 0 10px;padding:12px 20px;font-size:22px;font-weight:800}.logphrase-celebrate-sub{color:var(--text-secondary);margin:0 0 28px;font-size:13px}.logphrase-celebrate-btn{background:linear-gradient(135deg, var(--leaf-green), #6bc45e);color:var(--white);cursor:pointer;border:none;border-radius:999px;padding:14px 32px;font-size:14px;font-weight:700;transition:transform .15s;box-shadow:0 4px 14px #8ed08159}.logphrase-celebrate-btn:active{transform:scale(.96)}.phrase-strip-wrap{margin:var(--space-md) 0;flex-direction:column;align-items:center;gap:6px;display:flex}.phrase-strip{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.phrase-strip-cell{border:2px solid var(--warm-yellow);border-radius:var(--radius-lg);background:linear-gradient(135deg,#fff 0%,#fffdf5 100%);place-items:center;width:60px;height:60px;font-size:34px;line-height:1;transition:transform .12s;display:grid;box-shadow:0 2px 8px #0000000f}.phrase-strip-cell:active{transform:scale(.93)}.phrase-strip-cell.empty{color:var(--text-light);border-style:dashed;border-color:var(--border);box-shadow:none;background:0 0;font-size:24px}.phrase-strip-hint{color:var(--text-light);margin:0;font-size:11px;font-weight:600}
