:root{color:#000;background:#f5f7fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:#000;background:#f5f7fb}button,input,textarea,select{font:inherit}button{min-height:40px;border:1px solid #cad3df;border-radius:8px;background:#fff;color:#000}.app-shell{min-height:100vh;padding:max(18px,env(safe-area-inset-top)) 16px calc(84px + env(safe-area-inset-bottom))}.page{max-width:820px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.eyebrow{margin:0 0 4px;font-size:.78rem;font-weight:700}h1,h2{margin:0;color:#000;letter-spacing:0}h1{font-size:1.8rem}h2{font-size:1.1rem}.primary-button{border-color:#0f172a;background:#0f172a;color:#fff;padding:0 16px}.calendar-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:18px 0}.calendar-day{display:grid;gap:4px;min-width:0;padding:8px 4px}.section-block,.vocab-card,.lookup-panel{border:1px solid #d9e1ec;border-radius:8px;background:#fff;padding:16px}.diary-list{display:grid;gap:10px;margin-top:12px}.diary-row{display:grid;gap:4px;width:100%;padding:12px;text-align:left}.field{display:grid;gap:8px;margin-bottom:14px;font-weight:700}.field input,.field textarea,.vocab-card textarea,.vocab-card select{width:100%;border:1px solid #cad3df;border-radius:8px;padding:12px;color:#000;background:#fff}.diary-textarea{min-height:180px;resize:vertical;line-height:1.7}.style-toolbar,.action-row,.player-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}.sentence-list{display:grid;gap:12px}.sentence{margin:0;border-left:4px solid transparent;border-radius:8px;background:#fff;padding:14px;line-height:1.7}.sentence.active{border-left-color:#22c55e;background:#eefbf3}.sentence small{display:block;margin-top:8px}.word-token{min-height:0;border:0;border-radius:4px;padding:1px 2px;background:transparent;text-decoration:underline;text-underline-offset:3px}.bottom-nav{position:fixed;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px 12px max(10px,env(safe-area-inset-bottom));border-top:1px solid #d9e1ec;background:#fffffff5}.empty-state,.error-text{color:#000}
