:root{--theme-thistle: #d8bfd8;--theme-thistle-deep: #c5a8c5;--ink: #2f2431;--surface: #ffffff;--surface-soft: #fcf7fc;--line: #dbc9db;--radius-md: 10px;--radius-lg: 12px;--shadow-soft: 0 8px 20px rgba(154, 125, 154, .15);--font-handwriting: "Gaegu", "Malgun Gothic", sans-serif}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Malgun Gothic,sans-serif;color:var(--ink);background:linear-gradient(180deg,#f7eff7,#fdf9fd)}#root{min-height:100vh}.app-shell{max-width:760px;margin:0 auto;padding:28px 18px 36px}.app-title{margin:0 0 16px;color:#4d334d}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-soft)}.panel h2{margin:0 0 16px}.diary-form{display:grid;gap:14px}.form-group{display:grid;gap:8px}.weather-fieldset,.mood-fieldset{margin:0;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-soft);padding:10px 12px 12px}.weather-fieldset legend,.mood-fieldset legend{padding:0 6px}.weather-grid{display:flex;flex-wrap:wrap;gap:10px 14px}.mood-grid{display:flex;flex-wrap:wrap;gap:10px 12px;max-height:220px;overflow-y:auto;padding-right:4px}.weather-choice{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.weather-radio{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.weather-emoji{min-width:44px;min-height:40px;padding:6px 8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius-md);font-size:1.2rem;background:#f8f1f8;transition:background-color .15s ease,border-color .15s ease,transform .12s ease}.weather-choice:hover .weather-emoji{background:#efdfef;border-color:#d6bfd6}.weather-radio:checked+.weather-emoji{background:var(--theme-thistle);border-color:var(--theme-thistle-deep)}.weather-radio:focus-visible+.weather-emoji{outline:2px solid #cfaed1;outline-offset:1px}input,textarea,select,button{font:inherit}input[type=date],input[type=text],textarea,select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}input[type=date]:focus,input[type=text]:focus,textarea:focus,select:focus{outline:2px solid #cfaed1;outline-offset:1px}button{padding:10px 14px;border:1px solid var(--theme-thistle-deep);border-radius:var(--radius-md);background:#f5eaf5;color:var(--ink);cursor:pointer}button:hover{background:#efdfef}button:disabled{opacity:.7;cursor:not-allowed}.primary-btn{background:var(--theme-thistle)}.count-text{color:#6e5f70}.error-text{margin:14px 0 0;color:#9c2f57;min-height:1.2em}.diary-page{position:relative;background-color:#fffef3;padding:18px 18px 20px;margin-bottom:16px;border-radius:3px;box-shadow:2px 3px 8px #5a3c5a1a;overflow:visible}.diary-page:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:2px solid #7a5f7a;border-radius:4px;filter:url(#pencil);pointer-events:none;z-index:1}.result-meta{margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid rgba(180,160,185,.5);font-size:1.08rem;color:#5a4a5a;font-weight:700;letter-spacing:.02em;font-family:var(--font-handwriting);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.result-meta-date{white-space:nowrap}.result-meta-title{text-align:center;font-size:1.15em}.result-meta-weather{justify-self:end;font-size:1.2em}.diary-illustration-section{margin:12px 0 18px;display:grid;justify-items:center}.diary-illustration{width:min(100%,360px);aspect-ratio:1 / 1;object-fit:cover;border-radius:14px;border:1px solid rgba(180,160,185,.7);box-shadow:0 10px 18px #5a3c5a1f;background:#f7f0f7}.image-status-text,.image-error-text{margin:0;padding:14px 16px;width:min(100%,360px);text-align:center;border-radius:14px;font-family:var(--font-handwriting)}.image-status-text{color:#6d5a70;background:#f8f0f8;border:1px dashed #d3bfd3}.image-error-text{color:#9c2f57;background:#fff2f6;border:1px solid #e9bfd0}@media (max-width: 640px){.result-meta{grid-template-columns:1fr;justify-items:center;gap:4px}.result-meta-weather{justify-self:center}}.genko-paper{display:flex;flex-direction:column;gap:0}.genko-row{display:flex;flex-wrap:wrap}.genko-cell{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:.5px solid rgba(155,130,155,.45);font-family:var(--font-handwriting);font-size:1.05rem;color:#2f2431;background:transparent;flex-shrink:0;box-sizing:border-box}.genko-blank{width:34px;height:16px;border:none}@media (max-width: 640px){.app-shell{padding:18px 12px 28px}.panel{padding:14px}}
