*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-optical-sizing:auto;color:#1a1a1a;min-height:100vh;-webkit-font-smoothing:antialiased;background:#f5f0e8;min-height:100dvh;font-family:Libre Baskerville,serif}#root{min-height:100vh;display:flex;flex-direction:column;min-height:100dvh}.layout{display:flex;min-height:100vh;flex-direction:column;min-height:100dvh}.header{display:flex;position:sticky;z-index:10;background:#1a1a1a;border-bottom:2px solid #111;justify-content:space-between;align-items: center;padding:.75rem 1rem;top:0}.header-logo{color:#f5f0e8;letter-spacing:.05em;font-family:inherit;font-size:1.25rem;font-weight:700}.header-right{display:flex;align-items: center;gap:.75rem}.header-user{color:#a09888;display:none;font-size:.8125rem;font-style:italic}.header-logout{color:#f5f0e8;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;display:flex;background:0 0;border:1px solid #555;border-radius:0;align-items: center;min-height:44px;padding:.5rem .875rem;font-family:inherit;font-size:.75rem}.main{flex:1}.login-container{display:flex;min-height:100vh;justify-content:center;align-items: center;min-height:100dvh;padding:1rem}.login-form{display:flex;background:#fff;border:1px solid #c8bfa8;flex-direction:column;gap:1rem;width:100%;max-width:360px;padding:2rem}.login-title{text-align:center;letter-spacing:.05em;margin-bottom:.5rem;font-family:inherit;font-size:1.75rem;font-weight:700}.login-error{color:#8b2020;background:#f8e8e8;border-left:3px solid #8b2020;padding:.625rem .875rem;font-size:.875rem}.input{color:#1a1a1a;outline:none;background:#faf8f4;border:1px solid #c8bfa8;border-radius:0;min-height:48px;padding:.75rem;font-family:inherit;font-size:1rem}.input:focus{border-color:#1a1a1a}.btn{color:#f5f0e8;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;display:flex;background:#1a1a1a;border:none;border-radius:0;justify-content:center;align-items: center;min-height:48px;padding:.75rem;font-family:inherit;font-size:.875rem;font-weight:600}.btn:disabled{opacity:.4;cursor:default}.btn-danger{color:#fff;background:#8b2020;min-height:36px;padding:.5rem .75rem;font-size:.75rem}.btn-ghost{color:#666;background:0 0;border:1px solid #c8bfa8;min-height:36px;padding:.5rem .75rem;font-size:.75rem}.habit-list-wrap{width:100%;max-width:720px;margin:0 auto;padding:1.25rem 1rem}.habit-list-header{display:flex;border-bottom:2px solid #1a1a1a;justify-content:space-between;align-items: center;margin-bottom:1.25rem;padding-bottom:.75rem}.habit-list-header h2{letter-spacing:.03em;font-size:1.375rem;font-weight:700}.habit-list{display:flex;flex-direction:column;gap:0}.habit-card{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#fff;border-bottom:1px solid #d5cfc3;padding:1rem}.habit-card:first-child{border-top:1px solid #d5cfc3}.habit-card:active{background:#f0ebe0}.card-top{display:flex;justify-content:space-between;align-items: center;gap:.5rem;margin-bottom:.5rem}.card-date{color:#888;font-size:.75rem;font-style:italic}.card-delete{color:#aaa;cursor:pointer;display:flex;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items: center;min-width:44px;min-height:44px;padding:.5rem;font-size:1rem}.card-delete:active{color:#8b2020}.confirm-row{display:flex;align-items: center;gap:.5rem}.confirm-text{color:#8b2020;font-size:.8125rem;font-style:italic}.tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.5rem}.tag{color:#1a1a1a;letter-spacing:.02em;background:0 0;border:1px solid #c8bfa8;padding:.125rem .5rem;font-size:.75rem}.card-note{color:#666;margin:0;font-size:.8125rem;font-style:italic;line-height:1.5}.text-muted{color:#aaa;font-size:.8125rem;font-style:italic}.text-center{text-align:center}.empty-state{color:#999;text-align:center;padding:3rem 1rem;font-size:1rem;font-style:italic}.loading{text-align:center;color:#999;padding:2rem;font-style:italic}.error{text-align:center;color:#8b2020;padding:2rem}.detail-wrap{width:100%;max-width:560px;margin:0 auto;padding:1rem}.back-btn{color:#888;cursor:pointer;display:flex;letter-spacing:.02em;background:0 0;border:none;align-items: center;min-height:44px;margin-bottom:.75rem;padding:.5rem 0;font-family:inherit;font-size:.875rem}.detail-card{background:#fff;border:1px solid #c8bfa8;padding:1.5rem}.detail-title{border-bottom:1px solid #d5cfc3;margin-bottom:1.25rem;padding-bottom:.75rem;font-size:1.0625rem;font-weight:700}.checkbox-grid{display:grid;grid-template-columns:1fr;gap:0;margin-bottom:1.5rem}.check-row{display:flex;cursor:pointer;-webkit-tap-highlight-color:transparent;border-bottom:1px solid #eee8da;align-items: center;gap:.75rem;min-height:48px;padding:.625rem .5rem;font-size:1rem}.check-row:last-child{border-bottom:none}.check-row:active{background:#f0ebe0}.check-row input[type=checkbox]{cursor:pointer;accent-color:#1a1a1a;flex-shrink:0;width:20px;height:20px}.note-section{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1.25rem}.note-label{color:#888;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:400}.textarea{color:#1a1a1a;resize:vertical;outline:none;background:#faf8f4;border:1px solid #c8bfa8;min-height:120px;padding:.75rem;font-family:inherit;font-size:1rem;line-height:1.6}.textarea:focus{border-color:#1a1a1a}.save-btn{color:#f5f0e8;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;background:#1a1a1a;border:none;width:100%;min-height:52px;padding:.875rem;font-family:inherit;font-size:.875rem;font-weight:600}.save-btn:disabled{opacity:.4;cursor:default}@media (min-width:480px){.header{padding:.75rem 1.5rem}.header-user{display:inline}.habit-list-wrap{padding:1.5rem}.habit-card{padding:1rem 1.25rem}.detail-wrap{padding:1.5rem}.detail-card{padding:1.75rem}.checkbox-grid{grid-template-columns:1fr 1fr}.detail-title{font-size:1.125rem}.login-form{padding:2.5rem}.input{min-height:44px;padding:.625rem .75rem;font-size:.875rem}.btn{min-height:44px;padding:.625rem;font-size:.8125rem}.textarea{font-size:.875rem}.save-btn{min-height:48px;padding:.625rem;font-size:.8125rem}.check-row{min-height:44px;padding:.5rem;font-size:.9375rem}}@media (min-width:768px){.habit-list-header h2{font-size:1.625rem}.checkbox-grid{grid-template-columns:1fr 1fr 1fr}}
