:root{--primary:#1a73e8;--primary-dark:#174ea6;--primary-container:#e8f0fe;--tertiary:#7c3aed;--green:#188038;--green-container:#e6f4ea;--amber:#e37400;--amber-container:#fef7e0;--red:#d93025;--red-container:#fce8e6;--on-surface:#1f1f1f;--on-surface-var:#5f6368;--outline:#e3e8f0;--surface:#ffffff;--elev-1:0 1px 3px rgba(60,64,67,0.1),0 4px 14px rgba(60,64,67,0.06);--elev-2:0 4px 12px rgba(60,64,67,0.14),0 8px 28px rgba(60,64,67,0.1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Roboto,Noto Sans JP,Hiragino Kaku Gothic ProN,sans-serif;color:var(--on-surface);background:linear-gradient(160deg,#f8faff,#eef3fc 45%,#f4effd);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit;font-size:14px;color:inherit}button{cursor:pointer}.appbar{position:sticky;top:0;z-index:50;gap:12px;height:56px;padding:0 20px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--outline)}.appbar,.appbar .brand{display:flex;align-items:center}.appbar .brand{font-weight:700;font-size:16px;color:var(--primary-dark);text-decoration:none;gap:8px;white-space:nowrap;flex-shrink:0}.appbar .crumb{font-size:13px;color:var(--on-surface-var);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.appbar .save-status{white-space:nowrap;flex-shrink:0}.appbar .brand .logo{width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,#1a73e8,#7c3aed);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700}.appbar .spacer{flex:1 1}.container{max-width:1080px;margin:0 auto;padding:24px 16px 80px}.btn{border:none;border-radius:100px;padding:10px 20px;font-size:13.5px;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn-filled{background:var(--primary);color:#fff;box-shadow:0 1px 4px rgba(26,115,232,.4)}.btn-filled:hover{background:var(--primary-dark)}.btn-tonal{background:var(--primary-container);color:var(--primary-dark)}.btn-tonal:hover{background:#d7e5fd}.btn-text{background:transparent;color:var(--primary)}.btn-text:hover{background:var(--primary-container)}.btn-danger{background:transparent;color:var(--red)}.btn-danger:hover{background:var(--red-container)}.btn:disabled{opacity:.5;cursor:default}.btn-sm{padding:6px 14px;font-size:12.5px}.card{background:var(--surface);border-radius:20px;box-shadow:var(--elev-1);padding:20px}.chip{display:inline-flex;align-items:center;gap:4px;border-radius:8px;padding:2px 10px;font-size:11.5px;font-weight:500;white-space:nowrap}.chip-draft{background:#f1f3f4;color:var(--on-surface-var)}.chip-published{background:var(--primary-container);color:var(--primary-dark)}.chip-confirmed{background:var(--green-container);color:var(--green)}.chip-manual{background:var(--amber-container);color:var(--amber)}.chip-auto{background:var(--primary-container);color:var(--primary-dark)}.chip-carried{background:var(--green-container);color:var(--green);white-space:nowrap}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:380px;text-align:center;padding:40px 32px}.login-card .logo{width:56px;height:56px;border-radius:18px;margin:0 auto 16px;background:linear-gradient(135deg,#1a73e8,#7c3aed);display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;font-weight:700}.login-card h1{font-size:20px;margin-bottom:4px}.login-card p{font-size:13px;color:var(--on-surface-var);margin-bottom:24px}.field{text-align:left;margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:500;color:var(--on-surface-var);margin-bottom:5px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--outline);border-radius:12px;padding:10px 14px;background:#fff;outline:none;transition:.15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(26,115,232,.15)}.error-text{color:var(--red);font-size:12.5px;margin-top:8px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.page-head h1{font-size:22px;font-weight:700}.project-card{margin-bottom:20px}.project-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.project-head h2{font-size:17px;font-weight:700}.project-head .meta{font-size:12px;color:var(--on-surface-var)}.report-list{display:flex;flex-direction:column;gap:8px}.report-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 16px;border:1px solid var(--outline);border-radius:14px;text-decoration:none;color:inherit;transition:.15s;background:#fff}.report-row:hover{border-color:var(--primary);box-shadow:0 2px 10px rgba(26,115,232,.12)}.report-row.confirmed{background:var(--green-container);border-color:#ceead6}.report-row.confirmed:hover{border-color:var(--green);box-shadow:0 2px 10px rgba(24,128,56,.15)}.report-row .drag-handle{cursor:grab;color:var(--outline);font-size:15px;-webkit-user-select:none;user-select:none}.report-row:hover .drag-handle{color:var(--on-surface-var)}.report-row.dragging{opacity:.45}.report-row.drag-over{border-color:var(--primary);box-shadow:inset 0 3px 0 var(--primary)}.report-row .rlabel{font-weight:700;font-size:14.5px}.report-row .rmeta{font-size:12px;color:var(--on-surface-var);margin-left:auto;text-align:right}.report-row .rmeta b{color:var(--on-surface);font-size:14px}.empty-note{color:var(--on-surface-var);font-size:13px;padding:12px 4px}.fy-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.quick-chip.fy-active{background:var(--primary);border-color:var(--primary);color:#fff}.dialog-backdrop{position:fixed;inset:0;z-index:100;background:rgba(31,31,31,.4);display:flex;align-items:center;justify-content:center;padding:16px}.dialog{background:#fff;border-radius:24px;box-shadow:var(--elev-2);width:100%;max-width:560px;max-height:88vh;overflow-y:auto;padding:26px}.dialog h3{font-size:17px;margin-bottom:18px}.dialog .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.dialog .grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}@media (max-width:540px){.dialog .grid2{grid-template-columns:1fr}}.summary-bar{position:sticky;top:56px;z-index:40;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px 14px;margin:0 -14px 14px;background:rgba(246,249,255,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:0 0 18px 18px}.summary-bar .stat{background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--outline);border-radius:14px;padding:8px 14px}.summary-bar .stat .k{font-size:10.5px;color:var(--on-surface-var);font-weight:500}.summary-bar .stat .v{font-size:16px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary-bar .stat.main{background:linear-gradient(135deg,#e8f0fe,#f3e8fd);border-color:#d2e3fc}.summary-bar .stat.main .v{color:var(--primary-dark)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--outline);margin-bottom:18px;overflow-x:auto}.tab{background:none;padding:11px 18px;font-size:13.5px;font-weight:500;color:var(--on-surface-var);border:none;border-bottom:2.5px solid transparent;white-space:nowrap}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.save-status,.toolbar .note{font-size:12px;color:var(--on-surface-var)}.save-status.saving{color:var(--amber)}.table-scroll{overflow-x:auto;border-radius:16px}.edit-table{width:100%;border-collapse:collapse;background:var(--surface);font-size:13px;min-width:560px}.edit-table thead th{background:#f1f5fd;color:var(--on-surface-var);font-size:11.5px;font-weight:500;text-align:left;padding:9px 10px;white-space:nowrap}.edit-table thead th.num{text-align:right}.edit-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.edit-table thead th.sortable:hover{color:var(--primary)}.edit-table td{padding:5px 6px;border-top:1px solid var(--outline);vertical-align:middle}.edit-table td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.edit-table input,.edit-table select{width:100%;border:1px solid transparent;border-radius:8px;padding:7px 8px;background:transparent;outline:none;min-width:70px}.edit-table input:hover,.edit-table select:hover{background:#f8f9fb}.edit-table input:focus,.edit-table select:focus{border-color:var(--primary);background:#fff}.edit-table input.num-input{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.edit-table tfoot td{font-weight:700;background:#fafbff;padding:10px}.edit-table .drag-handle{cursor:grab;color:var(--outline);font-size:14px;-webkit-user-select:none;user-select:none;padding:0 2px}.edit-table tr:hover .drag-handle{color:var(--on-surface-var)}.edit-table tr.dragging{opacity:.45}.edit-table tr.drag-over td{border-top:2.5px solid var(--primary)}.edit-table tr.carried td{background:var(--red-container)}.edit-table tr.carried input,.edit-table tr.carried select{color:#b3261e}.expense-table .cell-summary{display:none}.row-del{border:none;background:none;color:var(--on-surface-var);border-radius:50%;width:30px;height:30px;font-size:15px}.row-del:hover{background:var(--red-container);color:var(--red)}.section-title{font-size:15px;font-weight:700;margin:22px 0 10px;display:flex;align-items:center;gap:8px}.section-title:before{content:"";width:4px;height:16px;border-radius:2px;background:linear-gradient(180deg,var(--primary),#7aa5ff)}.quick-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.quick-chip{border:1px solid var(--outline);background:#fff;border-radius:100px;padding:7px 14px;font-size:12.5px;font-weight:500;color:var(--primary-dark);transition:.15s}.quick-chip:hover{background:var(--primary-container);border-color:#d2e3fc}.warn-banner{background:var(--amber-container);color:#8a5a00;border-radius:12px;padding:10px 16px;font-size:12.5px;margin-bottom:12px}.publish-url{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#f8f9fb;border:1px solid var(--outline);border-radius:12px;padding:10px 14px}.publish-url code{font-size:12px;word-break:break-all;flex:1 1;min-width:200px}@media (max-width:720px){.appbar .brand-text,.edit-table .drag-col,.report-row .drag-handle{display:none}.summary-bar{grid-auto-flow:column;grid-template-columns:none;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.summary-bar::-webkit-scrollbar{display:none}.summary-bar .stat{min-width:152px}.summary-bar{margin:0 -10px 14px}.container{padding:16px 10px 60px}.expense-table{min-width:0;display:block}.expense-table thead{display:none}.expense-table tbody{display:block}.expense-table tbody tr{display:grid;grid-template-columns:repeat(6,1fr);gap:8px 10px;padding:12px 14px;border-top:1px solid var(--outline)}.expense-table tbody tr:first-child{border-top:none}.expense-table td{display:block;border-top:none;padding:0;min-width:0}.expense-table td[data-label]:before{content:attr(data-label);display:block;font-size:10.5px;font-weight:500;color:var(--on-surface-var);margin-bottom:3px}.expense-table td[data-label]:empty:before{content:none}.expense-table .cell-item{grid-column:span 6}.expense-table .cell-month,.expense-table .cell-payer{grid-column:span 3}.expense-table.with-units .cell-amount,.expense-table.with-units .cell-qty,.expense-table.with-units .cell-unit{grid-column:span 2}.expense-table:not(.with-units) .cell-amount{grid-column:span 6}.expense-table .cell-actions{grid-column:span 5;display:flex;align-items:center;gap:6px}.expense-table .cell-del{grid-column:span 1;text-align:right}.expense-table .empty-row td{grid-column:1/-1}.expense-table input,.expense-table select{min-width:0;border-color:var(--outline);background:#f8f9fb;font-size:16px;padding:8px 10px}.expense-table td.num,.expense-table td.num:before{text-align:left}.expense-table input.num-input{text-align:right}.expense-table .cell-amount>span{padding:0!important}.expense-table tbody tr.carried{background:var(--red-container)}.expense-table .cell-summary{display:flex;grid-column:1/-1;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-size:14px;min-height:30px}.expense-table .cell-summary .sum-name{flex:1 1;min-width:0;font-weight:600;overflow-wrap:anywhere}.expense-table .cell-summary .sum-amount{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.expense-table .cell-summary .chev{color:var(--on-surface-var);font-size:12px;transition:transform .15s}.expense-table tbody tr:not(.m-collapsed) .cell-summary .chev{transform:rotate(90deg)}.expense-table tbody tr.m-collapsed td:not(.cell-summary){display:none}.expense-table tbody tr.m-collapsed{padding:10px 14px}.expense-table tbody tr.carried .cell-summary{color:#b3261e}}