:root{color-scheme:light;font-family:Segoe UI,Yu Gothic UI,Hiragino Sans,Meiryo,sans-serif;background:#f7f8fb;color:#1f2937;--bg: #f7f8fb;--surface: #ffffff;--surface-strong: #f8fafc;--text: #1f2937;--muted: #6b7280;--border: #e5e7eb;--accent: #2563eb;--accent-soft: #dbeafe;--danger: #dc2626;--danger-soft: #fff1f2;--orange: #ea580c;--orange-soft: #fff7ed;--yellow: #a16207;--yellow-soft: #fefce8;--green: #15803d;--green-soft: #f0fdf4;--gray-soft: #f8fafc;--shadow: 0 8px 24px rgba(15, 23, 42, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.app{width:min(100%,760px);margin:0 auto;padding:10px 0 28px}.app-header{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#f7f8fbf5;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-header h1{margin:0;font-size:1.18rem;line-height:1.2;letter-spacing:0}.app-header p{margin:2px 0 0;color:var(--muted);font-size:.82rem}.add-button,.primary-button,.secondary-button,.icon-button{min-height:42px;border-radius:8px;border:1px solid transparent;font-weight:800}.add-button,.primary-button{padding:9px 16px;color:#fff;background:var(--accent);border-color:var(--accent)}.secondary-button{padding:9px 16px;color:var(--text);background:#fff;border-color:var(--border)}.list-tools{display:grid;gap:8px;padding:10px 14px 8px;background:var(--bg)}.search-row{position:relative;display:flex;align-items:center}.search-input{padding-right:38px}.search-input::-webkit-search-cancel-button{display:none}.search-clear{position:absolute;right:4px;width:32px;min-height:32px;color:var(--muted);background:transparent;border:0;border-radius:999px;font-size:1.15rem;line-height:1}input,select,textarea{width:100%;color:var(--text);background:#fff;border:1px solid var(--border);border-radius:8px;outline:none}input,select{min-height:42px;padding:9px 11px}textarea{min-height:78px;padding:10px 12px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.filter-row{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}.filter-chip{flex:0 0 auto;min-height:36px;padding:7px 12px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:.9rem;font-weight:800;white-space:nowrap}.filter-chip.active{color:#fff;background:var(--accent);border-color:var(--accent)}.item-list{display:grid;background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.empty-state{padding:36px 16px;text-align:center;background:var(--surface)}.empty-state h2{margin:0 0 6px;font-size:1.05rem}.empty-state p{margin:0;color:var(--muted)}.item-row{position:relative;display:grid;grid-template-columns:76px 1fr 40px;gap:10px;min-height:76px;padding:10px 8px 10px 14px;background:var(--surface);border-bottom:1px solid var(--border)}.item-row:last-child{border-bottom:none}.item-row.expired,.item-row.today{background:var(--danger-soft)}.item-row.soon3{background:var(--orange-soft)}.item-row.soon7{background:var(--yellow-soft)}.item-row.normal{background:var(--surface)}.item-row.completed{background:var(--gray-soft);color:var(--muted)}.item-row:before{position:absolute;inset:0 auto 0 0;width:4px;content:"";background:transparent}.item-row.expired:before,.item-row.today:before{background:var(--danger)}.item-row.soon3:before{background:var(--orange)}.item-row.soon7:before{background:var(--yellow)}.row-date{display:grid;align-content:start;gap:3px;padding-top:2px;color:var(--muted);font-size:.85rem;line-height:1.2;white-space:nowrap}.days-label{color:var(--text);font-size:.9rem;font-weight:800}.item-row.expired .days-label,.item-row.today .days-label{color:var(--danger)}.item-row.soon3 .days-label{color:var(--orange)}.item-row.soon7 .days-label{color:var(--yellow)}.row-body{min-width:0}.row-body h2{margin:0 0 6px;overflow:hidden;color:var(--text);font-size:1.08rem;line-height:1.28;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.row-body p{display:flex;flex-wrap:wrap;gap:5px 10px;margin:0;color:var(--muted);font-size:.82rem;line-height:1.35}.opened-label{color:var(--orange);font-weight:800}.row-memo{margin-top:3px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-menu{position:relative;display:flex;align-items:center;justify-content:flex-end}.menu-button{width:36px;height:44px;padding:0;color:var(--muted);background:transparent;border:none;border-radius:8px;font-size:1.3rem;font-weight:900;line-height:1;letter-spacing:1px}.menu-popover{position:absolute;top:36px;right:4px;z-index:3;display:grid;min-width:162px;overflow:hidden;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.menu-popover button{min-height:42px;padding:10px 14px;color:var(--text);text-align:left;background:#fff;border:none;border-bottom:1px solid var(--border)}.menu-popover button:last-child{border-bottom:none}.menu-popover .danger-menu-item{color:var(--danger)}.maintenance{margin:18px 14px 0;color:var(--muted);font-size:.85rem}.maintenance summary{cursor:pointer}.text-link-button,.text-danger-button{margin-top:8px;padding:8px 0;background:transparent;border:none;font-weight:800}.text-link-button{display:block;color:var(--accent)}.file-import-label{width:fit-content;cursor:pointer}.file-import-label input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.text-danger-button{color:var(--danger)}.category-manager{display:grid;gap:12px;padding:12px 14px 24px}.full-button{width:100%}.category-list{display:grid;gap:8px;padding:0;margin:0;list-style:none}.category-row{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.drag-handle{display:grid;width:28px;height:36px;place-items:center;color:var(--muted);font-weight:900;cursor:grab}.category-name{min-width:0;align-self:center;overflow-wrap:anywhere;font-weight:800}.category-actions{display:flex;grid-column:2;flex-wrap:wrap;gap:6px}.category-actions button{min-height:34px;padding:6px 10px;color:var(--text);background:#fff;border:1px solid var(--border);border-radius:8px;font-size:.88rem;font-weight:800}.category-actions button:disabled{color:#cbd5e1;cursor:not-allowed}.category-actions .danger-inline{color:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;align-items:end;padding:12px;background:#0f172a75}.modal{width:min(100%,560px);max-height:calc(100vh - 24px);margin:0 auto;overflow:auto;background:var(--surface);border-radius:8px;box-shadow:0 24px 80px #0f172a47}.modal-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:var(--surface);border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:1.1rem;letter-spacing:0}.icon-button{width:42px;padding:0;color:var(--muted);background:var(--surface-strong);border-color:var(--border);font-size:1.2rem}.item-form{display:grid;gap:12px;padding:14px}.item-form label{display:grid;gap:6px}.item-form strong{color:var(--danger);font-size:.78rem}.check-field{display:flex!important;align-items:center;gap:10px!important;min-height:42px;padding:8px 10px;background:var(--surface-strong);border:1px solid var(--border);border-radius:8px;font-weight:800}.check-field input{width:20px;min-height:20px;accent-color:var(--accent)}.form-grid{display:grid;grid-template-columns:1fr;gap:12px}.form-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding-top:4px}@media(min-width:560px){.app{padding-top:16px}.app-header{border:1px solid var(--border);border-radius:8px 8px 0 0}.list-tools{grid-template-columns:1fr auto;align-items:center;border-right:1px solid var(--border);border-left:1px solid var(--border)}.search-row{grid-column:1 / -1}.item-list{border-right:1px solid var(--border);border-left:1px solid var(--border)}.form-grid{grid-template-columns:1fr 1fr}.modal-backdrop{align-items:center}}@media(min-width:760px){.app{padding-right:20px;padding-left:20px}}
