*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--accent:#ff7d1e;--accent-d:#e56a00;--accent-l:#ffe3cc;--accent-ll:#fff6ee;--green:#10b981;--green-l:#d1fae5;--green-d:#065f46;--red:#ef4444;--red-l:#fee2e2;--red-d:#b91c1c;--amber:#f59e0b;--amber-l:#fef3c7;--amber-d:#92400e;--blue:#2563eb;--blue-l:#dbeafe;--text:#1c1e23;--sub:#878e98;--line:#e8eaee;--gray-1:#f4f5f7;--gray-2:#e8eaee;--bg:#f4f5f7;--surf:#fff;--radius:14px;--radius-sm:10px;--nav-h:62px;--shadow:0 1px 2px rgba(18,24,38,.04),0 2px 6px rgba(18,24,38,.04)}html,body{max-width:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Yu Gothic UI,sans-serif;background:var(--bg);color:var(--text);font-size:14.5px;line-height:1.6;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit;font-size:inherit;max-width:100%}.stat-grid>*,.field>*,.btn-row>*,.row>*,.row .grow{min-width:0}img{max-width:100%;height:auto}.app{max-width:720px;margin:0 auto;min-height:100vh;overflow-x:hidden}.topbar{position:sticky;top:0;z-index:50;background:#f5f6f8f2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:14px;display:flex;align-items:baseline;gap:10px}.topbar h1{font-size:1.1rem;font-weight:800}.topbar .sub{font-size:.72rem;color:var(--sub)}.topbar .gear{margin-left:auto;text-decoration:none;color:var(--sub);display:flex;align-items:center;padding:4px}.topbar .gear:active{color:var(--text)}.content{padding:0 14px calc(70px + env(safe-area-inset-bottom))}.section-t{font-size:.76rem;font-weight:700;color:var(--sub);letter-spacing:.02em;margin:16px 0 8px}.card{background:var(--surf);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:12px}.page-t{font-size:1.3rem;font-weight:800;letter-spacing:-.01em;margin:10px 0 14px}.row{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--gray-1)}.row:last-child{border-bottom:none}.row .grow{flex:1;min-width:0}.row .r-title{font-weight:700;font-size:.9rem}.row .r-sub{font-size:.72rem;color:var(--sub)}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:12px}.stat{background:var(--surf);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.stat-l{font-size:.7rem;color:var(--sub);font-weight:600;display:flex;align-items:center;gap:6px}.stat-l .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}.stat-v{font-size:1.55rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:2px}.btn{background:var(--accent);color:#fff;border:none;padding:10px 16px;border-radius:var(--radius-sm);cursor:pointer;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:transform .06s,background .15s}.btn:active{background:var(--accent-d);transform:scale(.98)}.btn:disabled{opacity:.5}.btn-o{background:#fff;color:var(--accent-d);border:1.5px solid var(--accent);padding:8.5px 14px;border-radius:var(--radius-sm);cursor:pointer;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:transform .06s,background .15s}.btn-o:active{background:var(--accent-ll);transform:scale(.98)}.btn-o.r{color:var(--red-d);border-color:var(--red)}.btn-sm{padding:5px 10px;font-size:.78rem}.field{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}.field input,.field select{padding:9px 11px;border:1.5px solid var(--gray-2);border-radius:var(--radius-sm);outline:none;flex:1;min-width:0}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-l)}input[type=checkbox]{accent-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.badge{padding:2.5px 9px;border-radius:999px;font-size:.68rem;font-weight:600;white-space:nowrap}.badge.expired{background:var(--red-l);color:var(--red-d)}.badge.soon{background:var(--amber-l);color:var(--amber-d)}.badge.done{background:var(--green-l);color:var(--green-d)}.note{font-size:.72rem;color:var(--sub)}.link-btn{background:none;border:none;color:var(--accent-d);font-weight:600;cursor:pointer;font-size:.72rem;padding:2px;text-decoration:underline;text-underline-offset:2px;font-family:inherit}.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.mini-tbl{border-collapse:collapse;width:100%;font-size:.78rem;font-variant-numeric:tabular-nums}.mini-tbl th{background:var(--gray-1);color:var(--sub);font-weight:700;padding:6px 8px;text-align:right;white-space:nowrap;position:sticky;top:0}.mini-tbl td{border-top:1px solid var(--gray-1);padding:6px 8px;text-align:right;white-space:nowrap}.ai-box{background:#f5f8ff;border:1px solid #dbe4f8;border-radius:var(--radius-sm);padding:12px 14px;font-size:.85rem;white-space:pre-wrap;margin-top:8px}.done-text{text-decoration:line-through;color:var(--sub)}.chk{width:20px;height:20px;flex-shrink:0;cursor:pointer}.del{background:none;border:none;color:var(--sub);cursor:pointer;font-size:1rem}.bottom-nav{position:fixed;bottom:0;left:0;right:0;max-width:720px;margin:0 auto;background:#fff;border-top:1px solid var(--line);box-shadow:0 -1px 6px #1e283c0d;display:flex;z-index:100;height:calc(54px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.bni{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--sub);font-size:.6rem;font-weight:600;text-decoration:none}.bni .ico{display:flex;align-items:center;justify-content:center;height:26px}.bni .lbl{line-height:1}.bni.active,.bni.active .ico{color:var(--accent-d)}.form-err{color:var(--red-d);font-size:.78rem;margin-top:6px}@media (max-width:600px){.form-stack{flex-direction:column;align-items:stretch}.form-stack input,.form-stack select,.form-stack button{width:100%;max-width:none!important;flex:none}}.demo-banner{max-width:720px;margin:0 auto 4px;padding:8px 14px;background:var(--amber-l);color:var(--amber-d);font-size:.75rem;font-weight:700;border-radius:var(--radius-sm);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.demo-exit{background:none;border:1.5px solid var(--amber-d);color:var(--amber-d);border-radius:6px;padding:2px 10px;font-size:.72rem;font-weight:700;cursor:pointer}@media (pointer: coarse){input,select,textarea{font-size:16px}}button,a,input,select,textarea,summary,label,.bni{touch-action:manipulation}
