:root{--bg-color:#f7f3eb;--wood-brown:#5d3d28;--wood-dark:#3d2612;--wood-light:#f3e9d9;--text-color:#2b1810;--space-indigo:#4c51bf;--space-glow:#9f7aea;--paper:#fffef8;--ink:#2d3748}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);background-image:radial-gradient(#d5cbbd 1.5px, transparent 1.5px), radial-gradient(#d5cbbd 1.5px, var(--bg-color) 1.5px);color:var(--text-color);background-position:0 0,10px 10px;background-size:20px 20px;flex-direction:column;align-items:center;min-height:100vh;padding:20px 15px;font-family:DotGothic16,monospace,sans-serif;display:flex}header{justify-content:space-between;align-items:center;width:100%;max-width:520px;margin-bottom:16px;display:flex}.back-btn{background-color:var(--wood-light);color:var(--wood-brown);border:2px solid var(--wood-brown);box-shadow:2px 2px 0px 0px var(--wood-brown);border-radius:6px;padding:6px 12px;font-size:.85rem;font-weight:700;text-decoration:none}.back-btn:active{box-shadow:1px 1px 0px 0px var(--wood-brown);transform:translate(1px,1px)}main{border:4px solid var(--wood-dark);width:100%;max-width:520px;box-shadow:6px 6px 0px 0px var(--wood-dark);background-color:#fff;border-radius:12px;padding:18px 16px 20px}h1{text-align:center;color:var(--wood-brown);margin-bottom:4px;font-size:1.3rem}.sub-title{color:#718096;text-align:center;margin-bottom:14px;font-size:.82rem;line-height:1.55}.recorder-panel{border:3px solid var(--wood-dark);background:linear-gradient(#1a202c 0%,#2d3748 45%,#4a5568 100%);border-radius:12px;margin-bottom:14px;overflow:hidden;box-shadow:inset 0 2px 12px #00000059}.ufo-stage{aspect-ratio:16/7;width:100%;min-height:120px;position:relative}#ufo-canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.recorder-status{text-align:center;color:#cbd5e0;min-height:1.4em;padding:0 10px 8px;font-size:.72rem}.diary-sheet{background:var(--paper);border-top:2px dashed #fff3;padding:14px}.sheet-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.sheet-date{color:var(--space-indigo);font-size:.88rem;font-weight:700}.char-count{color:#a0aec0;font-size:.68rem}.diary-input{width:100%;color:var(--ink);resize:none;background:#fff;border:2px solid #cbd5e0;border-radius:8px;min-height:72px;padding:10px 12px;font-family:inherit;font-size:.9rem;line-height:1.55}.diary-input:focus{outline:2px solid var(--space-glow);outline-offset:1px}.sheet-actions{gap:8px;margin-top:10px;display:flex}.action-btn{background:var(--wood-light);color:var(--wood-brown);border:2px solid var(--wood-brown);cursor:pointer;box-shadow:2px 2px 0 var(--wood-brown);border-radius:8px;padding:8px 14px;font-family:inherit;font-size:.8rem;font-weight:700}.action-btn:active{box-shadow:1px 1px 0 var(--wood-brown);transform:translate(1px,1px)}.action-btn.primary{background:linear-gradient(135deg, var(--space-indigo) 0%, #434190 100%);color:#fff;border-color:#3c366b;flex:1;box-shadow:2px 2px #3c366b}.action-btn.primary:active{box-shadow:1px 1px #3c366b}.calendar-panel{background:linear-gradient(#fffaf0 0%,#edf2f7 100%);border:2px solid #d6c4a8;border-radius:10px;padding:12px}.calendar-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.calendar-title{color:var(--wood-brown);font-size:.9rem;font-weight:700}.month-nav{gap:6px;display:flex}.month-nav button{border:2px solid var(--wood-brown);cursor:pointer;color:var(--wood-brown);background:#fff;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:.75rem}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-dow{text-align:center;color:#8b7355;padding:2px 0;font-size:.65rem}.cal-day{aspect-ratio:1;color:#4a5568;cursor:pointer;background:#ffffffa6;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:.72rem;display:flex;position:relative}.cal-day.other-month{opacity:.35}.cal-day.has-entry:after{content:"";background:var(--space-glow);width:6px;height:6px;box-shadow:0 0 4px var(--space-glow);border-radius:50%;position:absolute;bottom:3px}.cal-day.selected{border-color:var(--space-indigo);background:#ebf4ff;font-weight:700}.cal-day.today:not(.selected){border-color:#cbd5e0}.data-notice{color:#a0aec0;text-align:center;margin-top:12px;font-size:.68rem;line-height:1.5}.toast{background:var(--wood-dark);color:#fff;opacity:0;pointer-events:none;z-index:50;border-radius:999px;padding:10px 18px;font-size:.78rem;transition:opacity .25s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast.show{opacity:1}
