:root{--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#eff6ff;--info:#3b82f6;--bg:#f7f8fa;--surface:#fff;--surface-2:#f9fafb;--border:#e2e5ea;--border-strong:#cdd1d8;--text-1:#1a202c;--text-2:#4a5568;--text-3:#6b7280;--text-4:#9ca3af;--receivable:#d97706;--cash:#16a34a;--card:#0891b2;--advance:#7c3aed;--muted:#9ca3af;--danger:#ef4444;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 2px 10px #00000012;--font:"Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text-1);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}.app{max-width:1200px;margin:0 auto;padding:20px 20px 56px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.topbar h1{letter-spacing:.01em;margin:0;font-size:22px;font-weight:700}.topbar .sub{color:var(--text-3);margin-top:3px;font-size:12.5px}.topbar .meta{text-align:right;color:var(--text-3);font-size:12px}.pill{background:var(--primary-light);color:var(--primary-hover);border:1px solid #dbeafe;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.pill.wait{color:#b45309;background:#fff7ed;border-color:#fed7aa}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 16px 15px;position:relative;overflow:hidden}.kpi-card:before{content:"";background:var(--primary);width:3px;position:absolute;top:0;bottom:0;left:0}.kpi-card .k-label{color:var(--text-3);font-size:12px;font-weight:500}.kpi-card .k-value{margin-top:5px;font-size:26px;font-weight:700;line-height:1.15}.kpi-card .k-value .unit{color:var(--text-2);margin-left:2px;font-size:14px;font-weight:500}.kpi-card .k-sub{color:var(--text-4);margin-top:3px;font-size:11.5px}.panels{grid-template-columns:1fr 1fr;gap:16px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0;padding:16px 18px 18px}.panel.wide{grid-column:1/-1}.panel-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.panel-head .title{font-size:15px;font-weight:700}.panel-head .title .eyebrow{color:var(--text-4);letter-spacing:.04em;margin-bottom:1px;font-size:11px;font-weight:500;display:block}.panel-head .aside{color:var(--text-3);text-align:right;font-size:12px}.panel-note{color:var(--text-4);margin-top:12px;font-size:11.5px}.headline{color:var(--text-2);font-size:13px}.headline b{color:var(--text-1);font-size:20px;font-weight:700}.bars{flex-direction:column;gap:11px;display:flex}.bar-row{grid-template-columns:84px 1fr auto;align-items:center;gap:10px;display:grid}.bar-row .name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.bar-track{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;height:22px;overflow:hidden}.bar-fill{background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:6px 0 0 6px;min-width:2px;height:100%}.bar-row .val{color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12.5px}.bar-row .val b{color:var(--text-1);font-weight:700}.bar-row .val .c{color:var(--text-4);margin-left:4px}.stack{border:1px solid var(--border);border-radius:7px;height:30px;display:flex;overflow:hidden}.stack .seg{height:100%}.legend{flex-direction:column;gap:7px;margin-top:14px;display:flex}.legend-row{grid-template-columns:12px 1fr auto auto;align-items:center;gap:9px;font-size:12.5px;display:grid}.legend-row .dot{border-radius:3px;width:11px;height:11px}.legend-row .lg-name{color:var(--text-2)}.legend-row .lg-amt{color:var(--text-1);font-variant-numeric:tabular-nums;font-weight:600}.legend-row .lg-pct{color:var(--text-4);text-align:right;font-variant-numeric:tabular-nums;width:46px}.week{flex-direction:column;gap:2px;display:flex}.day-head{color:var(--text-2);align-items:center;gap:8px;margin:12px 0 5px;font-size:12.5px;font-weight:700;display:flex}.day-head:first-child{margin-top:0}.day-head .wknd{color:var(--danger)}.day-head .cnt{color:var(--text-4);font-size:11px;font-weight:500}.evt{border-radius:var(--radius-sm);border:1px solid #0000;grid-template-columns:92px 56px 1fr;align-items:center;gap:10px;padding:7px 9px;display:grid}.evt:hover{background:var(--surface-2)}.evt.big{background:#fffbeb;border-color:#fde68a}.evt .time{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:12px}.evt .ppl{text-align:right;font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:700}.evt .ppl .u{color:var(--text-4);margin-left:1px;font-size:10.5px;font-weight:500}.evt.big .ppl{color:var(--receivable)}.evt .nm{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.center{min-height:60vh;color:var(--text-3);justify-content:center;align-items:center;font-size:14px;display:flex}.err{color:var(--danger)}.foot{border-top:1px solid var(--border);color:var(--text-4);margin-top:22px;padding-top:14px;font-size:11.5px;line-height:1.7}.foot b{color:var(--text-3);font-weight:600}.topbar .logout{color:var(--text-3);text-decoration:underline}.topbar .logout:hover{color:var(--primary)}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);text-align:center;border-radius:14px;width:100%;max-width:380px;padding:36px 34px}.login-brand{font-size:20px;font-weight:700}.login-sub{color:var(--text-3);margin-top:4px;font-size:12.5px}.login-btn{background:var(--primary);color:#fff;border-radius:9px;margin-top:22px;padding:11px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s;display:block}.login-btn:hover{background:var(--primary-hover)}.login-note{color:var(--text-4);margin-top:14px;font-size:11.5px;line-height:1.6}.login-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:18px;padding:9px 12px;font-size:12.5px}.fac-page{max-width:880px;margin:0 auto;padding:16px 20px 56px}.fac-topbar{text-align:right;color:var(--text-3);min-height:18px;margin-bottom:8px;font-size:12px}.fac-title{text-align:center;color:var(--text-1);margin:8px 0 6px;font-size:26px;font-weight:700}.fac-subtitle{text-align:center;color:var(--text-3);margin-bottom:22px;font-size:13px}.fac-search{background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;align-items:center;gap:8px;margin-bottom:18px;padding:11px 16px;display:flex}.fac-search svg{flex:none}.fac-search input{color:var(--text-1);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:14px}.fac-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.fac-row{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:16px 24px;font-family:inherit;transition:background .15s;display:flex}.fac-row:hover{background:#f9fafb}.fac-row-main{flex:1;min-width:0}.fac-row-name{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;overflow:hidden}.fac-row-code{color:var(--text-4);margin-top:2px;font-size:12px}.fac-row-meta{flex:none;align-items:center;gap:16px;display:flex}.fac-pref{color:var(--text-3);font-size:13px}.fac-count{color:var(--text-2);font-size:13px}.fac-dot{background:#22c55e;border-radius:50%;width:9px;height:9px}.fac-empty{text-align:center;color:var(--text-3);padding:40px 24px;font-size:14px}.backlink{color:var(--text-3);cursor:pointer;background:0 0;border:none;margin-bottom:6px;padding:0;font-family:inherit;font-size:12px;display:inline-block}.backlink:hover{color:var(--primary)}@media (width<=860px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.panels{grid-template-columns:1fr}}@media (width<=480px){.kpi-grid{grid-template-columns:1fr 1fr}.bar-row{grid-template-columns:72px 1fr auto}}
