*{box-sizing:border-box}body{margin:0;font-family:Hiragino Kaku Gothic ProN,Yu Gothic UI,Meiryo,sans-serif;background:#f4f6f9;color:#24292f;font-size:14px}.layout{display:flex;min-height:100vh}.sidebar{width:210px;flex-shrink:0;background:#1e2a3a;color:#cfd8e3;display:flex;flex-direction:column;padding:16px 0;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:18px;color:#fff;padding:0 20px 16px}.sidebar nav{display:flex;flex-direction:column;flex:1}.sidebar nav a{color:#cfd8e3;text-decoration:none;padding:9px 20px;border-left:3px solid transparent}.sidebar nav a:hover{background:#2a3a50}.sidebar nav a.active{background:#2a3a50;border-left-color:#4c9aff;color:#fff}.nav-section{padding:14px 20px 4px;font-size:11px;color:#8296ac}.sidebar-footer{padding:12px 20px 0;border-top:1px solid #33455c;font-size:13px}.sidebar-footer .muted{color:#8296ac;font-size:11px;margin:2px 0 6px}.sidebar-footer .footer-link{color:#6ea8fe;text-decoration:none}.sidebar-footer .footer-link:hover{text-decoration:underline}.content{flex:1;padding:24px 28px;max-width:1200px}.center-note{padding:60px;text-align:center;color:#667}h1{font-size:20px;margin:0 0 16px}h2{font-size:16px;margin:24px 0 8px}.muted{color:#6b7280}.error{color:#c62828;margin:8px 0;white-space:pre-wrap}.card{background:#fff;border:1px solid #e2e6ea;border-radius:8px;padding:16px 20px;margin-bottom:16px}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.toolbar .spacer{flex:1}table.grid{width:100%;border-collapse:collapse;background:#fff}table.grid th,table.grid td{border:1px solid #e2e6ea;padding:7px 10px;text-align:left}table.grid th{background:#f0f3f7;font-weight:600;white-space:nowrap}table.grid td.num,table.grid th.num{text-align:right;font-variant-numeric:tabular-nums}table.grid tr.clickable{cursor:pointer}table.grid tr.clickable:hover{background:#f5f9ff}button{font:inherit;padding:7px 14px;border-radius:6px;border:1px solid #c6ccd4;background:#fff;cursor:pointer}button:hover{background:#f0f3f7}button.primary{background:#1f6feb;border-color:#1f6feb;color:#fff}button.primary:hover{background:#1a5fd0}button.danger{color:#c62828;border-color:#e3b6b6}button.small{padding:3px 9px;font-size:12px}button.link{border:none;background:none;color:#6ea8fe;padding:0;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;padding:6px 9px;border:1px solid #c6ccd4;border-radius:6px;background:#fff;width:100%}textarea{min-height:60px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #a5c9ff;border-color:#1f6feb}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 16px}.form-grid .wide{grid-column:1 / -1}label.field{display:block;font-size:12px;color:#4b5563}label.field>span{display:block;margin-bottom:3px}label.check{display:flex;gap:6px;align-items:center;font-size:13px}label.check input{width:auto}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;background:#e8edf3;color:#34455a;white-space:nowrap}.badge.green{background:#dcf3e3;color:#1a7f37}.badge.blue{background:#ddebff;color:#1f5fd0}.badge.orange{background:#fff0d4;color:#a05a00}.badge.red{background:#ffe0e0;color:#b32424}.stat-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stat{background:#fff;border:1px solid #e2e6ea;border-radius:8px;padding:12px 16px}.stat .label{font-size:12px;color:#6b7280}.stat .value{font-size:20px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}.stat.warn .value{color:#b32424}.tabs{display:flex;gap:4px;border-bottom:2px solid #e2e6ea;margin-bottom:16px;flex-wrap:wrap}.tabs a{padding:8px 14px;text-decoration:none;color:#4b5563;border-bottom:2px solid transparent;margin-bottom:-2px}.tabs a.active{color:#1f6feb;border-bottom-color:#1f6feb;font-weight:600}.login-wrap{display:flex;justify-content:center;align-items:center;min-height:100vh}.login-box{width:360px}.login-box h1{text-align:center}.login-box .field{margin-bottom:12px}.totals-box{margin-left:auto;max-width:360px}.totals-box table{width:100%}.totals-box td{padding:3px 6px}.totals-box td.num{text-align:right;font-variant-numeric:tabular-nums}.totals-box tr.grand td{font-weight:700;font-size:15px;border-top:1px solid #c6ccd4}dl.kv{display:grid;grid-template-columns:160px 1fr;gap:4px 12px;margin:0}dl.kv dt{color:#6b7280}dl.kv dd{margin:0}
