:root{color:#161616;background:#f4f0ea;font-family:Sora,Noto Sans JP,system-ui,sans-serif;--bg: #f4f0ea;--ink: #161616;--muted: #5c5a56;--panel: #ffffff;--border: #e6e0d8;--accent: #0f766e;--accent-ink: #ffffff;--highlight: #f6d47e;--danger: #ef4444;--shadow: 0 16px 36px rgba(15, 23, 42, .12)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(700px 400px at 10% 10%,rgba(246,212,126,.25),transparent 70%),radial-gradient(600px 320px at 85% 10%,rgba(15,118,110,.18),transparent 70%),var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}main{max-width:1180px;margin:0 auto;padding:24px 20px 64px}.shell{display:grid;gap:24px}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:var(--shadow)}.card.light{background:#fffc;box-shadow:none}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.brand{display:grid;gap:6px}.brand .title{font-size:22px;font-weight:700;letter-spacing:.02em}.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;font-size:12px;background:#f1efe9;border:1px solid var(--border);color:var(--muted)}.badge .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.nav{display:flex;flex-wrap:wrap;gap:8px}.nav a{padding:8px 14px;border-radius:999px;border:1px solid transparent;background:#f1efe9;font-size:14px}.nav a.active{background:var(--accent);color:var(--accent-ink)}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.field{display:grid;gap:6px;font-size:14px}input,select,textarea{border-radius:10px;border:1px solid var(--border);background:#fbfaf8;padding:9px 12px;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #0f766e33}.date-field{display:grid;grid-template-columns:1fr;gap:8px;align-items:center}.date-picker{background:#fbfaf8;border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:13px}button,.btn{border:none;border-radius:10px;padding:10px 16px;background:var(--accent);color:var(--accent-ink);font-weight:600;cursor:pointer;transition:transform .05s ease,box-shadow .12s ease}button:disabled,.btn:disabled{opacity:.6;cursor:not-allowed}button:active,.btn:active{transform:translateY(1px)}.btn-ghost{background:#f1efe9;color:var(--ink);border:1px solid var(--border)}.btn-danger{background:var(--danger);color:#fff}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px}.chart-panel{margin-top:12px;padding:12px;border:1px dashed var(--border);border-radius:12px;background:#fff9}.chart{display:grid;gap:10px}.chart-row{display:grid;grid-template-columns:minmax(120px,1.2fr) 2fr minmax(96px,.8fr);gap:12px;align-items:center}.chart-label{display:grid;gap:2px}.chart-title{font-weight:600}.chart-sub{font-size:12px}.chart-track{height:10px;background:#efe8de;border-radius:999px;overflow:hidden}.chart-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#0f766e,#2ea39a)}.chart-value{font-size:13px;text-align:right}.staff-groups{display:grid;gap:16px}.staff-group{padding:16px}.staff-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.staff-group-title{font-size:16px;font-weight:600}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}th{background:#f1efe9;font-size:13px}tbody tr:hover{background:#f6d47e1f}.row-muted{opacity:.5}.actions{display:flex;flex-wrap:wrap;gap:8px}.muted{color:var(--muted);font-size:13px}.notice{background:#fff7dd;border:1px solid #f3dda0;padding:12px 14px;border-radius:12px;font-size:14px}.error-box{background:#fff1f2;border:1px solid #fecdd3;padding:12px 14px;border-radius:12px;color:#991b1b}.field-error{color:#b91c1c;font-size:12px}.field-hint{color:var(--muted);font-size:12px}.section-title{font-size:18px;font-weight:600;margin:0 0 10px}.list-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.pager{display:flex;gap:8px;align-items:center}.pager button{padding:6px 10px;font-size:13px}.placeholder{padding:24px;border-radius:12px;background:#fbfaf8;border:1px dashed var(--border);text-align:center}.empty-state{padding:32px 24px;border-radius:12px;background:#fbfaf8;border:1px dashed var(--border);text-align:center}.empty-state .placeholder{border:none;background:transparent;padding:0}.radio-group{display:flex;flex-wrap:wrap;gap:16px}.radio-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.radio-label input[type=radio]{width:18px;height:18px;margin:0;cursor:pointer;accent-color:var(--accent)}#toast{position:fixed;bottom:24px;right:24px;background:#111827;color:#f9fafb;padding:12px 16px;border-radius:12px;opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease;z-index:20}#toast.visible{opacity:1;transform:translateY(0)}@media(max-width:720px){main{padding:16px 14px 40px}.header{flex-direction:column;align-items:flex-start}.nav{width:100%}.actions,.toolbar{flex-direction:column;align-items:stretch}}
