.login-screen{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(1200px 600px at 85% -10%,var(--accent-soft),transparent 60%),var(--bg)}.login-brand{padding:20px 28px;font-size:16px;font-weight:700;color:var(--text);letter-spacing:.02em}.login-powered{margin-left:10px;font-size:12px;font-weight:400;color:var(--text-3);letter-spacing:.04em}.login-center{flex:1;display:flex;align-items:center;justify-content:center;padding:24px 16px 96px}.login-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-md);animation:dialog-in .32s cubic-bezier(.2,.9,.25,1.05) both;padding:48px 40px 52px;display:flex;flex-direction:column;align-items:stretch;gap:28px}.login-card h1{margin:0;font-size:22px;font-weight:700;text-align:center;color:var(--text)}.login-error{margin:0;font-size:13px;line-height:1.6;color:var(--danger-text);background:var(--danger-soft);border:1px solid var(--danger-border);border-radius:6px;padding:10px 12px}.gsi-material-button{-webkit-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-image:none;border:1px solid #747775;border-radius:4px;box-sizing:border-box;color:#1f1f1f;cursor:pointer;display:block;font-family:Roboto,arial,sans-serif;font-size:14px;height:40px;letter-spacing:.25px;outline:none;overflow:hidden;padding:0 12px;position:relative;text-align:center;text-decoration:none;transition:background-color .218s,border-color .218s,box-shadow .218s;white-space:nowrap;width:100%;max-width:400px;min-width:min-content}.gsi-material-button .gsi-material-button-icon{height:20px;margin-right:12px;min-width:20px;width:20px}.gsi-material-button .gsi-material-button-icon svg{display:block;width:20px;height:20px}.gsi-material-button .gsi-material-button-content-wrapper{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;height:100%;justify-content:center;position:relative;width:100%}.gsi-material-button .gsi-material-button-contents{font-family:Roboto,Noto Sans JP,arial,sans-serif;font-weight:500;overflow:hidden;text-overflow:ellipsis}.gsi-material-button .gsi-material-button-state{transition:opacity .218s;top:0;right:0;bottom:0;left:0;opacity:0;position:absolute}.gsi-material-button:active .gsi-material-button-state,.gsi-material-button:focus-visible .gsi-material-button-state{background-color:#303030;opacity:.12}.gsi-material-button:focus-visible{outline:2px solid #1a73e8;outline-offset:2px}.gsi-material-button:hover{box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.gsi-material-button:hover .gsi-material-button-state{background-color:#303030;opacity:.08}:root[data-theme=dark] .gsi-material-button{background-color:#131314;border-color:#8e918f;color:#e3e3e3}:root[data-theme=dark] .gsi-material-button:hover .gsi-material-button-state,:root[data-theme=dark] .gsi-material-button:focus-visible .gsi-material-button-state{background-color:#fff}.dashboard{max-width:1200px}.dash-filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px}.custom-range{display:flex;align-items:center;gap:6px}.period-label{font-size:13px;color:var(--text);font-weight:600}.period-label .muted{font-weight:400;margin-left:4px}.group-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:16px}.group-tile{text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);transition:box-shadow .18s,transform .18s,border-color .18s;padding:14px 16px;cursor:pointer;font-size:13px;display:flex;flex-direction:column;gap:6px}.group-tile:hover:not(:disabled){background:var(--surface);border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.group-tile.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.group-tile.total,.group-tile.total:hover:not(:disabled){background:linear-gradient(135deg,#3b7fe0,#5c9bf2);border-color:transparent;color:#fff}.group-tile.total .muted{color:#ffffffc7}.group-tile.total.selected{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.tile-label{display:flex;align-items:center;gap:6px;font-weight:600}.tile-members{margin-left:auto;font-weight:400;font-size:12px}.swatch{width:10px;height:10px;border-radius:50%;flex-shrink:0}.tile-value{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.tile-share{height:4px;background:var(--surface-3);border-radius:2px;overflow:hidden}.tile-share span{display:block;height:100%;border-radius:2px}.tile-foot{font-size:12px;line-height:1.6}.change{font-weight:600}.change.up{color:var(--success-text)}.change.down{color:var(--danger-text)}.group-tile.total .change.up{color:#d8ffe8}.group-tile.total .change.down{color:#ffe0dd}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:16px}.chart-card{min-width:0;margin-bottom:0;display:flex;flex-direction:column}.chart-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.chart-head h3,.table-title{margin:0;font-size:15px}.chart-head h3 .muted,.table-title .muted{font-size:12px;font-weight:400;margin-left:4px}.chart-box{position:relative;flex:1 1 auto;width:100%}.chart-fill{position:absolute;top:0;right:0;bottom:0;left:0}.legend-text{color:var(--text-2);font-size:12px}.empty-chart{flex:1 1 auto;display:grid;place-items:center;margin:0;color:var(--text-3);font-size:13px;padding:40px 0;text-align:center}.dashboard>.card:last-child{margin-top:16px}.breakdown-table{margin-top:10px}.breakdown-table .num{font-variant-numeric:tabular-nums}.breakdown-table .total-row td{font-weight:700;background:var(--surface-2)}.share-bar{height:6px;background:var(--surface-3);border-radius:3px;overflow:hidden}.share-bar span{display:block;height:100%;background:var(--series-1);border-radius:3px}.sheet-page{display:flex;flex-direction:column;height:100%;padding:16px 24px 12px;min-width:0}.sheet-page .back-link{font-size:13px;color:var(--text-3);text-decoration:none}.sheet-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:10px}.sheet-header h2{margin:4px 0 2px;font-size:20px}.sheet-mode{margin-left:10px;font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:2px 10px;vertical-align:middle}.sheet-meta{font-size:12px;color:var(--text-3)}.sheet-total{margin-left:16px;font-weight:700;color:var(--text);font-size:14px}.sheet-actions{display:flex;align-items:center;gap:12px}.saved-note{color:var(--success-text);font-size:13px}.dirty-note{color:var(--warning-text);font-size:13px}.locked-banner{background:var(--warning-soft);border:1px solid var(--warning-border);color:var(--warning-text);border-radius:6px;padding:8px 12px;font-size:13px;margin-bottom:10px}.locked-banner.unlocked{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger-text)}.sheet-grid{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.sheet-grid table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;margin:0}.sheet-grid th,.sheet-grid td{border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:0;font-size:13px;background:var(--surface)}.sheet-grid thead th{position:sticky;top:0;z-index:2;background:var(--surface-3);padding:6px 8px;font-weight:600;white-space:nowrap}.sheet-grid tfoot td{position:sticky;bottom:0;z-index:2;background:var(--surface-2);font-weight:600;padding:8px;border-top:2px solid var(--border-strong)}.sheet-grid .sticky-col{position:sticky;z-index:1}.sheet-grid thead .sticky-col,.sheet-grid tfoot .sticky-col{z-index:3}.sheet-grid .c1{left:0;width:150px;min-width:150px}.sheet-grid .c2{left:150px;width:200px;min-width:200px}.sheet-grid .c3{left:350px;width:120px;min-width:120px;border-right:2px solid var(--border-strong)}.sheet-grid td.num,.sheet-grid th.num{text-align:right}.sheet-grid tr.block-start>td{border-top:2px solid var(--border-strong)}.member-cell{vertical-align:top;padding:8px 10px!important;background:var(--surface-2)!important}.member-head{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.member-stage{font-weight:700}.member-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.member-tag{font-size:10px;font-weight:600;line-height:1.6;padding:0 6px;border-radius:999px;color:var(--text-2);background:var(--surface-3, var(--border))}.member-tag.departed{color:var(--warning-text, #92400e);background:var(--warning-soft, #fef3c7)}.member-name{font-size:11px;color:var(--text-3)}.member-total{margin-top:6px;font-size:12px;color:var(--text-2);font-weight:600}.category-cell{padding:0 4px 0 10px!important;white-space:nowrap}.category-cell .category-name{display:inline-block;min-width:72px}.row-total{padding:0 10px!important;color:var(--text-2);font-variant-numeric:tabular-nums}.grand{color:var(--text)}.amount-cell input{width:96px;border:none;border-radius:0;padding:8px 10px;text-align:right;font-size:13px;font-variant-numeric:tabular-nums;background:transparent}.amount-cell input:focus{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}.amount-cell input.invalid{background:var(--danger-soft);color:var(--danger-text)}.amount-cell span{display:block;width:96px;padding:8px 10px;text-align:right;font-variant-numeric:tabular-nums}.add-row td{background:var(--surface-2)}.add-row select{width:100%;border:1px dashed var(--border-strong);background:var(--surface);color:var(--accent);font-size:12px;padding:4px 6px;margin:3px 0}.day-col{width:124px;min-width:124px;cursor:default}.editable .day-col{cursor:grab}.day-col.dragging{opacity:.4}.day-col.drag-over{box-shadow:inset 3px 0 0 var(--accent)}.day-col.needs-day select{border-color:var(--danger);background:var(--danger-soft)}.day-head{display:flex;align-items:center;gap:4px}.drag-handle{color:var(--text-3);letter-spacing:-2px;font-size:12px}.day-head select{flex:1;font-size:12px;padding:3px 4px;min-width:0}.day-head select.sat{color:var(--sat-text)}.day-head select.sun{color:var(--danger)}.day-head select.unset{color:var(--text-3)}.icon-button{background:none!important;color:var(--text-3)!important;padding:0 4px!important;font-size:14px!important;line-height:1}.icon-button:hover{color:var(--danger)!important}.add-col{min-width:52px;width:100%;text-align:left;padding-left:10px!important;background:var(--surface)!important}.add-col-button{width:32px;height:28px;padding:0!important;font-size:18px!important;line-height:1}.grid-hint{font-size:12px;color:var(--text-3);margin:8px 0 0}.sheet-title-row{display:flex;align-items:center;gap:16px}.category-price{margin:0 4px 0 6px;font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}.row-total{white-space:nowrap}.row-amount{display:block;text-align:right;font-weight:600}.row-qty{display:block;text-align:right;font-size:11px;color:var(--text-3)}.price-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--accent-soft);border:1px solid var(--border);color:var(--accent-text);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px;margin-bottom:10px}.sheet-grid thead .day-unset{color:var(--text-3);font-weight:400}.sheet-grid thead .sat{color:var(--sat-text)}.sheet-grid thead .sun{color:var(--sun-text)}.add-member-row select{font-weight:600}.back-link{font-size:13px;color:var(--text-3);text-decoration:none}.expense-totals{display:flex;align-items:baseline;gap:12px;margin-left:auto;font-size:13px;color:var(--text-2);white-space:nowrap}.expense-totals strong{font-size:18px;color:var(--text)}.expense-totals span{color:var(--text-3)}.expense-month-head{display:flex;align-items:center;gap:16px;margin:4px 0 12px}.month-nav{display:flex;align-items:center;gap:10px}.month-nav h2{margin:0}.month-nav button{min-width:32px;font-size:16px;line-height:1}.expense-table .person-row td{background:var(--surface-2);font-weight:700;border-top:2px solid var(--border-strong)}.expense-table .person-row .person-name{font-size:14px}.expense-table .person-row .muted{font-weight:400;font-size:12px}.expense-table .entry-category{padding-left:28px;color:var(--text-2)}.expense-table .memo-cell{max-width:320px;overflow:hidden;text-overflow:ellipsis}.badge.member{background:var(--accent-soft);color:var(--accent-text)}.badge.departed{background:var(--warning-soft);color:var(--warning-text)}.button-link.small{padding:5px 12px;font-size:13px}@keyframes row-flash{0%{background:var(--accent-soft)}to{background:transparent}}.expense-table tr.flash td{animation:row-flash 2.4s ease-out both}.expense-form .form-row{margin-bottom:14px}.expense-person{display:flex;gap:10px;align-items:center}.expense-person select,.expense-person input{flex:1;min-width:0}.expense-form-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:0 12px}.expense-form .price-cell input{width:100%}.expense-form textarea{width:100%;resize:vertical;font-family:inherit}.expense-form .hint{margin:4px 0 0;font-size:12px;color:var(--text-3)}.checkbox-row{display:flex;align-items:flex-start;gap:8px;margin:2px 0 14px;font-size:13px;cursor:pointer}.checkbox-row input{margin-top:3px}.checkbox-row small{display:block;color:var(--text-3);font-size:12px}@media (max-width: 560px){.expense-form-grid{grid-template-columns:1fr}.expense-person{flex-direction:column;align-items:stretch}}.doc-editor{--ink: #1f2a44;--ink-soft: #5b6472;--paper: #fdfcf9;--panel: var(--sidebar-bg);--panel-soft: var(--surface);--line: #d8d3c7;--seal: #b23a2e;--field-bg: var(--input-bg);--field-line: var(--border-strong);--ed-accent: var(--accent);font-family:var(--font);background:var(--panel);color:var(--text);height:100%}.doc-editor *{box-sizing:border-box}.doc-editor .app{display:flex;height:100%}.doc-editor .form-panel{width:400px;min-width:280px;flex-shrink:0;background:var(--panel);color:var(--text);padding:20px 24px 100px;overflow-y:auto;max-height:100%}.doc-editor .back-link{display:inline-block;font-size:12px;color:var(--text-3);text-decoration:none;margin-bottom:14px}.doc-editor .back-link:hover{color:var(--ed-accent)}.doc-editor .resizer{width:6px;flex-shrink:0;background:var(--border);cursor:col-resize;position:relative}.doc-editor .resizer:hover,.doc-editor .resizer.active{background:var(--ed-accent)}.doc-editor .resizer:after{content:"";position:absolute;top:50%;left:50%;width:2px;height:28px;background:var(--border-strong);transform:translate(-50%,-50%);border-radius:2px}.doc-editor .form-panel h1{font-family:Zen Old Mincho,Hiragino Mincho ProN,serif;font-size:22px;font-weight:700;margin:0 0 4px;letter-spacing:.02em}.doc-editor .form-panel .sub{font-size:12px;color:var(--text-3);margin:0 0 24px;line-height:1.6}.doc-editor fieldset{border:none;padding:0;margin:0 0 22px;min-width:0}.doc-editor legend{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--accent-text);text-transform:uppercase;margin-bottom:10px;padding:0}.doc-editor label{display:block;font-size:12px;color:var(--text-2);margin:10px 0 4px}.doc-editor label.checkbox-label{display:flex;align-items:center;gap:8px;margin:10px 0 6px;font-size:13px;color:var(--text);cursor:pointer}.doc-editor input[type=text],.doc-editor input[type=number],.doc-editor input[type=date],.doc-editor input[type=month],.doc-editor select,.doc-editor textarea{width:100%;background:var(--field-bg);border:1px solid var(--field-line);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit}.doc-editor input[readonly]{color:var(--text-2)}.doc-editor input:disabled,.doc-editor select:disabled{opacity:.6;cursor:not-allowed}.doc-editor input:focus,.doc-editor select:focus,.doc-editor textarea:focus{outline:none;border-color:var(--ed-accent);box-shadow:var(--focus-ring)}.doc-editor textarea{resize:vertical;min-height:56px}.doc-editor input[type=checkbox]{width:15px;height:15px;accent-color:var(--ed-accent);flex-shrink:0}.doc-editor input[type=file]{font-size:12px;color:var(--text-2);max-width:100%}.doc-editor .row-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.doc-editor .inline-row{display:flex;gap:6px}.doc-editor .inline-row>input,.doc-editor .inline-row>select{flex:1;min-width:0}.doc-editor .hint{font-size:11px;color:var(--text-3);margin-top:4px;line-height:1.5}.doc-editor button{font-family:inherit;border-radius:8px;cursor:pointer}.doc-editor button:disabled{opacity:.5;cursor:not-allowed}.doc-editor .icon-btn{flex-shrink:0;padding:0 10px;background:var(--field-bg);border:1px solid var(--field-line);color:var(--text-2);font-size:12px}.doc-editor .icon-btn:hover:not(:disabled){border-color:var(--ed-accent);color:var(--ed-accent)}.doc-editor .text-btn{background:none;border:none;color:var(--danger-text);font-size:12px;padding:0}.doc-editor .secondary-btn{flex-shrink:0;padding:0 12px;background:transparent;border:1px solid var(--border-strong);color:var(--text-2);font-size:12px}.doc-editor .secondary-btn:hover:not(:disabled){border-color:var(--ed-accent);color:var(--ed-accent)}.doc-editor .seal-current{margin-top:8px;display:flex;align-items:center;gap:10px}.doc-editor .seal-current img{width:36px;height:36px;object-fit:contain;background:#fff;border-radius:4px}.doc-editor .item-row{position:relative;border:1px solid var(--field-line);border-radius:10px;padding:10px;margin-bottom:10px;background:var(--panel-soft)}.doc-editor .item-row-grid{display:grid;grid-template-columns:1fr 60px 90px 70px;gap:6px;align-items:end}.doc-editor .item-row-grid label{margin:6px 0 3px;font-size:11px}.doc-editor .item-row-grid input,.doc-editor .item-row-grid select{padding:8px 6px}.doc-editor .item-row .checkbox-label{margin-top:8px;font-size:11.5px}.doc-editor .item-remove{position:absolute;top:6px;right:6px;width:22px;height:22px;display:grid;place-items:center;padding:0;border:none;border-radius:50%;background:transparent;color:var(--text-3);font-size:15px;line-height:1}.doc-editor .item-remove:hover{background:var(--danger-soft);color:var(--danger-text)}.doc-editor .add-row-btn{display:block;width:100%;padding:9px;background:transparent;border:1px dashed var(--border-strong);color:var(--text-2);font-size:13px;margin-top:4px}.doc-editor .add-row-btn:hover{border-color:var(--ed-accent);color:var(--ed-accent)}.doc-editor .note-box{font-size:11.5px;line-height:1.6;color:var(--warning-text);background:var(--warning-soft);border:1px solid var(--warning-border);border-radius:4px;padding:8px 10px;margin-top:8px}.doc-editor .suggest-box{margin-top:6px;padding:8px 10px;background:var(--panel-soft);border:1px solid var(--field-line);border-radius:4px;font-size:11.5px;color:var(--text-2);line-height:1.6}.doc-editor .suggest-box .amount{color:var(--accent-text);font-weight:600}.doc-editor .suggest-box .apply-btn{display:block;margin-top:6px;width:100%;padding:6px;background:var(--ed-accent);color:var(--on-accent);border:none;font-size:12px}.doc-editor .summary-loader{padding:10px;margin-bottom:12px;border:1px solid var(--field-line);border-radius:6px;background:var(--accent-soft)}.doc-editor .summary-loader label{margin-top:0}.doc-editor .error-box{font-size:12px;line-height:1.6;color:var(--danger-text);background:var(--danger-soft);border:1px solid var(--danger-border);border-radius:4px;padding:8px 10px;margin-bottom:10px;white-space:pre-line}.doc-editor .download-btn{display:block;width:100%;padding:13px;background:var(--ed-accent);color:var(--on-accent);border:none;border-radius:10px;font-size:14px;font-weight:700;margin-top:6px}.doc-editor .download-btn:hover:not(:disabled){background:var(--accent-hover)}.doc-editor .download-btn:active:not(:disabled){transform:translateY(1px)}.doc-editor .preview-panel{flex:1;display:flex;justify-content:flex-start;align-items:flex-start;padding:40px 30px;background:var(--preview-bg);overflow:auto;max-height:100%;min-width:0;position:relative}.doc-editor .preview-status{position:absolute;top:12px;right:16px;font-size:11px;color:var(--text-3);letter-spacing:.04em}.sheet-wrapper{width:210mm;min-height:297mm;margin:0 auto;background:#fdfcf9;box-shadow:var(--shadow-lg);position:relative;flex-shrink:0}.sheet-wrapper iframe{display:block;width:210mm;min-height:297mm;border:0;background:#fdfcf9}.doc-editor.resizing iframe{pointer-events:none}@media (max-width: 560px){.doc-editor .form-panel{width:100%!important;min-width:0;max-height:46vh}.doc-editor .app{flex-direction:column}.doc-editor .resizer{display:none}.doc-editor .preview-panel{max-height:none}}.doc-editor .month-picker{margin:6px 0 8px}.doc-editor .month-picker-year{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:13px;font-weight:600}.doc-editor .month-picker-year .icon-btn{height:26px}.doc-editor .month-picker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.doc-editor .month-cell{position:relative;padding:6px 0;font-size:12px;background:var(--field-bg);border:1px solid var(--field-line);color:var(--text-2)}.doc-editor .month-cell:hover:not(:disabled){border-color:var(--ed-accent);color:var(--ed-accent)}.doc-editor .month-cell.on,.doc-editor .month-cell.on:hover:not(:disabled){background:var(--ed-accent);border-color:var(--ed-accent);color:var(--on-accent);font-weight:700}.doc-editor .month-dot{position:absolute;top:3px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--ed-accent)}.doc-editor .month-cell.on .month-dot{background:var(--on-accent)}.doc-editor .month-chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:8px}.doc-editor .month-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--surface);border:1px solid var(--field-line);white-space:nowrap}.doc-editor .month-chip button{background:none;border:none;padding:0 4px;color:var(--text-3);font-size:12px;line-height:1}.doc-editor .month-chip button:hover:not(:disabled){color:var(--danger-text)}.doc-editor .month-chips .hint{margin:0}.doc-editor .load-btn{width:100%;height:32px}.doc-editor .display-name{display:flex;gap:6px;align-items:stretch}.doc-editor .display-name .segmented{flex-shrink:0}.doc-editor .display-name .segmented button{border-radius:0}.doc-editor .display-name>select,.doc-editor .display-name>input{flex:1;min-width:0}.schedule-page{display:flex;flex-direction:column;height:100%;padding:16px 24px 12px;min-width:0}.schedule-page .back-link{font-size:13px;color:var(--text-3);text-decoration:none}.schedule-page h2{margin:4px 0 2px;font-size:20px}.schedule-title{margin-left:12px;font-size:15px;font-weight:500;color:var(--text-2)}.schedule-meta{font-size:12px;color:var(--text-3)}.schedule-meta .saved-note{margin-left:12px}.schedule-view-head{display:flex;align-items:center;gap:16px;margin:8px 0 12px}.head-actions{display:flex;gap:8px}.schedule-edit-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:10px}.title-input{margin-top:6px;width:320px;max-width:100%;font-size:13px}.schedule-grid{flex:1;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.schedule-grid table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;margin:0}.schedule-grid th,.schedule-grid td{border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px 8px;font-size:13px;background:var(--surface)}.schedule-grid thead th{position:sticky;top:0;z-index:2;background:var(--surface-3);font-weight:600;white-space:nowrap;text-align:center}.schedule-grid tfoot th,.schedule-grid tfoot td{position:sticky;bottom:0;z-index:2;background:var(--surface-2);border-top:2px solid var(--border-strong)}.schedule-grid .staff-col{position:sticky;left:0;z-index:1;width:180px;min-width:180px;text-align:left;border-right:2px solid var(--border-strong)}.schedule-grid thead .staff-col,.schedule-grid tfoot .staff-col{z-index:3}.staff-name{font-weight:600;background:var(--surface-2)!important}.date-col{width:150px;min-width:150px}.date-col .sat,.day-head select.sat{color:var(--sat-text)}.date-col .sun,.day-head select.sun{color:var(--danger)}.day-unset{color:var(--text-3)}.staff-edit{display:flex;align-items:center;gap:4px}.staff-edit input{flex:1;min-width:0;font-size:13px;padding:5px 8px}.add-staff-row th,.add-staff-row td{background:var(--surface-2)}.add-staff-button{width:100%;background:var(--surface)!important;color:var(--accent)!important;border:1px dashed var(--border-strong)!important;font-size:12px!important;padding:5px 8px!important}.mark{font-size:16px;font-weight:700;line-height:1}.mark-ok{color:var(--success-text)}.mark-maybe{color:var(--warning-text)}.mark-ng{color:var(--danger-text)}.mark-none{color:var(--border-strong);font-weight:400}.answer-cell{text-align:center}.answer-view{display:inline-flex;align-items:center;gap:6px}.answer-edit{display:flex;align-items:center;justify-content:center;gap:6px}.mark-cycle{min-width:40px;height:32px;padding:0 10px!important;border-radius:8px!important;border:1px solid var(--border-strong)!important;background:var(--surface)!important;font-size:16px!important;font-weight:700;line-height:1;transition:background-color .15s,border-color .15s,transform .08s}.mark-cycle:hover{border-color:var(--accent)!important}.mark-cycle.mark-none{color:var(--text-3)!important;font-weight:400}.mark-cycle.mark-ok{color:var(--success-text)!important;background:var(--success-soft)!important;border-color:transparent!important}.mark-cycle.mark-maybe{color:var(--warning-text)!important;background:var(--warning-soft)!important;border-color:transparent!important}.mark-cycle.mark-ng{color:var(--danger-text)!important;background:var(--danger-soft)!important;border-color:transparent!important}.mark-cycle .bump{display:inline-block;animation:mark-bump .18s ease-out}@keyframes mark-bump{0%{transform:scale(.7);opacity:.4}}.note-button{padding:4px 8px!important;font-size:11px!important;font-weight:600;background:var(--surface)!important;color:var(--text-3)!important;border:1px dashed var(--border-strong)!important;border-radius:6px!important;white-space:nowrap}.note-button:hover,.note-button.open{border-color:var(--warning-border)!important;color:var(--warning-text)!important}.note-button.has-note{background:var(--warning-soft)!important;border:1px solid var(--warning-border)!important;color:var(--warning-text)!important}.schedule-grid tfoot .tally-row>*{box-sizing:border-box;height:30px;padding-top:0;padding-bottom:0;border-top:none;bottom:calc(var(--tally-offset, 0) * 30px)}.schedule-grid tfoot .tally-row.first>*{height:32px;border-top:2px solid var(--border-strong)}.tally-label{font-size:12px;font-weight:600;white-space:nowrap}.tally-label span{display:inline-block;width:1.4em;font-weight:700}.tally-cell{text-align:center;white-space:nowrap;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.tally-cell.zero{color:var(--text-3);font-weight:400}.sticky-note{background:var(--surface);color:var(--text);border:1px solid var(--border);border-top:4px solid #f0b429;border-radius:10px;box-shadow:var(--shadow-lg);font-size:13px;line-height:1.6;text-align:left}.sticky-note-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:700;color:var(--text-3);margin-bottom:6px}.sticky-note.floating{position:fixed;z-index:200;width:272px;padding:10px 12px 12px;animation:pop-in .18s cubic-bezier(.2,.9,.25,1.05) both}.sticky-note.floating textarea{width:100%;background:var(--input-bg);border:1px solid var(--border-strong);border-radius:8px;font-size:13px;font-family:inherit;line-height:1.6;padding:7px 9px;resize:vertical;color:var(--text)}.sticky-note-close{background:none!important;color:var(--text-3)!important;padding:0 4px!important;font-size:16px!important;line-height:1}.sticky-note-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.sticky-note-clear{background:none!important;color:var(--danger-text)!important;padding:2px 4px!important;font-size:12px!important;margin-right:auto}.sticky-note-done{padding:5px 16px!important;font-size:12px!important}.note-indicator{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#f0a020;color:#fff;font-size:12px;font-weight:800;line-height:1;cursor:help}.note-indicator:focus{outline:2px solid var(--warning-border);outline-offset:2px}.note-tooltip{position:fixed;z-index:200;width:240px;padding:8px 12px 10px;white-space:pre-wrap;font-weight:400;pointer-events:none;transform:translateY(-100%);animation:tooltip-in-above .16s ease-out both}.note-tooltip.below{transform:none;animation:pop-in .16s ease-out both}@keyframes tooltip-in-above{0%{opacity:0;transform:translateY(calc(-100% + 6px))}}.schedule-grid thead th.add-col{text-align:left}.schedule-grid.view{flex:0 1 auto;align-self:flex-start;max-width:100%}.schedule-grid.view table{min-width:0}.schedule-grid.view .staff-col{width:auto;min-width:0;padding-right:16px}.schedule-grid.view .date-col{width:auto;min-width:88px}:root{color-scheme:light;--font: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;--bg: #f2f6fb;--surface: #ffffff;--surface-2: #f7fafd;--surface-3: #edf3fa;--border: #dfe7f1;--border-strong: #c8d5e5;--text: #1b2536;--text-2: #475569;--text-3: #7c8aa0;--accent: #2f6fd1;--accent-hover: #255fbb;--accent-soft: #e7f0fc;--accent-text: #1f5bb5;--on-accent: #ffffff;--danger: #d64545;--danger-hover: #bf3434;--danger-soft: #fdeeee;--danger-border: #f4c3c3;--danger-text: #b42323;--success-soft: #e3f6ec;--success-text: #157a4a;--warning-soft: #fff4dd;--warning-border: #f3d193;--warning-text: #945500;--sat-text: #2459b8;--sun-text: #c43b3b;--sidebar-bg: #e8f1fb;--sidebar-border: #d5e3f3;--sidebar-text: #34445c;--sidebar-text-muted: #7486a0;--sidebar-hover: rgba(47, 111, 209, .08);--sidebar-active-bg: #ffffff;--sidebar-active-text: #1f5bb5;--sidebar-group-bg: rgba(255, 255, 255, .55);--topbar-bg: rgba(255, 255, 255, .78);--preview-bg: #dde8f5;--input-bg: #ffffff;--overlay: rgba(19, 36, 66, .32);--focus-ring: 0 0 0 3px rgba(47, 111, 209, .22);--shadow-sm: 0 1px 2px rgba(18, 44, 88, .06);--shadow-md: 0 6px 18px rgba(18, 44, 88, .08);--shadow-lg: 0 24px 60px rgba(18, 44, 88, .2);--radius: 12px;--radius-sm: 8px;--chart-grid: #e6edf5;--chart-axis: #7c8aa0;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--series-7: #4a3aa7;--series-8: #e34948;--series-other: #9a9893}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1013;--surface: #16191e;--surface-2: #1b1f25;--surface-3: #22272f;--border: #2a2f38;--border-strong: #3a414d;--text: #f1f3f6;--text-2: #c2c9d3;--text-3: #8a93a2;--accent: #3b7fe0;--accent-hover: #4a8cec;--accent-soft: rgba(91, 156, 245, .15);--accent-text: #8fbcff;--on-accent: #ffffff;--danger: #d9534b;--danger-hover: #e4665e;--danger-soft: rgba(229, 83, 75, .14);--danger-border: rgba(229, 83, 75, .4);--danger-text: #ff928b;--success-soft: rgba(46, 160, 96, .16);--success-text: #74d6a0;--warning-soft: rgba(214, 150, 40, .16);--warning-border: rgba(214, 150, 40, .42);--warning-text: #f1bd62;--sat-text: #8fb8ff;--sun-text: #ff8f8f;--sidebar-bg: #121418;--sidebar-border: #22262d;--sidebar-text: #c9d0da;--sidebar-text-muted: #7b8494;--sidebar-hover: rgba(255, 255, 255, .05);--sidebar-active-bg: #20252e;--sidebar-active-text: #ffffff;--sidebar-group-bg: rgba(255, 255, 255, .025);--topbar-bg: rgba(14, 16, 19, .78);--preview-bg: #0a0c0f;--input-bg: #1d2128;--overlay: rgba(0, 0, 0, .58);--focus-ring: 0 0 0 3px rgba(91, 156, 245, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 6px 18px rgba(0, 0, 0, .35);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .6);--chart-grid: #262b33;--chart-axis: #8a93a2;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--series-other: #7a7874}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent-text)}h2{margin-top:0;font-size:22px;font-weight:700;letter-spacing:.01em}h3{font-weight:700}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);color:var(--sidebar-text);transition:width .22s cubic-bezier(.2,.8,.2,1);overflow:hidden}.sidebar-head{display:flex;align-items:center;gap:10px;padding:16px 12px 12px 16px;min-height:64px}.brand-mark{width:32px;height:32px;flex-shrink:0;border-radius:9px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#4d8ff0,#2f6fd1);box-shadow:0 4px 10px #2f6fd14d}.brand-name{flex:1;min-width:0;font-size:14px;font-weight:700;line-height:1.35;color:var(--text);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sidebar nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 10px 12px;display:flex;flex-direction:column;gap:10px}.nav-section{border-radius:12px;padding:6px;background:var(--sidebar-group-bg);border:1px solid var(--sidebar-border)}.nav-section.standalone{background:transparent;border-color:transparent;padding:0 6px}.nav-section-title{display:flex;align-items:center;gap:8px;padding:4px 8px 6px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--sidebar-text-muted);white-space:nowrap}.nav-section-title .section-dot{width:8px;height:8px;border-radius:3px;flex-shrink:0}.nav-item{position:relative;display:flex;align-items:center;gap:12px;height:38px;padding:0 10px;border-radius:9px;color:var(--sidebar-text);text-decoration:none;font-size:14px;font-weight:500;white-space:nowrap;transition:background-color .15s,color .15s}.nav-item svg{flex-shrink:0}.nav-item:hover{background:var(--sidebar-hover)}.nav-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);font-weight:700;box-shadow:var(--shadow-sm)}.sidebar-foot{display:flex;align-items:center;gap:10px;padding:12px 14px 14px;border-top:1px solid var(--sidebar-border)}.avatar{width:32px;height:32px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--accent-text);background:var(--accent-soft)}.user-meta{flex:1;min-width:0;font-size:12px;line-height:1.4}.user-meta div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta .user-email{color:var(--sidebar-text-muted);font-size:11px}.app-shell.collapsed .sidebar{width:68px}.app-shell.collapsed .brand-name,.app-shell.collapsed .nav-label,.app-shell.collapsed .nav-section-title,.app-shell.collapsed .user-meta{display:none}.app-shell.collapsed .sidebar-head{flex-direction:column;padding:14px 0 8px;gap:10px}.app-shell.collapsed .nav-section,.app-shell.collapsed .nav-section.standalone{padding:4px 0;background:transparent;border:none;border-radius:0}.app-shell.collapsed .nav-section+.nav-section{border-top:1px solid var(--sidebar-border);padding-top:10px}.app-shell.collapsed .nav-item{justify-content:center;padding:0}.app-shell.collapsed .sidebar-foot{flex-direction:column;padding:12px 0 14px}.main-area{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px 0 24px;background:var(--topbar-bg);-webkit-backdrop-filter:saturate(160%) blur(10px);backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--border)}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-3);min-width:0}.breadcrumb strong{color:var(--text);font-weight:700}.main-content{flex:1;min-height:0;overflow:auto;padding:28px 32px 40px}.main-content>*{max-width:1160px}.main-content.full-bleed{padding:0;overflow:hidden}.main-content.full-bleed>*{max-width:none}.icon-only{width:34px;height:34px;flex-shrink:0;padding:0!important;display:inline-grid;place-items:center;border-radius:9px!important;background:transparent!important;color:var(--sidebar-text-muted)!important;border:none!important}.icon-only:hover{background:var(--sidebar-hover)!important;color:var(--text)!important}.theme-toggle{position:relative;display:inline-flex;align-items:center;width:64px;height:32px;padding:3px!important;border-radius:999px!important;background:var(--surface-3)!important;border:1px solid var(--border)!important;color:var(--text-3)!important}.theme-toggle .toggle-icon{position:relative;z-index:1;width:28px;height:24px;display:grid;place-items:center;transition:color .2s}.theme-toggle .toggle-icon.on{color:var(--accent-text)}.theme-toggle .knob{position:absolute;top:3px;left:3px;width:28px;height:24px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform .22s cubic-bezier(.2,.8,.2,1)}:root[data-theme=dark] .theme-toggle .knob{transform:translate(28px)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;margin-bottom:20px;box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:separate;border-spacing:0;margin-top:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}th,td{border-bottom:1px solid var(--border);padding:10px 12px;font-size:13px;text-align:left}th{background:var(--surface-2);color:var(--text-2);font-weight:700;font-size:12px}tbody tr:last-child>td,tbody tr:last-child>th{border-bottom:none}tbody tr:hover>td{background:var(--surface-2)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.form-row{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;max-width:420px}.form-row label{font-size:12px;font-weight:600;color:var(--text-2)}input,select,textarea{font-family:inherit;padding:8px 10px;background:var(--input-bg);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:14px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}input[type=checkbox]{accent-color:var(--accent)}button{font-family:inherit;cursor:pointer;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid transparent;background:var(--accent);color:var(--on-accent);font-size:14px;font-weight:600;transition:background-color .15s,box-shadow .15s,transform .08s}button:where(:hover:not(:disabled)){background:var(--accent-hover)}button:where(:active:not(:disabled)){transform:translateY(1px)}button:focus-visible{outline:none;box-shadow:var(--focus-ring)}button.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}button.secondary:where(:hover:not(:disabled)){background:var(--surface-3)}button.danger{background:var(--danger);color:#fff}button.danger:where(:hover:not(:disabled)){background:var(--danger-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.small{padding:5px 12px;font-size:13px}.button-link{display:inline-block;padding:8px 14px;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);font-size:14px;font-weight:600;text-decoration:none;border:1px solid transparent}.button-link:hover{background:var(--accent-hover)}.button-link.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.button-link.secondary:hover{background:var(--surface-3)}.error-message{color:var(--danger-text);font-size:13px;margin:8px 0}.success-message{color:var(--success-text);font-size:13px;margin:8px 0}.error-box-light{white-space:pre-line;background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger-text);border-radius:var(--radius-sm);padding:9px 12px;font-size:13px;margin-bottom:10px}.page-hint{color:var(--text-3);font-size:13px;margin:4px 0 14px}.muted{color:var(--text-3)}.nowrap{white-space:nowrap}.empty-cell{color:var(--text-3);text-align:center!important;padding:28px!important}.inactive-row td{color:var(--text-3)}.row-actions{display:flex;gap:6px}.toolbar{display:flex;align-items:flex-end;gap:16px;margin-bottom:12px}.toolbar-filter{margin-bottom:0;max-width:220px}.inline-form{display:flex;align-items:flex-end;gap:12px}.inline-form .form-row{margin-bottom:0;flex:1}.badge,.status-badge{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;vertical-align:middle}.status-badge{margin-left:0}.badge.current{background:var(--accent-soft);color:var(--accent-text)}.status-badge.issued{background:var(--success-soft);color:var(--success-text)}.badge.closed{background:var(--surface-3);color:var(--text-3)}.status-badge.void{background:var(--danger-soft);color:var(--danger-text)}.revenue-list .month-row td{background:var(--surface-2);font-weight:700}.new-document-links>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.card.notice{padding:12px 16px;font-size:14px;line-height:1.7}.card.notice.void{border-color:var(--danger-border);background:var(--danger-soft)}.detail-summary dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 20px;margin:0 0 16px;font-size:14px}.detail-summary dt{color:var(--text-3)}.detail-summary dd{margin:0}.detail-summary dd.grand{font-weight:700;font-size:16px}.detail-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.snapshot-panel{display:flex;padding:30px;background:var(--preview-bg);border-radius:var(--radius);overflow-x:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;animation:overlay-in .18s ease-out both}.modal-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:16px;width:min(460px,100%);padding:22px 24px 18px;box-shadow:var(--shadow-lg);animation:dialog-in .24s cubic-bezier(.2,.9,.25,1.05) both}.modal-backdrop.closing{animation:overlay-out .16s ease-in both}.modal-backdrop.closing .modal-dialog{animation:dialog-out .16s ease-in both}.modal-dialog h3{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:17px}.modal-dialog.warning h3 svg{color:var(--danger)}.modal-body{font-size:14px;line-height:1.7;color:var(--text-2)}.modal-body strong{color:var(--text)}.modal-body p{margin:0 0 8px}.modal-body .form-row{max-width:none}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}@keyframes overlay-in{0%{opacity:0}}@keyframes overlay-out{to{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px) scale(.96)}}@keyframes dialog-out{to{opacity:0;transform:translateY(6px) scale(.98)}}@keyframes pop-in{0%{opacity:0;transform:translateY(6px) scale(.97)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}th,td{white-space:nowrap}.table-scroll{margin-top:12px;overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.table-scroll>table{margin:0;border:none;border-radius:0;box-shadow:none;font-variant-numeric:tabular-nums}.schedule-grid table,.sheet-grid table{overflow:visible;border:none;border-radius:0;box-shadow:none}.category-add{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.price-cell{display:inline-flex;align-items:center;gap:6px}.price-cell input{width:110px;padding:5px 8px;font-variant-numeric:tabular-nums}.price-cell input.invalid{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.price-yen{color:var(--text-3)}.price-state{min-width:72px;font-size:12px;color:var(--text-3)}.price-state.saved{color:var(--success-text)}.price-state.error{color:var(--danger-text)}.head-actions{display:flex;gap:8px;flex-shrink:0}.segmented{display:inline-flex;border:1px solid var(--border-strong);border-radius:10px;overflow:hidden;background:var(--surface)}.segmented button{background:transparent;color:var(--text-2);border-radius:0;padding:7px 12px;font-size:13px;border-right:1px solid var(--border)}.segmented button:last-child{border-right:none}.segmented button:hover:not(:disabled){background:var(--surface-3)}.segmented button.active,.segmented button.active:hover{background:var(--accent);color:var(--on-accent)}.segmented.small button{padding:4px 10px;font-size:12px}.modal-dialog.wide{width:min(560px,100%)}
