:root{
  --bg:#f4f5f9;--card:#fff;--text:#101319;--muted:#878d98;--line:#e5e8ee;
  --green:#97c987;--green-dark:#4c9a49;--green-soft:#eaf5e6;
  --blue:#2f7cf2;--blue2:#59a8ea;--blue-soft:#eaf2ff;--red:#e14242;--orange:#f39a34;
  --shadow:0 14px 40px rgba(28,36,55,.09);--radius:24px;
  --safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html{min-height:100%;background:var(--bg)}
body{min-height:100%;margin:0;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
input,select,textarea{color:var(--text)}
.app{width:min(100%,620px);min-height:100vh;margin:0 auto;padding:calc(10px + var(--safe-top)) 14px calc(96px + var(--safe-bottom))}
.topbar{display:flex;min-height:62px;align-items:center;justify-content:space-between;margin-bottom:10px}
.topbar p{margin:0 0 2px;color:var(--green-dark);font-size:10px;font-weight:800;letter-spacing:.12em}
.topbar h1{margin:0;font-size:26px;letter-spacing:-.03em}
.add-button{width:45px;height:45px;border:0;border-radius:16px;color:#fff;background:var(--green-dark);box-shadow:0 8px 20px rgba(76,154,73,.25);font-size:28px;line-height:1}
.view{display:none}.view.active{display:block;animation:viewIn .18s ease-out}@keyframes viewIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.profit-hero{display:flex;min-height:110px;justify-content:center;flex-direction:column;padding:20px;margin-bottom:12px;border-radius:28px;color:#fff;background:linear-gradient(145deg,#74b76e,#9ed08d);box-shadow:0 18px 40px rgba(80,157,75,.23)}
.profit-hero span{font-size:13px;opacity:.88}.profit-hero strong{display:block;margin:4px 0;font-size:38px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.profit-hero small{opacity:.86}
.segmented{display:grid;gap:4px;padding:4px;margin-bottom:12px;border-radius:18px;background:#e8eaf0}.segmented.two{grid-template-columns:1fr 1fr}.segmented.three{grid-template-columns:repeat(3,1fr)}.segmented.four{grid-template-columns:repeat(4,1fr)}
.segmented button{min-height:40px;padding:6px 8px;border:0;border-radius:14px;color:#6e7480;background:transparent;font-size:13px;font-weight:700}.segmented button.active{color:#17351b;background:#fff;box-shadow:0 3px 12px rgba(28,35,50,.08)}
.calc-panel,.analysis-panel{display:none}.calc-panel.active,.analysis-panel.active{display:block}
h2{margin:16px 0 8px 8px;color:var(--muted);font-size:15px}.card{overflow:hidden;margin-bottom:12px;border-radius:var(--radius);background:var(--card)}
.form-card>label,.form-card>div{position:relative;display:flex;min-height:54px;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;font-size:16px}
.form-card>*:not(:last-child):after{position:absolute;right:18px;bottom:0;left:18px;height:1px;content:"";background:var(--line)}
.form-card b{display:flex;align-items:center;gap:7px;font-weight:500}.form-card input{width:118px;padding:4px 0;border:0;outline:0;background:transparent;text-align:right;font-size:20px;font-variant-numeric:tabular-nums}.form-card input:focus{color:var(--green-dark)}
.form-card input::-webkit-outer-spin-button,.form-card input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.form-card .select{position:relative;max-width:64%}.form-card select{width:100%;padding:8px 20px 8px 4px;border:0;outline:0;background:transparent;text-align:right;text-align-last:right;appearance:none;-webkit-appearance:none}.form-card strong{font-variant-numeric:tabular-nums}
.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.metric-grid article{min-height:94px;padding:16px;border-radius:22px;background:#fff}.metric-grid span{color:var(--muted);font-size:13px}.metric-grid strong{display:block;margin-top:10px;font-size:24px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.metric-grid article.primary{background:var(--green-soft)}.metric-grid article.primary span{color:#598257}.metric-grid article.primary strong{color:var(--green-dark);font-size:29px}.metric-grid strong.negative,.profit-hero strong.negative{color:#ffe3e6}
.insight{padding:4px 18px}.insight>div{display:flex;justify-content:space-between;gap:14px;padding:14px 0;font-size:14px}.insight>div+div{border-top:1px solid var(--line)}.insight strong{font-variant-numeric:tabular-nums}
.main-button{width:100%;min-height:52px;margin:2px 0 16px;border:0;border-radius:18px;color:#fff;background:var(--green-dark);box-shadow:0 9px 22px rgba(76,154,73,.22);font-size:17px;font-weight:800}
.quick-buttons{display:flex;gap:8px;margin:10px 0 14px;overflow-x:auto}.quick-buttons button{flex:0 0 auto;padding:10px 14px;border:0;border-radius:999px;color:var(--green-dark);background:var(--green-soft);font-size:13px;font-weight:700}
.reverse-hero{padding:22px;margin-bottom:15px;border-radius:26px;color:#fff;background:linear-gradient(145deg,#3d6940,#79b870);box-shadow:var(--shadow)}.reverse-hero span{font-size:13px;opacity:.85}.reverse-hero strong{display:block;margin:6px 0 8px;font-size:36px;font-variant-numeric:tabular-nums}.reverse-hero p{margin:0;font-size:13px;line-height:1.65;opacity:.82}
.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compare-grid article{padding:18px;border-radius:22px;background:#fff}.compare-grid span{color:var(--muted);font-size:13px}.compare-grid strong{display:block;margin-top:8px;font-size:23px}.recommend{margin:10px 4px 18px;color:var(--green-dark);font-size:14px;font-weight:800}.bundle-grid article{min-height:90px}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.summary-grid article{padding:14px 8px;border-radius:20px;background:#fff;text-align:center}.summary-grid span{display:block;color:var(--muted);font-size:11px}.summary-grid strong{display:block;margin-top:5px;font-size:18px;font-variant-numeric:tabular-nums}
.searchbar{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:10px}.searchbar input{min-width:0;height:48px;padding:0 16px;border:1px solid transparent;border-radius:17px;outline:0;background:#fff}.searchbar input:focus{border-color:#acd1a7}.searchbar button{padding:0 16px;border:0;border-radius:17px;color:var(--green-dark);background:var(--green-soft);font-weight:700}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;margin-bottom:10px;border-radius:20px;background:#fff}.filters select:last-child{grid-column:1/-1}.filters select{width:100%;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fafbfe}
.record-list{display:grid;gap:10px}.record-card{padding:14px;border-radius:23px;background:#fff}.record-main{display:grid;grid-template-columns:76px 1fr;gap:12px}.record-thumb{width:76px;height:76px;overflow:hidden;border-radius:16px;background:#eef1f5}.record-thumb img{width:100%;height:100%;object-fit:cover}.record-thumb span{display:grid;width:100%;height:100%;place-items:center;color:#a1a7b0;font-size:30px}.record-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.record-top h3{margin:0 0 6px;font-size:16px;line-height:1.4}.record-top>strong{flex:0 0 auto;color:var(--green-dark);font-size:19px;font-variant-numeric:tabular-nums}.record-top>strong.negative{color:var(--red)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:5px 8px;border-radius:999px;background:#f0f2f6;color:#606772;font-size:10px;font-weight:700}.chip.mercari{color:#d84242;background:#fff0f0}.chip.yahoo{color:#6842b8;background:#f3edff}.record-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.record-numbers div{padding:9px;border-radius:13px;background:#f7f8fb}.record-numbers span{display:block;color:var(--muted);font-size:10px}.record-numbers strong{display:block;margin-top:3px;font-size:13px}.record-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:12px}.record-actions button{min-height:38px;border:0;border-radius:13px;color:var(--green-dark);background:var(--green-soft);font-size:12px;font-weight:700}.record-actions button.secondary{color:#626975;background:#f0f2f6}.record-actions button.copy{color:#3566aa;background:#eaf2ff}
.empty{padding:56px 18px;text-align:center}.empty>div{display:grid;width:70px;height:70px;margin:0 auto 18px;place-items:center;border-radius:24px;color:var(--green-dark);background:var(--green-soft);font-size:42px}.empty h3{margin:0 0 9px;font-size:18px}.empty p{margin:0 auto 20px;max-width:340px;color:var(--muted);font-size:14px;line-height:1.7}
.calendar-head{display:grid;grid-template-columns:auto auto 1fr auto;gap:7px;align-items:center;margin-bottom:10px}.calendar-head button{min-width:42px;height:42px;border:0;border-radius:14px;color:var(--green-dark);background:var(--green-soft);font-weight:800}.calendar-head strong{padding-left:5px;font-size:19px}.calendar-card{overflow:hidden;border-radius:22px;background:#fff}.week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.week span{padding:10px 0;color:var(--muted);text-align:center;font-size:11px;font-weight:700}.week span:nth-child(6){color:#397fea}.week span:nth-child(7){color:#e95863}.day{position:relative;min-height:64px;padding:7px 5px;border-top:1px solid var(--line);border-right:1px solid var(--line);background:#fff;text-align:left}.day:nth-child(7n){border-right:0}.day.out{color:#b5bac2;background:#f7f8fa}.day.selected{background:var(--green-soft);box-shadow:inset 0 0 0 2px var(--green-dark)}.day.today b{color:#fff;background:var(--green-dark)}.day b{display:grid;width:24px;height:24px;place-items:center;border-radius:9px;font-size:12px}.day i{position:absolute;right:7px;top:8px;width:7px;height:7px;border-radius:50%;background:var(--orange)}.day small{display:block;margin-top:6px;color:var(--green-dark);font-size:9px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-list{display:grid;gap:8px}.mini{display:flex;width:100%;justify-content:space-between;gap:12px;padding:13px 15px;border:0;border-radius:17px;background:#fff;text-align:left}.mini span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini strong{color:var(--green-dark)}
.analysis-panel{display:none}.analysis-panel.active{display:block}.period{display:block;margin:0 0 10px auto;padding:10px 14px;border:0;border-radius:14px;background:#fff}.analytics article{min-height:88px}.goal-card{padding:18px}.goal-card>div:first-child{display:grid;grid-template-columns:1fr auto;align-items:end}.goal-card span{display:block;color:var(--muted);font-size:12px}.goal-card strong{display:block;margin-top:4px;font-size:20px}.goal-card b{grid-row:1/3;grid-column:2;color:var(--green-dark);font-size:24px}.track{height:10px;margin:14px 0 10px;overflow:hidden;border-radius:999px;background:#e9edf4}.track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green-dark),var(--green));transition:width .3s}.goal-card p{margin:0;color:var(--muted);font-size:12px}.chart-wrap{padding:15px 11px;overflow-x:auto}.month-chart{display:grid;grid-template-columns:repeat(12,minmax(36px,1fr));gap:8px;min-width:520px;height:205px;align-items:end}.month-col{display:flex;height:100%;align-items:center;justify-content:flex-end;flex-direction:column;gap:6px}.month-col>span{color:var(--muted);font-size:9px}.barbox{display:flex;height:150px;align-items:flex-end}.bar{width:20px;min-height:2px;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#a9d69a,var(--green-dark))}.stat-list{padding:4px 18px}.stat-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px 0;align-items:center}.stat-row+.stat-row{border-top:1px solid var(--line)}.stat-row small{display:block;margin-top:3px;color:var(--muted)}.stat-row strong{color:var(--green-dark)}.year-head{display:flex;justify-content:center;align-items:center;gap:18px;margin-bottom:12px}.year-head button{width:42px;height:42px;border:0;border-radius:14px;color:var(--green-dark);background:var(--green-soft);font-size:24px}.year-head strong{font-size:20px}.year-chart{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;min-width:580px;height:225px;align-items:end}.year-month{display:flex;height:100%;align-items:center;justify-content:flex-end;flex-direction:column;gap:5px}.year-bars{display:flex;height:175px;align-items:flex-end;gap:4px}.year-bars i{width:12px;min-height:2px;border-radius:5px 5px 2px 2px;background:var(--green-dark)}.year-bars i.prev{background:#a9b3c4}.year-month span{color:var(--muted);font-size:10px}.table-wrap{overflow-x:auto}.table-wrap table{min-width:930px;width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{padding:11px 9px;border-right:1px solid #fff;border-bottom:1px solid #fff;text-align:right;font-size:12px}.table-wrap th{background:#e8edf3}.table-wrap td{background:#f4f6f9}.table-wrap td:first-child,.table-wrap th:first-child{position:sticky;left:0;text-align:left;background:#dff0e8;font-weight:800}
.shipping-settings{max-height:360px;overflow-y:auto}.menu-card button,.menu-card label{position:relative;display:flex;width:100%;min-height:56px;align-items:center;justify-content:space-between;padding:0 18px;border:0;color:var(--text);background:transparent;text-align:left}.menu-card>*+*{border-top:1px solid var(--line)}.menu-card b{color:#b2b7c0;font-size:22px}.menu-card input{position:absolute;inset:0;opacity:0}.menu-card .danger{color:var(--red)}.info{padding:18px;color:#555d68;font-size:13px;line-height:1.75}.info p{margin:0 0 10px}.info p:last-child{margin-bottom:0}
.bottom-nav{position:fixed;z-index:30;right:50%;bottom:calc(10px + var(--safe-bottom));display:grid;grid-template-columns:repeat(5,1fr);width:min(590px,calc(100vw - 20px));padding:5px;border:1px solid rgba(255,255,255,.95);border-radius:25px;background:rgba(250,251,253,.92);box-shadow:var(--shadow);transform:translateX(50%);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.bottom-nav button{display:flex;min-height:59px;align-items:center;justify-content:center;flex-direction:column;gap:2px;border:0;border-radius:20px;color:#5d6470;background:transparent;font-size:10px;font-weight:700}.bottom-nav button.active{color:var(--green-dark);background:rgba(224,232,222,.9)}.bottom-nav b{display:grid;width:27px;height:27px;place-items:center;font-size:24px}.bottom-nav button:nth-child(2) b{font-size:30px;transform:rotate(90deg)}
.overlay{position:fixed;z-index:49;inset:0;background:rgba(17,22,31,.46);backdrop-filter:blur(3px)}
.editor{position:fixed;z-index:50;inset:0;margin:auto;width:min(620px,100%);height:100dvh;overflow-y:auto;background:var(--bg);box-shadow:0 0 50px rgba(15,22,37,.18);animation:editorIn .22s ease-out}@keyframes editorIn{from{transform:translateY(100%)}to{transform:none}}
.editor-header{position:sticky;z-index:3;top:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:108px;padding:calc(12px + var(--safe-top)) 20px 12px;color:#111;background:var(--green)}.editor-header h2{margin:0;color:#111;font-size:18px;text-align:center}.round-header-button{justify-self:start;width:48px;height:48px;border:0;border-radius:999px;background:rgba(255,255,255,.78);font-size:36px;line-height:1}.header-save{justify-self:end;min-width:74px;height:48px;border:0;border-radius:999px;background:rgba(255,255,255,.78);font-weight:800}
.editor-body{padding-bottom:calc(28px + var(--safe-bottom))}.photo-section{padding:18px 16px;background:#e9ebf0}.photo-preview{display:grid;min-height:220px;place-items:center;align-content:center;overflow:hidden;border-radius:24px;background:#fff;color:#aaa;box-shadow:inset 0 0 0 1px var(--line)}.photo-preview span{font-size:46px}.photo-preview small{margin-top:8px}.photo-preview img{width:100%;max-height:390px;object-fit:contain;background:#111}.photo-actions{display:flex;gap:10px;margin-top:10px}.photo-actions button{flex:1;min-height:44px;border:0;border-radius:15px;color:#fff;background:var(--green-dark);font-weight:700}.photo-actions button.secondary{color:#59606a;background:#fff}
.editor-group{margin:16px 0;background:#fff}.editor-row{position:relative;display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px}.editor-row:not(:last-child):after{position:absolute;right:18px;bottom:0;left:18px;height:1px;content:"";background:var(--line)}.editor-row>span{flex:0 0 37%;font-size:15px}.editor-row input,.editor-row select{min-width:0;max-width:60%;padding:8px 0;border:0;outline:0;background:transparent;text-align:right;text-align-last:right;font-size:17px}.editor-row strong{font-size:17px;font-variant-numeric:tabular-nums}.editor-row.sub-row>span{padding-left:34px;color:#969ba5}.editor-row.sub-row strong,.editor-row.sub-row input{color:var(--red)}.summary-row strong{color:var(--red)}.results-group strong{color:var(--green-dark);font-size:20px}.rating-row select{font-size:21px;color:#d9dce1}.editor-section-title{margin:20px 0 0;padding:0 18px 9px;color:var(--muted);font-size:15px;font-weight:500}.memo-area{padding:16px 18px 18px;background:#fff}.memo-area textarea{width:100%;min-height:160px;padding:14px;border:0;outline:0;resize:vertical;background:#f7f8fb;border-radius:17px;line-height:1.65}.editor-actions{display:grid;gap:10px;padding:16px 18px 30px}.editor-actions button{min-height:52px;border:0;border-radius:16px;color:#fff;background:var(--green-dark);font-weight:800}.editor-actions button:nth-child(2){color:#3566aa;background:#eaf2ff}.editor-actions .danger-action{color:var(--red);background:#ffecee}
.toast{position:fixed;z-index:80;right:50%;bottom:calc(88px + var(--safe-bottom));max-width:calc(100vw - 40px);padding:12px 16px;border-radius:14px;color:#fff;background:rgba(20,25,35,.92);box-shadow:var(--shadow);transform:translateX(50%);font-size:13px;font-weight:700}
@media(min-width:700px){body{padding:24px 0}.app{min-height:calc(100vh - 48px);border-radius:38px;box-shadow:0 25px 80px rgba(30,37,56,.11)}}
@media(max-width:390px){.app{padding-left:10px;padding-right:10px}.topbar h1{font-size:23px}.profit-hero{min-height:100px;padding:18px}.profit-hero strong{font-size:33px}.form-card>label,.form-card>div{padding-left:15px;padding-right:15px;font-size:15px}.form-card>*:not(:last-child):after{left:15px;right:15px}.form-card input{width:95px;font-size:18px}.segmented button{font-size:11px}.day{min-height:58px}.record-main{grid-template-columns:68px 1fr}.record-thumb{width:68px;height:68px}.editor-row>span{flex-basis:42%}.editor-row input,.editor-row select{max-width:57%}}

/* v3: 写真選択・カテゴリ・日付・在庫管理 */
.photo-actions{flex-wrap:wrap}
.photo-actions button{min-width:calc(50% - 5px)}
.photo-actions button.secondary{flex-basis:100%}
.number-with-unit{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;max-width:60%}
.number-with-unit input{width:92px!important;max-width:none!important}
.number-with-unit em{font-style:normal;color:#6d737d;font-size:14px}
.stock-preview-row strong{color:var(--green-dark);font-size:20px}
.stock-preview-row strong.warning{color:var(--red)}
.editor-help{margin:-16px 0 16px;padding:11px 18px 14px;color:#737a85;background:#fff;font-size:12px;line-height:1.65}
.date-control{display:flex;max-width:68%;align-items:center;justify-content:flex-end;gap:8px}
.date-control input{max-width:none!important;width:142px}
.date-control button{flex:0 0 auto;min-height:34px;padding:0 11px;border:0;border-radius:11px;color:var(--green-dark);background:#e8f5e4;font-size:13px;font-weight:800}
.record-stock-chip{color:#317548!important;background:#e8f5e4!important}
@media(max-width:390px){
  .photo-actions button{min-width:100%}
  .date-control{max-width:72%;gap:5px}
  .date-control input{width:126px;font-size:14px}
  .date-control button{padding:0 8px;font-size:12px}
  .number-with-unit{max-width:57%}
}
