:root{font-family:Inter,Noto Sans JP,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#20332c;background:#f6f3eb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}a{color:inherit}.app-shell{min-height:100vh;padding-bottom:84px}.app-header{align-items:center;background:#f6f3ebeb;border-bottom:1px solid #ded9cd;display:flex;font-weight:700;gap:10px;height:60px;padding:0 20px;position:sticky;top:0;z-index:10}.brand-mark{align-items:center;background:#315c4d;border-radius:10px;color:#fffaf0;display:inline-flex;font-size:12px;height:32px;justify-content:center;letter-spacing:.04em;width:32px}.brand-mark-large{border-radius:18px;font-size:20px;height:64px;width:64px}.app-main{margin:0 auto;max-width:760px;padding:28px 20px}.page-stack{display:grid;gap:24px}.page-stack h1,.login-card h1{font-size:clamp(28px,7vw,42px);margin:4px 0 0}.eyebrow{color:#827866;font-size:12px;font-weight:800;letter-spacing:.16em;margin:0}.empty-card,.placeholder-card,.login-card{background:#fffdf7;border:1px solid #e4ded1;border-radius:24px;box-shadow:0 12px 32px #2c3a3312;padding:28px}.empty-card{text-align:center}.empty-card h2{font-size:18px;margin:12px 0 8px}.empty-card p,.login-card p{color:#655f55;line-height:1.7}.empty-icon{align-items:center;background:#dce8df;border-radius:50%;color:#315c4d;display:inline-flex;font-size:24px;height:54px;justify-content:center;width:54px}.bottom-tabs{background:#fffdf7f5;border-top:1px solid #ded9cd;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);left:0;padding:7px max(8px,env(safe-area-inset-right)) max(7px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));position:fixed;right:0;z-index:20}.bottom-tab{align-items:center;border-radius:14px;color:#746e63;display:flex;flex-direction:column;font-size:12px;gap:2px;padding:7px;text-decoration:none}.bottom-tab.is-active{background:#e5eee8;color:#315c4d;font-weight:800}.tab-icon{font-size:20px}.login-page{align-items:center;background:linear-gradient(145deg,#ecf1e9,#f6f3eb 50%,#f1dfc4);display:flex;justify-content:center;min-height:100vh;padding:24px}.login-card{display:grid;gap:16px;max-width:440px;width:100%}.login-card small{color:#827866}.primary-button{background:#315c4d;border:0;border-radius:14px;color:#fff;cursor:pointer;font-weight:800;padding:14px 18px}.primary-button:disabled{cursor:not-allowed;opacity:.55}.button-link{display:inline-block;text-align:center;text-decoration:none}.settings-card{padding:1.25rem;border:1px solid #ded9cd;border-radius:1rem;background:#fffdf7}.settings-card h2{margin-top:0}.settings-note{color:#746e63;font-size:.85rem}.sharing-state{font-weight:700}.sharing-members{display:grid;gap:.35rem;margin:0 0 .75rem;padding:0;list-style:none}.sharing-members li{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap}.invite-card{display:grid;gap:.5rem;margin-top:.75rem;padding:.9rem 1rem;border:1px dashed #ded9cd;border-radius:.9rem;background:#f6f3eb}.invite-code{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.05rem;font-weight:700;letter-spacing:.06em;word-break:break-all}.invite-join{display:grid;gap:.5rem;margin-top:.75rem}.import-prompt{max-height:18rem;margin:.75rem 0;padding:.9rem 1rem;overflow:auto;border:1px solid #ded9cd;border-radius:.75rem;background:#f6f3eb;font-size:.8rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.import-source{width:100%;padding:.75rem;border:1px solid #ded9cd;border-radius:.75rem;background:#fffdf7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;resize:vertical}.import-counts{font-weight:700}.import-entries{display:grid;gap:.6rem;margin:.75rem 0;padding:0;list-style:none}.import-entry{display:grid;gap:.35rem;padding:.75rem .9rem;border:1px solid #ded9cd;border-radius:.75rem;background:#fffdf7}.import-entry.is-invalid,.import-entry.is-failed{border-color:#d8b3ae;background:#fdf5f4}.import-entry.is-succeeded{background:#f4f7f2}.import-entry.is-unknown{border-color:#ded9cd;background:#f6f3eb}.import-entry-head{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.import-entry-head label{display:flex;gap:.5rem;align-items:center}.import-entry-id{font-weight:700}.import-entry-state{color:#746e63;font-size:.8rem}.import-entry-body{display:grid;gap:.2rem;margin:0;font-size:.85rem}.import-entry-body div{display:grid;grid-template-columns:6rem 1fr;gap:.5rem}.import-entry-body dt{color:#746e63}.import-entry-body dd{margin:0}.import-entry-errors{margin:0;padding-left:1.1rem;color:#842f28;font-size:.8rem}.error-message{padding:.75rem;border-radius:.75rem;color:#842f28;background:#fff0ed}.secondary-button,.text-button{min-height:2.75rem;border-radius:.75rem;font:inherit;cursor:pointer}.secondary-button{padding:.65rem 1rem;border:1px solid #ded9cd;color:#292721;background:#fffdf7}.text-button{border:0;color:#315c4d;background:transparent}.centered-status{display:grid;min-height:100dvh;padding:2rem;place-items:center;color:#746e63;background:#f6f3eb}.today-section h2{margin-bottom:.75rem}.event-list{display:grid;gap:.5rem}.event-row{display:grid;grid-template-columns:4.25rem 1fr auto;gap:.75rem;align-items:center;min-height:44px;padding:.9rem 1rem;border:1px solid #ded9cd;border-radius:.9rem;color:#292721;background:#fffdf7;text-decoration:none}.event-row:after{content:"›";color:#746e63;font-size:1.1rem;line-height:1}.event-row>span:nth-child(2){min-width:0;color:#2f5d50;font-weight:600}.event-row:hover>span:nth-child(2),.event-row:focus-visible>span:nth-child(2){text-decoration:underline}.event-time{color:#746e63;font-size:.9rem;font-weight:700}.task-row{display:flex;flex-wrap:wrap;gap:.6rem .75rem;align-items:center;padding:.9rem 1rem;border:1px solid #ded9cd;border-radius:.9rem;background:#fffdf7}.task-row-main{display:grid;flex:1 1 10rem;grid-template-columns:4.25rem 1fr auto;gap:.75rem;align-items:center;min-width:0;padding:.15rem 0;color:#292721;text-decoration:none}.task-row-main:after{content:"›";color:#746e63;font-size:1.1rem;line-height:1}.task-row-main .task-row-title{color:#2f5d50;font-weight:600}.task-row-main:hover .task-row-title,.task-row-main:focus-visible .task-row-title{text-decoration:underline}.task-row .secondary-button{flex:none;padding:.5rem .9rem}.task-row-title{display:grid;gap:.15rem;min-width:0}.task-row-note{color:#746e63;font-size:.8rem}.task-row.is-processed{background:#f6f3eb;opacity:.85}.section-heading{display:flex;gap:.75rem;align-items:baseline;justify-content:space-between}.section-heading h2{margin-bottom:.75rem}.section-more{margin-top:.5rem;color:#746e63;font-size:.85rem}.category-groups{display:grid;gap:.75rem}.category-group{display:grid;gap:.5rem}.category-group-toggle{display:flex;gap:.5rem;align-items:center;justify-content:space-between;padding:.4rem .25rem;border:0;border-bottom:1px solid #ded9cd;background:none;color:#292721;font-size:.9rem;font-weight:700;cursor:pointer}.category-group-count{color:#746e63;font-weight:400}.choice-group{display:flex;flex-wrap:wrap;gap:.5rem 1rem;padding:.6rem .75rem;border:1px solid #ded9cd;border-radius:.75rem}.choice-group legend{padding:0 .25rem;color:#746e63;font-size:.85rem;font-weight:700}.choice-group .checkbox-label{margin:0}.readonly-field{display:grid;gap:.2rem;padding:.6rem .75rem;border:1px solid #ded9cd;border-radius:.75rem;background:#f6f3eb}.readonly-label{color:#746e63;font-size:.85rem;font-weight:700}.readonly-note{color:#746e63;font-size:.8rem}.task-row-actions{display:flex;flex:1 1 100%;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:flex-start}.task-row-actions .secondary-button,.task-row-actions .text-button{flex:1 1 auto;min-height:44px;padding:.5rem .75rem;font-size:.85rem;white-space:nowrap}.task-row-select{flex:none;width:1.15rem;height:1.15rem}.category-group-heading{display:flex;gap:.5rem;align-items:baseline;justify-content:space-between}.category-group-heading .category-group-toggle{flex:1}.batch-bar{display:grid;gap:.6rem;padding:.9rem 1rem;border:1px solid #ded9cd;border-radius:.9rem;background:#fffdf7}.batch-bar-heading{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;justify-content:space-between}.batch-count{font-weight:700}.batch-bar-actions{display:flex;flex-wrap:wrap;gap:.5rem}.batch-result{display:grid;gap:.4rem;padding-top:.6rem;border-top:1px solid #ded9cd}.batch-result-status{font-weight:700}.batch-result-counts{color:#746e63;font-size:.9rem}.batch-result-items{display:grid;gap:.25rem;margin:0;padding:0;list-style:none}.batch-result-items li{display:flex;gap:.75rem;justify-content:space-between;font-size:.9rem}.batch-item-status{font-weight:700}.batch-item-status.is-succeeded{color:#3f7a4f}.batch-item-status.is-failed{color:#a4453c}.batch-item-status.is-unknown{color:#8a6d1f}.task-row-postpone{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end;padding:.6rem 1rem;border:1px dashed #ded9cd;border-radius:.9rem;background:#fffdf7}.task-row-postpone label{display:grid;gap:.2rem}.task-row-postpone input{padding:.4rem .6rem;border:1px solid #ded9cd;border-radius:.6rem;background:#fffdf7}.detail-actions{display:flex;flex-wrap:wrap;gap:.75rem}.detail-actions button{flex:1 1 8rem}.floating-add-group{position:fixed;right:1.25rem;bottom:calc(5.5rem + env(safe-area-inset-bottom));display:grid;gap:.5rem;justify-items:end}.floating-add-button{display:flex;gap:.4rem;align-items:center;padding:.8rem 1rem;border:0;border-radius:999px;color:#fff;background:#315c4d;box-shadow:0 8px 24px #315c4d47;font:inherit;font-weight:800;cursor:pointer}.modal-backdrop{position:fixed;z-index:50;inset:0;display:grid;align-items:end;padding-top:2rem;background:#2927217a}.event-form-card{max-height:calc(100dvh - 2rem);padding:1.25rem;overflow-y:auto;border-radius:1.25rem 1.25rem 0 0;background:#fffdf7}.form-heading{display:flex;align-items:center;justify-content:space-between}.form-heading h2{margin:0}.icon-button{width:2.75rem;height:2.75rem;border:0;border-radius:50%;background:#ece8dd;font:inherit;font-size:1.4rem;cursor:pointer}.event-form-card form{display:grid;gap:1rem;margin-top:1.25rem}.event-form-card label{display:grid;gap:.4rem;font-size:.9rem;font-weight:700}.event-form-card input,.event-form-card select,.event-form-card textarea{width:100%;padding:.72rem .8rem;border:1px solid #cfc8ba;border-radius:.7rem;color:#292721;background:#fff;font:inherit}.event-form-card textarea{resize:vertical}.event-form-card .checkbox-label{display:flex;align-items:center}.checkbox-label input{width:1.2rem;height:1.2rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.field-error{color:#842f28;font-size:.8rem;font-weight:500}.form-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding-bottom:env(safe-area-inset-bottom)}.detail-list{display:grid;gap:1rem;margin:0}.detail-list div{padding:1rem;border:1px solid #ded9cd;border-radius:.9rem;background:#fffdf7}.detail-list dt{margin-bottom:.35rem;color:#746e63;font-size:.8rem;font-weight:800}.detail-list dd{margin:0;white-space:pre-wrap}.month-toolbar{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.month-title{flex:1;margin:0;font-size:1.15rem;text-align:center}.month-grid{display:grid;gap:.35rem}.month-weekdays,.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}.month-weekday{padding:.25rem 0;color:#746e63;font-size:.8rem;font-weight:700;text-align:center}.month-day{position:relative;display:grid;align-content:start;gap:.2rem;min-height:5.25rem;padding:.3rem .25rem;border:1px solid #ded9cd;border-radius:.6rem;background:#fffdf7;font:inherit;text-align:left}.month-day-select{position:absolute;inset:0;width:100%;padding:0;border:0;border-radius:.6rem;background:transparent;cursor:pointer}.month-day-number,.month-day-entries{position:relative;pointer-events:none}.month-day.is-outside{color:#a49d90;background:#f6f3eb}.month-day.is-today .month-day-number{color:#8a5a1d;font-weight:800}.month-day.is-selected{border-color:#8a5a1d;box-shadow:inset 0 0 0 1px #8a5a1d}.month-day-number{font-size:.8rem;font-weight:700}.month-day-entries{display:grid;gap:.15rem;min-width:0}.month-entry{display:flex;gap:.2rem;align-items:baseline;overflow:hidden;padding:.1rem .15rem;border-radius:.25rem;font-size:.7rem;line-height:1.35;white-space:nowrap;text-decoration:none;text-overflow:ellipsis}a.month-entry{pointer-events:auto}a.month-entry:hover,a.month-entry:focus-visible{background:#efe9dc;text-decoration:underline}.month-entry-mark{flex:none;font-size:.55rem}.month-entry.is-event{color:#2f5d50}.month-entry.is-task{color:#6b4a12}.month-entry.is-processed{color:#a49d90;text-decoration:line-through}.month-entry.is-more{color:#746e63}.selected-day{display:grid;gap:.75rem}.selected-day-actions{display:flex;gap:.75rem}.selected-day h3{margin-bottom:.5rem;font-size:.95rem}.event-row.is-processed{background:#f6f3eb;opacity:.85}@media(min-width:760px){.task-row-actions{flex:none;justify-content:flex-end;max-width:22rem}.task-row-actions .secondary-button,.task-row-actions .text-button{flex:none;min-height:0;padding:.35rem .6rem}.app-shell{padding-bottom:96px}.app-header{padding-left:max(28px,calc((100vw - 760px)/2))}.bottom-tabs{border:1px solid #ded9cd;border-radius:22px;bottom:18px;left:50%;max-width:520px;right:auto;transform:translate(-50%);width:calc(100% - 40px)}.modal-backdrop{place-items:center;padding:2rem}.event-form-card{width:min(100%,620px);border-radius:1.25rem}}
