:root{--color-bg:#0b0b0d;--color-surface:#151517;--color-surface-2:#1d1d20;--color-border:#2c2c30;--color-text:#f2f1ec;--color-text-muted:#9c9a94;--color-gold:#c9a44a;--color-gold-strong:#e0bc6c;--color-good:#4caf6d;--color-warning:#d9b23c;--color-danger:#e05a5a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:15px/1.5 system-ui,Hiragino Kaku Gothic ProN,Yu Gothic,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0}#root{min-height:100svh}button{font-family:inherit}input,select{color:var(--color-text);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:6px;padding:8px 10px;font-family:inherit;font-size:14px}input:focus,select:focus{outline:2px solid var(--color-gold);outline-offset:1px}table{border-collapse:collapse}.page{max-width:1400px;margin:0 auto;padding:24px 20px 64px}.app-topbar{border-bottom:1px solid var(--color-border);background:var(--color-surface)}.app-topbar__inner{align-items:center;gap:12px;max-width:1400px;margin:0 auto;padding:10px 20px;font-size:13px;display:flex}.app-topbar__tenant{color:var(--color-gold-strong);font-weight:700}.app-topbar__user{color:var(--color-text-muted);flex:1}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;width:100%;max-width:360px;padding:28px}.login-card h1{color:var(--color-gold-strong);margin:0 0 4px;font-size:22px}.login-card .page-header__note{margin-bottom:18px}.form__actions--stretch{justify-content:stretch}.form__actions--stretch .btn{flex:1}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-header h1{letter-spacing:.02em;color:var(--color-gold-strong);margin:0 0 4px;font-size:26px}.page-header__note{color:var(--color-text-muted);margin:0;font-size:13px}.detail-header{justify-content:space-between;align-items:center;gap:12px;margin:12px 0 16px;display:flex}.detail-header h1{color:var(--color-gold-strong);margin:0 0 4px;font-size:22px}.btn{border:1px solid var(--color-border);cursor:pointer;background:var(--color-surface-2);color:var(--color-text);border-radius:6px;padding:9px 16px;font-size:14px;transition:opacity .15s}.btn:hover{opacity:.85}.btn--gold{background:linear-gradient(135deg, var(--color-gold), var(--color-gold-strong));color:#171412;border-color:#0000;font-weight:600}.btn--ghost{color:var(--color-text-muted);border-color:var(--color-border);background:0 0}.btn--outline{border-color:var(--color-gold);color:var(--color-gold-strong);background:0 0}.btn--small{padding:5px 10px;font-size:12px}.btn--active{color:var(--color-gold-strong);border-color:var(--color-gold)}.view-tabs{gap:8px;margin-bottom:20px;display:flex}.view-tabs__tab{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;border-radius:999px;padding:8px 18px;font-size:13px}.view-tabs__tab--active{background:linear-gradient(135deg, var(--color-gold), var(--color-gold-strong));color:#171412;border-color:#0000;font-weight:600}.summary-bar{grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:20px;display:grid}.summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:14px}.summary-card__label{color:var(--color-text-muted);margin-bottom:6px;font-size:12px}.summary-card__value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:600}.summary-card__value--positive{color:var(--color-good)}.summary-card__value--negative{color:var(--color-danger)}.value-hint{color:var(--color-text-muted);margin-top:2px;font-size:11px;font-weight:400;display:block}@media (width<=1080px){.summary-bar{grid-template-columns:repeat(3,1fr)}}@media (width<=600px){.summary-bar{grid-template-columns:repeat(2,1fr)}}.filters{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.filters__keyword{flex:240px;min-width:180px}.filters__select{flex:none}.table-wrap{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;overflow-x:auto}.project-table{border-collapse:collapse;width:100%;min-width:1100px;font-size:13px}.project-table th,.project-table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:10px 12px}.project-table th{color:var(--color-text-muted);background:var(--color-surface-2);font-size:12px;font-weight:500;position:sticky;top:0}.project-table td.num,.project-table th.num{text-align:right;font-variant-numeric:tabular-nums}.project-table tfoot td{border-top:2px solid var(--color-gold);border-bottom:none;font-weight:600}.project-row{cursor:pointer}.project-row:hover{background:var(--color-surface-2)}.project-row__name{color:var(--color-text);font-weight:600}.project-row__diff--positive{color:var(--color-good);font-weight:600}.project-row__diff--negative,.value-danger{color:var(--color-danger);font-weight:600}.subcontractor-cards{display:none}@media (width<=860px){.subcontractor-cards{gap:12px;margin-top:16px;display:grid}}.subcontractor-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-gold);border-radius:10px;padding:16px}.subcontractor-card--total{border-left-color:var(--color-gold-strong);background:var(--color-surface-2)}.subcontractor-card__name{margin-bottom:12px;font-size:15px;font-weight:700}.subcontractor-card__grid{grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px;display:grid}.subcontractor-card__grid dt{color:var(--color-text-muted);font-size:11px}.subcontractor-card__grid dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:14px;font-weight:600}.project-cards{display:none}@media (width<=860px){.table-wrap{display:none}.project-cards{gap:12px;display:grid}.table-wrap--persistent{display:block}}.project-card{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-border);cursor:pointer;width:100%;color:inherit;border-radius:10px;padding:16px;display:block}.project-card--positive{border-left-color:var(--color-good)}.project-card--negative{border-left-color:var(--color-danger)}.project-card__top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.project-card__name{font-size:17px;font-weight:700}.project-card__hero{border-bottom:1px solid var(--color-border);grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px;padding-bottom:14px;display:grid}.project-card__hero-label{color:var(--color-text-muted);margin-bottom:2px;font-size:11px}.project-card__hero-value{font-variant-numeric:tabular-nums;color:var(--color-gold-strong);font-size:16px;font-weight:700}.project-card__hero-value--positive{color:var(--color-good)}.project-card__hero-value--negative{color:var(--color-danger)}.project-card__grid{grid-template-columns:1fr 1fr;gap:10px;margin:0;display:grid}.project-card__grid dt{color:var(--color-text-muted);font-size:11px}.project-card__grid dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:14px;font-weight:600}.status-badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.status-badge--neutral{background:var(--color-surface-2);color:var(--color-text-muted)}.status-badge--info{color:var(--color-gold-strong);background:#c9a44a26}.status-badge--good{color:var(--color-good);background:#4caf6d26}.status-badge--danger{color:var(--color-danger);background:#e05a5a26}.detail-hero{background:var(--color-surface);border:1px solid var(--color-border);border-top:3px solid var(--color-border);border-radius:10px;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px;padding:18px;display:grid}.detail-hero--positive{border-top-color:var(--color-good)}.detail-hero--negative{border-top-color:var(--color-danger)}.detail-hero__label{color:var(--color-text-muted);margin-bottom:4px;font-size:12px}.detail-hero__value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.detail-hero__value--positive{color:var(--color-good)}.detail-hero__value--negative{color:var(--color-danger)}@media (width<=700px){.detail-hero{grid-template-columns:repeat(2,1fr)}}.detail-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;margin-bottom:20px;padding:18px}.detail-section__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.detail-section__header h2{color:var(--color-gold-strong);margin:0;font-size:16px}.detail-section__actions{flex-wrap:wrap;gap:8px;display:flex}.detail-section__meta{flex-wrap:wrap;align-items:baseline;gap:12px;margin:0 0 16px;font-size:14px;display:flex}.row-actions{gap:6px;display:flex}.history-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.history-grid h3,.history-block h3{color:var(--color-text-muted);margin:0 0 8px;font-size:13px}.history-list__company{color:var(--color-text-muted);flex:none}.history-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.history-list li{border-bottom:1px dashed var(--color-border);flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:6px 0;font-size:13px;display:flex}.history-list__date{color:var(--color-text-muted);flex:0 0 90px}.history-list__amount{font-variant-numeric:tabular-nums;font-weight:600}.history-list__note{color:var(--color-text-muted);flex:100%;font-size:12px}@media (width<=700px){.history-grid{grid-template-columns:1fr}}.monthly-table{border-collapse:collapse;width:100%;min-width:1100px;font-size:13px}.monthly-table th,.monthly-table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:10px 12px}.monthly-table th{color:var(--color-text-muted);background:var(--color-surface-2);font-size:12px;font-weight:500;position:sticky;top:0}.monthly-table td.num,.monthly-table th.num{text-align:right;font-variant-numeric:tabular-nums}.monthly-cards{display:none}@media (width<=860px){.monthly-cards{gap:12px;margin-top:16px;display:grid}}.monthly-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-border);border-radius:10px;flex-direction:column;gap:10px;padding:16px;display:flex}.monthly-card__month{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:15px;font-weight:700;display:flex}.monthly-card__sub{grid-template-columns:1fr 1fr;gap:8px;margin:0;display:grid}.monthly-card__sub dt{color:var(--color-text-muted);font-size:10px}.monthly-card__sub dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:2px 0 0;font-size:12px;font-weight:600}.empty-state{text-align:center;color:var(--color-text-muted);padding:32px}.empty-state--inline{text-align:left;padding:8px 0}.modal-overlay{z-index:50;background:#000000a6;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;width:100%;max-width:420px;max-height:90vh;padding:20px;overflow-y:auto}.modal__header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal__header h3{color:var(--color-gold-strong);margin:0;font-size:16px}.modal__close{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;font-size:20px;line-height:1}.form{flex-direction:column;gap:12px;display:flex}.form__field{color:var(--color-text-muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.form__field input{width:100%}.form__error{color:var(--color-danger);margin:0;font-size:13px}.form__actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}
